Chcę, aby moja restrykcyjna maszyna Boltzmanna nauczyła się nowej reprezentacji danych o wartościach rzeczywistych (patrz: Hinton - 2010 - A Practical Guide to Training RBMs). Walczę z implementacją gaussowskich jednostek liniowych.Ograniczona maszyna Boltzmanna dla danych o wartościach rzeczywistych - gaussowskie jednostki liniowe (glu) -
Z jednostkami liniowymi Gaussa w warstwie widzialnej energia zmienia się na E(v,h)= ∑ (v-a)²/2σ - ∑ bh - ∑v/σ h w
. Teraz nie wiem, jak zmienić algorytm Contrastive Divergence Learning Algorithm. Widoczne jednostki nie będą już próbkowane, ponieważ są liniowe. Używam oczekiwanie (średnia-aktywacja) p(v_i=1|h)= a +∑hw + N(0,1)
jako ich stan. Powiązania pozostają niezmienione (poz: data*p(h=1|v)'
neg: p(v=1|h)*p(h=1|v)'
). Ale to tylko prowadzi do losowego hałasu, gdy chcę zrekonstruować dane. Wskaźnik błędów przestanie poprawiać się o około 50%.
Wreszcie chcę użyć jednostek liniowych Gaussa w obu warstwach. W jaki sposób otrzymam stany ukrytych jednostek? Sugeruję, używając aktywacji pola średniego p(h_i=1|v)= b +∑vw + N(0,1)
, ale nie jestem pewien.
Należy odradzić [Odpowiedzi dotyczące wyłącznie linków] (http://meta.stackoverflow.com/tags/link-only-answers/info), SO Odpowiedzi powinny być punktem końcowym poszukiwania rozwiązania (w przeciwieństwie do kolejnego zatrzymania referencji, które z czasem stają się nieaktualne). Proszę rozważyć dodanie samodzielnego streszczenia tutaj, zachowując odnośnik jako odniesienie. – kleopatra
-1: Jest to również naprawdę nieoczywisty przykład. –
Przydatny przykład. Jest nieco inny niż to, co chciał OP - ukryta warstwa jest liniowo-gaussowska, a widoczna jest bernoulli, a sigma nie jest uczona. – Peter