Intuition hinter der eingeschränkten Boltzmann-Maschine (RBM)

15

Ich habe Geoff Hintons Kurs über Neuronale Netze auf Coursera durchlaufen und auch die Einführung in eingeschränkte Boltzmann-Maschinen durchlaufen. Dennoch habe ich die Intuition hinter RBMs nicht verstanden.

Warum müssen wir in dieser Maschine Energie berechnen? Und was nützt die Wahrscheinlichkeit in dieser Maschine? Ich habe auch dieses Video gesehen . Im Video hat er nur die Wahrscheinlichkeits- und Energiegleichungen vor den Berechnungsschritten geschrieben und sie anscheinend nirgendwo verwendet.

Außerdem bin ich mir nicht sicher, wozu die Wahrscheinlichkeitsfunktion dient.

Born2Code
quelle
Ich habe versucht, die Frage aufzuräumen, aber ich denke, es braucht mehr Arbeit. Sie müssen erklären , was Sie tun verstehen, genauer gesagt , wo Sie stecken bleiben, da sonst die Frage zu breit ist.
Neil Slater
Das einzige, was in den Kopf kam, sind drei Schritte, zuerst die positive Phase, dann die negative Phase, auf die die Rekonstruktion der Gewichte folgt. Aber was ist mit der Energie- und Wahrscheinlichkeitsfunktion? Was nützt das hier? und wie oft müssen wir diesen prozess durchführen (positive phase -> negative phase> rekonstruktion der gewichte)?
Born2Code

Antworten:

5

RBMs sind ein interessantes Biest. Um Ihre Frage zu beantworten und mein Gedächtnis auf sie zu treiben, werde ich RBMs ableiten und durch die Ableitung sprechen. Sie haben erwähnt, dass Sie in Bezug auf die Wahrscheinlichkeit verwirrt sind. Meine Ableitung erfolgt daher aus der Perspektive, die Wahrscheinlichkeit zu maximieren. Also fangen wir an.

RBMs enthalten zwei verschiedene Neuronensätze, sichtbare und versteckte. Ich bezeichne sie mit bzw. . Bei einer bestimmten Konfiguration von und bilden wir den Wahrscheinlichkeitsraum ab.h v hvhvh

p(v,h)=eE(v,h)Z

Es gibt noch ein paar Dinge zu definieren. Die Ersatzfunktion, mit der wir eine bestimmte Konfiguration auf den Wahrscheinlichkeitsraum abbilden, wird als Energiefunktion . Die Konstante ist ein Normalisierungsfaktor, um sicherzustellen, dass wir tatsächlich den Wahrscheinlichkeitsraum abbilden. Kommen wir nun zu dem, wonach wir wirklich suchen. die Wahrscheinlichkeit einer Menge von sichtbaren Neuronen, mit anderen Worten, die Wahrscheinlichkeit unserer Daten. Z Z = Σ v V Σ h H e - E ( v , h ) p ( v ) = Σ h H p ( v , h ) = Σ h H e - E ( v , h )E(v,h)Z

Z=vVhHeE(v,h)
p(v)=hHp(v,h)=hHeE(v,h)vVhHeE(v,h)

Obwohl diese Gleichung viele Begriffe enthält, kommt es einfach darauf an, die richtigen Wahrscheinlichkeitsgleichungen zu schreiben. Hoffentlich hat Ihnen dies bisher geholfen zu verstehen, warum wir die Energiefunktion benötigen, um die Wahrscheinlichkeit zu berechnen, oder was normalerweise mit der nicht normalisierten Wahrscheinlichkeit . Die nicht normalisierte Wahrscheinlichkeit wird verwendet, weil die Berechnung der Partitionsfunktion sehr aufwendig ist.Zp(v)ZZ

Kommen wir nun zur eigentlichen Lernphase von RBMs. Um die Wahrscheinlichkeit zu maximieren, müssen wir für jeden Datenpunkt einen Gradientenschritt machen, um . Um die Gradientenausdrücke zu erhalten, ist mathematische Akrobatik erforderlich. Als erstes nehmen wir das Logbuch von . Wir werden von nun an im Log-Wahrscheinlichkeitsraum arbeiten, um die Mathematik durchführbar zu machen.p ( v )p(v)=1p(v)

