Eine Helmholtz-Maschine ist eine Art neuronales Netz, das für unüberwachtes Lernen probabilistischer Modelle entwickelt wurde. Sie wurde 1995 von Geoffrey Hinton, Peter Dayan, Brendan Frey und Richard Zemel eingeführt. Die Architektur besteht aus zwei komplementären Komponenten: einem Erkennungsmodell, das Eingabedaten auf eine Verteilung über latente Variablen abbildet, und einem generativen Modell, das Daten aus diesen latenten Variablen rekonstruiert. Die Maschine wird mit dem Wake-Sleep-Algorithmus trainiert, der zwischen der Anpassung der Erkennungsgewichte zur Inferenz latenter Zustände und der Anpassung der generativen Gewichte zur Rekonstruktion der Daten abwechselt.
Die Helmholtz-Maschine ist nach Hermann von Helmholtz benannt, einem Physiker und Physiologen des 19. Jahrhunderts, der vorschlug, dass Wahrnehmung unbewusste Inferenz beinhaltet - das Gehirn konstruiert ein Modell der Welt, um sensorische Eingaben zu interpretieren. Die Maschine verkörpert diese Idee, indem sie ein hierarchisches generatives Modell von Daten lernt, wobei höhere Ebenen abstraktere Merkmale und niedrigere Ebenen feinere Details darstellen.
Architektur
Die Helmholtz-Maschine hat eine geschichtete Struktur mit zwei Arten von Verbindungen. Die Bottom-up-Verbindungen (Erkennung) verlaufen von der Eingabeschicht zur obersten Schicht, und die Top-down-Verbindungen (generativ) verlaufen in umgekehrter Richtung. Jede Schicht enthält eine Menge stochastischer binärer Einheiten. Das Erkennungsmodell berechnet die Wahrscheinlichkeit, dass jede verborgene Einheit aktiv ist, gegeben die darunterliegende Schicht, während das generative Modell die Wahrscheinlichkeit berechnet, dass jede Einheit aktiv ist, gegeben die darüberliegende Schicht.
Dieses bidirektionale Design ermöglicht es dem Netzwerk, sowohl Inferenz (Erkennen von Mustern) als auch Generierung (Erzeugen neuer Stichproben) durchzuführen. Das Erkennungsmodell approximiert die Posterior-Verteilung über latente Variablen, die im Allgemeinen nicht exakt berechenbar ist. Das generative Modell definiert eine gemeinsame Verteilung über Daten und latente Variablen, aus der neue Datenpunkte gesampelt werden können.
Wake-Sleep-Algorithmus
Der Wake-Sleep-Algorithmus ist ein zweiphasiges Trainingsverfahren. In der Wachphase wird dem Netzwerk ein Datenvektor präsentiert, und das Erkennungsmodell wird verwendet, um eine Menge latenter Zustände von unten nach oben zu sampeln. Diese gesampelten Zustände werden dann verwendet, um die generativen Gewichte anzupassen, sodass das generative Modell die Daten besser rekonstruiert. In der Schlafphase wird das generative Modell verwendet, um eine Menge latenter Zustände von oben nach unten zu sampeln, und diese werden verwendet, um die Erkennungsgewichte anzupassen, sodass das Erkennungsmodell die latenten Zustände, die die Stichproben erzeugt haben, besser inferiert.
Der Algorithmus ist eine Näherung an das Maximum-Likelihood-Lernen. Es ist nicht garantiert, dass er zu einem globalen Optimum konvergiert, aber er ist rechnerisch effizient und funktioniert in der Praxis für viele Aufgaben gut. Der Wake-Sleep-Algorithmus war ein frühes Beispiel für eine Methode zum Training tiefer generativer Modelle und beeinflusste spätere Entwicklungen wie Variational Autoencoder und Boltzmann-Maschinen.
Anwendungen und Einfluss
Frühe Anwendungen der Helmholtz-Maschine umfassten die Erkennung handgeschriebener Ziffern und die Modellierung von Dokumenten. Die Maschine konnte nützliche Merkmale aus unbeschrifteten Daten lernen, die dann für Klassifikation oder andere nachgelagerte Aufgaben verwendet werden konnten. Das Konzept des Lernens hierarchischer Repräsentationen durch eine Kombination von Bottom-up- und Top-down-Verarbeitung war einflussreich für die Entwicklung des Deep Learning.
Viele moderne generative Modelle, einschließlich Generative Adversarial Networks und Diffusionsmodelle, bauen auf Ideen auf, die erstmals in der Helmholtz-Maschine untersucht wurden. Der Wake-Sleep-Algorithmus antizipierte auch die Verwendung des Expectation-Maximization-Algorithmus in latenten Variablenmodellen, unterscheidet sich jedoch in seinem Ansatz zur Approximation der Posterior.
Einschränkungen und spätere Entwicklungen
Die ursprüngliche Helmholtz-Maschine hatte mehrere Einschränkungen. Das Erkennungsmodell war ein einfaches Feedforward-Netzwerk, was seine Fähigkeit, komplexe Posterior-Verteilungen zu erfassen, begrenzte. Der Wake-Sleep-Algorithmus litt auch unter einer Diskrepanz zwischen der Verteilung, die zum Training des Erkennungsmodells verwendet wurde, und der wahren Posterior, was zu suboptimalen Lösungen führen konnte.
Spätere Arbeiten adressierten diese Probleme durch die Einführung ausgefeilterer Inferenzmethoden wie variational inference und amortisierte Inferenz. Der Variational Autoencoder, 2013 von Diederik Kingma und Max Welling eingeführt, kann als moderner Nachfahre der Helmholtz-Maschine betrachtet werden, der ein gelerntes Erkennungsmodell und ein generatives Modell verwendet, das durch Maximierung einer unteren Schranke der Likelihood trainiert wird.