Nach meinem Verständnis werden Autoencoder verwendet, um eine kompakte Darstellung von Eingabefunktionen zu finden, die die wesentlichen zugrunde liegenden Informationen enthält.
Gibt es eine Beziehung zwischen den L2-Abständen im ursprünglichen Eingaberaum und dem reduzierten (kompakten) Raum? Wenn nicht, kann ich das Netzwerk so trainieren, dass die kompakte Darstellung nach der Transformation die Entfernung beibehält?
Antworten:
Nein, das tun sie nicht. Wir gestalten sie grundsätzlich so, dass sie keine Abstände einhalten können. Ein Autoencoder ist ein neuronales Netzwerk, das eine "sinnvolle" Darstellung der Eingabe lernt und dabei seine "semantischen" Merkmale beibehält. Die zitierten Wörter (wie so viele Begriffe in Deep Learning-Artikeln) haben keine strenge Definition, aber sagen wir, dass der Autoencoder, der auf einer Reihe von Eingaben trainiert ist, einige gemeinsame Merkmale dieser Eingaben lernen sollte, die es ermöglichen, eine unsichtbare Eingabe mit kleinen Eingaben zu rekonstruieren Fehler 1 .
Der einfachste Weg für den Autoencoder, die Unterschiede zwischen Eingabe und Ausgabe (rekonstruierte Eingabe) zu minimieren, besteht darin, nur die Eingabe auszugeben, dh die Identitätsfunktion zu lernen, die eine Isometrie ist, wodurch Abstände erhalten bleiben. Wir möchten jedoch nicht, dass der Autoencoder einfach die Identitätskarte lernt, da wir sonst keine "sinnvolle" Darstellung lernen, oder besser gesagt, wir lernen nicht, die Eingabe durch Erlernen ihrer Grundlagen zu "komprimieren" semantische Merkmale und "Wegwerfen" der winzigen Details (das Rauschen im Fall des Entrauschen des Autoencoders).
Um zu verhindern, dass der Autoencoder die Identitätstransformation lernt und ihn zwingt, die Eingabe zu komprimieren, reduzieren wir die Anzahl der Einheiten in den verborgenen Ebenen des Autoencoders (Engpassschicht oder -ebenen). Mit anderen Worten, wir zwingen es, eine Form der nichtlinearen Dimensionsreduktion zu lernen: Nicht umsonst besteht eine tiefe Verbindung zwischen linearen Autoencodern und PCA , einem bekannten statistischen Verfahren zur linearen Dimensionsreduktion.
Dies ist jedoch mit Kosten verbunden : Indem der Autoencoder gezwungen wird, eine Art nichtlineare Dimensionsreduzierung durchzuführen, verhindern wir, dass er Entfernungen beibehält. Tatsächlich können Sie beweisen, dass es zwischen zwei euklidischen Räumen keine Isometrie gibt, dh keine entfernungserhaltende TransformationEn und Em wenn m<n (Dies wird implizit in diesem Beweis einer anderen Aussage bewiesen ). Mit anderen Worten, eine dimensionsreduzierende Transformation kann keine Isometrie sein. Das ist eigentlich ziemlich intuitiv: Wenn der Autoencoder lernen muss, Elemente eines hochdimensionalen Vektorraums abzubildenV zu Elementen einer niederdimensionalen Mannigfaltigkeit M eingebettet in V muss es einige Richtungen in "opfern" V Dies bedeutet, dass zwei Vektoren, die sich nur entlang dieser Richtungen unterscheiden, auf dasselbe Element von abgebildet werden M . Somit bleibt ihr Abstand, der anfänglich ungleich Null ist, nicht erhalten (er wird 0).
HINWEIS : Es kann möglich sein, eine Zuordnung einer endlichen Menge von Elementen von zu lernenV S={v1,…,vn} zu einer endlichen Menge von Elementen O={w1,…,wn}∈M , so dass die paarweisen Abstände erhalten bleiben. Dies versucht die mehrdimensionale Skalierung . Es ist jedoch unmöglich, alle Elemente von abzubildenV zu Elementen eines niederdimensionalen Raumes W unter Einhaltung von Abständen.
1 Dinge werden komplizierter, wenn wir uns auf meinen Lieblingsgeschmack von Autoencoder beziehen, den Variational Autoencoder, aber ich werde mich hier nicht darauf konzentrieren.
quelle
Sie können ein Netzwerk mit einer beliebigen Verlustfunktion trainieren. Bei Ansatz 1 können Sie also eine Verlustfunktion erstellen, die das Netzwerk pusht, um sicherzustellen, dass der Abstand zwischen Paaren in einem Mini-Batch in der Ausgabe dem Abstand zwischen Paaren in der Eingabe entspricht. Wenn Sie dies auf Mini-Batch-Basis tun und die Batch-Größe beispielsweise 16 oder 32 beträgt, scheint dies nicht unbrauchbar zu sein. Oder Sie können ein paar Paare abtasten und den Verlust auf diesen berechnen (gleiche Anzahl von Paaren pro Mini-Batch, z. B. zufällig abgetastet).
Was die Schaffung eines nichtlinearen Netzwerks angeht, bei dem die Entfernung garantiert bleibt, ein Ansatz 2, könnte ein Ansatz darin bestehen, das Netzwerk aus Blöcken aufzubauen, die selbst Entfernungen bewahren, z. B. Rotationen. Ich bin mir nicht sicher, ob dieses Netzwerk etwas anderes als eine lineare Transformation und nur eine Rotation sein könnte. Jede Nichtlinearität, wie z. B. ein Sigmoid-Quetschen, würde die Abstände verformen.
Ich denke, Ansatz 1 klingt für mich praktikabel, obwohl keine Garantie dafür besteht, dass Entfernungen immer eingehalten werden und sie nicht sehr genau eingehalten werden. Der zweite Ansatz klingt für mich intuitiv so, dass Sie sich auf eine einzelne Rotationstransformation beschränken würden.
Bearbeiten: zur Verdeutlichung. Ich beantworte die Frage "Wie kann man einen Auto-Encoder dazu bringen, Abstand zu bewahren?". Die implizite Antwort, die ich auf "Bewahrt ein Auto-Encoder Abstand?" ist "Nicht standardmäßig; obwohl Sie eine Menge Beinarbeit leisten könnten, um dies zu fördern, dh Ansatz 1 oben".
Bearbeiten 2: @DeltaIV hat einen guten Punkt zur Dimensionsreduzierung. Es ist zu beachten, dass die Existenz von t-SNE usw., dh niedrigdimensionale Projektionen des hochdimensionalen Raums, sowohl die Grenzen des Versuchs, Distanz zu bewahren (Konflikt zwischen globalen Entfernungen und lokalen Entfernungen; Herausforderung, Entfernungen in reduzierten Dimensionen zu bewahren), zeigt. aber auch, dass es angesichts bestimmter Vorbehalte / Kompromisse etwas möglich ist.
quelle