Warum sind Autoencoder zur Dimensionsreduzierung symmetrisch?


13

Ich bin kein Experte für Autoencoder oder neuronale Netze. Verzeihen Sie mir, wenn dies eine dumme Frage ist.

Zur Dimensionsreduktion oder zur Visualisierung von Clustern in hochdimensionalen Daten können wir einen Autoencoder verwenden, um eine (verlustbehaftete) zweidimensionale Darstellung zu erstellen, indem wir die Ausgabe der Netzwerkschicht mit zwei Knoten untersuchen. Mit der folgenden Architektur würden wir beispielsweise die Ausgabe der dritten Ebene untersuchen

[X]N1=100N2=25(N3=2)N4=25N5=100[X]

wobei die Eingangsdaten und ist die Anzahl der Knoten in der - ten Schicht.XNll

Meine Frage ist nun, warum wir eine symmetrische Architektur wollen. Bedeutet ein Spiegel der tiefen "Komprimierungs" -Phase nicht, dass wir möglicherweise eine ähnlich komplexe "Dekomprimierungs" -Phase haben, die zu einem 2-Knoten-Ausgang führt, der nicht sehr intuitiv sein muss? Mit anderen Worten, würde eine einfachere Dekodierungsphase nicht dazu führen, dass die Ausgabe der Schicht mit 2 Knoten auch notwendigerweise einfacher ist?

Ich denke hier, je weniger komplex die Dekomprimierungsphase ist, desto einfacher (linearer?) Muss die 2D-Darstellung sein. Eine komplexere Dekomprimierungsphase würde eine komplexere 2D-Darstellung ermöglichen.

Antworten:


12

Die Symmetrie eines Autoencoders unterliegt keiner besonderen Einschränkung.

Zu Beginn tendierten die Leute dazu, eine solche Symmetrie maximal durchzusetzen: Nicht nur die Ebenen waren symmetrisch, sondern auch die Gewichte der Ebenen im Encoder und Decoder wurden geteilt . Dies ist keine Voraussetzung, ermöglicht jedoch die Verwendung bestimmter Verlustfunktionen (dh RBM-Score-Matching) und kann als Regularisierung dienen , da Sie die Anzahl der zu optimierenden Parameter effektiv um die Hälfte reduzieren. Heutzutage denke ich jedoch, dass niemand eine Codierer-Decodierer-Gewichtsverteilung vorschreibt.

In Bezug auf die architektonische Symmetrie ist es üblich , bei Codierern und Decodierern die gleiche Anzahl von Schichten, die gleiche Art von Schichten und die gleiche Schichtgröße zu finden, dies ist jedoch nicht erforderlich .

Beispielsweise war es in Faltungsautocodierern in der Vergangenheit sehr verbreitet, Faltungsschichten im Codierer und Entfaltungsschichten im Decodierer zu finden, aber jetzt sehen Sie normalerweise Upsampling-Schichten im Decodierer, da sie weniger Artefaktprobleme haben.


7

Ihre Frage ist definitiv vorhanden, aber ich habe festgestellt, dass eine Frage im Format "Soll ich X oder Y im Deep Learning machen?" hat nur eine antwort.

Probieren Sie beide aus

Deep Learning ist ein sehr empirisches Feld, und wenn ein nicht symmetrischer Auto-Encoder für Ihre Domain funktioniert, verwenden Sie ihn (und veröffentlichen Sie ein Paper).


2

Ich habe einige umfangreiche Experimente durchgeführt, um die gestellte Frage zu beantworten. Meine Experimente ergaben, dass der Kodierungspfad (linkes Bein des NN) weniger, aber breitere Schichten haben sollte. Normalerweise nehme ich halb so viele Ebenen, verdoppelte aber die Anzahl der Knoten für den Codierungspfad. Ich habe keine Erklärung dafür, nur diese Konfiguration führte oft zu einer schnelleren Konvergenz.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.