Wst¦p do sieci neuronowych, wykªad 13 Maszyna Boltzmanna
M. Czoków, J. Piersa
Wydziaª Matematyki i Informatyki, Uniwersytet Mikoªaja Kopernika w Toruniu
2012-01-23
Projekt pn. IKS - Inwestycja w Kierunki Strategiczne na Wydziale Matematyki i Informatyki UMK
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.
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 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.
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
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.
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
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.
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 powtarzamy, a» do ustabilizowania si¦ sytuacji
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 ).
Uwagi
Obie strony równania:
E(¯σ0) −E(¯σ) = 2|Mi| s¡ dodatnie. Zatem 0 < exp(−2|Mi|/T ) < 1.
Uwagi
0 0.2 0.4 0.6 0.8
1
e
-xAlgorytmu 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 prawdopodobie«stwa wylosowania dobrego rozwi¡zania.
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.
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
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).
Dowód stacjonarno±ci
Poka»emy teraz, »e dla naszego ªa«cucha zachodzi:
∀A,B(πBPBA= πAPAB), czym udowodnimy jego stacjonarno±¢.
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.
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.
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).
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.
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.
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¡.
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)
powtarzaj, a» osi¡gniesz temperatur¦ równ¡ lub blisk¡ 0 i stan si¦
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)
-10 -5
0 5
10 -10 -5
0 5 -2.5 10
-2 -1.5 -1 -0.5 0
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.
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.
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 β.
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.
Architektura maszyny Boltzmanna
wyjście
i j wij
{ {
i 0
Maszyna Boltzmanna z dowoln¡ struktur¡
poª¡cze«.
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
Ograniczona maszyna Boltzmanna
wyjście
i 0
{
Architekturaograniczonej maszyna Boltzmanna.
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.
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.
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.
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.
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(α).
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.
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.
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 , gdzie η jest to wspóªczynnik uczenia.
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.
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
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
= P
βe−Eαβ/Tσiσj
− (P
αβe−Eαβ/Tσiσj)(P
βe−Eαβ/T)
2
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(α)]
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]
η i − hσ i
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
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.
5 Próbkujemy σiσj.
6 hσiσjiQ= hσiσjiQ+Q(α)σiσj.
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.
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 hσiσjiP liczymy metod¡ Monte-Carlo
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.