log(p(v))=log[hHeE(v,h)]log[vVhHeE(v,h)]
Nehmen wir den Gradienten in Bezug auf die Parameter inp(v)

log(p(v))θ=1hHeE(v,h)hHeE(v,h)E(v,h)θ+1vVhHeE(v,h)vVhHeE(v,h)E(v,h)θ

Jetzt habe ich das auf Papier gemacht und die Halbfinalgleichung aufgeschrieben, um nicht viel Platz auf dieser Seite zu verschwenden. Ich empfehle Ihnen, diese Gleichungen selbst abzuleiten. Jetzt schreibe ich einige Gleichungen auf, die helfen, unsere Herleitung fortzusetzen. Man beachte, dass: , und dassZp(v,h)=eE(v,h)p(v)=hHp(v,h)p(h|v)=p(v,h)p(h)

log(p(v))θ=1p(v)hHp(v,h)E(v,h)θ+vVhHp(v,h)E(v,h)θlog(p(v))θ=hHp(h|v)E(v,h)θ+vVhHp(v,h)E(v,h)θ

Und los geht's, wir haben die Maximum-Likelihood-Schätzung für RBMs abgeleitet. Wenn Sie möchten, können Sie die letzten beiden Terme über die Erwartung ihrer jeweiligen Terme (bedingte und gemeinsame Wahrscheinlichkeit) schreiben.

Hinweise zur Energiefunktion und Stochastizität von Neuronen.

Wie Sie oben in meiner Ableitung sehen können, habe ich die Definition der Energiefunktion ziemlich vage gelassen. Der Grund dafür ist, dass viele verschiedene Versionen von RBM verschiedene Energiefunktionen implementieren. Diejenige, die Hinton in der oben verlinkten Vorlesung beschreibt und die von @ Laurens-Meeus gezeigt wird, ist:

E(v,h)=aTvbThvTWh.

Es ist möglicherweise einfacher, die oben genannten Gradiententerme über das Erwartungsformular zu begründen.

log(p(v))θ=Ep(h|v)E(v,h)θ+Ep(v,h)E(v,h)θ

Die Erwartung an das erste Semester ist eigentlich sehr einfach zu berechnen, und das war das Genie hinter RBMs. Durch die Einschränkung der Verbindung wird die bedingte Erwartung einfach zu einer Vorwärtsausbreitung des RBM mit den geklemmten sichtbaren Einheiten. Dies ist die sogenannte Nachlaufphase bei Boltzmann-Maschinen. Die Berechnung des zweiten Terms ist jetzt viel schwieriger und wird normalerweise mit Monte-Carlo-Methoden durchgeführt. Schreiben des Gradienten über den Durchschnitt der Monte Carlo-Läufe:

log(p(v))θE(v,h)θp(h|v)+E(v,h)θp(v,h)

Wie bereits erwähnt, ist die Berechnung des ersten Terms nicht schwierig. Monte-Carlo wird daher über den zweiten Term ausgeführt. Monte-Carlo-Methoden verwenden zufällige aufeinanderfolgende Stichproben der Verteilung, um die Erwartung (Summe oder Integral) zu berechnen. Nun wird diese Zufallsstichprobe in klassischen RBMs so definiert, dass eine Einheit basierend auf ihrer Wahrscheinlichkeit stochastisch entweder auf 0 oder 1 gesetzt wird, mit anderen Worten, eine zufällige einheitliche Zahl wird erhalten, wenn sie kleiner ist als die Neuronenwahrscheinlichkeit, die sie auf 1 setzt, falls dies der Fall ist ist größer als auf 0 gesetzt.

