Was ist ein Autoencoder?
Autoencoder stellen eine bestimmte Form bzw. einen bestimmten Aufbau neuronaler Netze dar, um eine komprimierte Darstellung von Daten zu erhalten. Sie kopieren ihre Eingabe in die Ausgabe. Bei der Überführung der Eingabe in die Ausgabe werden bestimmte Einschränkungen auf den Input angewendet. Die Eingabe wird also auf wesentliche Merkmale reduziert. Man spricht in diesem Fall von einer Dimensionsreduktion. Autoencoder bestehen aus zwei wesentlichen Teilen – dem Encoder und dem Decoder. Der Encoder ist der Teil des Netzwerks, welcher die Eingabe komprimiert. Der Decoder ist dafür zuständig, die Eingaben zu rekonstruieren.
Welchen Zweck erfüllen Autoencoder und welche Typen gibt es?
Für Autoencoder gibt es zwei besonders interessante Anwendungsbereiche. Zum einen sind sie zum Denoising von Daten hilfreich. Das heißt, sie unterdrücken das Rauschen innerhalb der Daten, indem sie die Eingabe auf wesentliche Merkmale reduzieren. Zum anderen werden Autoencoder in der Visualisierung von Daten eingesetzt. Je nach Zweck unterscheidet man zwischen vier wesentlichen Typen von Autoencodern:
- Multilayer Autoencoder (MLA) werden verwendet, um eine komprimierte Darstellung von Daten zu erlernen.
- Regularisierter Autoencodern sind eine Art von Autoencodern, die zusätliche Regulationstechniken verwenden. So erzielen sie eine bessere Leistung.
- Der Vanille-Autoencoder ist ein grundlegender Autoencoder der keine zusätzlichen Regulationstechniken anwendet.
- Convolutional Autoencoder sind besondere Autoencoder, die CNNs (also Convolutional Neural Network) Schichten verwenden.
Training von Autoencodern
Das Training von neuronalen Netzen in Form von Autoencodern findet häufig in Form von Backpropagation statt. Auch das Gradientenverfahren ist ein verbreitetes Trainingsverfahren von Autoencodern. Werden innerhalb des Trainings Fehler in der Datenbasis gefunden, dann werden diese über die Zeit unbedeutender und als geringfügig eingestuft. Es wird also eine Art Datendurchschnitt gebildet, welcher starke Fehler negiert. Durch ein gutes Pretraining der Daten werden diese fehlerhaften Abweichungen vorab ausgemärzt, sodass das finale Training als Finetuning des Netzes genutzt werden kann.
Praxisbeispiele von Autoencodern
Autoencoder werden verwendet, um Gesichter zu erkennen. Die Erkennung von Handschrift ist ein weiteres bekanntes Beispiel für die Verwendung von Autoencoder.
Ein Autoencoder am Beispiel einer Handschrifterkennung ist wie folgt aufgebaut: Der Encoder wandelt die Eingabe in eine latente Repräsentation mit weniger Dimensionen um. Der Decoder nimmt das Ergebnis und wandelt es zurück in ein Bild um. Durch die Wiederholung im Training des neuronalen Netzes. werden die Daten komprimiert und der Rekonstruktionserror im Training reduziert. Weitere Praxisbeispiele sind die Datenreduktion, Feature Extraction, Anomaly-Detection sowie die Bildkomprimierung und -verbesserung.