Boltzmann-Maschine

Dies sind stochastische Lernprozesse mit wiederkehrender Struktur, die die Grundlage für die in ANN verwendeten frühen Optimierungstechniken bilden. Die Boltzmann-Maschine wurde 1985 von Geoffrey Hinton und Terry Sejnowski erfunden. Mehr Klarheit lässt sich mit den Worten von Hinton über die Boltzmann-Maschine feststellen.

„Ein überraschendes Merkmal dieses Netzwerks ist, dass es nur lokal verfügbare Informationen verwendet. Die Gewichtsänderung hängt nur vom Verhalten der beiden Einheiten ab, die sie verbindet, obwohl die Änderung ein globales Maß optimiert “- Ackley, Hinton 1985.

Einige wichtige Punkte zu Boltzmann Machine -

  • Sie verwenden eine wiederkehrende Struktur.

  • Sie bestehen aus stochastischen Neuronen, die einen der beiden möglichen Zustände haben, entweder 1 oder 0.

  • Einige der Neuronen in diesem sind adaptiv (freier Zustand) und andere sind geklemmt (gefrorener Zustand).

  • Wenn wir simuliertes Tempern auf ein diskretes Hopfield-Netzwerk anwenden, wird es zu Boltzmann-Maschine.

Ziel der Boltzmann-Maschine

Der Hauptzweck von Boltzmann Machine ist die Optimierung der Problemlösung. Es ist die Arbeit von Boltzmann Machine, die Gewichte und Mengen zu optimieren, die mit diesem speziellen Problem verbunden sind.

Die Architektur

Das folgende Diagramm zeigt die Architektur der Boltzmann-Maschine. Aus dem Diagramm geht hervor, dass es sich um eine zweidimensionale Anordnung von Einheiten handelt. Hier sind Gewichte für Verbindungen zwischen Einheiten–p wo p > 0. Die Gewichte der Selbstverbindungen sind gegeben durchb wo b > 0.

Trainingsalgorithmus

Da wir wissen, dass Boltzmann-Maschinen feste Gewichte haben, gibt es keinen Trainingsalgorithmus, da wir die Gewichte im Netzwerk nicht aktualisieren müssen. Um das Netzwerk zu testen, müssen wir jedoch die Gewichte einstellen und die Konsensfunktion (CF) finden.

Die Boltzmann-Maschine verfügt über eine Reihe von Einheiten Ui und Uj und hat bidirektionale Verbindungen auf ihnen.

  • Wir betrachten das feste Gewicht sagen wij.

  • wij ≠ 0 wenn Ui und Uj sind verbunden.

  • Es gibt auch eine Symmetrie in der gewichteten Verbindung, dh wij = wji.

  • wii existiert auch, dh es würde die Selbstverbindung zwischen Einheiten geben.

  • Für jede Einheit Ui, sein Zustand ui wäre entweder 1 oder 0.

Das Hauptziel von Boltzmann Machine ist die Maximierung der Konsensfunktion (CF), die durch die folgende Beziehung gegeben werden kann

$$ CF \: = \: \ Anzeigestil \ Summe \ Grenzen_ {i} \ Anzeigestil \ Summe \ Grenzen_ {j \ leqslant i} w_ {ij} u_ {i} u_ {j} $$

Wenn sich der Zustand von 1 auf 0 oder von 0 auf 1 ändert, kann die Änderung des Konsenses durch die folgende Beziehung gegeben werden:

$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ displaystyle \ sum \ limit_ {j \ neq i} u_ {i} w_ { ij}) $$

Hier ui ist der aktuelle Stand von Ui.

Die Variation des Koeffizienten (1 - 2ui) ist gegeben durch die folgende Beziehung -

$$ (1 \: - \: 2u_ {i}) \: = \: \ begin {Fällen} +1, & U_ {i} \: ist \: aktuell \: aus \\ - 1, & U_ {i } \: ist \: aktuell \: am \ Ende {Fälle} $$

Im Allgemeinen Einheit Uiändert seinen Status nicht, aber wenn dies der Fall ist, befinden sich die Informationen lokal im Gerät. Mit dieser Änderung würde sich auch der Konsens des Netzwerks erhöhen.

Die Wahrscheinlichkeit, dass das Netzwerk die Änderung des Zustands der Einheit akzeptiert, ergibt sich aus der folgenden Beziehung:

$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$

Hier, Tist der steuernde Parameter. Sie nimmt ab, wenn CF den Maximalwert erreicht.

Testalgorithmus

Step 1 - Initialisieren Sie Folgendes, um das Training zu starten -

  • Gewichte, die die Einschränkung des Problems darstellen
  • Steuerparameter T.

Step 2 - Fahren Sie mit den Schritten 3-8 fort, wenn die Stoppbedingung nicht erfüllt ist.

Step 3 - Führen Sie die Schritte 4-7 aus.

Step 4 - Nehmen Sie an, dass einer der Status das Gewicht geändert hat, und wählen Sie die Ganzzahl I, J als zufällige Werte zwischen 1 und n.

Step 5 - Berechnen Sie die Konsensänderung wie folgt: -

$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ displaystyle \ sum \ limit_ {j \ neq i} u_ {i} w_ { ij}) $$

Step 6 - Berechnen Sie die Wahrscheinlichkeit, dass dieses Netzwerk die Zustandsänderung akzeptiert

$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$

Step 7 - Akzeptieren oder lehnen Sie diese Änderung wie folgt ab: -

Case I - wenn R < AF, akzeptiere die Änderung.

Case II - wenn R ≥ AF, lehne die Änderung ab.

Hier, R ist die Zufallszahl zwischen 0 und 1.

Step 8 - Reduzieren Sie den Steuerparameter (Temperatur) wie folgt -

T(new) = ⁡0.95T(old)

Step 9 - Prüfen Sie auf folgende Stoppbedingungen: -

  • Die Temperatur erreicht einen bestimmten Wert
  • Für eine bestimmte Anzahl von Iterationen gibt es keine Statusänderung