Warum brauchen wir Autoencoder?

17

Vor kurzem habe ich Autoencoder studiert. Wenn ich richtig verstanden habe, ist ein Autoencoder ein neuronales Netzwerk, bei dem die Eingangsschicht mit der Ausgangsschicht identisch ist. Das neuronale Netzwerk versucht also, die Ausgabe unter Verwendung der Eingabe als goldenen Standard vorherzusagen.

Was ist der Nutzen dieses Modells? Was sind die Vorteile des Versuchs, einige Ausgabeelemente so zu rekonstruieren, dass sie den Eingabeelementen so ähnlich wie möglich sind? Warum sollte man all diese Maschinen benutzen, um zum selben Ausgangspunkt zu gelangen?

Larry
quelle

Antworten:

17

Auto-Encoder verfügen über eine Eingabeebene, eine ausgeblendete Ebene und eine Ausgabeebene. Die Eingabe muss mit der Ausgabe identisch sein, daher handelt es sich um die verborgene Ebene, an der wir interessiert sind.

Die verborgene Ebene bildet eine Art Kodierung der Eingabe. "Das Ziel eines Auto-Encoders ist es, eine komprimierte, verteilte Darstellung (Codierung) für einen Datensatz zu lernen." Wenn die Eingabe ein 100-dimensionaler Vektor ist und Sie 60 Neuronen in der verborgenen Ebene haben, repliziert der Auto-Encoder-Algorithmus die Eingabe als 100-dimensionalen Vektor in der Ausgabeebene. Dabei erhalten Sie einen 60-dimensionalen Vektor, der Ihre Eingabe codiert .

Der Zweck von Auto-Encodern ist also unter anderem die Reduzierung der Dimensionalität .

Madhulika Mukherjee
quelle
Danke @ Madhulika, vielleicht habe ich verstanden. Der Algorithmus funktioniert wie folgt: Er hat eine Eingabeschicht, er trainiert das neuronale Netzwerk, um eine mit der Eingabeschicht identische Ausgabeschicht zu erhalten. Dann vergleicht es die Eingangsschicht mit der Ausgangsschicht, und wenn sie unterschiedlich sind, trainiert es das neuronale Netzwerk weiter. Es hört auf, wenn sie identisch sind. Wenn es fertig ist, nehmen wir die letzte verborgene Ebene als beste Approximation für die Dimensionsreduktion der Eingabeebene und verwenden sie für jedes Ziel, das wir benötigen. Ist das richtig?
Larry
Ja, das hast du fast richtig verstanden. :) Lies etwas weitere Literatur darüber.
Madhulika Mukherjee
5

Es kann auch Ihre Grundgesamtheit modellieren, sodass Sie bei der Eingabe eines neuen Vektors überprüfen können, wie unterschiedlich die Ausgabe von der Eingabe ist. Wenn sie "ziemlich" gleich sind, können Sie davon ausgehen, dass die Eingabe mit der Grundgesamtheit übereinstimmt. Wenn sie sich "ziemlich" unterscheiden, gehört die Eingabe wahrscheinlich nicht zu der Population, die Sie modelliert haben.

Ich sehe es als eine Art "Regression durch neuronale Netze", bei der Sie versuchen, eine Funktion zu haben, die Ihre Daten beschreibt: Ihre Ausgabe ist dieselbe wie die Eingabe.

Matthieu
quelle
3

Vielleicht vermitteln Ihnen diese Bilder eine gewisse Intuition. Wie bereits erwähnt, versuchen die genannten Auto-Encoder, einige wichtige Merkmale aus den Trainingsbeispielen zu extrahieren. Sie können sehen, wie der Prognosealgorithmus verwendet wird, um jede verborgene Ebene separat für die tiefe NN im zweiten Bild zu trainieren.

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Die Bilder stammen aus der russischen Wikipedia.

Marat Zakirov
quelle
1
Kommentar zu den Bildern wäre hilfreich.
Tim