Das autoencoder
Paket ist nur eine Implementierung des Autoencoder in Andrew Ng beschrieben Klasse Noten , die ein guter Ausgangspunkt für die weitere Lektüre sein könnte. Nun, um Ihre Fragen zu beantworten
Menschen unterscheiden manchmal zwischen
Parametern , die der Lernalgorithmus selbst berechnet, und
Hyperparametern , die diesen Lernprozess steuern und dem Lernalgorithmus zur Verfügung gestellt werden müssen.
Es ist wichtig zu wissen, dass es für die Hyperparameter
KEINE MAGISCHEN WERTE gibt . Der optimale Wert hängt von den Daten ab, die Sie modellieren: Sie müssen sie an Ihren Daten ausprobieren.
λ
ρ )( ββα
ϵ)N(0,ϵ2)
Ihre Rho-Werte scheinen nicht unangemessen zu sein, da beide nahe am unteren Rand des Bereichs der Aktivierungsfunktion liegen (0 bis 1 für logistische, -1 bis 1 für tanh). Dies hängt jedoch offensichtlich von der gewünschten Spärlichkeit und der Anzahl der versteckten Einheiten ab, die Sie ebenfalls verwenden.
m−1/2m
Es gibt viele "Faustregeln" für die Auswahl der Anzahl der versteckten Einheiten. Ihre anfängliche Vermutung (2x Eingabe) scheint mit den meisten übereinzustimmen. Das heißt, diese Schätzungen sind viel mehr Vermutungen als Schätzungen. Angenommen, Sie haben die Rechenleistung, würde ich mich auf die Seite von mehr versteckten Einheiten irren und dann die Spärlichkeit mit einem niedrigen Rho-Wert erzwingen.
Eine offensichtliche Verwendung von Autoencodern besteht darin, kompaktere Merkmalsdarstellungen für andere Lernalgorithmen zu erzeugen. Ein Rohbild kann Millionen von Pixeln haben, aber ein (spärlicher) Autoencoder kann dies auf viel kleinerem Raum wiedergeben.
Geoff Hinton (und andere) haben gezeigt, dass sie nützliche Merkmale für die nachfolgende Klassifizierung generieren. Einige der Deep-Learning-Arbeiten verwenden Autoencoder oder ähnliches, um das Netzwerk vorab zu trainieren.
Vincent et al. Verwenden Sie Autoencoder direkt, um die Klassifizierung durchzuführen.
Die Fähigkeit, prägnante Feature-Darstellungen zu generieren, kann auch in anderen Kontexten verwendet werden. Hier ist ein hübsches kleines Projekt, in dem von Autoencodern erzeugte Zustände verwendet werden, um einen Verstärkungslernalgorithmus durch Atari-Spiele zu führen .
Schließlich kann man auch verwenden , um Autoencoder verrauscht oder degradierten Eingangs zu rekonstruieren, wie so , die einen nützlichen Zweck in sich selbst sein kann.
beta = 6
imautoencoder
Beispielcode?