Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p do sieci neuronowych, wykªad 14 Maszyna Boltzmanna
M. Czoków, J. Piersa
Wydziaª Matematyki i Informatyki, Uniwersytet Mikoªaja Kopernika w Toruniu
2012-01-17
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Problemy z sieci¡ Hoplda
Najwi¦ksz¡ przeszkod¡ w osiaganiu przez sieci Hopelda dobrych rozwiaza« zadanych 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.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Nicolas Metropolis (1915-1999)
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 najwi¦kszy wpªyw na rozwój
i praktyk¦ nauki i techniki w XX wieku (wg Computing Science and Engineering)
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Algorytm Metropolisa wersja oryginalna
Mamy dany otwarty ukªad termodynamiczny: Ei energia i-tego stanu.
Problem: znale¹¢ stan o minimalnej energii.
Wykonujemy wielokrotnie: dla danego stanu i-tego wykonujemy statystyczny ruch cz¡stki, otrzymuj¡c stan j-ty. Je»eli
Ej −Ei ≤0, przechodzimy do stanu j-tego bezwarunkowo, w p.p.
przechodzimy do stanu j z prawdopodobie«stwem exp(−(Ej −Ei)
kb·T ),
gdzie kb staªa Boltzmanna, T temperatura bezwzgl¦dna.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Adaptacja algorytmu Metropolisa
Jak dostosowa¢ ten algorytm do dziedziny problemów
optymalizacyjnych? Wystarczy dokona¢ nast¦puj¡cych uto»samie«:
rozwi¡zanie ↔ stan ukªadu termodynamicznego funkcja oceny ↔ energia ukªadu
przeksztaªcenie lokalne ↔ ruch cz¡stki
optimum globalne ↔ stan o minimalnej energii parametr T ↔ temperatura i staªa Boltzmanna
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Maszyna Boltzmanna denicja
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.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Dynamika Glaubera przypomnienie
Dynamika asynchroniczna.
wylosuj neuron σi
je±li spin jest niezgodny z lokalnym polem wypadkowym Mi, zmieniamy go na zgodny z polem wypadkowym Mi
σi =sign(Mi) Przypomnienie pole wypadkowe Mi =P
jwijσj+hi powtarzamy, a» do ustabilizowania si¦ sytuacji
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Maszyna Boltzmanna podstawowe zaªo»enia
Rozwa»my sie¢ rekurencyjn¡ z dynamik¡ asynchroniczn¡ oraz z mechanizmem przej±¢ zgodnym z algorytmem Metropolisa. Przestrze«
konguracji tej sieci stanowi przestrze« stanów ªa«cucha Markowa.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Maszyna Boltzmanna dynamika
wylosuj neuron σi
je±li spin jest niezgodny z lokalnym polem wypadkowym Mi, zmieniamy go na zgodny z polem wypadkowym Mi
σi =sign(Mi)
je±li jest zgodny, zmieniamy go z prawdopodobie«stwem exp(−(E(¯σ0) −E(¯σ))/T ), lub pozostawiamy
z komplementarnym prawdopodobie«stwem Przypomnienie E(¯σ) = −12P
i6=jwijσiσj −P
ihiσi
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Uwagi
Rozwa»my dwie konguracje ¯σ i ¯σ0 ró»ni¡ce si¦ na i-tym miejscu.
Niech ¯σ b¦dzie zgodna z lokalnym polem wypadkowym Mi, a ¯σ0 nie.
Wtedy zachodzi:
E(¯σ0) −E(¯σ) = 2|Mi|.
Zatem: exp(−(E(¯σ0) −E(¯σ))/T ) = exp(−2|Mi|/T ).
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Uwagi
Obie strony równania:
E(¯σ0) −E(¯σ) = 2|Mi| s¡ dodatnie. Zatem 0 < exp(−2|Mi|/T ) < 1.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Uwagi
0.2 0.4 0.6 0.8
1
e
-xAlgorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Algorytmu Metropolisa rola temperatury
Jaka jest rola temperatury w algorytmie Metropolisa?
Rozwa»my funkcj¦ g(x) = e−x/T dla x > 0:
T → +∞, wtedy x/T → 0, wi¦c e−x/T →1 ka»de rozwi¡zanie jest akceptowane,
T → 0, wtedy x/T → +∞, wi¦c e−x/T →0 akceptowane s¡
tylko lepsze rozwi¡zania.
Dobieraj¡c warto±¢ parametru T > 0 ustalamy zakres tolerancji
dla rozwi¡za« o wi¦kszej energii ukªady w stosunku do poprzedniego rozwi¡zania.
Algorytm Metropolisa dobrze jest startowa¢ wiele razy, na ko«cu wybiera si¦ najlepsze rozwi¡zanie; dziaªa to jak wzmacniacz
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Twierdzenie. Rozkªad stacjonarny dla ªa«cucha Markowa zadanego przez stany maszyny Boltzmanna ma posta¢:
P(¯σ) = exp(−E(¯σ)/T ) P
¯
σ0exp(−E(¯σ0)/T ) = exp(−E(¯σ)/T ) Z(T ) , 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.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Dowód stacjonarno±ci
Udowodnijmy stacjonarno±¢ zadanego ªa«cucha Markowa. Niech A i B b¦d¡ dowolnymi stanami nale»¡cymi do tego ªa«cucha. π jest rozkªadem stacjonarnym zadanego ªa«cucha Markowa o macierzy przej±cia P. Wtedy:
PAB p-stwo przej±cia ze stanu A do B w jednym kroku πA p-stwo znalezienia si¦ w stanie A
πA·PAB p-stwo wychodz¡ce z A do B πA· (P
BPAB) = πA p-stwo wychodz¡ce z A PBπBPBA p-stwo wchodz¡ce do A
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Dowód stacjonarno±ci
Twierdzenie. a«cuch jest stacjonarny ⇔ p-stwo wchodz¡ce = p-stwo wychodz¡ce dla ka»dego stanu, czyli:
∀A(X
B
πBPBA= πA· (X
B
PAB) = πA)
Powy»sza równo±¢ zachodzi zawsze, je±li speªniony jest warunek:
∀A,B(πBPBA= πAPAB), poniewa»:
∀A(X
B
πBPBA =X
B
πAPAB).
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Dowód stacjonarno±ci
Poka»emy teraz, »e dla naszego ªa«cucha zachodzi:
∀A,B(πBPBA= πAPAB), czym udowodnimy jego stacjonarno±¢.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Dowód stacjonarno±ci
Rozwa»my dwie konguracje ¯σ i ¯σ0 ró»ni¡ce si¦ na i-tym miejscu.
Niech ¯σ b¦dzie zgodna z lokalnym polem wypadkowym Mi, a ¯σ0 nie.
Wówczas przepªyw z ¯σ0 do ¯σ wynosi P(¯σ0) · 1
N ·1 = exp(−E(¯σ0)/T ) NZ(T ) ,
gdzie N to dªugo±¢ wektora reprezentuj¡cego konguracj¦ sieci.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p Idea algorytmu Maszyna Boltzmanna
Stacjonarno±¢ stanów maszyny Boltzmanna
Dowód stacjonarno±ci
Z drugiej strony, przepªyw z ¯σ do ¯σ0 wynosi:
P(¯σ)·1
N·exp(−2|Mi|/T ) = exp(−E(¯σ)/T ) Z(T )
exp(−(E(¯σ0) −E(¯σ))/T ) N
= exp(−E(¯σ0)/T ) NZ(T )
Zatem przepªyw z ¯σ do ¯σ0 wynosi tyle samo, co przepªyw z ¯σ0 do ¯σ, co ko«czy dowód.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p
Algorytm symulowanego wy»arzania
Motywacja
W procesie minimalizacji energii tak jak na pocz¡tku dziaªania algorytmu dopuszczalne jest chaotyczne zachowanie, które mo»e umo»liwi¢ znalezienie odpowiedniego obszaru przestrzeni
energetycznej (takiej o du»ym spadku, która 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 si¦ dwa popularne algorytmy regulacji temperatury - symulowane wy»arzanie (simulated annealing) i symulowane studzenie (simulated tempering).
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p
Algorytm symulowanego wy»arzania
Wy»arzanie w termodynamice
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.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p
Algorytm symulowanego wy»arzania
Wy»arzanie w termodynamice
W wysokiej temperaturze cz¡steczki cieczy poruszaj¡ si¦
swobodnie, lecz gdy zaczniemy obni»a¢ temperatur¦, cz¡steczki zaczynaj¡ porusza¢ si¦ coraz wolniej tworz¡c stopniowo
uporz¡dkowan¡ struktur¦ krysztaª.
Stan ten cechuj¦ si¦ minimaln¡ mo»liw¡ energi¡ (regularn¡
struktur¡).
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.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p
Algorytm symulowanego wy»arzania
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p
Algorytm symulowanego wy»arzania
Symulowane wy»arzanie
Poª¡czenie dwóch heurystyk:
algorytm Metropolisa schemat chªodzenia
W istocie symulowane wy»arzanie jest to algorytm Metropolisa ze zmienn¡ temperatur¡.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p
Algorytm symulowanego wy»arzania
Dynamika MB z symulowanym wy»arzaniem
przypisz numer bie»¡cej iteracji k = 1 oraz temperatur¦
T = cτ(k), gdzie c jest to dodatni parametr wylosuj neuron σi
je±li spin jest niezgodny z lokalnym polem wypadkowym Mi, zmie« go
σi =sign(X
j
wijσj +hi) je±li jest zgodny, zmie« go z prawdopodobie«stwem exp(−2|Mi|/T )
zwi¦ksz k o jeden oraz zaktualizuj warto±¢ temperatury T = cτ(k)
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p
Algorytm symulowanego wy»arzania
Schematy chªodzenia
schemat logarytmiczny (Boltzmanna): τ(k) = 1/ log k schemat liniowy (Cauchy'ego) τ(k) = 1/k
schemat geometryczny τ(k) = ak, gdzie 0 < 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¡gni¦cia jest porównywalny
z rozmiarem przestrzeni rozwi¡za«
badania empiryczne sugeruj¡, »e najwi¦ksz¡ przydatno±¢
praktyczn¡ ma schemat geometryczny (najszybszy)
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wst¦p
Algorytm symulowanego wy»arzania
-10 -5
0 0
5 -2.5 10
-2 -1.5 -1 -0.5 0
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Problem przeszukiwania przestrzeni
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 energetyczna ma maªe warto±ci.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Problem uczenia maszyn Boltzmanna
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.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Architektura maszyny Boltzmanna
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 β.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Architektura maszyny Boltzmanna
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.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Architektura maszyny Boltzmanna
wyjście
i j wij
{ {
i 0
Maszyna Boltzmanna z dowoln¡ struktur¡
poª¡cze«.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Ograniczona maszyna Boltzmanna
Ograniczona maszyna Boltzmanna jest to wersja maszyny Boltzmanna, w której:
ka»da jednostka, ukryta jest poª¡czona z ka»d¡ jednostk¡
widoczn¡
nie ma poª¡cze« mi¦dzy jednostkami widocznymi nie ma poª¡cze« mi¦dzy jednostkami ukrytymi
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Ograniczona maszyna Boltzmanna
wyjście
i 0
{
Architekturaograniczonej maszyna Boltzmanna.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Architektura maszyny Boltzmanna
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.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Zaªo»enia ogólne
Niech 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
βexp(−Eαβ/T )
Z(T ) ,
gdzie Eαβ jest to energia systemu w konguracji zdeniowanej przez widoczne i ukryte jednostki, natomiast Z(T ) tak jak poprzednio jest to funkcja rozdziaªu.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Denicja
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.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Denicja
Dywergencja Kullbacka-Leiblera dla rozkªadów dyskretnych dana jest wzorem:
DKL(q, p) =X
i
q(i) log2 q(i) p(i)
W powy»szej denicji przyjmuje si¦, »e q reprezentuje dane rzeczywiste, za± p teoretyczny model.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Dywergencja Kullbacka-Leiblera
Naszym celem jest znalezienie takiego zestawu wag, który
minimalizuje rozbie»no±¢ Kullbacka-Lieblera rozkªadów Q(α) i P(α):
DKL(Q(α), P(α)) =X
α
Q(α)logQ(α) P(α).
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Uczenie maszyny Boltzmanna
Uczenie opiera si¦ na metodzie spadku gradientowego. Dla zbioru wzorców ucz¡cych Q(α) poszukujemy wag takich, »e w pewnej temperaturze T aktualny rozkªad P(α) (rozkªad stacjonarny ªa«cucha Markowa generowanego przez kolejne stany maszyny Boltzmanna) pasuje do Q(α) tak bardzo, jak to jest tylko mo»liwe.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Uwagi
Pracujemy w kodowaniu {0, 1} lub {−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 wii.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Uczenie maszyny Boltzmanna
Wagi s¡ modykowane za pomoc¡ wyra»enia:
∆wij = −η∂Dkl
∂wij = −η ∂
∂wij(X
α
Q(α)logQ(α) P(α))
= −ηX
α
(∂Q(α)
∂wij logQ(α)
P(α) +Q(α) ∂
∂wij(logQ(α) P(α)))
= −ηX
α
Q(α)(∂logQ(α)
∂wij −∂logP(α)
∂wij )
= ηX
α
Q(α) 1 P(α)ln2
∂P(α)
∂wij = ηX
α
Q(α) P(α)
∂P(α)
∂wij ,
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Uczenie maszyny Boltzmanna
Prawdopodobie«stwo 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.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Uczenie maszyny Boltzmanna
∆wij = ηX
α
Q(α) P(α)
∂P(α)
∂wij ,
∂P(α)
∂wij = ∂(
P
βe−Eαβ/T Z(T ) )
∂wij
=
∂(P
βe−Eαβ/T)
∂wij Z(T ) −∂(∂Z(T ))wij P
βe−Eαβ/T Z(T )2
=
∂(P
βe−Eαβ/T)
∂wij
Z(T ) −
∂(Z(T ))
∂wij
P
βe−Eαβ/T Z(T )2
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Uczenie maszyny Boltzmanna
=
∂(P
βe−Eαβ/T)
∂wij
Z(T ) −
∂(Z(T ))
∂wij
P
βe−Eαβ/T Z(T )2
= P
βe−Eαβ/T ∂(−E∂wαβij/T )
Z(T ) −
∂(P
αβe−Eαβ/T)
∂wij
P
βe−Eαβ/T Z(T )2
= P
βe−Eαβ/T ∂(−(−12P∂wi,jijwijσiσj))
TZ(T ) −
∂(P
αβe−Eαβ/T)
∂wij
P
βe−Eαβ/T Z(T )2
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Uczenie maszyny Boltzmanna
= P
βe−Eαβ/Tσiσj TZ(T ) − (P
αβe−Eαβ/Tσiσj)(P
βe−Eαβ/T) TZ(T )2
= P
βP(α, β)σiσj
T −(P
αβP(α, β)σiσj)(P
βP(α, β)) T
= 1 T[X
β
σiσjP(α, β) − hσiσjiPP(α)]
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Uczenie maszyny Boltzmanna
Z wyra»e«:
∆wij = ηX
α
Q(α) P(α)
∂P(α)
∂wij ,
∂P(α)
∂wij = 1 T(X
β
σiσjP(α, β) − P(α)hσiσjiP] wynika:
∆wij = η T[X
α
Q(α) P(α)(X
β
σiσjP(α, β) − P(α)hσiσjiP)]
= η T[X
Q(α)P(β|α)σiσj−X
Q(α)hσiσjiP]
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Modykacja wag
∆wij = [hσiσjiQ− hσiσjiP], gdzie:
hσiσjiQ =X
αβ
Q(α)P(β|α)σiσj
hσiσjiP =X
αβ
P(α, β)σiσj
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Obliczanie hσ
iσ
ji
Qmetod¡ Monte-Carlo
hσiσjiQ =X
αβ
Q(α)P(β|α)σiσj
1 hσiσjiQ =0.
2 Dla ka»dego α wykonujemy:
1 Spiny jednostek ukrytych ustawiamy w sposób losowy.
2 Po kolei ustawiamy jednostki widoczne zgodnie z warto±ci¡ α.
3 Jednostki widocznie zamra»amy (w wyniku dynamiki maszyny Boltzmanna swoje spiny mog¡ zmienia¢ tylko jednostki ukryte).
4 Symulujemy dynamik¦ maszyny Boltzmanna.
Próbkujemy σ .
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Obliczanie hσ
iσ
ji
Pmetod¡ Monte-Carlo
hσiσjiP =X
αβ
P(α, β)σiσj
1 hσiσjiP =0.
2 Wykonujemy k-krotnie:
1 Spiny wszystkich jednostek ustawiamy w sposób losowy.
2 Symulujemy dynamik¦ maszyny Boltzmanna.
3 Próbkujemy σiσj.
4 hσiσjiP = hσiσjiP + σiσj.
3 hσiσjiP = 1khσiσjiP.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Modykacja wag
Je±li mamy do czynienia z funkcj¡ bez jednostek ukrytych, wtedy:
∆wij = [hσiσjiQ− hσiσjiP], gdzie:
hσiσjiQ =X
α
Q(α)σiσj
hσiσjiP =X
α
P(α)σiσj
hσiσjiQ liczymy bezpo±rednio z danych
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Wprowadzenie
Algorytm zaªo»enia ogólne Dywergencja Kullbacka-Leiblera Algorytm
Tryb odtwarzania wzorca
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.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Algorytm Wyniki
Specykacja problemu
Niech ¯y = [y1,y2, ...,yn]b¦dzie zaszumionym obrazem, który chcemy odszumi¢ przy pomocy maszyny Boltzmanna.
Niech ¯x = [x1,x2, ...,xn]b¦dzie obrazem reprezentowanym przez bie»¡cy stan sieci.
Przed odszumianiam obrazu przez maszyn¦ Boltzmanna, stany neuronów/jednostek wej±ciowych musz¡ by¢ zdeterminowane przez obraz zaszumiony ¯x = ¯y.
Po zako«czeniu dziaªania maszyny Boltzmana zwracany jest stan
¯x, który reprezentuje obraz odszumiony.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Algorytm Wyniki
Hamiltonian
Okre±lamy hamiltonian (funkcj¦ energetyczn¡):
H(¯x|¯y) = βX
i∼j
(xi−xj)2+ 1 2σ2
X
i
(xi−yi)2.
Znak ∼ 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).
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Algorytm Wyniki
S¡siedztwo
Piksel ma za s¡siadów piksele, Piksel ma za s¡siadów piksele, które stykaj¡ si¦ z nim bokiem lub
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Algorytm Wyniki
Likidacja niegªadko±ci
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.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Algorytm Wyniki
Hamiltonian
Powy»sza posta¢ hamiltonianu niszczy du»e kontrasty! By temu zapobiec modykujemy jej pierwszy wyraz:
H(¯x|¯y) = βX
i∼j
ψ(xi −xj) + 1 2σ2
X
i
(xi −yi)2, gdzie na przykªad:
ψ(u) = −1
1 + |u|/σ, ψ(u) = −1 1 + (|u|/σ)2.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Algorytm Wyniki
Hamiltonian
-1 -0.5 0 0.5 1
0 0.2 0.4 0.6 0.8 1
x*x -1/(1+x) -1/(1+x*x)
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Algorytm Wyniki
Hamiltonian
-0.9 -0.8 -0.7 -0.6 -0.5 -0.4
-1/(1+x*x) -1/(1+x*x/4) -1/(1+x*x/9) -1
-0.9 -0.8 -0.7 -0.6 -0.5 -0.4
0 0.2 0.4 0.6 0.8 1
-1/(1+x) -1/(1+x/2) -1/(1+x/3)
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Algorytm Wyniki
Algorytm
zapami¦tujemy wej±ciowy obraz ¯x = ¯y, wektor ¯x b¦dzie reprezentowaª stan ukªadu ↔ 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 ¯x0
je±li si¦ nie zmniejszy, to te» przejd¹ ale z prawdopodobie«stwem exp(−(H(¯x0|¯y) − H(¯x|¯y)))
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Algorytm Wyniki
Uwagi do algorytmu
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
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Algorytm Wyniki
Uwagi do algorytmu
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 2σ2
X
i
|xi −yi|
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Algorytm Wyniki
Pierwszy przykªad
Obraz oryginalny.
Obraz zaszumiony.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Algorytm Wyniki
Pierwszy przykªad
Obraz oryginalny.
Obraz odszumiony
pierwszy przykªad.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Algorytm Wyniki
Pierwszy przykªad
Obraz oryginalny.
Obraz odszumiony
drugi przykªad.
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Algorytm Wyniki
Drugi przykªad
Algorytm Metropolisa Symulowane wy»arzanie Uczenie maszyn Boltzmanna Maszyna Boltzmanna w analizie obrazów
Algorytm Wyniki