Die Boltzmannmaschine

Die Boltzmannmaschine ist eine Erweiterung des Hopfield-Netzes. Durch eine stochastische Erweiterung wird versucht, das Problem der lokalen Minima zu beseitigen. Dazu wird ein Temperaturkoeffizient eingeführt, der eine Art Eigenbewegung darstellt, mit Hilfe dessen lokale Minima verlassen werden können. Dieser Temperaturkoeffizient nimmt im Laufe der Berechnung ab. { Wie die Hopfield-Netze ist die Boltzmann-Maschine vollständig mittels symmetrischer Gewichte vermascht. }

Betrachte die Energiedifferenz, die durch Invertieren eines Neurons entsteht :
Formel : Energiedifferenz
si stellt hier die Eingabe des Neurons i dar. Die Boltzmannmaschine verwendet eine stochastische Aktivierungsfunktion. In Abhängigkeit von der Energiedifferenz und dem Temperaturkoeffizienten wird die Wahrscheinlichkeit ermittelt, daß die Ausgabe eine 1 ist.
Formel : Wahrscheinlichkeit
Die Wahrscheinlichkeit, mit der das gesamte Netz einen Energiezustand Symbol : ALpha annimmt kann mit der folgenden Formel berechnet werden :
Formel : P (Energiezustand )
Nun soll das Netz ja einen möglichst kleinen Energiezustand 'finden', d.h die Wahrscheinlichkeit für einen kleineren Energiezustand muß größer sein als für einen hohen Energiezustand. Um dies zu prüfen betrachtet man die relative Wahrscheinlichkeit zweier Energiezustände.
Formel : Verhältniss zweier Energiezustände
Angenommen, der Energiezustand von Symbol : Alpha ist kleiner als der Energiezustand von Symbol : Beta . Dann ergibt sich das folgende Bild :
 Formeln : Vergleich zweier Energiezustände
Damit hat man die gesuchte Beziehung gezeigt und das Netz strebt zu niedrigeren Energiezuständen. Da es sich um einen stochastischen Prozeß handelt, können trotzdem lokale Minima verlassen werden.

Aufbau und Funktion der Boltzmannmaschine
Die Boltzmannmaschine hat eine Menge von Eingabeneuronen, eine Menge von versteckten Neuronen und eine Menge von Ausgabeneuronen. In der Arbeitsphase (auch Recallphase genannt) wird der Eingabevektor geklemmt. Das heißt, die Eingabeneuronen bekommen die Werte des Eingabevektors und werden im Laufe des weiteren Prozesses nicht weiter verändert. Für die restlichen Neurone wird folgender Algorithmus durchgeführt :
Algorithmus : Recallphase
Wie bereits gezeigt strebt das Netz bei diesem Verfahren zu niedrigen Energiezuständen.

Das Lernverfahren
Das Lernverfahren muß auch hier Minima in die Energiefunktion für die Trainingsbeispiele einschreiben. Dies geschieht in zwei Phasen, der Inkrementierungs und der Dekrementierungsphase. Diese werden solange abwechselnd ausgeführt, bis die Gewichtsmatrix stabil bleibt.
In der Inkrementierungsphase werden die Trainingsvektoren (Ein- und Ausgabeneuronen) an das Netz angelegt und geklemmt. Es können also nur die versteckten Neurone ihre Aktivierung ändern. Dann fängt das Netz an zu arbeiten, wie es für die Recall-Phase arbeiten würde (außer, daß die Eingabe/Ausgabeneurone nicht verändert werden ). Dann werden gemäß der Hebb'schen Lernregel die Gewichte verstärkt, deren 'Partner' gleichzeitig 'on' sind.

In der Dekrementierungsphase werden nur die Eingabevektoren geklemmt. Dann fängt das Netz wieder an zu arbeiten. Hält es an, werden nun alle Gewichte dekrementiert, deren Neuronen gleichzeitig on geschaltet sind. Hierbei werden jedoch nicht nur die Gewichte erniedrigt, die in der Inkrenmentierungsphase erhöht wurden, sondern auch jene, die einen 'falschen' Beitrag zur Netzausgabe leisten. Gibt es solche Neurone nicht, so werden genau die Gewichte zurückgesetzt, die vorher erhöht wurden. D.h. das Netz hat einen stabilen Zustand erreicht und ist trainiert.