Was sind die Zwecke von Autoencodern?

10

Autoencoder sind neuronale Netze, die eine komprimierte Darstellung der Eingabe lernen, um sie später zu rekonstruieren, sodass sie zur Dimensionsreduzierung verwendet werden können. Sie bestehen aus einem Codierer und einem Decodierer (die separate neuronale Netze sein können). Die Reduzierung der Dimensionalität kann nützlich sein, um die Probleme im Zusammenhang mit dem Fluch der Dimensionalität zu lösen oder abzuschwächen, bei denen Daten spärlich werden und es schwieriger ist, eine "statistische Signifikanz" zu erhalten. Autoencoder (und Algorithmen wie PCA) können also verwendet werden, um mit dem Fluch der Dimensionalität umzugehen.

Warum interessiert uns die Dimensionsreduzierung speziell mit Autoencodern? Warum können wir PCA nicht einfach verwenden, wenn der Zweck die Reduzierung der Dimensionalität ist?

Warum müssen wir die latente Darstellung der Eingabe dekomprimieren, wenn wir nur eine Dimensionsreduktion durchführen möchten, oder warum benötigen wir den Decoderteil in einem Autoencoder? Was sind die Anwendungsfälle? Warum müssen wir den Eingang im Allgemeinen komprimieren, um ihn später zu dekomprimieren? Wäre es nicht besser, nur die ursprüngliche Eingabe zu verwenden (um damit zu beginnen)?

nbro
quelle
1
Siehe auch die folgende Frage stats.stackexchange.com/q/82416/82135 zu CrossValidated SE.
nbro

Antworten:

6

Es ist wichtig zu überlegen, welche Muster in den Daten dargestellt werden.

Angenommen, Sie haben einen Datensatz mit Graustufenbildern, sodass jedes Bild eine einheitliche Intensität aufweist. Als menschliches Gehirn würden Sie erkennen, dass jedes Element in diesem Datensatz mit einem einzigen numerischen Parameter beschrieben werden kann, der dieser Intensitätswert ist. Dies ist etwas, für das PCA gut funktionieren würde, da jede der Dimensionen (wir können uns jedes Pixel als eine andere Dimension vorstellen) perfekt linear korreliert ist.

Angenommen, Sie haben stattdessen einen Datensatz mit 128 x 128 Pixel großen Schwarzweiß-Bitmap-Bildern von zentrierten Kreisen. Als menschliches Gehirn würden Sie schnell erkennen, dass jedes Element in diesem Datensatz vollständig durch einen einzelnen numerischen Parameter beschrieben werden kann, der der Radius des Kreises ist. Dies ist eine sehr beeindruckende Reduzierung gegenüber 16384 Binärdimensionen, und was vielleicht noch wichtiger ist, es ist eine semantisch bedeutsame Eigenschaft der Daten. PCA wird dieses Muster jedoch wahrscheinlich nicht finden können.

Ihre Frage lautete: "Warum können wir PCA nicht einfach verwenden, wenn der Zweck die Reduzierung der Dimensionalität ist?" Die einfache Antwort ist, dass PCA das einfachste Werkzeug zur Reduzierung der Dimensionalität ist, aber es kann viele Beziehungen übersehen, die leistungsfähigere Techniken wie Autoencoder finden könnten.

Josiah
quelle
3

Ein Anwendungsfall von Autoencodern (insbesondere des Decoders oder des generativen Modells des Autoencoders) besteht darin, die Eingabe zu entstören. Diese Art von Autoencodern, die als Autoencoder zum Entrauschen bezeichnet werden , nehmen eine teilweise verfälschte Eingabe entgegen und versuchen, die entsprechende unverfälschte Eingabe zu rekonstruieren. Es gibt verschiedene Anwendungen dieses Modells. Wenn Sie beispielsweise ein beschädigtes Bild hatten, können Sie das möglicherweise nicht beschädigte Bild mithilfe eines Autoencoders zum Entrauschen wiederherstellen.

Autoencoder und PCA sind verwandt:

Ein Autoencoder mit einer einzelnen vollständig verbundenen verborgenen Schicht, einer linearen Aktivierungsfunktion und einer quadratischen Fehlerkostenfunktion trainiert Gewichte, die denselben Unterraum wie den von den Hauptkomponenten-Ladevektoren überspannten umfassen, aber nicht mit den Ladevektoren identisch sind.

Weitere Informationen finden Sie in dem Artikel Von Hauptteilräumen zu Hauptkomponenten mit linearen Autoencodern (2018) von Elad Plaut. Siehe auch diese Antwort , die auch die Beziehung zwischen PCA und Autoencodern erklärt.

nbro
quelle
3

PCA ist eine lineare Methode, die eine Transformation erstellt, mit der die Vektorprojektionen geändert werden können (Änderung der Achse).

Da PCA nach der Richtung der maximalen Varianz sucht, weist es normalerweise eine hohe Diskriminativität auf, ABER es kann nicht garantiert werden, dass die Richtung der meisten Varianz die Richtung der meisten Diskriminativität ist.

LDA ist eine lineare Methode, die eine Transformation erstellt, mit der die Richtung ermittelt werden kann, die für die Entscheidung, ob ein Vektor zur Klasse A oder B gehört, am relevantesten ist.

PCA und LDA haben nichtlineare Kernel-Versionen, die ihre linearen Einschränkungen überwinden könnten.

Autoencoder können mit anderen Arten von Verlustfunktionen eine Dimensionsreduzierung durchführen, sind nicht linear und können in vielen Fällen eine bessere Leistung als PCA und LDA erzielen.

Es gibt wahrscheinlich keinen besten Algorithmus für maschinelles Lernen, um etwas zu tun. Manchmal sind Deep Learning und Neuronale Netze für einfache Probleme übertrieben, und PCA und LDA werden möglicherweise vor anderen, komplexeren Dimensionsreduktionen ausprobiert.

Pedro Henrique Monforte
quelle
Was hat LDA mit Fragen zu tun?
nbro
LDA kann als Dimensionsreduktion verwendet werden. Der ursprüngliche Algorithmus leitet nur eine Projektion ab, aber Sie können ihn verwenden, um eine untergeordnete Unterscheidungsrichtung für eine genauere Modellierung zu erhalten
Pedro Henrique Monforte
PCA garantiert auch keine maximale Varianz, da es sich um einen gierigen Algorithmus handelt, der sich nur dem Maximum annähert.
Mathieu Bouville
PCA hat eine geschlossene Lösung, die Hauptachse ist immer die Richtung der maximalen Varianz. Es ist kein gieriger Algorithmus (aber er kann als einer implementiert werden)
Pedro Henrique Monforte