Variational Autoencoder (VAE)
Was ist ein Variational Autoencoder (VAE)?
Ein Variational Autoencoder (VAE) ist ein generativer KI-Algorithmus, der Deep Learning verwendet, um neue Inhalte zu generieren, Anomalien zu erkennen und Rauschen zu entfernen.
Variational Autoencoder tauchten erstmals 2013 auf, etwa zur gleichen Zeit wie andere generative KI-Algorithmen wie Generative Adversarial Networks (GAN) und Diffusionsmodelle, aber früher als Large Language Models (LLM), auf denen BERT, die GPT-Familie und das Pathways Language Model basieren.
VAEs eignen sich für die Generierung synthetischer Zeitreihendaten, mit denen andere KI-Algorithmen trainiert werden. Sie sind die erste Wahl bei der Durchführung von Signalanalysen zur Interpretation von IoT-Datenfeeds, biologischen Signalen wie EEG oder Finanzdatenfeeds.
VAEs eignen sich auch für die Erzeugung von Text, Bildern und Videos. Sie ergänzen jedoch eher andere Modelle wie GAN, Stable Diffusion – eine Weiterentwicklung der Diffusionsmodelle – und Transformers, wenn es um die Generierung verschiedener Arten von Inhalten geht.
VAEs kombinieren zwei Arten von neuronalen Netzen, ähnlich wie GANs. Sie kombinieren jedoch zwei verschiedene Arten von neuronalen Netzen, die unterschiedlich arbeiten. Im Falle von VAEs findet ein Netzwerk bessere Wege, um Rohdaten in einen latenten Raum zu kodieren, während das zweite – der Decoder – bessere Wege findet, um diese latenten Repräsentationen in neue Inhalte umzuwandeln. Bei GANs findet ein neuronales Netzwerk bessere Wege, um gefälschte Inhalte zu erzeugen, während das zweite Netzwerk bessere Wege findet, um gefälschte Inhalte zu erkennen.
Geschichte von Autoencodern
Die Geschichte von Autoencodern geht auf die 1980er Jahre und die Forschung zur Verbesserung neuronaler Netzwerke zurück. Die damals populärsten neuronalen Netzwerke – Perzeptrons und mehrschichtige Perzeptrons – verwendeten einen überwachten Lernansatz, der die Kennzeichnung von Trainingsdaten erforderte.
In den frühen 1990er Jahren begannen Forscher, Möglichkeiten zu erforschen, neuronale Netze mit unmarkierten Daten zu trainieren. Dies vereinfachte die Entwicklung bestimmter Anwendungen und ermöglichte neue Anwendungsfälle. Ein Forschungszweig konzentrierte sich auf die Kombination neuronaler Netzwerke zur effizienteren Kodierung und Dekodierung von Daten. Die Forscher nannten sie Autoencoder, da sie den Prozess automatisieren konnten, ohne die Daten markieren zu müssen.
Der einfachste Autoencoder trainierte ein Encoder-Netzwerk, um die Eingabedaten in eine komprimierte latente Repräsentation zu übertragen, und ein zweites Decoder-Netzwerk, um die Originaldaten aus dem latenten Raum zu rekonstruieren. Diese frühen Netzwerke konnten Daten komprimieren und Rauschen reduzieren.
In den frühen 2000er Jahren begannen Forscher damit, andere Wege zum Aufbau neuronaler Netzwerke zu erforschen, indem sie mehr Neuronen in jeder Schicht verwendeten, um den Mustern in den Daten zu entsprechen. Die Forscher nannten diese Sparse Autoencoder, weil sie nur eine Teilmenge von Neuronen benötigten, um eine Darstellung der Daten zu modellieren. Dies half, die Überanpassung zu reduzieren, die die Anpassungsfähigkeit des Netzwerks an neue Umstände einschränkte. Sparse Autoencoders verbesserten auch die Interpretierbarkeit, da das reichhaltigere Netzwerk von Verbindungen es einfacher machte, Merkmale in den zugrunde liegenden Daten mit Entscheidungen zu verbinden.
Ab etwa 2010 begannen Forscher zu erforschen, wie sie Deep-Learning-Ansätze anwenden können, um Autoencoder mit mehreren versteckten Schichten zu entwickeln, die komplexe Repräsentationen der Daten ermöglichen. Weitere Forschungen untersuchten Möglichkeiten, spezialisierte entrauschende Autoencoder zur Entfernung von Rauschen hinzuzufügen, sowie kontraktive Autoencoder zur Verbesserung der Robustheit und Generalisierbarkeit von Autoencodern.
Im Jahr 2013 stellten Diederik P. Kingma und Max Welling VAEs in einer Arbeit mit dem Titel Auto-Encoding Variational Bayes vor. Ihre wichtigste Neuerung war das Hinzufügen der Variationsinferenz, die für die Wahrscheinlichkeitsverteilung von Änderungen im Eingabedatensignal wirken kann. Die ursprüngliche Arbeit zeigte, wie die Technik realistisch aussehende Gesichter und handgeschriebene Zahlen erzeugen konnte. In der Folge entwickelten die Forscher verschiedene Verfeinerungen des neuen Ansatzes, um die Leistung der VAEs zu verbessern.
Autoencoder versus Variational Autoencoder
Autoencoder sind eine ältere Architektur neuronaler Netzwerke, die sich durch eine effizientere Darstellung von Rohdaten für verschiedene Anwendungen des maschinellen Lernens und der KI auszeichnen. Einfache Autoencoder sind bei der Erstellung von Codecs zur Komprimierung von Daten und zur Erkennung von Anomalien hilfreich. Sie sind jedoch nur nützlich, wenn es darum geht, bessere Möglichkeiten zu finden, die Originaldaten effizienter zu speichern und zu rekonstruieren.
Die wichtigste Innovation der VAEs war ein neues probabilistisches Modell, mit dessen Hilfe neue Inhalte generiert werden können, die den ursprünglichen Inhalten ähneln, sich aber von ihnen unterscheiden. In VAEs bietet die Zwischenschicht eine Möglichkeit, Daten in einem Wahrscheinlichkeitsfeld darzustellen, das es der Schicht ermöglicht, mehr Varianten und mit größerer Präzision zu speichern. So können beispielsweise Gesichter oder Bilder numerischer Ziffern mit glatteren Merkmalen dargestellt werden.
Frühe Anwendungen von Autoencodern umfassten die Dimensionalitätsreduktion und das Lernen von Merkmalen. Bei der Dimensionalitätsreduzierung geht es darum, eine Möglichkeit zu finden, einen Datensatz mit weniger Variablen effizienter darzustellen. Beim Feature-Learning geht es darum, den geeigneten Satz mathematischer Beziehungen innerhalb eines Datensatzes für ein bestimmtes maschinelles Lernproblem zu identifizieren.
Im Laufe der Jahre haben Forscher Autoencoder in andere KI- und maschinelle Lernalgorithmen integriert, um Präzision und Leistung zu verbessern. Autoencoder eignen sich für die Klassifizierung von Bildern, die Erkennung von Objekten und die Entfernung von Rauschen sowie für Anwendungen der unabhängigen Komponentenanalyse, zum Beispiel das Herausfiltern einer Stimme auf einer Party oder das Destillieren von Gesang und Instrumenten aus einem Musiktitel.
Arten von Autoencodern
Es gibt verschiedene Arten von grundlegenden Autoencodern, darunter:
- Sparse Autoencoder. Dies ist einer der ältesten und beliebtesten Ansätze. Er eignet sich für die Merkmalsextraktion, die Dimensionalitätsreduktion, die Erkennung von Anomalien und das Transferlernen. Er verwendet Techniken, die das neuronale Netzwerk dazu bringen, nur eine Teilmenge der dazwischenliegenden Neuronen zu verwenden. Dieser Überschuss an ungenutzten Neuronen gibt ihnen die Flexibilität, eine effizientere Darstellung der Daten zu erkennen und zu lernen.
- Entrauschende Autoencoder. Diese lernen, wie die ursprünglichen Daten aus einem verrauschten Datenstrom rekonstruiert werden können. Sie werden häufig zur Bereinigung von Bildern mit wenig Licht, zur Spracherkennung und zur Vorverarbeitung von IoT-Daten eingesetzt.
- Kontraktive Autoencoder. Diese sind darauf spezialisiert, eine Repräsentation zu lernen, die sich an kleine Änderungen in den Eingabedaten anpassen kann. Dadurch können sie sich besser an ungesehene Daten anpassen. Forscher verwenden sie, um die Interpretierbarkeit von neuronalen Netzwerkmodellen zu verbessern, indem sie die hervorstechendsten Merkmale im Datensatz hervorheben, die für die Ergebnisse verantwortlich sind.
Wie funktionieren VAEs in neuronalen Netzwerken?
Sowohl VAEs als auch Autoencoder verwenden eine Rekonstruktionsverlustfunktion, um die neuronalen Netzwerke mit Hilfe des Gradientenabstiegs abzustimmen. Dieser Optimierungsalgorithmus passt die Gewichte der Verbindungen des neuronalen Netzwerks als Reaktion auf Rückmeldungen über die Leistung des Netzwerks an. Der Algorithmus belohnt neuronale Netzwerkkonfigurationen mit einer niedrigeren Verlustfunktion, da sie ähnlicher sind, während eine höhere Verlustfunktion bestraft wird. Durch diesen Trainingsprozess kann der Autoencoder die zugrunde liegende Struktur der Trainingsdaten erfassen und sie in das neuronale Netzwerk einbauen.
Ein herkömmlicher Autoencoder repräsentiert die Eingabedaten im latenten Raum mit Hilfe eines regularisierten Feldes diskreter Zahlen. Im Gegensatz dazu verwendet ein VAE ein probabilistisches Feld, das die Eingabedaten im latenten Raum anhand einer statistischen Verteilung des Mittelwerts und der Varianz der Daten darstellt. Der VAE führt auch ein neues Maß ein, die Kullback-Leibler-Divergenz (KL). Die KL-Divergenz stellt die Unterschiede zwischen der gelernten Verteilung und einer vorgegebenen statistischen Verteilung dar.
Diese anfängliche, vorherige Verteilung kann aus allgemeinen statistischen Vorkommnissen ausgewählt oder aus einem Datensatz gelernt werden. Sobald sowohl VAE als auch Autoencoder trainiert sind, kann das resultierende neuronale Netzwerk zu einer Inferenzmaschine für die Verarbeitung von Eingaben konfiguriert werden.
In einem klassischen Autoencoder stellt der latente Zwischenraum die Eingabedaten als diskrete Punkte dar. Er wird die ursprünglichen Daten wiederherstellen, wenn die entsprechende Eingabe in die Inferenzmaschine eingespeist wird. Er wird jedoch versagen, wenn anomale Daten eingegeben werden, was ihn zu einem guten Anomalie-Detektor macht. In einer VAE können geringfügige Variationen der Eingabedaten völlig neue Inhalte erzeugen, die die in den Trainingsinhalten gefundenen Muster repräsentieren.
Die Zukunft der VAEs
Sowohl Autoencoder als auch VAEs werden ständig weiterentwickelt. Die Forscher erforschen weiterhin bessere latente Raumdarstellungen, die die Aussagekraft der gelernten Darstellungen zu verbessern versprechen. Dies kann die Leistung und Interpretierbarkeit von Autoencodern und VAEs verbessern.
Es wird auch intensiv daran geforscht, wie Forscher beide Techniken mit anderen generativen KI-Algorithmen kombinieren können, um die Repräsentation von Signalen und Mustern in den Rohdaten zu verbessern. Darüber hinaus können beide Techniken eine Rolle bei der Kennzeichnung oder sonstigen Verarbeitung von Daten spielen, um den Trainingsprozess für andere KI- und maschinelle Lernalgorithmen zu verbessern.
VAEs werden wahrscheinlich auch weiterhin in Anwendungen wie der Generierung synthetischer Daten, der Datenerweiterung und der Datenaufbereitung in den Bereichen Fertigung, Energie, Gesundheitswesen, Finanzen und Robotik zum Einsatz kommen. Künftige Innovationen können sich auch auf die Leistung und Qualität von VAEs zur Generierung weiterer Arten von Inhalten konzentrieren.