Intuicja za ograniczoną maszyną Boltzmanna (RBM)

15

Przeszedłem kurs Geoffa Hintona na temat sieci neuronowych na Coursera, a także przez wprowadzenie do ograniczonych maszyn Boltzmanna , ale nadal nie rozumiałem intuicji stojącej za RBM.

Dlaczego musimy obliczać energię w tym urządzeniu? A jakie jest prawdopodobieństwo tego urządzenia? Też widziałem to wideo . Na filmie po prostu napisał równania prawdopodobieństwa i energii przed krokami obliczeniowymi i nigdzie się nie pojawił.

Dodając do powyższego, nie jestem pewien, do czego służy funkcja prawdopodobieństwa?

Born2Code
źródło
Próbowałem uporządkować pytanie, ale myślę, że wymaga ono więcej pracy. Trzeba wyjaśnić, co należy rozumieć, a dokładniej gdzie utkniesz, w przeciwnym razie sprawa jest zbyt szeroka.
Neil Slater,
Jedyne, co dostało się do głowy, to trzy kroki, najpierw faza dodatnia, potem faza ujemna, po której następuje rekonstrukcja ciężarów. A co z energiami i funkcją prawdopodobieństwa? jaki jest pożytek tutaj? i ile razy musimy wykonać ten proces (faza dodatnia -> faza ujemna> rekonstrukcja wag)?
Born2Code,

Odpowiedzi:

5

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)=eE(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=vVhHeE(v,h)
p(v)=hHp(v,h)=hHeE(v,h)vVhHeE(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[hHeE(v,h)]log[vVhHeE(v,h)]
p(v)

log(p(v))θ=1hHeE(v,h)hHeE(v,h)E(v,h)θ+1vVhHeE(v,h)vVhHeE(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)=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)θ

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)=aTvbThvTWh.

Ł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.

Armen Aghajanyan
źródło
W jaki sposób tworzymy również ukrytą warstwę binarną? Bcoz po operacji funkcji aktywacji otrzymywalibyśmy wartości z zakresu od 0 do 1.
Born2Code
Zwykle odbywa się to poprzez progowanie aktywacji. Cokolwiek powyżej 0,5, stanie się 1, cokolwiek poniżej będzie zero.
Armen Aghajanyan,
Ale w tym łączu , w sekcji 3.1: Hinton stwierdził: „ukryta jednostka włącza się, jeśli prawdopodobieństwo jest większe niż liczba losowa równomiernie rozłożona między 0 a 1”. Co to właściwie znaczy? Również w tym łączu mówią: „Wtedy j-ta jednostka jest włączona, jeśli po wybraniu s równomiernie rozłożonej liczby losowej między 0 a 1 okaże się, że jej wartość jest mniejsza niż sig [j]. W przeciwnym razie jest wyłączona”. Nie dostałem tego.
Born2Code,
????? Jak stwierdzić, czy ta konkretna jednostka jest włączona, czy wyłączona?
Born2Code,
Dodałem edycję. Sugeruję czytanie na temat metod Monte Carlo, ponieważ stochastyczność tego algorytmu pochodzi właśnie stąd.
Armen Aghajanyan
5

Oprócz istniejących odpowiedzi chciałbym porozmawiać o tej funkcji energii i nieco za tym intuicji. Przepraszam, jeśli to jest trochę długie i fizyczne.

Funkcja energii opisuje tak zwany model Isinga , który jest modelem ferromagnetyzmu w kategoriach mechaniki statystycznej / mechaniki kwantowej. W mechanice statystycznej używamy tak zwanego operatora hamiltonowskiego do opisania energii układu kwantowo-mechanicznego. A system zawsze stara się być w stanie o najniższej energii.

Teraz model Isinga zasadniczo opisuje wzajemne pomiędzy elektronami z Spin jednej +1 lub -1 w obecności zewnętrznego pola magnetycznego godz . Oddziaływanie między dwoma elektronami i i j jest opisane współczynnikiem J i j . Ten Hamiltona (lub funkcja energii) H = Ď ı , J J i J σ i σ J - ľ Ď J H J σ j gdzie HσkhijJij

