Wstęp do sieci neuronowych, wykład 12 Wykorzystanie sieci rekurencyjnych w optymalizacji grafowej Maja Czoków, Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-01-09 Projekt pn. Wzmocnienie potencjału dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych realizowany w ramach Poddziałania 4.1.1 Programu Operacyjnego Kapitał Ludzki
1 Sieci Hopfielda 2 3 Złożoność pamięciowa Dynamika stochastyczna
Sieci Hopfielda 1 Sieci Hopfielda 2 3 Złożoność pamięciowa Dynamika stochastyczna
Sieci Hopfielda Model sieci rekurencyjnej każda jednostka ma przypisany swój spin σ i { 1, +1} jest to aktualna aktywacja neuronu i, która może się zmieniać podczas dynamiki, połączenia synaptyczne mają przypisane wagi w ij = w ji R, przyjmujemy w ii = 0, jeżeli krawędzi nie ma w grafie, to przyjmujemy w = 0, ponadto neurony otrzymują swoje pole zewnętrzne h i R podobnie jak wagi są to wartości ustalone w trakcie procesu
Sieci Hopfielda Określmy energię sieci zależną od bieżącej konfiguracji spinów neuronów: energia E( σ) = 1 w ij σ i σ j 2 i i j h i σ i
Sieci Hopfielda Dynamika Glaubera Losujemy neuron σ i, Przypisujemy σ i = sign( j w ij σ j + h i ) Powtarzamy 1 i 2 aż do ustabilizowania się sytuacji.
Dynamika Little a Sieci Hopfielda Rozpoczynamy z losowego σ 0 Powtarzamy wielokrotnie: Przypisujemy σ t+1 := sign(w σ t + h) gdzie W = [w ij ] i,j=1..n macierz wag, h wektor pól zewnętrznych, σ t wektor spinów w t-tym kroku.
1 Sieci Hopfielda 2 3 Złożoność pamięciowa Dynamika stochastyczna
Dwupodział Grafu Problem: Dany jest graf ważony G = (V, E), v : E R 0. Cel: Podzielić V na dwa podzbiory V = U 1 U 2, takie że sumaryczna waga krawędzi pomiędzy U 1 a U 2 będzie minimalna. Krawędzie w obrębie jednej klasy (z U 1 do U 1 oraz z U 2 do U 2 ) są darmowe. (u,v) E:u U 1,v U 2 v((u, v)) min
Dwupodział Grafu
Konfiguracja sieci Oznaczenia: spin neuronu σ i = +1: przynależność do zbioru U 1, v i U 1, spin σ i = 1: v i U 2. konfiguracja sigma jednoznacznie odpowiada podziałowi V na dwa podzbiory.
Składnik optymalizujący: E 1 ( σ) = i j σ i σ j v(ij)
Składnik optymalizujący: E 1 ( σ) = i j σ i σ j v(ij) Składnik penalizujący: ( ) 2 E 2 ( σ) = ( U 1 U 2 ) 2 = σ i i Pomiń obliczenia
Energia E( σ) = c 1 E 1 + c 2 E 2
Energia E( σ) = c 1 E 1 + c 2 E 2 Gdzie c 1, c 2 > 0 są skalarami. Powinno przy tym zachodzić: c 1 E 1 c 2 E 2. W efekcie:
Energia E( σ) = c 1 E 1 + c 2 E 2 Gdzie c 1, c 2 > 0 są skalarami. Powinno przy tym zachodzić: c 1 E 1 c 2 E 2. W efekcie: E( σ) = c 1 σ i σ j v(i, j) + c 2 σ i σ j + i j i j i σ 2 i
Energia E( σ) = c 1 E 1 + c 2 E 2 Gdzie c 1, c 2 > 0 są skalarami. Powinno przy tym zachodzić: c 1 E 1 c 2 E 2. W efekcie: E( σ) = c 1 σ i σ j v(i, j) + c 2 σ i σ j + i j i j i σ 2 i
Energia E( σ) = c 1 E 1 + c 2 E 2 Gdzie c 1, c 2 > 0 są skalarami. Powinno przy tym zachodzić: c 1 E 1 c 2 E 2. W efekcie: E( σ) = c 1 σ i σ j v(i, j) + c 2 σ i σ j + i j i j i σ 2 i ponieważ i σ2 i = i 1 = const
Energia E( σ) = c 1 E 1 + c 2 E 2 Gdzie c 1, c 2 > 0 są skalarami. Powinno przy tym zachodzić: c 1 E 1 c 2 E 2. W efekcie: E( σ) = c 1 σ i σ j v(i, j) + c 2 σ i σ j + i j i j i σ 2 i ponieważ i σ2 i = i 1 = const E( σ) = 1 σ i σ j 2 (c 1 v(i, j) c 2 ) 2 i j
Wagi Otrzymujemy zależności na: wagi w ij = 2 (c 1 v(i, j) c 2 ) oraz pola zewnętrzne h i = 0
Problem: Dany graf G = (V, E) oraz k kolorów {1,.., k}. Cel: Chcemy każdemu z wierzchołków v V przypisać jeden z k kolorów, tak aby sąsiadujące wierzchołki otrzymały różne kolorowania. Tzn. znaleźć funkcję F : V {1,.., k} spełniającą: Jeżeli graf jest planarny, to k 4. (u,v) E F (u) F (v)
Konfiguracja sieci N = k V neuronów, indeksowanych podwójnym oznaczeniem σ iα, i numer wierzchołka w grafie, α numer koloru, σ iα {0, +1}, σ iα = +1 wierzchołek i ma przypisany kolor α, σ iα = 0 wierzchołek i nie ma przypisanego koloru α, konfiguracja dopuszcza przypisanie więcej niż jednego koloru jednocześnie.
Konfiguracja sieci
Pomiń obliczenia
Pomiń obliczenia Oznaczmy v ij = { +1 (i, j) E 0 wpw
Pomiń obliczenia Oznaczmy { +1 (i, j) E v ij = 0 wpw δ αβ = { +1 α = β 0 wpw
Pomiń obliczenia Oznaczmy { +1 (i, j) E v ij = 0 wpw δ αβ = { +1 α = β 0 wpw Składnik optymalizujący energii: E 1 ( σ) = c 1 v ij σ iα σ jβ δ αβ i j α,β
Pomiń obliczenia Oznaczmy { +1 (i, j) E v ij = 0 wpw δ αβ = { +1 α = β 0 wpw Składnik optymalizujący energii: E 1 ( σ) = c 1 v ij σ iα σ jβ δ αβ E 1 ( σ) = 1 2 i j i,j,α,β α,β 2c 1 v ij δ αβ σ iα σ jβ
Składnik penalizujący energii: ( E 2 ( σ) = c 2 1 + α i σ iα ) 2
Składnik penalizujący energii: ( E 2 ( σ) = c 2 1 + ) 2 σ iα i α E 2 ( σ) = c 2 1 2 σ iα + σ iα σ iβ + i α α β α σ 2 iα
Składnik penalizujący energii: ( E 2 ( σ) = c 2 1 + ) 2 σ iα i α E 2 ( σ) = c 2 1 2 σ iα + σ iα σ iβ + i α α β α = c 2 N σ iα + σ iα σ iβ i α i α β σ 2 iα
Składnik penalizujący energii: ( E 2 ( σ) = c 2 1 + ) 2 σ iα i α E 2 ( σ) = c 2 1 2 σ iα + σ iα σ iβ + σ 2 iα i α α β α = c 2 N σ iα + σ iα σ iβ i α i α β = c 2 N σ iα + δ ij σ iα σ iβ iα j i α β
Składnik penalizujący energii: E 2 ( σ) = c 2 2 2 iα σ iα + 2 δ ij (1 δ αβ )σ iα σ iβ ijαβ
Składnik penalizujący energii: E 2 ( σ) = c 2 2 2 iα σ iα + 2 δ ij (1 δ αβ )σ iα σ iβ ijαβ E = E 1 + E 2
Składnik penalizujący energii: E 2 ( σ) = c 2 2 2 iα σ iα + 2 δ ij (1 δ αβ )σ iα σ iβ ijαβ E = E 1 + E 2 E( σ) = 1 2 ( 2c 1 v ij δ αβ 2c 2 δ ij (1 δ αβ ))σ iα σ jβ + iα i,j,α,β σ iα c 2
Wagi Otrzymujemy zależności na: wagi w ijαβ = 2c 1 v ij δ αβ 2c 2 δ ij (1 δ αβ ) oraz pola zewnętrzne h iα = c 2
Problem: Dany jest graf ważony G = (V, E) oraz wagi krawędzi v : V V R. Jeżeli (u 1 u 2 ) / E, to jej waga jest duża v((u 1 u 2 )) N max e E v(e). Cel: Chcemy znaleźć kolejność wierzchołków (permutację τ S N ), taką by odwiedzenie wierzchołków w jej kolejności, dało minimalny koszt. N 1 i=1 v((u τ(i) u τ(i+1) )) + v(u τn u τ1 ) min
Konfiguracja sieci sieć składa się z N 2 = V 2 neuronów indeksowanych podwójnym oznaczeniem σ iµ, σ iµ = +1 µ-tym elementem cyklu jest wierzchołek v i, σ iµ = 0 że wierzchołek v i nie został odwiedzony w kroku µ-tym cyklu, konfiguracja σ dopuszcza sytuacje, w których jakiś wierzchołek może być odwiedzony więcej niż raz, dopuszamy też odwiedzenie dwóch lub więcej wierzchołków na raz.
Składnik optymalizujący energii: E 1 ( σ) = c 1 v ij (δ µ,ν 1 + δ µ 1,ν ) σ iµ σ jν iµ jν
Składnik optymalizujący energii: E 1 ( σ) = c 1 v ij (δ µ,ν 1 + δ µ 1,ν ) σ iµ σ jν iµ jν Składnik penalizujący energii: ( ) 2 ( E 2 ( σ) = c 2 σ iµ 1 + c 2 σ iµ 1 µ i i µ ) 2 Pomiń obliczenia
( E 2 ( σ) = c 2 µ i σ2 iµ + i j σ iµσ jµ 2 ) i σ iµ + 1 ( + c 2 i µ σ2 iµ + µ ν σ iµσ iν 2 ) µ σ iµ + 1
( E 2 ( σ) = c 2 µ i σ2 iµ + i j σ iµσ jµ 2 ) i σ iµ + 1 ( + c 2 i µ σ2 iµ + µ ν σ iµσ iν 2 ) µ σ iµ + 1 E 2 ( σ) = c 2 µν δ µν ij (1 δ ij)σ iµ σ jν c 2 iµ σ iµ + c 2 i,j δ ij µν (1 δ µν)σ iµ σ jν c 2 iµ σ iµ
( E 2 ( σ) = c 2 µ i σ2 iµ + i j σ iµσ jµ 2 ) i σ iµ + 1 ( + c 2 i µ σ2 iµ + µ ν σ iµσ iν 2 ) µ σ iµ + 1 E 2 ( σ) = c 2 µν δ µν ij (1 δ ij)σ iµ σ jν c 2 iµ σ iµ + c 2 i,j δ ij µν (1 δ µν)σ iµ σ jν c 2 iµ σ iµ
( E 2 ( σ) = c 2 µ i σ2 iµ + i j σ iµσ jµ 2 ) i σ iµ + 1 ( + c 2 i µ σ2 iµ + µ ν σ iµσ iν 2 ) µ σ iµ + 1 E 2 ( σ) = c 2 µν δ µν ij (1 δ ij)σ iµ σ jν c 2 iµ σ iµ + c 2 i,j δ ij µν (1 δ µν)σ iµ σ jν c 2 iµ σ iµ E 2 ( σ) = c 2 (δ µν (1 δ ij ) + δ ij (1 δ µν )) σ iµ σ jν 2c 2 ijµν iµ σ iµ
E( σ) = 1 σ iµ σ jν ( c 2 (δ µν (1 δ ij ) + δ ij (1 δ µν )) 2 ijµν c 1 v ij (δ µ,ν 1 + δ µ 1,ν )) c 2 iµ σ iµ
Wagi Otrzymujemy zależności na: wagi w ijµν = c 2 (δ µν (1 δ ij ) + δ ij (1 δ µν )) c 1 v ij (δ µ,ν 1 + δ µ 1,ν )) oraz na pola zewnętrzne h iµ = c 2
Problem: Danych jest N zadań oraz N wykonawców. Koszt wykonania zadania α przez wykonawcę i wynosi v iα, gdzie i, α = 1..N. Cel: Chcemy przyporządkować zadania wykonawcom tak, aby każde zadanie zostało wykonane oraz każdy wykonawca wykonał zadanie. Szukamy najtańszego przydziału (permutacji τ S N ): i v i,τi min
Konfiguracja sieci sieć liczy N 2 neuronów indeksowanych podwójnym oznaczeniem σ iα, i numer pracy, α numer wykonawcy, Niech σ iα {0, +1}, σ iα = +1 zadanie i wykonuje pracownik α, σ iα = 0 zadania i nie wykonuje pracownik α,
Składnik optymalizujący energii: E 1 ( σ) = c 1 v iα σ iα iα
Składnik optymalizujący energii: E 1 ( σ) = c 1 v iα σ iα Składnik penalizujący energii: ( ) 2 ( E 2 ( σ) = c 2 σ iα 1 + c 2 σ iα 1 iα α i i α ) 2
Po przeliczeniach (analogicznie jak przy cyklu Hammiltona): E 2 ( σ) = c 2 (δ αβ (1 δ ij ) + δ ij (1 δ αβ )) σ iα σ jβ 2c 2 ijαβ iα σ iα
Wagi Zależności na: wagi w ijαβ = 2c 2 (δ αβ (1 δ ij ) + δ ij (1 δ αβ )) oraz na pola zewnętrzne h iα = 2c 2 c 1 v iα
Złożoność pamięciowa Dynamika stochastyczna 1 Sieci Hopfielda 2 3 Złożoność pamięciowa Dynamika stochastyczna
Złożoność pamięciowa Dynamika stochastyczna Reprezentacja naiwna int N=100; float wagi[n][n][n][n]; Niech V = N = 100, Sieć liczy N 2 = 10 4 neuronów, Ilość krawędzi synaptycznych (N 2 ) 2 = 10 8, Tablica float-ów (4B) 400MB na sieć... Wagi są symetryczne w ijαβ = w jiβα, więc tablice dynamiczne redukują o połowę.
Złożoność pamięciowa Dynamika stochastyczna Jak oszczędzić? Wagi w autoasocjatorze Hopfielda: w ij = 1 N P ξ µ i ξ µ j, µ=1 P µ=1 ξµ i ξ µ j P,..., +P, P N 2, więc 1B wystarczy na 127 wzorców, zamiast tablicy wag przetrzymujemy P N 2 tablic z wzorcami uczącymi, wymaga to PN 2 = 100 10000( 4B) = 4MB (za cenę liczenia wag za każdym razem).
Złożoność pamięciowa Dynamika stochastyczna Jak oszczędzić? Wagi w problemie kolorowania wierzchołków: w ijαβ = 2c 1 v ij δ αβ 2c 2 δ ij (1 δ αβ ) c 1 i c 2 są stałe, δ αβ, δ ij {0, 1} i można je policzyć w czasie stałym, v ij jest jedyną informacją, którą trzeba przechować, tablica (symetryczna) v zajmie N 2 4B = 40kB
Dynamika stochastyczna Złożoność pamięciowa Dynamika stochastyczna 1 Rozpoczynamy ze startowego lub losowego układu spinów σ, 2 Powtarzamy wielokrotnie: 1 Próbujemy zmienić spin losowo wybranej jednostki, 2 Jeżeli redukuje to energię, to przyjmujemy tą zmianę, 3 Jeżeli zwiększa to energię o E, to przyjmujemy zmianę z prawdopodobieństwem P = exp( β E) i odrzucamy z komplementarnym. β > 0 jest temperaturą odwrotną i rośnie w trakcie dynamiki.
Złożoność pamięciowa Dynamika stochastyczna Ewolucja sieci Hopfielda w wysokiej temperaturze Uwaga. Animacja jest znacznie przyśpieszona i może powodować zmęczenie wzroku! click
Złożoność pamięciowa Dynamika stochastyczna Ewolucja sieci Hopfielda w niskiej temperaturze Uwaga. Animacja jest znacznie przyśpieszona i może powodować zmęczenie wzroku! click
Złożoność pamięciowa Dynamika stochastyczna Zadania Przedstaw sposób kodowania problemu grafowego (dwupodział, kolorowanie, cykl Hammiltona) na konfigurację sieci neuronowej. Zaimplementuj sieć neuronową do rozwiązywania problemu grafowego (jeden z powyższych). Przemodeluj reprezentację, aby sieć mogła pracować na większych danych. Zapoznaj się z zagadnieniem symulowanego wyżarzania (simmulated annealing). Dodaj ten mechanizm do implementacji.