Trainingsphase

Mit den Beschreibungen aus dem Abschnitt zuvor wird schnell klar, dass die Trainingsphase eines Autoencoders genau wie bei künstlichen neuronalen Netzen durchgeführt werden kann, sofern ausreichend viele Trainingsdaten zur Verfügung stehen.

Aber wie üblich muss auch ein Autoencoder zunächst initialisiert werden. Dabei ist das Layout des Encoders sowie das Layout des Decoders zu spezifizieren:

Zur Referenz

Bei der anschließenden Trainingsphase handelt es sich um einen iterativen Prozess, der insbesondere über die folgenden Parameter gesteuert werden kann:

VariableBeschreibung
iterationsAnzahl der Iterationen der Trainingsphase
batch_sizeLosgröße pro Iteration
learning_rateLernrate

Es sei bemerkt, dass Autoencoder durchaus sensibler auf die Lernrate reagieren können im Vergleich zu neuronalen Netzen. Es kann also durchaus sinnvoll sein, auch damit zu experimentieren. Eine weiterführende Dokumentation dazu findest du hier:

Zur Referenz

Um den Fortschritt und Verlauf der Trainingsphase besser analysieren zu können, stellt auch das Autoencoder-Paket den .progress-Befehl zur Verfügung:

Zur Referenz

Im folgenden Beispiel nutzen wir die Daten des HandwrittenDigits-Datensatzes, um erste Erfahrungen zu sammeln. Nach abgeschlossener Trainingsphase wird der Zielfunktionswert (siehe Abschnitt zuvor) über der Anzahl der Iterationen dargestellt. Hinweis: Im Vergleich zum Abschnitt zuvor werden die Zielfunktionswerte zur besseren Darstellung mit einem Faktor von 100 skaliert.

Beispiel
Demonstration der Trainingsphase eines Autoencoders.
Aufgabe

Verändere im Beispiel zuvor das Layout des Autoencoders sowie die drei Parameter der Trainingsphase. Dokumentiere, mit welchen Einstellungen du die besten Ergebnisse erzielt hast.

Quiz
Hast du die Aufgabe zuvor bearbeitet?
ja
nein
Dimensionsreduktion