Armen Aghajanyan
quelle
Wie machen wir versteckte Ebenen auch binär? Bcoz nach der Aktivierung der Funktion erhalten wir Werte im Bereich zwischen 0 und 1.
Born2Code
Dies erfolgt normalerweise durch Schwellenwerteinstellung der Aktivierung. Alles über 0,5 würde zu 1, alles unter Null.
Armen Aghajanyan
In diesem Link , in Abschnitt 3.1: Hinton, heißt es jedoch: "Die versteckte Einheit wird eingeschaltet, wenn diese Wahrscheinlichkeit größer ist als eine Zufallszahl, die gleichmäßig zwischen 0 und 1 verteilt ist." Was heißt das eigentlich? Und auch in diesem Link heißt es: "Dann ist die j-te Einheit eingeschaltet, wenn bei Auswahl einer gleichmäßig verteilten Zufallszahl zwischen 0 und 1 festgestellt wird, dass ihr Wert kleiner als sig [j] ist. Andernfalls ist sie ausgeschaltet." Ich habe das nicht verstanden.
Born2Code
????? Wie kann man sagen, ob das betreffende Gerät ein- oder ausgeschaltet ist?
Born2Code
Ich habe eine Bearbeitung hinzugefügt. Ich schlage vor, die Monte-Carlo-Methoden nachzulesen, da sich die Stochastizität dieses Algorithmus von dort ableitet.
Armen Aghajanyan
5

Zusätzlich zu den vorhandenen Antworten möchte ich ein wenig über diese Energiefunktion und die Intuition dahinter sprechen. Tut mir leid, wenn das etwas lang und körperlich ist.

Die Energiefunktion beschreibt ein sogenanntes Ising-Modell , das ein Modell des Ferromagnetismus im Sinne der statistischen Mechanik / Quantenmechanik ist. In der statistischen Mechanik verwenden wir einen sogenannten Hamilton-Operator, um die Energie eines quantenmechanischen Systems zu beschreiben. Und ein System versucht immer, in dem Zustand mit der niedrigsten Energie zu sein.

Das Ising-Modell beschreibt nun im Wesentlichen die Wechselwirkung zwischen Elektronen mit einem Spin von +1 oder -1 bei Vorhandensein eines externen Magnetfelds . Die Wechselwirkung zwischen zwei Elektronen und wird durch einen Koeffizienten . Diese Hamilton-Funktion (oder Energiefunktion) ist wobei die Hamilton-Funktion bezeichnet. Eine Standardprozedur, um von einer Energiefunktion zu der Wahrscheinlichkeit zu gelangen, dass sich ein System in einem bestimmten Zustand befindet (dh hier: eine Konfiguration von Drehungen, z. B. h i j J i J H = ΣσkhijJij

H^=i,jJijσiσjμjhjσj
H^σ1=+1,σ2=1,...) soll die Boltzmann-Verteilung verwendet werden, die besagt, dass bei einer Temperatur die Wahrscheinlichkeit des Systems, sich in einem Zustand mit der Energie befinden, gegeben ist durch An dieser Stelle sollten Sie erkennen, dass diese beiden Gleichungen exakt die gleichen sind wie in den Videos von Hinton und der Antwort von Armen Aghajanyan . Dies führt uns zu der Frage:TpiiEi
pi=exp(Ei/kT)iexp(Ei/kt)

Was hat das RBM mit diesem quantenmechanischen Modell des Ferromagnetismus zu tun?

Wir müssen eine letzte physikalische Größe verwenden: die Entropie. Wie wir aus der Thermodynamik wissen, wird sich ein System in dem Zustand mit der minimalen Energie niederlassen, der auch dem Zustand mit der maximalen Entropie entspricht.

Wie von Shanon 1946 in der Informationstheorie eingeführt, kann die Entropie auch als Maß für den Informationsgehalt in , gegeben durch die folgende Summe über alle möglichen Zustände von : Der effizienteste Weg, den Informationsinhalt in zu kodieren , besteht darin, die Entropie maximieren .X X H ( X ) = - Σ i P ( x i ) , log P ( x i ) X HHXX

H(X)=iP(xi)logP(xi)
XH

Abschließend kehren wir zu den RBMs zurück: Grundsätzlich möchten wir, dass diese RBM so viele Informationen wie möglich codieren . Da müssen wir also die (informationstheoretische) Entropie in unserem RBM-System maximieren . Wie von Hopfield 1982 vorgeschlagen, können wir die informationstheoretische Entropie genau wie die physikalische Entropie maximieren: indem wir das RBM wie das oben beschriebene Ising-Modell modellieren und die Energie auf die gleiche Weise minimieren. Und deshalb brauchen wir diese seltsame Energiefunktion in einem RBM!