H^=i,jJijσiσjμjhjσj
H^oznacza Hamiltonian. Standardowa procedura się z funkcji energii do prawdopodobieństwa, że system jest w określonym stanie (to jest tutaj: konfiguracja obrotów, np ), Jest użycie rozkład Boltzmanna, który mówi, że w temperaturze T prawdopodobieństwo p i układu, że będzie w stanie i z energią E i, jest określone przez p i = exp ( - E i / k Tσ1=+1,σ2=1,...TpiiEi W tym momencie, należy uznać, że te dwa równania są dokładnie takie same jak w równania filmów przez Hinton iodpowiedź Armen Aghajanyan. To prowadzi nas do pytania:
pi=exp(Ei/kT)iexp(Ei/kt)

Co RBM ma wspólnego z tym kwantowo-mechanicznym modelem ferromagnetyzmu?

Musimy użyć końcowej wielkości fizycznej: entropii. Jak wiemy z termodynamiki, układ osiądzie w stanie z minimalną energią, co również odpowiada stanowi z maksymalną entropią.

HXX

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

Wreszcie , wracamy do RBM: Zasadniczo chcemy, aby ten RBM kodował jak najwięcej informacji. Tak więc, ponieważ musimy zmaksymalizować entropię (teoretyczną) w naszym systemie RBM. Jak zaproponował Hopfield w 1982 roku, możemy zmaksymalizować entropię teoretyczno-informacyjną dokładnie tak jak entropia fizyczna: modelując RBM jak model Isinga powyżej i zastosować te same metody, aby zminimalizować energię. I dlatego potrzebujemy tej dziwnej funkcji energetycznej w RBM!

Ładne wyprowadzenie matematyczne w odpowiedzi Armen Aghajanyan pokazuje wszystko, co musimy zrobić, aby zminimalizować energię, maksymalizując w ten sposób entropię i przechowywanie / zapisywanie jak największej ilości informacji w naszym RBM.

PS: Proszę, drodzy fizycy, wybaczcie wszelkie nieścisłości w pochodzeniu tego inżyniera. Skomentuj lub napraw nieścisłości (a nawet błędy).

hbaderts
źródło
Widziałem to wideo , po prostu obejrzyj wideo od tego momentu. skąd masz ten próbkowany numer? czy właśnie uruchomiliśmy rand () w Matlabie i uzyskaliśmy go? i wtedy byłoby inaczej dla każdego h (i). O nie! Nie sądzę, żeby maszyna nauczyła się poprawnie.
Born2Code,
@ Born2Code to kolejne pytanie. Czy możesz to opublikować jako nowe pytanie na tej stronie? Spróbuj dodać równania, o których mówisz, do nowego pytania i wyjaśnij, których części nie rozumiesz.
hbaderts,
link
Born2Code,
0

Odpowiedź @Armen dała mi wiele wglądów. Jednak na jedno pytanie nie ma odpowiedzi.

vvh

E(v,h)=aTvbThvTWh

abW

Laurens Meeus
źródło
W jaki sposób tworzymy również ukrytą warstwę binarną? Bcoz po operacji funkcji aktywacji otrzymywalibyśmy wartości z zakresu od 0 do 1.
Born2Code
hvh_bin = (rand() < h_val) ? 1 : 0
@NeilSlater: ale dlaczego liczba losowa? Ponadto, czy losowa powinna być generowana dla każdej iteracji, czy ta sama liczba powinna być używana dla wszystkich iteracji? jeszcze jedna poważna wątpliwość, ile iteracji trzeba zrobić? Mam zestaw treningowy V, który ma tylko jeden wektor, tj. V1. W wersji 1 ile razy powinienem powtarzać?
Born2Code,
@NeilSlater: Jeszcze jedna wątpliwość dotyczy tego, czy tę samą liczbę losową należy porównać ze wszystkimi wartościami ukrytej warstwy? Wiem, że to takie idiotyczne pytanie, ale nadal
Born2Code
1
Jest to liczba losowa, ponieważ w ten sposób rozkładasz prawdopodobieństwa na wartości binarne. Jest to liczba różnych dla każdego wnętrza neuronu hlub v- jesteś próbkowania wektor wartości binarnych na hlub vw celu wygenerowania przykład, że sieć „wierzy” istnieje - czyli przykład, który ma dużą szansę statystyczną jest reprezentacją zestaw treningowy. Podczas treningu określasz, jak dobrze pasuje do istniejącego przykładu treningu i odpowiednio dostosowujesz wagi.
Neil Slater,