KMS są interesującą bestią. Aby odpowiedzieć na twoje pytanie i pobudzić moją pamięć, wyprowadzę KMS i omówię pochodne. Wspomniałeś, że jesteś zdezorientowany co do prawdopodobieństwa, więc moje pochodzenie będzie z perspektywy próby zmaksymalizowania prawdopodobieństwa. Więc zacznijmy.
KMS zawierają dwa różne zestawy neuronów, widocznych i ukrytych, będę oznaczać je v oraz h odpowiednio. Biorąc pod uwagę konkretną konfigurację v i h , mapujemy ją na przestrzeń prawdopodobieństwa.
p(v,h)=e−E(v,h)Z
Jest jeszcze kilka rzeczy do zdefiniowania. Funkcja zastępcza, której używamy do mapowania z określonej konfiguracji do przestrzeni prawdopodobieństwa, nazywa się funkcją energetyczną . Z stały jest współczynnik normalizacji w celu zapewnienia, że rzeczywiście mamy map do przestrzeni prawdopodobieństwa. Przejdźmy teraz do tego, czego tak naprawdę szukamy; prawdopodobieństwo zbioru widocznych neuronów, innymi słowy, prawdopodobieństwo naszych danych.
Z = ∑ v ∈ V ∑ h ∈ H e - E ( v , h ) p ( v )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)
Chociaż w tym równaniu jest wiele terminów, sprowadza się ono po prostu do napisania prawidłowych równań prawdopodobieństwa. Mamy nadzieję, że do tej pory, to pomogło Ci zrozumieć, dlaczego musimy funkcję energetyczną obliczyć prawdopodobieństwo, lub co jest robione częściej w nieznormalizowanych prawdopodobieństwa . Wykorzystywane jest nietypowe prawdopodobieństwo, ponieważ obliczenie funkcji podziału Z jest bardzo kosztowne.p(v)∗ZZ
Przejdźmy teraz do faktycznej fazy uczenia się KMS. Aby zmaksymalizować prawdopodobieństwo, dla każdego punktu danych musimy wykonać krok gradientu, aby . Aby uzyskać wyrażenia gradientowe, potrzeba trochę akrobatyki matematycznej. Pierwszą rzeczą, którą robimy, jest pobranie dziennika p ( v ) . Odtąd będziemy działać w przestrzeni prawdopodobieństwa dziennika, aby matematyka była wykonalna.p(v)=1p(v)
Weźmy gradient względem Paremeters w p ( v )
log(p(v))=log[∑h∈He−E(v,h)]−log[∑v∈V∑h∈He−E(v,h)]
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)∂θ
Teraz zrobiłem to na papierze i zapisałem równanie półfinałowe, aby nie marnować dużo miejsca na tej stronie. Polecam wyprowadzić te równania samodzielnie. Teraz napiszę kilka równań, które pomogą w kontynuacji naszej pochodnej. Zauważ, że: , p ( v ) = ∑ h ∈ H p ( v , h ) i że p ( h | v ) =Zp(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′)∂θ
I proszę bardzo, uzyskaliśmy oszacowanie maksymalnego prawdopodobieństwa dla RBM, jeśli chcesz, możesz napisać dwa ostatnie warunki przez oczekiwanie na ich odpowiednie warunki (warunkowe i wspólne prawdopodobieństwo).
Uwagi na temat funkcji energetycznej i stochastyczności neuronów.
Jak widać powyżej w mojej pochodnej, pozostawiłem definicję funkcji energii raczej niejasną. A powodem tego jest to, że wiele różnych wersji RBM implementuje różne funkcje energetyczne. Ten, który Hinton opisuje w wykładzie połączonym powyżej i pokazanym przez @ Laurens-Meeus, to:
E(v,h)=−aTv−bTh−vTWh.
Łatwiej jest uzasadnić powyższe warunki gradientu za pomocą formularza oczekiwania.
∂log(p(v))∂θ=−Ep(h′|v)∂E(v,h′)∂θ+Ep(v′,h′)∂E(v′,h′)∂θ
Oczekiwanie na pierwszy semestr jest w rzeczywistości bardzo łatwe do obliczenia, i to był geniusz za KMS. Ograniczając połączenie, warunkowe oczekiwanie staje się po prostu propagacją RBM do przodu z zablokowanymi widocznymi jednostkami. Jest to tak zwana faza czuwania w maszynach Boltzmanna. Teraz obliczenie drugiego terminu jest znacznie trudniejsze i zwykle stosuje się do tego metody Monte Carlo. Zapisywanie gradientu za pomocą średnich przebiegów Monte Carlo:
∂log(p(v))∂θ≈−⟨∂E(v,h′)∂θ⟩p(h′|v)+⟨∂E(v′,h′)∂θ⟩p(v′,h′)
Obliczenie pierwszego terminu nie jest trudne, jak wspomniano powyżej, dlatego Monte-Carlo wykonuje się w drugim terminie. Metody Monte Carlo wykorzystują losowe kolejne próbkowanie rozkładu, aby obliczyć oczekiwanie (sumę lub całkę). Teraz to losowe próbkowanie w klasycznych RBM definiuje się jako ustawienie jednostki na 0 lub 1 w oparciu o jej prawdopodobieństwo stochastycznie, innymi słowy, otrzymujemy losową jednolitą liczbę, jeśli jest mniejsza niż prawdopodobieństwo neuronów, ustaw ją na 1, jeśli to jest większa niż ustawiona na 0.