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?
unsupervised-learning
rbm
Born2Code
źródło
źródło
Odpowiedzi:
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ć jev oraz h odpowiednio. Biorąc pod uwagę konkretną konfigurację v i h , mapujemy ją na przestrzeń prawdopodobieństwa.
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
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)∗Z Z
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)=1 p(v)
Weźmy gradient względem Paremeters w p ( v )
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)
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:
Łatwiej jest uzasadnić powyższe warunki gradientu za pomocą formularza oczekiwania.
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:
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.
źródło
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σk h i j Jij
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ą.
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).
źródło
Odpowiedź @Armen dała mi wiele wglądów. Jednak na jedno pytanie nie ma odpowiedzi.
źródło
h_bin = (rand() < h_val) ? 1 : 0
h
lubv
- jesteś próbkowania wektor wartości binarnych nah
lubv
w 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.