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)=e−E(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=∑v∈V∑h∈He−E(v,h)
p(v)=∑h∈Hp(v,h)=∑h∈He−E(v,h)∑v∈V∑h∈He−E(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[∑h∈He−E(v,h)]−log[∑v∈V∑h∈He−E(v,h)]
Nehmen wir den Gradienten in Bezug auf die Parameter in
p(v)
∂log(p(v))∂θ=−1∑h′∈He−E(v,h′)∑h′∈He−E(v,h′)∂E(v,h′)∂θ+1∑v′∈V∑h′∈He−E(v′,h′)∑v′∈V∑h′∈He−E(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)=e−E(v,h′)p(v)=∑h∈Hp(v,h)p(h|v)=p(v,h)p(h)
∂log(p(v))∂θ∂log(p(v))∂θ=−1p(v)∑h′∈Hp(v,h′)∂E(v,h′)∂θ+∑v′∈V∑h′∈Hp(v′,h′)∂E(v′,h′)∂θ=−∑h′∈Hp(h′|v)∂E(v,h′)∂θ+∑v′∈V∑h′∈Hp(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)=−aTv−bTh−vTWh.
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.