Was ist ein Autoencoder?

Ein Autoencoder stellt ein künstliches neuronales Netz dar. Dieses wird dazu verwendet, um umfangreiche Codierungen zu erlernen. Der Autoencoder extrahiert wichtige Merkmale und lernt aus Datensätzen das Wesentlichste an Informationen zu verwenden. Dabei können Datensätze aus einer höheren Dimension in eine tiefere überführt werden. Relevante Daten sowie Informationen gehen dabei nicht verloren.

Welche Schichten gibt es?

Hier werden 3 verschiedene Arten von Schichten hervorgehoben, welche beim Autoencoder eine gewichtige Rolle spielen.

Eingabeschicht

Beispielsweise bei der Erkennung von Gesichtern können vorhandene Neuronen die einzelnen Pixel eines Fotos oder Bildes darstellen.

Kleinere Schichten

Diese bilden überhaupt erst das Encoding.

Ausgabeschicht

In dieser Schicht wird jedes Neuron die gleiche Aufmerksamkeit sowie Bedeutung zuteil wie die Neuronen innerhalb der voran angeführten Eingabeschicht.

Decoder

Ein Decoder rekonstruiert die erfolgten Eingaben aus Raumdarstellungen, welche latent sind. Diese wird mithilfe der Dekodierfunktion ersichtlich, welche mit r=g(h)deklariert wird.

Anwendungsgebiete

Wenn es um Datenprojektion geht, können Autodecoder wertvolle Dienste leisten. Jedoch sind diese wiederum bei der Kompression von Bildern keine optimale Lösung. Encoder derart werden auf bestimmte Bereiche sowie Datensätze trainiert. Das heißt, bei der Datenkomprimierung eignen sich Encoder aus diesem Bereich besser. Bei Bilderdaten sollten wiederum andere Techniken der Komprimierung verwendet werden, beispielsweise JPEG beziehungsweise JPG.

Zu erwähnen ist, dass beim coden sowie encoden möglichst viele Daten erhalten werden sollen, darauf sind Encoder, welche automatisiert arbeiten, stets geschult. Die neue Darstellung von Daten erhalten in der Regel neue Eigenschaften. Jeder Encoder erfüllt bestimmte Zwecke und Aufgaben, um gewünschte Ziele sicher zu erreichen. Dabei gibt es vier verschiedene Typen von Autoencodern:

  • Multilayer Autoencoder
  • Regularisierter Autoencodern
  • Vanille-Autoencoder
  • Convolutional Autoencoder

Training

Den Autoencodern kann man viele Eigenschaften und Funktionsweisen beibringen. Häufig finden Varianten der Backpropagation statt. Auch GG-Verfahren sowie Gradientenverfahren können hier wirkungsvoll trainiert werden. Es treten dabei jedoch oft Probleme auf in Bezug auf die Trainierbarkeit der neuronalen Netzwerke in Verbindung mit Schichten, welche verborgen sind.

Wenn doch mal Fehler auftreten, dann werden diese mit der Zeit als geringfügig beziehungsweise unbedeutend eingestuft, da eine Durchschnittsberechnung von Daten des jeweiligen Trainings kreiert werden. Es ist ähnlich wie mit Zensuren in der Schule. Wenn man am Anfang des Schuljahres in einer Leistungskontrolle die Note Zwei geschrieben hat, in einer späteren Leistungskontrolle eine Sechs, dann ist der Durchschnitt die Note Vier.

Die Sechs stellt den Fehler (Makel dar). Je länger das Schuljahr dauert und, umso mehr positive Zensuren hinzukommen, umso unbedeutender wird die Note Sechs vom Anfang des Schuljahres in Bezug auf den Endzensurendurchschnitt. Diese wird sozusagen größtenteils ausgeglichen. Beim autoencoden wird ein Pretraining statt, um die Fehlerbildung vorzubeugen und Vorgänge gezielt zu optimieren. Dabei werden Schichten, welche benachbart sind mit eingebunden, Ziel ist es, eine adäquate Annäherung zu erzielen, somit ist eine Backprogagation möglich, welche als abschließendes Feintuning genutzt wird.