Autoencoder
Ein Autoencoder ist ein [[künstliches neuronales Netzwerk, 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. Das bedeutet, dass er für Dimensionsreduktion genutzt wird. Genauer ist es eine Methode, Merkmale zu extrahieren.
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 der Hauptkomponentenanalyse sehr ähnlich.
Training
Ein Aucoencoder wird häufig mit einer der vielen Backpropagation-Varianten (conjugate gradient method, steepest descent, 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,