Ich möchte meine Restricted Boltzmann Machine eine neue Darstellung von reellwertigen Daten lernen (siehe: Hinton - 2010 - A Practical Guide to Training RBMs). Ich kämpfe mit einer Implementierung von Gaußschen linearen Einheiten.Restricted Boltzmann Machine für reellwertige Daten - Gaußsche Lineareinheiten (glu) -
Mit Gaußschen linearen Einheiten in der sichtbaren Schicht ändert sich die Energie zu E(v,h)= ∑ (v-a)²/2σ - ∑ bh - ∑v/σ h w
. Jetzt weiß ich nicht, wie ich den Lernalgorithmus für kontrastive Divergenz ändern kann. Die sichtbaren Einheiten werden nicht mehr abgetastet, da sie linear sind. Ich verwende die Erwartung (mittlere Aktivierung) p(v_i=1|h)= a +∑hw + N(0,1)
als ihren Zustand. Die Assoziationen bleiben unverändert (Pos: data*p(h=1|v)'
neg: p(v=1|h)*p(h=1|v)'
). Aber das führt nur zu einem zufälligen Rauschen, wenn ich die Daten rekonstruieren will. Die Fehlerrate hört auf, sich um 50% zu verbessern.
Schließlich möchte ich Gaußsche lineare Einheiten in beiden Schichten verwenden. Wie bekomme ich dann die Zustände der versteckten Einheiten? Ich schlage vor, mit der Mittelfeldaktivierung p(h_i=1|v)= b +∑vw + N(0,1)
, aber ich bin mir nicht sicher.
Beachten Sie, dass [Link-only-Antworten] (http://meta.stackoverflow.com/tags/link-only-answers/info) entmutigt werden, SO Antworten sollten der Endpunkt einer Suche nach einer Lösung sein (im Gegensatz zu einem weiteren Zwischenstopp von Referenzen, die im Laufe der Zeit veralten). Bitte beachten Sie, dass Sie hier eine eigenständige Zusammenfassung hinzufügen und den Link als Referenz beibehalten. – kleopatra
-1: Es ist auch ein wirklich unleuchtendes Beispiel. –
Nützliches Beispiel. Es ist etwas anders als das, was OP wollte - die versteckte Schicht ist linear-Gaussian und das Sichtbare ist Bernoulli und Sigma ist nicht gelernt. – Peter