Wykład 12 cz. 2 (Maszyny Boltzmanna
Transkrypt
Wykład 12 cz. 2 (Maszyny Boltzmanna
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów Wst¦p do sieci neuronowych, wykªad 12 Maszyna Boltzmanna M. Czoków, J. Piersa Faculty of Mathematics and Computer Science, Nicolaus Copernicus University, Toru«, Poland 2011-01-02 M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Problemy z sieci¡ Hoplda Maszyna Boltzmanna w analizie obrazów Wst¦p Idea algorytmu Maszyna Boltzmanna Stacjonarno±¢ stanów maszyny Boltzmanna Najwi¦ksz¡ przeszkod¡ w osiaganiu przez sieci Hopelda dobrych rozwiaza« problemów jest podatno±¢ na popadania w minima lokalne. Jest to istotna okoliczno±¢, gdy» okazuje si¦, »e w skomplikowanych problemach sie¢ praktycznie zawsze ko«czy dziaªanie w lepszym lub gorszym minimum lokalnym. Aby temu zaradzi¢ trzeba wprowadzi¢ mechanizm pozwalaj¡cy wyj±¢ z lokalnych basenów atrakcji. Na tym wykªadzie przeanalizujemy stochastyczne metody radzenia sobie z tym problemem. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wst¦p Idea algorytmu Maszyna Boltzmanna Nicolas Metropolis (1915-1999) Maszyna Boltzmanna w analizie obrazów Stacjonarno±¢ stanów maszyny Boltzmanna czªonek zespoªu badawczego Projektu Manhattan wspóªtwórca komputerów MANIAC (1952) i MANIAC II (1957) jeden z autorów metod Monte Carlo (wraz z S. Ulamem i J. von Neumannem) algorytm Metropolisa (1953) zaliczony do czoªowych 10 algorytmów, które wywarªy najwiekszy wpªyw na rozwój i praktyke nauki i techniki w XX wieku (wg Computing Science and Engineering) M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Wst¦p Symulowane wy»arzanie Idea algorytmu Uczenie maszyn Boltzmanna Maszyna Boltzmanna Algorytm Metropolisa wersja orginalna Maszyna Boltzmanna w analizie obrazów Stacjonarno±¢ stanów maszyny Boltzmanna Mamy dany otwarty ukªad termodynamiczny: Ei - energia i -tego stanu Problem: znale¹¢ stan o minimalnej energii Wykonujemy wielokrotnie: dla danego stanu statystyczny ruch cz¡stki, otrzymuj¡c stan Ej − Ei ≤ 0, przechodzimy do stanu i -tego wykonujemy j -ty. Je»eli j -tego bezwarunkowo, w p.p. przechodzimy do stanu j z prawdopodobie«stwem exp( gdzie kb −(Ej − Ei ) ), kb · T - staªa Boltzmanna, M. Czoków, J. Piersa T - temperatura bezwzgl¦dna WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wst¦p Idea algorytmu Maszyna Boltzmanna Adaptacja algorytmu Metropolisa Maszyna Boltzmanna w analizie obrazów Stacjonarno±¢ stanów maszyny Boltzmanna Jak dostosowa¢ ten algorytm do dziedziny problemów optymalizacyjnych? Wystarczy dokona¢ nast¦puj¡cych uto»samie«: rozwi¡zanie ↔ funkcja oceny stan ukªadu termodynamicznego ↔ energia ukªadu przeksztaªcenie lokalne optimum globalne parametr T ↔ ↔ ↔ ruch cz¡stki stan o minimalnej energii temperatury i staªa Boltzmanna M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Wst¦p Symulowane wy»arzanie Idea algorytmu Uczenie maszyn Boltzmanna Maszyna Boltzmanna Algorytm Metropolisa dyskusja Maszyna Boltzmanna w analizie obrazów Stacjonarno±¢ stanów maszyny Boltzmanna Jaka jest rola temperatury w algorytmie Metropolisa? Rozwa»my funkcj¦ T → +∞ g (x ) = e −x /T dla x > 0 x /T → e −x / T → wtedy 0, wi¦c jest akceptowane T→ 0 wtedy x /T → +∞ , wi¦c e −x / T → 1 - ka»de rozwi¡zanie 0 - akceptowane s¡ tylko lepsze rozwi¡zania Dobieraj¡c warto±¢ parametru T >0 ustalamy zakres tolerancji dla gorszych rozwiaza« Algorytm Metropolisa dobrze jest startowa¢ wiele razy, na ko«cu wybiera si¦ najlepsze rozwi¡zanie; dziaªa to jak wzmacniacz prawdopodobienstwa wylosowania dobrego rozwi¡zania M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wst¦p Idea algorytmu Maszyna Boltzmanna Maszyna Boltzmanna denicja Maszyna Boltzmanna w analizie obrazów Stacjonarno±¢ stanów maszyny Boltzmanna Maszyny Boltzmanna to stochastyczna wersja sieci Hopelda zaproponowana przez Hintona i Sejnowskiego w 1985. Modykacja polega na tym, »e dynamika zadana jest przez algorytm Metropolisa. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wst¦p Idea algorytmu Maszyna Boltzmanna Dynamika Glaubera przypomnienie Maszyna Boltzmanna w analizie obrazów Stacjonarno±¢ stanów maszyny Boltzmanna Dynamika asynchroniczna w temeraturze 0. wylosuj neuron σi je±li spin jest niezgodny z lokalnym polem wypadkowym zmieniamy go σi = sign( X j Przypomnienie - pole wypadkowe wij σj + hi ) Mi = P j wij σj + hi powtarzamy a» do ustabilozowania si¦ sytuacji M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Mi , Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wst¦p Idea algorytmu Maszyna Boltzmanna Maszyna Boltzmanna podstawowe zaªo»enia Maszyna Boltzmanna w analizie obrazów Stacjonarno±¢ stanów maszyny Boltzmanna Rozwa»my sie¢ rekurencyj¡ z dynamik¡ asynchroniczn¡. Przestrze« konguracji tej sieci stanowi przestrze« stanów ªa«cucha Markowa. Zadajmy mechanizm przej±¢ zgodny z algorytmem Metropolisa. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wst¦p Idea algorytmu Maszyna Boltzmanna Maszyna Boltzmanna dynamika Maszyna Boltzmanna w analizie obrazów wylosuj neuron Stacjonarno±¢ stanów maszyny Boltzmanna σi je±li spin jest niezgodny z lokalnym polem wypadkowym zmieniamy go σi = sign( X j wij σj + hi ) je±li jest zgodny, zmieniamy go z prawdopodobie«stwem exp(−2|Mi |/T ), lub pozostawiamy z komplementarnym prawdopodobie«stwem powtarzamy a» do ustabilizowania si¦ sytuacji M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Mi , Algorytm Metropolisa Symulowane wy»arzanie Uwagi Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów Wst¦p Idea algorytmu Maszyna Boltzmanna Stacjonarno±¢ stanów maszyny Boltzmanna i -tym miejscu. 0 Niech σ̄ b¦dzie zgodna z lokalnym polem wypadkowym Mi , a σ̄ nie. Rozwa»my dwie konguracje σ̄ i σ̄ 0 ró»ni¡ce si¦ na Wtedy zachodzi: E (σ̄0 ) − E (σ̄) = 2|Mi | 0 Zatem zachodzi exp (−2|Mi |/T ) = exp (−(E (σ̄ ) − E (σ̄))/T ) M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uwagi Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów Wst¦p Idea algorytmu Maszyna Boltzmanna Stacjonarno±¢ stanów maszyny Boltzmanna Obie strony rówanania E (σ̄0 ) − E (σ̄) = 2|Mi | s¡ dodatnie. Zatem 0 < exp (−2|Mi |/T ) < 1. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uwagi Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów Wst¦p Idea algorytmu Maszyna Boltzmanna Stacjonarno±¢ stanów maszyny Boltzmanna 10 8 6 4 2 0 -2 -1 0 1 M. Czoków, J. Piersa 2 3 4 WSN 2010/2011 Wykªad 12 5 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wst¦p Idea algorytmu Maszyna Boltzmanna Stacjonarno±¢ stanów maszyny Boltzmanna Maszyna Boltzmanna w analizie obrazów Stacjonarno±¢ stanów maszyny Boltzmanna Twierdzenie. Rozkªad stacjonarny dla ªa«cucha Markowa zadanego przez stany maszyny Boltzmanna ma posta¢: exp(−E (σ̄)/T ) (−E (σ̄)/T ) = , P(σ̄) = P expexp 0 (−E (σ̄ )/T ) Z (T ) σ̄ 0 gdzie Z (T ) jest czynnikiem normalizuj¡cym znanym jako funkcja rozdziaªu. Dzi¦ki tej funkcji mamy do czynienia z prawdziwym prawdopodobie«stwem. Rozkªad ten jest zwany miar¡ Gibbsa. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Dowód stacjonarno±ci Maszyna Boltzmanna w analizie obrazów Wst¦p Idea algorytmu Maszyna Boltzmanna Stacjonarno±¢ stanów maszyny Boltzmanna Udowodnijmy stacjonarno±¢ zadanego ªa«cucha Markowa. Niech B b¦d¡ dowolnymi stanami nale»¡cymi do tego ªa«cucha. π jest rozkªadem stacjonarnym zadanego ªa«cucha Markowa o macierzy przej±cia PAB πA P. Wtedy: p-stwo przej±cia ze stanu A do B w jednym kroku p-stwo znalezienia si¦ w stanie A πA · PAB p-stwo wychodz¡ce z A do B P πA · ( B PAB ) = πA p-stwo wychodz¡ce P B πB PBA p-stwo wchodz¡ce do A M. Czoków, J. Piersa z A WSN 2010/2011 Wykªad 12 Ai Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Dowód stacjonarno±ci Maszyna Boltzmanna w analizie obrazów Wst¦p Idea algorytmu Maszyna Boltzmanna Stacjonarno±¢ stanów maszyny Boltzmanna Twierdzenie. a«cuch jest stacjonarny ⇔ p-stwo wchodz¡ce = p-stwo wychodz¡ce dla ka»dego stanu, czyli: X X ∀A ( πB PBA = πA · ( PAB ) = πA ) B B Powy»sza równo±¢ zachodzi zawsze je±li speªniony jest warunek: ∀A,B (πB PBA = πA PAB ), poniewa»: ∀A ( X B πB PBA = M. Czoków, J. Piersa X B πA PAB ). WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Dowód stacjonarno±ci Maszyna Boltzmanna w analizie obrazów Wst¦p Idea algorytmu Maszyna Boltzmanna Stacjonarno±¢ stanów maszyny Boltzmanna Poka»emy teraz, »e dla naszego ªa«cucha zachodzi ∀A,B (πB PBA = πA PAB ), czym udowonimy jego stacjonarno±¢. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Wst¦p Symulowane wy»arzanie Idea algorytmu Uczenie maszyn Boltzmanna Maszyna Boltzmanna Dowód stacjonarno±ci Maszyna Boltzmanna w analizie obrazów Rozwa»my dwie konguracje Niech σ̄ σ̄ i σ̄ 0 Stacjonarno±¢ stanów maszyny Boltzmanna ró»ni¡ce si¦ na i -tym miejscu. Mi , a σ̄0 nie. b¦dzie zgodna z lokalnym polem wypadkowym Wówczas przepªyw z σ̄ 0 do σ̄ wynosi exp(−E (σ̄ )/T ) P (σ̄ 0 ) = , N NZ (T ) 1 gdzie N 0 to dªugo±¢ wektora reprezentuj¡cego konguracj¦ sieci. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Wst¦p Symulowane wy»arzanie Idea algorytmu Uczenie maszyn Boltzmanna Maszyna Boltzmanna Dowód stacjonarno±ci Maszyna Boltzmanna w analizie obrazów Z drugiej strony, przepªyw z σ̄ do Stacjonarno±¢ stanów maszyny Boltzmanna σ̄ 0 wynosi exp(−2|Mi |/T ) exp(−(E (σ̄0 ) − E (σ̄))/T ) exp(−E (σ̄)/T ) P (σ̄) = N N Z (T ) = Zatem przepªyw z σ̄ do σ̄ 0 exp(−E (σ̄0 )/T ) NZ (T ) wynosi tyle samo co przepªyw z ko«czy dowód. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 σ̄ 0 do σ̄, co Algorytm Metropolisa Symulowane wy»arzanie Motywacja Uczenie maszyn Boltzmanna Wst¦p Algorytm symulowanego wy»arzania Maszyna Boltzmanna w analizie obrazów W procesie minimalizacji energii bardzo niepo»¡danym zjawiskiem jest nagªy skok do stanu o wy»szej energii, gdy ju» byªo do±¢ dobrze. Tak jak na pocz¡tku dziaªania algorytmu dopuszczalne jest chaotyczne zachowanie, które mo»e pozwoli¢ znale¹¢ odpowiedni obszar przestrzeni energetycznej (taki o du»ym spadku, który sugeruje blisko±¢ minimum globalnego), tak w okolicach globalnego minimum nie opªaca si¦ ju» skakanie do wy»szych terenów, bo opó¹nia to tylko osi¡gni¦cie owego minimum. Dla maszyn Boltzmanna stosuje sie dwa popularne algorytmy regulacji temperatury - symulowane wy»arzanie (simulated annealing) i symulowane studzenie (simulated tempering). M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wst¦p Algorytm symulowanego wy»arzania Maszyna Boltzmanna w analizie obrazów M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wy»arzanie w termodynamice Wst¦p Algorytm symulowanego wy»arzania Maszyna Boltzmanna w analizie obrazów Wy»arzanie jest operacj¡ ciepln¡ polegaj¡c¡ na nagrzaniu elementu stalowego (lub szkªa) do odpowiedniej temperatury, przetrzymaniu w tej temperaturze jaki± czas, a nast¦pnie powolnym schªodzeniu. Ma gªównie ono na celu doprowadzenie stali do równowagi termodynamicznej w stosunku do stanu wyj±ciowego, który jest znacznie odchylony od stanu równowagowego. Ciecz zastyga tworz¡c struktur¦ krystaliczn¡. W wysokiej temperaturze cz¡steczki cieczy poruszaj¡ si¦ swobodnie, lecz gdy zaczniemy obin»a¢ temperatur¦ cz¡steczki zaczynaj¡ porusza¢ si¦ coraz wolniej tworz¡c stopniowo uporz¡dkowan¡ struktur¦ krysztaª. Stan ten cechuj¦ si¦ minimaln¡ mo»liw¡ energi¡ (regularna struktura). Warunkiem koniecznym aby ciecz utworzyªa struktur¦ krystaliczn¡ jest powolne ochªadzanie ukªadu, w przeciwnym wypadku otrzymamay struktur¦, której energia jest wy»sza. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Symulowane wy»arzanie Wst¦p Algorytm symulowanego wy»arzania Maszyna Boltzmanna w analizie obrazów Poª¡czenie dwóch heurystyk: algorytm Metropolisa schemat chªodzenia W istocie symulowane wy»arzanie jest to algorytm Metropolisa ze zmienn¡ temperatur¡. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Wst¦p Symulowane wy»arzanie Algorytm symulowanego wy»arzania Uczenie maszyn Boltzmanna Dynamika MB z symulowanym wy»arzaniem Maszyna Boltzmanna w analizie obrazów k = 1 oraz temperatur¦ przypisz numer bierz¡cej iteracji T = c τ (k ), gdzie wylosuj neuron c jest to dodatni parametr σi je±li spin jest niezgodny z lokalnym polem wypadkowym zmie« go σi = sign( X j Mi , wij σj + hi ) je±li jest zgodny, zmie« go z prawdopodobie«stwem exp(−2|Mi |/T ), lub zostaw zwi¦ksz k o jeden oraz zaktualizuj wrto±¢ temperatury T = c τ (k ) powtarzaj, a» osi¡gniesz temperatur¦ równ¡ lub blisk¡ 0 i stan si¦ ustabilizuje M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Schematy chªodzenia Wst¦p Algorytm symulowanego wy»arzania Maszyna Boltzmanna w analizie obrazów schemat logarytmiczny (Boltzmanna): schemat liniowy (Cauchy'ego) k = 1/4 schemat geometryczny τ (k ) = 1/ log k , τ (k ) = 1/k , τ (k ) = ak , gdzie 0 dla maªego k > 0 np. <a<1 schemat logarytmiczny (w przeciwie«stwie do pozostaªych) gwarantuje (przy pewnych naturalnych zaªo»eniach) znalezienie optimum globalnego z prawdopodobie«stwem 1, jednak ±redni czas potrzebny do jego osi¡gniecia jest porównywalny z rozmiarem przestrzeni rozwiaza« badania empiryczne sugeruj¡, »e najwi¦ksz¡ przydatno±¢ praktyczn¡ ma schemat geometryczny (najszybszy) M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wst¦p Algorytm symulowanego wy»arzania Maszyna Boltzmanna w analizie obrazów 0 -0.5 -1 -1.5 -2 10 -2.5 -10 5 -5 0 0 -5 5 10 -10 M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Problem przeszukiwania przestrzeni Maszyna Boltzmanna w analizie obrazów Algorytm Maszyny Boltzmanna s¡ zasadniczo u»ywane do rozwi¡zywania dwóch ró»ni¡cych si¦ obliczeniowo problemów. Pierwszy z nich to problem przeszukiwania przestrzeni stanów, w którym wagi dla poª¡cze« s¡ staªe i s¡ wykorzystywane do reprezentacji energii. Natomiast stochastyczna dynamika maszyny Botzmanna umo»liwia próbkowanie wektorów stanów, dla których funkcja eneretyczna ma maªe warto±ci. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Problem uczenia maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów Algorytm W problemie uczenia maszyny Boltzmanna dany jest zbiór przykªadów, który zadaje miar¦ probabilistyczn¡ (empiryczn¡). Maszyna Boltzmanna jest uczona tak, »eby rozkªad stacjonarny ªa«cucha Markowa zadanego przez t¦ maszyn¦ byª jak najbardziej zbli»ony do rozkªadu miary empirycznej. W tym celu poszukiwane s¡ odpowiednie wagi poª¡cze«. W trakcie nauki maszyna Boltzmanna wykonuje wiele maªych uaktualnie« swoich wag. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Architektura maszyny Boltzmanna Maszyna Boltzmanna w analizie obrazów Algorytm Mamy zadan¡ sie¢ skªadaj¡c¡ si¦ z warstwy wej±ciowej, warstwy wyj±ciowej i jednostek ukrytych. Konguracj¦ warstwy wej±ciowej opisujemy za pomoc¡ wektora αi , warstwy wyj±ciowej za pomoc¡ wektora α0 , przez wektor α b¦dziemy opisywa¢ konguracj¦ obu widocznych warstw, tzn. wektor α powstaje w wyniku scalenia wektorów αi i α0 . Konguracj¦ jednostek ukrytych opisujemy za pomoc¡ wektora M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 β. Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Architektura maszyny Boltzmanna Maszyna Boltzmanna w analizie obrazów Algorytm Ukryte neurony s¡ to jednostki, których stan nie jest brany pod uwag¦ jako cz¦±¢ wzorca zapami¦tywanego w procesie uczenia. Jednostki ukryte pozwalaj¡ zwi¦kszy¢ moc obliczeniow¡ sieci. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Architektura maszyny Boltzmanna Maszyna Boltzmanna w analizie obrazów Algorytm Tak jak w sieci Hopelda mo»emy mie¢ do czynienia ze struktur¡, w której ka»da para jednostek jest ze sob¡ poª¡czona.Niestety uczenie sieci o takiej strukturze poª¡cze« jest bardzo czasochªonne. Dlatego struktury z mniejsz¡ ilo±ci¡ poª¡cze« s¡ po»¡dane. Nie wyró»niamy »adnej konkretnej struktury poª¡cze« mi¦dzy jednostkami, ró»ne problemy ró»ne struktury. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Wprowadzenie Symulowane wy»arzanie Algorytm - zaªo»enia ogólne Uczenie maszyn Boltzmanna Dywergencja Kullbacka-Leiblera Architektura maszyny Boltzmanna Maszyna Boltzmanna w analizie obrazów Algorytm wyjście 0 { Maszyna Boltzmanna z j dowoln¡ struktur¡ wij poª¡cze«. i i wejście M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Ograniczona maszyna Boltzmanna Maszyna Boltzmanna w analizie obrazów Algorytm Ograniczona maszyna Boltzmanna jest to wersja maszyny Boltzmanna, w której ka»da jednosta, ukryta jest poªaczona z ka»d¡ jednostk¡ widoczn¡ nie ma poª¡cze« mi¦dzy jednostkami widocznymi nie ma poª¡cze« mi¦dzy jednostkami ukrytymi M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Wprowadzenie Symulowane wy»arzanie Algorytm - zaªo»enia ogólne Uczenie maszyn Boltzmanna Dywergencja Kullbacka-Leiblera Ograniczona maszyna Boltzmanna Maszyna Boltzmanna w analizie obrazów Algorytm wyjście 0 Architektura { ograniczonej maszyna Boltzmanna. i wejście M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Zaªo»enia ogólne Maszyna Boltzmanna w analizie obrazów Niech Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm Q (α) oznacza rozkªad empiryczny po zbiorze danych, a P (α) rozkªad stacjonarny w maszynie Boltzmanna zale»ny jedynie od wag i temperatury T (temperatura jest staªa w trakcie uczenia). Prawdopodobie«stwo konguracji widocznych jednostek jest to suma po wszystkich konguracjach ukrytych jednostek: P (α) = X P (α, β) = P β β gdzie Eαβ exp(−Eαβ /T ) , Z (T ) jest to energia systemu w konguracji zdeniowanej przez widoczne i ukryte jednostki, natomiast Z (T ) tak jak poprzednio jest to funkcja rozdziaªu. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Denicja Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm Dywergencja Kullbacka-Leiblera (rozbie»no±¢ Kullbacka-Lieblera, entropia wzgl¦dna) jest miar¡ stosowan¡ w statystyce i teorii informacji do okre±lenia rozbie»no±ci mi¦dzy dwoma rozkªadami prawdopodobie«stwa p i q. Czasem zwana jest te» odlegªo±ci¡ Kullbacka-Leiblera, w rzeczywisto±ci nie jest to jednak prawdziwa metryka, gdy» nie jest symetryczna ani nie speªnia nierówno±ci trójk¡ta. Entropia wzgl¦dna przyjmuje zawsze warto±ci nieujemne, przy czym 0 wtedy i tylko wtedy, gdy porównywane rozkªady s¡ identyczne. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Wprowadzenie Symulowane wy»arzanie Denicja Algorytm - zaªo»enia ogólne Uczenie maszyn Boltzmanna Dywergencja Kullbacka-Leiblera Maszyna Boltzmanna w analizie obrazów Algorytm Dywergencja Kullbacka-Leiblera dana jest wzorem: DKL (p, q ) = X i p(i ) log W powy»szej denicji przyjmuje si¦, »e rzeczywiste, za± q teoretyczny model. M. Czoków, J. Piersa 2 p (i ) q (i ) p reprezentuje dane WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Dywergencja Kullbacka-Leiblera Maszyna Boltzmanna w analizie obrazów Algorytm Naszym celem jest znalezienie takiego zestawu wag, który minimalizuje rozbie»no±¢ Kullbacka-Lieblera tych dwóch rozkªadów: DKL (Q (α), P (α)) = X α M. Czoków, J. Piersa Q (α)log Q (α) P (α) WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Uczenie maszyny Boltzmanna Maszyna Boltzmanna w analizie obrazów Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm Uczenie opera si¦ na metodzie spadku gradientowego. Dla zbioru Q (α) poszukujemy wag takich, »e w pewnej temperaturze T aktualny rozkªad P (α) (rozkªad stacjonarny ªa«cucha wzorców ucz¡cych Markowa generowanego przez kolejne stany maszyny Boltzmanna) pasuje do Q (α) tak bardzo jak to jest tylko mo»liwe. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uwagi Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów Pracujemy w kodownaiu {0, 1} lub Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm {−1, 1}. Entropia wzgl¦dna dla kodowa« binarnych jest funkcj¡ wypukª¡, zatem posiada dokªadnie jedno minimum, do którego w wyniku dziaªania metody spadku gradientowego zbiega. Nie dopuszczamy pól zewn¦trznych, ale za to dopuszczamy wagi wychodz¡ce i wchodz¡ce do tej samej jednostki M. Czoków, J. Piersa wii . WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Uczenie maszyny Boltzmanna Maszyna Boltzmanna w analizie obrazów Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm Dla naszej sieci uaktualniamy wszystkie wagi zgodnie ze wzorem: ∆wij = −η gdzie η X Q (α) ∂ P (α) ∂ Dkl =η , ∂ wij P (α) ∂ w ij α jest to wspóªczynnik uczenia. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Uczenie maszyny Boltzmanna Maszyna Boltzmanna w analizie obrazów Prawdopodobie«stwo Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm Q (·) nie zale»y od wag zatem ∂ Q (α)/∂ wij = 0. W powy»szym wzorze na aktualizacj¦ wag wyra»enie, w którym ∂ Q (α)/∂ wij = 0 byªo czynnikiem zostaªo ju» pomini¦te. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Uczenie maszyny Boltzmanna Maszyna Boltzmanna w analizie obrazów ∆wij = η Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm X Q (α) ∂ P (α) α P (α) ∂ wij , e −Eαβ /T Z (T ) ) ∂ wij P −E /T P ∂( β exp αβ ) Z (T ) − ∂(∂Zw(Tij )) β e −Eαβ /T ∂ wij = Z (T )2 ∂( ∂ P (α) = ∂ wij = P −E /T ∂( β exp αβ ) ∂ wij Z (T ) − M. Czoków, J. Piersa P β ∂(Z (T )) ∂ wij P β e −Eαβ /T Z (T ) 2 WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Wprowadzenie Symulowane wy»arzanie Algorytm - zaªo»enia ogólne Uczenie maszyn Boltzmanna Dywergencja Kullbacka-Leiblera Uczenie maszyny Boltzmanna Maszyna Boltzmanna w analizie obrazów = P −E /T ∂( β exp αβ ) ∂ wij Z (T ) −Eαβ /T ∂(−Eαβ /T ) βe ∂ wij Z (T ) P = β e 1 −Eαβ /T ∂(−(− 2 TZ (T ) P = β − − β P −E /T ∂( αβ e αβ ) ∂ wij P Z (T ) β e −Eαβ /T 2 − P −E /T ∂( αβ e αβ ) ∂ wij P Z (T ) β e −Eαβ /T 2 P −E /T ∂( αβ e αβ ) ∂ wij M. Czoków, J. Piersa e −Eαβ /T 2 i ,j wij σi σj )) ∂ wij i σj P Z (T ) P −Eαβ /T σ e TZ (T ) ∂(Z (T )) ∂ wij − P = Algorytm P Z (T ) β e −Eαβ /T 2 WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Uczenie maszyny Boltzmanna Maszyna Boltzmanna w analizie obrazów P = β P = βe TZ (T ) i σj e −Eαβ /T σi σj TZ (T ) P = −Eαβ /T σ β − P (α, β)σi σj T = 1 T [ X − − Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm P −E /T ∂( αβ e αβ ) ∂ wij P β Z (T ) e −Eαβ /T 2 P P ( αβ e −Eαβ /T σi σj )( β e −Eαβ /T ) TZ (T ) 2 ( P αβ P (α, β)σi σj )( T P β P (α, β)) σi σj P (α, β) − hσi σj iP P (α)] β M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Uczenie maszyny Boltzmanna Maszyna Boltzmanna w analizie obrazów Z wyra»e«: ∆wij = η ∂ P (α) = ∂ wij T Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm X Q (α) ∂ P (α) α 1 Wprowadzenie P (α) ∂ wij , X [ σi σj P (α, β) − P (α)hσi σj iP ] β wynika: ∆wij = X η X Q (α) X [ σi σj P (α, β) − Q (α)hσi σj iP ] T α P (α) α β X η X = [ Q (α)P (β|α)σi σj − Q (α)hσi σj iP ] T α αβ = η T [hσi σj iQ − hσi σj iP ] M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Wprowadzenie Symulowane wy»arzanie Algorytm - zaªo»enia ogólne Uczenie maszyn Boltzmanna Dywergencja Kullbacka-Leiblera Modykacja wag Maszyna Boltzmanna w analizie obrazów Algorytm ∆wij = [hσi σj iQ − hσi σj iP ], gdzie: hσi σj iQ = X Q (α)P (β|α)σi σj αβ hσi σj iP = X P (α, β)σi σj αβ M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Jak obliczy¢ hσi σj iP ? Maszyna Boltzmanna w analizie obrazów hσi σj iP = X Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm P (α, β)σi σj αβ Powy»sze wyra»enie obliczmy metod¡ Monte-Carlo. Symulujemy dynamik¦ maszyny Boltzmanna, po du»ej liczbie iteracji, gdy bie»¡ca konguracja nie zale»y ju» od pocz¡tkowej konguracji mo»emy próbkowa¢ σi σj . M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Jak obliczy¢ hσi σj iQ ? Maszyna Boltzmanna w analizie obrazów hσi σj iQ = X Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm Q (α)P (β|α)σi σj αβ Powy»sze wyra»enie obliczmy metod¡ Monte-Carlo. Dla ka»dego kolei ustawiamy jednostki widoczne zgodnie z warto±ci¡ α, α jednostki widocznie zamra»amy i w wyniku dynamiki maszyny Boltzmanna swoje spiny mog¡ tylko zmienia¢ jednostki ukryte. Po du»ej liczbie iteracji, gdy bie»¡ca konguracja nie zale»y ju» od pocz¡tkowej konguracji mo»emy próbkowa¢ σi σj . Nast¦pnie mno»ymy próbk¦ przez prawdopodobie«stwo wyst¡pienia danego M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 po nast¦pnie α. Algorytm Metropolisa Wprowadzenie Symulowane wy»arzanie Algorytm - zaªo»enia ogólne Uczenie maszyn Boltzmanna Dywergencja Kullbacka-Leiblera Modykacja wag Maszyna Boltzmanna w analizie obrazów Algorytm Je±li mamy do czynienia z funkcj¡ bez jednostek ukrytych, wtedy: ∆wij = [hσi σj iQ − hσi σj iP ], gdzie: hσi σj iQ = X Q (α)σi σj α hσi σj iP = X P (α)σi σj α hσi σj iQ hσi σj iP liczymy bezpo±rednio z danych liczymy metod¡ Monte-Carlo M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Tryb odtwarzania wzorca Maszyna Boltzmanna w analizie obrazów Wprowadzenie Algorytm - zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm Gdy sie¢ zostanie ju» nauczona i dla danego wektora wej±¢ chcemy znale¹¢ odpowiadaj¡cy mu wektor wyj±¢, jednostki wej±ciowe ustawiamy zgodnie z warto±ciami wektora wej±ciowego, nast¦pnie je zamra»amy. Pozostaªe jednostki modykujemy zgodnie z dynamik¡ symulowanego wy»arzania. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Hamiltonian Uczenie maszyn Boltzmanna Algorytm Wyniki Maszyna Boltzmanna w analizie obrazów Niech ȳ b¦dzie zaszumionym obrazem, który chcemy odszumi¢ przy pomocy maszyny Boltzmanna. Okre±lamy hamiltonian (funkcj¦ energetyczn¡) H (x̄ |ȳ ) = β Znak ∼ X i ∼j (xi − xj )2 + 1 X 2σ 2 i (xi − yi )2 . oznacza relacj¦ s¡siedztwa pikseli. Pierwszy wyraz hamiltonianu karze za niegªadko±¢ obrazu drugi za± za odlegªo±¢ od danych wej±ciowych (reprezentuj¡cych obraz zaszumiony). M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie S¡siedztwo Uczenie maszyn Boltzmanna Algorytm Wyniki Maszyna Boltzmanna w analizie obrazów Piksel ma za s¡siadów piksele, które stykaj¡ si¦ z nim bokiem. M. Czoków, J. Piersa Piksel ma za s¡siadów piksele, które stykaj¡ si¦ z nim bokiem lub rogiem. WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Likidacja niegªadko±ci Algorytm Wyniki Maszyna Boltzmanna w analizie obrazów Piksel zielony ró»ni si¦ od swoich s¡siadów. W wyniku dziaªania pierwszego wyrazu hamiltonianu zostanie mu przypisany taki kolor, jaki maj¡ jego s¡siedzi. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Hamiltonian Uczenie maszyn Boltzmanna Algorytm Wyniki Maszyna Boltzmanna w analizie obrazów Powy»sza posta¢ hamiltonianu niszczy du»e kontrasty! By temu zapobiedz modykujemy jej pierwszy wyraz: H (x̄ |ȳ ) = β X i ∼j ψ(xi − xj ) + 1 2σ X 2 i (xi − yi )2 , gdzie na przykªad ψ(u ) = 1 −1 , + |u |/σ M. Czoków, J. Piersa ψ(u ) = 1 −1 + (|u |/σ)2 WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Hamiltonian Uczenie maszyn Boltzmanna Algorytm Wyniki Maszyna Boltzmanna w analizie obrazów 1 x*x -1/(1+x) -1/(1+x*x) 0.5 0 -0.5 -1 0 0.2 0.4 M. Czoków, J. Piersa 0.6 0.8 WSN 2010/2011 Wykªad 12 1 Algorytm Metropolisa Symulowane wy»arzanie Hamiltonian Uczenie maszyn Boltzmanna Algorytm Wyniki Maszyna Boltzmanna w analizie obrazów -0.4 -1/(1+x) -1/(1+x/2) -1/(1+x/3) -0.5 -0.6 -0.7 -0.8 -0.9 -1 0 0.2 0.4 0.6 0.8 1 0.4 0.6 0.8 1 -0.4 -1/(1+x*x) -1/(1+x*x/4) -1/(1+x*x/9) -0.5 -0.6 -0.7 -0.8 -0.9 -1 0 0.2 M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Algorytm Symulowane wy»arzanie Wyniki Uczenie maszyn Boltzmanna Algorytm Maszyna Boltzmanna w analizie obrazów zapami¦tujemy wej±ciowy obraz reprezentowaª stan ukªadu ↔ x̄ = ȳ , wktor x̄ b¦dzie b¦dzie podlegaª modykacjom poni»sze kroki wykonujemy wielokrotnie wylosuj piksel do zmiany wylosuj zmian¦ je±li w wyniku zastosowania zmiany zmniejszy si¦ energia, przejd¹ od x̄ do x̄ 0 je±li si¦ nie zmniejszy, to te» przejd¹ ale z prawdopodobie«stwem exp(−(H (x̄ 0 |ȳ ) − H (x̄ |ȳ ))) M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Uwagi do algorytmu Algorytm Wyniki Maszyna Boltzmanna w analizie obrazów parametry σ oraz β s¡ to dodanie staªe, które nale»y dobra¢ eksperymentalnie licz¡c hamiltonian w danej iteracji algorytmu bierzemy pod uwag¦ tylko warto±ci wylosowanego piksela oraz jego s¡siadów mo»na zastosowa¢ symulowane wy»arzanie M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Algorytm Symulowane wy»arzanie Wyniki Uczenie maszyn Boltzmanna Uwagi do algorytmu Maszyna Boltzmanna w analizie obrazów mo»na zastosowa¢ inn¡ posta¢ hamiltonianu np. dla wyrazu karz¡cego niegªadko±¢ obrazu β X i ∼j |xi − xj |, lub dla wyrazu karz¡cego za odlegªo±¢ od danych wej±ciowych 1 X 2σ 2 i M. Czoków, J. Piersa |xi − yi | WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Pierwszy przykªad Algorytm Wyniki Maszyna Boltzmanna w analizie obrazów Obraz oryginalny. Obraz zaszumiony. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Pierwszy przykªad Algorytm Wyniki Maszyna Boltzmanna w analizie obrazów Obraz oryginalny. Obraz odszumiony pierwszy przykªad. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Pierwszy przykªad Algorytm Wyniki Maszyna Boltzmanna w analizie obrazów Obraz oryginalny. Obraz odszumiony drugi przykªad. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Drugi przykªad Algorytm Wyniki Maszyna Boltzmanna w analizie obrazów Obraz orginalny. Obraz zaszumiony. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12 Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Drugi przykªad Algorytm Wyniki Maszyna Boltzmanna w analizie obrazów Obraz orginalny. Obraz odszumiony. M. Czoków, J. Piersa WSN 2010/2011 Wykªad 12