Zum Inhalt springen

Autoencoder

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 5. August 2009 um 19:08 Uhr durch 92.76.28.46 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Ein Autoencoder ist ein Künstliches neuronales Netz, dass dazu genutzt wird, effiziente Codierungen zu lernen. Das Ziel eines Autoencoders ist es, eine komprimierte Repräsentation (Encoding) für einen Satz Daten zu lernen und somit auch wesentliche Merkmale extrahieren. Dadurch kann er für Dimensionsreduktion genutzt werden.

Der Autoencoder benutzt drei oder mehr Schichten:

  • Eine Eingabeschicht. Bei der Gesichtserkennung könnten die Neuronen beispielsweise die Pixel einer Fotografie abbilden.
  • Einige signifikant kleinere Schichten, die das Encoding bilden.
  • Eine Ausgabeschicht, wo jedes Neuron die gleiche Bedeutung hat wie das entsprechende in der Eingabeschicht.


Wenn lineare Neuronen benutzt werden, ist er der Hauptkomponentenanalyse sehr ähnlich.

Training

Ein Autoencoder wird häufig mit einer der vielen Backpropagation-Varianten (CG-Verfahren, Gradientenverfahren, etc.) Trainiert. Obwohl diese Methode oft sehr effektiv ist, gibt es fundamentale Probleme damit, neuronale Netzerke mit verborgenen Schichten zu trainieren. Sind die Fehler einmal zu den ersten paar Schichten rückpropagiert, werden sie unbedeutend. Das bedeutet, dass das Netzwerk fast immer lernt, den Durchschnitt der Trainingsdaten zu lernen. Obwohl es fortgeschrittene Backpropagation-Methoden (wie die conjugate gradient method) gibt, die diesem Problem zum Teil abhelfen, läuft dieses Verfahren auf langsames Lernen und schlechte Ergebnisse hinaus. Um dem abzuhelfen, verwendet man anfängliche Gewichtungen, die dem Ergebnis schon ungefähr entsprechen. Dies wird Pretraining genannt.

Bei einer Pretraining-Technik, die von Geoffrey Hinton dazu entwickelt wurde, vielschichtige Autoencoder zu trainieren, werden benachbarte Schichten als Begrenzte Boltzmann-Maschine behandelt, um eine gute Annäherung zu erreichen und dann Backpropagation als Fine-Tuning zu benutzen.