Betrachte die Energiedifferenz, die durch Invertieren eines Neurons entsteht :
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.
Die Wahrscheinlichkeit, mit der das gesamte Netz einen Energiezustand
annimmt kann
mit der folgenden Formel berechnet werden :
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.
Angenommen, der Energiezustand von
ist kleiner als der Energiezustand von
. Dann ergibt sich das folgende Bild :
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 :
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.