Die nette mathematische Herleitung in der Antwort von Armen Aghajanyan zeigt alles, was wir tun müssen, um die Energie zu minimieren, die Entropie zu maximieren und so viele Informationen wie möglich in unserem RBM zu speichern / zu speichern.

PS: Bitte, liebe Physiker, verzeihen Sie eventuelle Ungenauigkeiten bei der Ableitung dieses Ingenieurs. Fühlen Sie sich frei, Ungenauigkeiten (oder sogar Fehler) zu kommentieren oder zu beheben.

hbaderts
quelle
Ich habe dieses Video gesehen . Sieh dir das Video von diesem Punkt an an. Wie bekommt man diese abgetastete Nummer? ob wir gerade rand () in matlab ausgeführt haben und es bekommen haben? und dann wäre es für jedes h (i) anders. Oh nein! Ich denke nicht, dass die Maschine richtig lernen wird.
Born2Code
@ Born2Code das ist eine andere frage. Kannst du es als neue Frage auf dieser Seite posten? Bitte versuchen Sie, die Gleichungen, über die Sie sprechen, zu der neuen Frage hinzuzufügen und zu erklären, welche Teile Sie nicht verstehen.
Baderts
link
Born2Code
0

Die Antwort von @Armen hat mir viele Einsichten gegeben. Eine Frage wurde jedoch nicht beantwortet.

Das Ziel ist es, die Wahrscheinlichkeit (oder Wahrscheinlichkeit) der zu maximieren . Dies korreliert mit der Minimierung der Energiefunktion in Bezug auf und :v hvvh

E(v,h)=aTvbThvTWh

Unsere Variablen sind , und , die trainiert werden müssen. Ich bin mir ziemlich sicher, dass dieses Training das ultimative Ziel des RBM sein wird.b wabW

Laurens Meeus
quelle
Wie machen wir versteckte Ebenen auch binär? Bcoz nach der Aktivierung der Funktion erhalten wir Werte im Bereich zwischen 0 und 1.
Born2Code
@ Born2Code: Die Aktivierungsfunktion gibt Ihnen die Wahrscheinlichkeit , dass ein Neuron Wert 1. Deshalb zu „macht es binäre“ hat, Sie probieren aus den Wahrscheinlichkeiten für beide berechnet oder - in anderen Worten : Sie buchstäblich wie etwas zu tun - das muss sein für jedes Neuron und jedes Mal, wenn Sie eine Probe möchten. vhvh_bin = (rand() < h_val) ? 1 : 0
Neil Slater
@NeilSlater: aber warum eine Zufallszahl? Auch, ob der Zufall für jede Iteration generiert werden soll oder die gleiche Zahl für alle Iterationen verwendet werden soll? Noch ein ernsthafter Zweifel: Wie viele Iterationen müssen durchgeführt werden? Ich habe einen Trainingssatz V, der nur einen Vektor hat, dh v1. Wie oft muss ich mit v1 iterieren?
Born2Code
@NeilSlater: Ein weiterer Zweifel ist, ob die gleiche Zufallszahl mit allen Werten der versteckten Ebene verglichen werden soll? Ich weiß, das ist so eine idiotische Frage, aber trotzdem
Born2Code
1
Es ist eine Zufallszahl, weil auf diese Weise Wahrscheinlichkeiten in Binärwerte aufgelöst werden. Es ist eine andere Nummer für jedes Neuron innerhalb hoder v- Sie sind Abtastung einen Vektor von binären Werten für hoder v, um ein Beispiel zu erzeugen , dass das Netzwerk „glaubt“ vorhanden ist - das heißt ein Beispiel , das eine hohe statistische Wahrscheinlichkeit der repräsentativ für die aufweist Trainingsset. Während des Trainings bestimmen Sie, wie gut es mit einem vorhandenen Trainingsbeispiel übereinstimmt, und passen die Gewichte entsprechend an.
Neil Slater