Ein Autoencoder ist eine Art Architektur für neuronale Netze, die darauf ausgelegt ist, Eingabedaten effizient zu komprimieren (kodieren), um sie auf ihre wesentlichen Merkmale zu reduzieren, und dann die ursprüngliche Eingabe aus dieser komprimierten Darstellung zu rekonstruieren (dekodieren).
Durch unüberwachtes maschinelles Lernen werden Autoencoder darauf trainiert, latente Variablen der Eingabedaten zu entdecken: versteckte oder zufällige Variablen, die, obwohl sie nicht direkt beobachtbar sind, die Art und Weise, wie Daten verteilt werden, grundlegend beeinflussen. Zusammenfassend werden die latenten Variablen eines bestimmten Satzes von Eingabedaten als latenter Raum bezeichnet. Während des Trainings lernt der Autoencoder, mit welchen latenten Variablen die Originaldaten am genauesten rekonstruiert werden können: Diese Latenzraumdarstellung repräsentiert somit nur die wichtigsten Informationen, die in der ursprünglichen Eingabe enthalten sind.
Die meisten Arten von Autoencodern werden für Aufgaben der künstlichen Intelligenz im Zusammenhang mit der Merkmalsextraktion verwendet, z. B. Datenkomprimierung, Bildrauschunterdrückung, Anomalieerkennung und Gesichtserkennung. Bestimmte Arten von Autoencodern, wie Variational Autoencoder (VAEs) und Adversarial-Autoencoder (AAEs), passen die Architektur von Autoencodern an generative Aufgaben an, wie die Erzeugung von Bildern oder Zeitreihen.
Obwohl alle Autoencoder-Modelle sowohl einen Encoder als auch einen Decoder enthalten, sind nicht alle Encoder-Decoder-Modelle Autoencoder.
Encoder-Decoder-Frameworks, bei denen ein Encoder-Netz Schlüsselmerkmale der Eingabedaten extrahiert und ein Decoder-Netz diese extrahierten Merkmalsdaten als Eingabe verwendet, werden in einer Vielzahl von Deep-Learning-Modellen verwendet, beispielsweise in den verwendeten Convolutional Neural Network (CNN)-Architekturen in Computer-Vision-Aufgaben wie Bildsegmentierung oder den Architekturen rekurrenter neuronaler Netze (RNN), die in Sequenz-zu-Sequenz-Aufgaben (seq2seq) eingesetzt werden.
In den meisten Anwendungen von Encoder-Decoder-Modellen unterscheidet sich die Ausgabe des neuronalen Netzes von seiner Eingabe. Bei Bildsegmentierungsmodellen wie U-Net extrahiert das Encoder-Netzwerk beispielsweise Feature-Daten aus dem Eingabebild, um die semantische Klassifizierung unterschiedlicher Pixel zu bestimmen. Mit dieser Feature-Karte und diesen pixelweisen Klassifizierungen konstruiert das Decoder-Netzwerk dann Segmentierungsmasken für jedes Objekt oder jeden Bereiche im Bild. Das Ziel dieser Encoder-Decoder-Modelle ist es, Pixel genau nach ihrer semantischen Klasse zu kennzeichnen: Sie werden durch überwachtes Lernen trainiert, wobei die Vorhersagen des Modells anhand eines „Ground-Truth“-Datensatzes von Bildern optimiert werden, die von menschlichen Experten gekennzeichnet wurden.
Autoencoder beziehen sich auf eine bestimmte Teilmenge von Encoder-Decoder-Architekturen, die über unüberwachtes Lernen geschult werden, um ihre eigenen Eingabedaten wiederherzustellen.
Da sie nicht auf gekennzeichneten Trainingsdaten basieren, gelten Autoencoder nicht als überwachte Lernmethode. Wie alle Methoden des unüberwachten Lernens werden Autoencoder trainiert, um verborgene Muster in unmarkierten Daten zu entdecken, anstatt bekannte Muster vorherzusagen, die in markierten Trainingsdaten gezeigt werden. Wie überwachte Lernmodelle – und im Gegensatz zu den meisten Beispielen des unüberwachten Lernens – haben Autoencoder jedoch eine Grundwahrheit, an der sie ihre Ausgabe messen können: die ursprüngliche Eingabe selbst (oder eine modifizierte Version davon). Aus diesem Grund gelten sie als „selbstüberwachtes Lernen“ – daher Autoencoder.
Autoencoder entdecken latente Variablen, indem sie Eingabedaten durch einen „Engpass“ leiten, bevor sie den Decoder erreichen. Dies zwingt den Encoder zu lernen, nur die Informationen zu extrahieren und weiterzuleiten, die für eine genaue Rekonstruktion der ursprünglichen Eingabe am förderlichsten sind.
Obwohl verschiedene Varianten von Autoencodern bestimmte Elemente ihres künstlichen neuronalen Netzes ändern, um sie am besten an bestimmte Ziele und Datentypen anzupassen, haben alle Autoencoder wichtige Strukturelemente gemeinsam:
Der Encoder umfasst Schichten, die eine komprimierte Darstellung der Eingabedaten durch Dimensionsreduktion kodieren. In einem typischen Autoencoder enthalten die verborgenen Schichten des neuronalen Netzes eine immer geringere Anzahl von Knoten als die Eingabeschicht: Während die Daten die Encoderschichten durchlaufen, werden sie durch den Prozess des „Stauchens“ in weniger Dimensionen komprimiert.
Der Engpass (oder „Code“) enthält die am stärksten komprimierte Darstellung der Eingabe: Er ist sowohl die Ausgangsschicht des Encodernetzes als auch die Eingangsschicht des Decodernetzes. Ein grundlegendes Ziel des Entwurfs und Trainings eines Autoencoders besteht darin, die Mindestanzahl wichtiger Merkmale (oder Abmessungen) zu ermitteln, die für eine effektive Rekonstruktion der Eingabedaten erforderlich sind. Die aus dieser Schicht austretende Latent-Raum-Darstellung, also der Code, wird dann in den Decoder eingespeist.
Der Decoder besteht aus verborgenen Schichten mit einer zunehmend größeren Anzahl von Knoten, die die codierte Darstellung der Daten dekomprimieren (oder decodieren) und die Daten schließlich wieder in ihre ursprüngliche Form vor der Codierung wiederherstellen. Diese rekonstruierte Ausgabe wird dann mit der „Ground Truth“ verglichen – was in den meisten Fällen einfach die ursprüngliche Eingabe ist – um die Wirksamkeit des Autoencoders zu messen. Die Differenz zwischen der Ausgangs- und der Ground-Truth wird als Rekonstruktionsfehler bezeichnet.
In einigen Anwendungen von Autoencodern kann der Decoder nach dem Training verworfen werden: In solchen Fällen besteht der einzige Zweck des Decoders darin, den Encoder zu trainieren – ähnlich wie die Rolle des Discriminators in einem generativen adversen Netzwerk (GAN) –, der dann als Komponente eines anderen neuronalen Netzes verwendet wird. In vielen Autoencodern erfüllt der Decoder nach dem Training weiterhin einen Zweck: Beispielsweise gibt der Decoder in VAEs neue Datenproben aus.
Einer der Hauptvorteile der Verwendung von Autoencodern gegenüber anderen Dimensionalitätstechniken wie Principal Component Analysis (PCA) besteht darin, dass Autoencoder komplexe nicht lineare Korrelationen erfassen können. Dementsprechend sind die in Autoencodern verwendeten Aktivierungsfunktionen typischerweise nichtlineare Funktionen wie die Sigmoidfunktion.
Verschiedene Arten von Autoencodern nehmen Anpassungen an dieser Struktur vor, um sie besser an unterschiedliche Aufgaben und Datentypen anzupassen. Neben der Auswahl des geeigneten Typs eines neuronalen Netzes– z. B. einer CNN-basierten Architektur, einer RNN-basierten Architektur wie dem Long Short-Term Memory, einer Transformer-Architektur oder einem einfachen neuronalen Vanilla-Feed-Forward-Netz – umfasst der Entwurf eines Autoencoders mehrere Hyperparameter:
Untervollständige Autoencoder sind eine einfache Autoencoder-Struktur, die hauptsächlich zur Dimensionsreduzierung verwendet wird. Ihre verborgenen Schichten enthalten weniger Knoten als ihre Eingabe- und Ausgabeschichten, und die Kapazität ihres Engpasses ist festgelegt.
Das Ziel dieses Engpasses besteht darin, eine Überanpassung des Autoencoders an seine Trainingsdaten zu verhindern. Ohne ausreichende Begrenzung der Kapazität des Engpasses tendiert das Netz dazu, die Identitätsfunktion zwischen Eingabe und Ausgabe zu erlernen: Mit anderen Worten, es kann lernen, den Rekonstruktionsverlust zu minimieren, indem es die Eingabe einfach direkt kopiert. Da die Daten stark komprimiert werden müssen, muss das neuronale Netz lernen, nur die für die Rekonstruktion wichtigsten Merkmale zu behalten.
Wenn der Encoder und der Decoder jedoch über eine ausreichend hohe Kapazität verfügen, d. h. wenn sie große oder komplexe Dateneingaben verarbeiten, kann der Autoencoder (selbst bei einem Engpass) die Identitätsfunktion trotzdem lernen, so dass sie nutzlos ist. Dies macht unvollständige Autoencoder unflexibel und schränkt ihre Kapazität ein.
Regularisierte Autoencoder beheben die Mängel untervollständiger Autoencoder durch die Einführung von Regularisierung: Techniken, die die Art und Weise, wie das Modell den Rekonstruktionsfehler berechnet, einschränken oder verändern. Diese Regularisierungsbedingungen verringern nicht nur die Überanpassung, sondern ermöglichen es dem Autoencoder auch, nützliche Merkmale oder Funktionen zu lernen.
Sparse Autoencoders (SAEs) erzwingen eine Sparsamkeitsbeschränkung : Anstatt einen Informationsengpass zu schaffen, indem sie die Anzahl der Knoten in jeder versteckten Schicht reduzieren, schaffen SAEs einen Engpass, indem sie die Anzahl der Knoten, die gleichzeitig aktiviert werden können, reduzieren.
Während ein standardmäßiger untervollständiger Autoencoder das gesamte neuronale Netz für jede Beobachtung nutzt, werden Autoencoder mit einer Sparsity-Funktion für jedes Neuron bestraft, das über einen bestimmten Schwellenwert hinaus aktiviert wurde. Dadurch können Encoder und Decoder eine höhere Kapazität haben, ohne dass das Risiko einer Überanpassung an Trainingsdaten besteht (da nicht alle Neuronen aktiviert werden). Außerdem können versteckte Schichten Knoten enthalten, die der Entdeckung spezifischer Merkmale gewidmet sind: Die Sparsamkeitsfunktion stellt sicher, dass es sich nur dann „lohnt“, diese Knoten zu aktivieren, wenn die genannten Merkmale vorhanden sind.
Obwohl die Berechnung des Rekonstruktionsfehlers und die anschließende Optimierung der Parametergewichte durch Backpropagation separat erfolgen, wird diese Optimierung durch diese Sparsity-Funktion reguliert . Der Autoencoder ist somit gezwungen, die effektivste Latenzraumdarstellung innerhalb der gegebenen Sparsity-Beschränkungen zu lernen.
Die Funktionen, die verwendet werden, um eine Sparsity-Einschränkung aufzuerlegen, sind typischerweise L1-Regularisierung oder KL-Divergenz.
Die Kullback-Leibler (KL)-Divergenz misst die Differenz zwischen zwei Wahrscheinlichkeitsverteilungen.Bei Verwendung im Kontext von SAEs ist die dem Netzwerk nach jedem Trainings-Batch zugewiesene Strafe proportional zur KL-Divergenz zwischen der Zielverteilung der Aktivierungswerte, der gewünschten Sparsity und der tatsächlichen Verteilung der Aktivierungswerte.Wie später in diesem Artikel erörtert wird, wird die KL-Divergenz auch verwendet, um die Genauigkeit von Wahrscheinlichkeitsverteilungen zu optimieren, die von Variational Autoencodern (VAEs) gelernt werden.
Sie wurden erstmals 2011 von Forschern der Université deMontréal1vorgestellt. vorgestellt. Kontraktive Autoencoder sind so konzipiert, dass sie unempfindlich gegenüber geringfügigen Abweichungen (oder „Rauschen“) in den Eingabedaten sind, um eine Überanpassung zu vermeiden und wesentliche Informationen effektiver zu erfassen.
Dies wird erreicht, indem beim Training ein Regularisierungsterm hinzugefügt wird, der das Netz dafür bestraft, dass es die Ausgabe als Reaktion auf unzureichend große Änderungen der Eingabe ändert. Dieser Strafbegriff wird anhand von zwei mathematischen Konzepten berechnet:
Konkret handelt es sich bei dem Strafbegriff um die Frobeniusnorm der Jacobi-Matrix der Neuronenaktivierungen im Encoder-Netzwerk in Bezug auf die Eingabe. Dieser Strafbegriff und der Verlustfunktionsalgorithmus, der zur Reduzierung des Rekonstruktionsfehlers verwendet wird, sind gegensätzlich: Die Rekonstruktionsverlustfunktion neigt dazu, Variationen in den Eingabedaten zu beobachten, während der Strafbegriff dazu neigt, sie zu ignorieren. Durch die Kombination beider Begriffe wird das Netz gezwungen, eine komprimierte Darstellung der Eingabe zu lernen, die nur die wichtigsten Variablen enthält.
Denoising-Autoencoder erhalten teilweise verfälschte Eingabedaten und werden darauf trainiert, die ursprüngliche Eingabe wiederherzustellen, indem unbrauchbare Informationen durch Dimensionalitätsreduktion entfernt werden.
Im Gegensatz zu den meisten Autoencodern verfügen Denoising-Autoencoder nicht über die Ground-Truth-Daten als Eingabe. Stattdessen wird den Originaldaten gaußsches Rauschen hinzugefügt, z. B. zufälliges Rauschen in einem Bild, und der Denoising Autoencoder (DAE) lernt, es herauszufiltern. Während des Modelltrainings wird der Rekonstruktionsfehler der entrauschten Ausgabe nicht gegen die beschädigten Eingabedaten, sondern gegen das Originalbild gemessen.
Diese Trainingstechnik verhindert nicht nur eine Überanpassung, sondern macht Denoising-Autoencoder auch sehr nützlich für die Bereinigung von verrauschten oder beschädigten Bild- und Audiodateien. Denoising-Autoencoder dienten auch als grundlegende Trainingsparadigmen für hochmoderne Bilderzeugungsmodelle wie Stable Diffusion.4
Variational Autoencoder (VAEs) sind generative Modelle, die komprimierte Darstellungen ihrer Trainingsdaten als Wahrscheinlichkeitsverteilungen erlernen,die zur Erzeugung neuer Beispieldaten verwendet werden, indem Variationen dieser erlernten Darstellungen erstellt werden.
Der grundlegende Unterschied zwischen VAEs und anderen Arten von Autoencodern besteht darin, dass die meisten Autoencoder diskrete latente Raummodelle lernen, während VAEs kontinuierliche latente Variablenmodelle lernen. Anstelle eines einzigen Kodierungsvektors für den latenten Raum modellieren die VAEs zwei verschiedene Vektoren: einen Vektor der Mittelwerte „μ“ und einen Vektor der Standardabweichungen „σ“. Da diese Vektoren latente Attribute als Wahrscheinlichkeitsverteilung erfassen , d . h.sie lernen eine stochastische Codierung anstelle einer deterministischen Codierung, ermöglichen VAEs Interpolation und Zufallsstichproben, was ihre Möglichkeiten und Anwendungsfälle erheblich erweitert. Dies bedeutet, dass VAEs generative KI-Modelle sind.
Einfacher ausgedrückt: VAEs lernen, wichtige Merkmale aus den Eingaben in den Datensätzen, auf denen sie trainiert wurden, auf eine flexible, annähernde Weise zu kodieren, die es ihnen ermöglicht, neue Stichproben zu generieren, die den ursprünglichen Trainingsdaten ähneln. Die Verlustfunktion zur Minimierung des Rekonstruktionsfehlers wird von der KL-Divergenz zwischen der Wahrscheinlichkeitsverteilung von Trainingsdaten (die priorale Verteilung) und der Verteilung der von den VAE erfassten latenten Variablen (posteriore Verteilung) geregelt. Diese regulierte Verlustfunktion ermöglicht es den VAEs, neue Stichproben zu erzeugen, die den Daten ähneln, auf denen sie trainiert wurden, und gleichzeitig eine Überanpassung zu vermeiden, was in diesem Fall bedeuten würde, dass neue Stichproben generiert werden, die zu sehr mit den ursprünglichen Daten übereinstimmen.
Um eine neue Stichprobe zu generieren, tastet die VAE einen zufälligen latenten Vektor (ε) innerhalb der gaußschen Einheit ab – mit anderen Worten, wählt einen zufälligen Startpunkt innerhalb der Normalverteilung aus – verschiebt ihn um den Mittelwert der latenten Verteilung (μ) und skaliert ihn um die Varianz der latenten Verteilung (σ). Dieser Vorgang wird als Reparametrisierungstrick bezeichnet5 und vermeidet eine direkte Stichprobe der Variationsverteilung: Da der Prozess zufällig ist, weist er keine Ableitung auf – wodurch die Notwendigkeit einer Backpropagation über den Stichprobenprozess entfällt.
Wenn eine VAE für generative Aufgaben verwendet wird, kann der Encoder nach dem Training meist verworfen werden. Fortgeschrittenere Weiterentwicklungen von VAEs, wie z. B. bedingte VAEs, geben dem Benutzer mehr Kontrolle über generierte Samples, indem sie bedingte Eingaben bereitstellen, die den Ausgang des Encoders modifizieren.
Sowohl generative als auch deterministische Autoencoder haben eine Vielzahl von Anwendungsfällen in verschiedenen Bereichen und Datentypen.
Verschaffen Sie sich ein umfassendes Verständnis von neuronalen Netzen, ihren grundlegenden Funktionen und den Grundlagen für den Aufbau eines solchen Netzes.
IBM® Granite ist unsere Familie offener, leistungsfähiger und vertrauenswürdiger KI-Modelle, die auf Unternehmen zugeschnitten und für die Skalierung Ihrer KI-Anwendungen optimiert sind. Entdecken Sie die Optionen zu Sprache, Code, Zeitreihen und Guardrails.
Wir haben 2.000 Unternehmen zu ihren KI-Initiativen befragt, um herauszufinden, was funktioniert, was nicht und wie Sie vorankommen können.
Erfahren Sie, wie Sie generative KI und maschinelles Lernen sicher in Ihr Unternehmen integrieren können.
Erfahren Sie, wie Sie das für Ihren Anwendungsfall am besten geeignete KI Foundation Model auswählen.
Erfahren Sie, wie CEOs den Wert, den generative KI schaffen kann, gegen die erforderlichen Investitionen und die damit verbundenen Risiken abwägen können.
Möchten Sie eine bessere Rendite für Ihre KI-Investitionen erzielen? Erfahren Sie, wie die Skalierung generativer KI in Schlüsselbereichen Veränderungen vorantreibt, indem Sie Ihre besten Köpfe dabei unterstützen, innovative neue Lösungen zu entwickeln und bereitzustellen.
Trainieren, validieren, optimieren und implementieren Sie generative KI, Foundation Models und maschinelle Lernfunktionen mit IBM watsonx.ai, einem Studio der nächsten Generation für AI Builder in Unternehmen. Erstellen Sie KI-Anwendungen mit einem Bruchteil der Zeit und Daten.
Setzen Sie KI in Ihrem Unternehmen ein – mit branchenführendem Fachwissen im Bereich KI und dem Lösungsportfolio von IBM an Ihrer Seite.
Erfinden Sie kritische Workflows und Abläufe neu, indem Sie KI einsetzen, um Erfahrungen, Entscheidungsfindung in Echtzeit und den geschäftlichen Nutzen zu maximieren.
Alle Links befinden sich außerhalb von ibm.com
1 „Contractive Auto-Encoders: Explicit Invariance During Feature Extraction“, Proceedings of the 28th International Conference on Machine Learning, Juli 2011
2 „Frobenius-Norm “, Wolfram Mathworld
3 „Matrix Norms“, UC Berkeley, Februar 2021
4 „High-Resolution Image Synthesis With Latent Diffusion Models“, Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Juni 2022
5 „Auto-Encoding Variational Bayes“, arXiv, Dezember 2013 (zuletzt aktualisiert am 10. Dezember 2022)
6 „DALL-E: Creating Images from Text“, OpenAI, 5. Januar 2021
7 „Junction Tree Variational Autoencoder for Molecular Graph Generation“, Proceedings of the 35th International Conference on Machine Learning, Juli 2018