Dlaczego potrzebujemy autoencoderów?

17

Ostatnio studiowałem autoencodery. Jeśli dobrze zrozumiałem, autoencoder to sieć neuronowa, w której warstwa wejściowa jest identyczna z warstwą wyjściową. Tak więc sieć neuronowa próbuje przewidzieć wyjście, używając wejścia jako złotego standardu.

Jaka jest przydatność tego modelu? Jakie są zalety próby zrekonstruowania niektórych elementów wyjściowych, aby były jak najbardziej równe elementom wejściowym? Dlaczego należy korzystać z tych wszystkich maszyn, aby dostać się do tego samego punktu początkowego?

Larry
źródło

Odpowiedzi:

17

Automatyczne kodery mają warstwę wejściową, warstwę ukrytą i warstwę wyjściową. Wejście musi być identyczne z wyjściem, więc interesuje nas jego ukryta warstwa.

Ukryta warstwa stanowi rodzaj kodowania danych wejściowych. „Celem autokodera jest nauczenie się skompresowanej, rozproszonej reprezentacji (kodowania) dla zestawu danych”. Jeśli wejście jest wektorem 100-wymiarowym, a w ukrytej warstwie znajduje się 60 neuronów, algorytm automatycznego kodowania replikuje dane wejściowe jako 100-wymiarowy wektor w warstwie wyjściowej, co daje 60-wymiarowy wektor, który koduje dane wejściowe .

Dlatego celem auto koderów jest redukcja wymiarów , między innymi.

Madhulika Mukherjee
źródło
Dzięki @Madhulika, może zrozumiałem. Algorytm działa w następujący sposób: ma warstwę wejściową, trenuje sieć neuronową w celu uzyskania warstwy wyjściowej identycznej z warstwą wejściową. Następnie porównuje warstwę wejściową z warstwą wyjściową, a jeśli są one różne, kontynuuje szkolenie sieci neuronowej. Zatrzymuje się, gdy są identyczne. Kiedy się skończy, bierzemy ostatnią ukrytą warstwę jako najlepsze przybliżenie zmniejszenia wejściowej warstwy i używamy jej do każdego potrzebnego nam celu. Czy to jest poprawne?
Larry
Tak, masz prawie rację. :) Przeczytaj o tym dalszą literaturę.
Madhulika Mukherjee
5

Może również modelować populację, aby po wprowadzeniu nowego wektora można było sprawdzić, jak różni się wynik od danych wejściowych. Jeśli są „całkiem” takie same, możesz założyć, że dane wejściowe odpowiadają populacji. Jeśli są „całkiem” różne, dane wejściowe prawdopodobnie nie należą do modelowanej populacji.

Widzę to jako rodzaj „regresji przez sieci neuronowe”, w której próbujesz mieć funkcję opisującą twoje dane: jej wynik jest taki sam jak danych wejściowych.

Matthieu
źródło
3

Może te zdjęcia dają ci intuicję. Jak komentator powyżej powiedział, auto kodery próbują wydobyć niektóre funkcje wysokiego poziomu z przykładów szkoleniowych. Na drugim zdjęciu możesz zobaczyć, jak algorytm prognozowania służy do trenowania każdego ukrytego poziomu osobno dla głębokiej NN.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Zdjęcia pochodzą z rosyjskiej wikipedii.

Marat Zakirov
źródło
2
Pomocny byłby komentarz do zdjęć.
Tim