Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
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-12-17
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
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
1 Przypomnienie Sieci Hopfielda
2 Sieci Hopfielda w optymalizacji grafowej Dwupodział grafu
Kolorowanie wierzchołkowe Cykl Hammiltona
Przydział zadań
3 Uwagi
Złożoność pamięciowa Dynamika stochastyczna
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Sieci Hopfielda
1 Przypomnienie Sieci Hopfielda
2 Sieci Hopfielda w optymalizacji grafowej Dwupodział grafu
Kolorowanie wierzchołkowe Cykl Hammiltona
Przydział zadań
3 Uwagi
Złożoność pamięciowa Dynamika stochastyczna
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
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 wij = wji ∈ R, przyjmujemy wii = 0,
jeżeli krawędzi nie ma w grafie, to przyjmujemy w = 0,
ponadto neurony otrzymują swoje pole zewnętrzne hi ∈ R —
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Sieci Hopfielda
Energia sieci
Określmy energię sieci zależną od bieżącej konfiguracji spinów neuronów:
energia
E (¯σ) = −1 2
X
i 6=j
wijσiσj −X
i
hiσi
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Sieci Hopfielda
Dynamika Glaubera
Losujemy neuron σi, Przypisujemy
σi = sign(X
j
wijσj + hi )
Powtarzamy 1 i 2 aż do ustabilizowania się sytuacji.
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Sieci Hopfielda
Dynamika Little’a
Rozpoczynamy z losowego ¯σ0 Powtarzamy wielokrotnie:
Przypisujemy
¯
σt+1:= sign(W · ¯σt+ ¯h)
gdzie W = [wij]i ,j =1..N — macierz wag,
¯h — wektor pól zewnętrznych,
¯
σt — wektor spinów w t-tym kroku.
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
1 Przypomnienie Sieci Hopfielda
2 Sieci Hopfielda w optymalizacji grafowej Dwupodział grafu
Kolorowanie wierzchołkowe Cykl Hammiltona
Przydział zadań
3 Uwagi
Złożoność pamięciowa Dynamika stochastyczna
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Dwupodział Grafu
Problem:
Dany jest graf ważony G = (V, E ), v : E → R≥0. Cel:
Podzielić V na dwa podzbiory V = U1∪ U2, takie że sumaryczna waga krawędzi pomiędzy U1 a U2 będzie minimalna.
Krawędzie w obrębie jednej klasy (z U1 do U1 oraz z U2 do U2) są darmowe.
X
(u,v )∈E:u∈U1,v ∈U2
v ((u, v )) → min
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Dwupodział Grafu
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Konfiguracja sieci
Oznaczenia:
spin neuronu σi = +1:
przynależność do zbioru U1, vi ∈ U1,
spin σi = −1: vi ∈ U2. konfiguracjasigma¯ jednoznacznie odpowiada podziałowi V na dwa podzbiory.
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Składnik optymalizujący:
E1(¯σ) = −X
i 6=j
σiσjv (ij )
Składnik penalizujący:
E2(¯σ) = (|U1| − |U2|)2 = X
i
σi
!2
Pomiń obliczenia
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Składnik optymalizujący:
E1(¯σ) = −X
i 6=j
σiσjv (ij )
Składnik penalizujący:
E2(¯σ) = (|U1| − |U2|)2 = X
i
σi
!2
Pomiń obliczenia
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Energia
E (¯σ) = c1E1+ c2E2
Gdzie c1, c2 > 0 są skalarami. Powinno przy tym zachodzić: c1E1 ' c2E2.
W efekcie:
E (¯σ) = −c1
X
i 6=j
σiσjv (i , j )
+ c2
X
i 6=j
σiσj+X
i
σ2i
ponieważ P
iσi2=P
i1 = const E (¯σ) = −1
2 X
i 6=j
σiσj 2 (c1· v (i , j) − c2)
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Energia
E (¯σ) = c1E1+ c2E2
Gdzie c1, c2 > 0 są skalarami. Powinno przy tym zachodzić:
c1E1 ' c2E2. W efekcie:
E (¯σ) = −c1
X
i 6=j
σiσjv (i , j )
+ c2
X
i 6=j
σiσj+X
i
σ2i
ponieważ P
iσi2=P
i1 = const E (¯σ) = −1
2 X
i 6=j
σiσj 2 (c1· v (i , j) − c2)
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Energia
E (¯σ) = c1E1+ c2E2
Gdzie c1, c2 > 0 są skalarami. Powinno przy tym zachodzić:
c1E1 ' c2E2. W efekcie:
E (¯σ) = −c1
X
i 6=j
σiσjv (i , j )
+ c2
X
i 6=j
σiσj +X
i
σ2i
ponieważ P
iσi2=P
i1 = const E (¯σ) = −1
2 X
i 6=j
σiσj 2 (c1· v (i , j) − c2)
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Energia
E (¯σ) = c1E1+ c2E2
Gdzie c1, c2 > 0 są skalarami. Powinno przy tym zachodzić:
c1E1 ' c2E2. W efekcie:
E (¯σ) = −c1
X
i 6=j
σiσjv (i , j )
+ c2
X
i 6=j
σiσj+X
i
σ2i
ponieważ P
iσi2=P
i1 = const E (¯σ) = −1
2 X
i 6=j
σiσj 2 (c1· v (i , j) − c2)
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Energia
E (¯σ) = c1E1+ c2E2
Gdzie c1, c2 > 0 są skalarami. Powinno przy tym zachodzić:
c1E1 ' c2E2. W efekcie:
E (¯σ) = −c1
X
i 6=j
σiσjv (i , j )
+ c2
X
i 6=j
σiσj+X
i
σ2i
ponieważ P
iσi2=P
i1 = const
E (¯σ) = −1 2
X
i 6=j
σiσj 2 (c1· v (i , j) − c2)
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Energia
E (¯σ) = c1E1+ c2E2
Gdzie c1, c2 > 0 są skalarami. Powinno przy tym zachodzić:
c1E1 ' c2E2. W efekcie:
E (¯σ) = −c1
X
i 6=j
σiσjv (i , j )
+ c2
X
i 6=j
σiσj+X
i
σ2i
ponieważ P
iσi2=P
i1 = const E (¯σ) = −1
2 X
i 6=j
σiσj 2 (c1· v (i , j) − c2)
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Wagi
Otrzymujemy zależności na:
wagi
wij = 2 (c1· v (i , j) − c2)
oraz
pola zewnętrzne
hi = 0
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Kolorowanie wierzchołkowe
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ą:
∀(u,v )∈EF (u) 6= F (v ) Jeżeli graf jest planarny, to k ≤ 4.
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
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.
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Konfiguracja sieci
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Pomiń obliczenia
Oznaczmy
vij =
+1 (i , j ) ∈ E
0 wpw
δαβ =
+1 α = β
0 wpw
Składnik optymalizujący energii: E1(¯σ) = c1
X
i 6=j
X
α,β
vij · σi α· σj β· δαβ
E1(¯σ) = −1 2
X
i ,j ,α,β
−2c1vij · δαβ· σi α· σj β
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Pomiń obliczenia
Oznaczmy
vij =
+1 (i , j ) ∈ E
0 wpw
δαβ =
+1 α = β
0 wpw
Składnik optymalizujący energii: E1(¯σ) = c1
X
i 6=j
X
α,β
vij · σi α· σj β· δαβ
E1(¯σ) = −1 2
X
i ,j ,α,β
−2c1vij · δαβ· σi α· σj β
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Pomiń obliczenia
Oznaczmy
vij =
+1 (i , j ) ∈ E
0 wpw
δαβ =
+1 α = β
0 wpw
Składnik optymalizujący energii: E1(¯σ) = c1
X
i 6=j
X
α,β
vij · σi α· σj β· δαβ
E1(¯σ) = −1 2
X
i ,j ,α,β
−2c1vij · δαβ· σi α· σj β
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Pomiń obliczenia
Oznaczmy
vij =
+1 (i , j ) ∈ E
0 wpw
δαβ =
+1 α = β
0 wpw
Składnik optymalizujący energii:
E1(¯σ) = c1
X
i 6=j
X
α,β
vij · σi α· σj β· δαβ
E1(¯σ) = −1 2
X
i ,j ,α,β
−2c1vij · δαβ· σi α· σj β
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Pomiń obliczenia
Oznaczmy
vij =
+1 (i , j ) ∈ E
0 wpw
δαβ =
+1 α = β
0 wpw
Składnik optymalizujący energii:
E1(¯σ) = c1
X
i 6=j
X
α,β
vij · σi α· σj β· δαβ
E (¯σ) = −1 X
−2c v · δ · σ · σ
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Składnik penalizujący energii:
E2(¯σ) = c2X
i
−1 +X
α
σi α
!2
E2(¯σ) = c2
X
i
1 − 2X
α
σi α+X
α6=β
σi ασi β+ X
α
σ2i α
= c2
N −X
i
X
α
σi α+X
i
X
α6=β
σi ασi β
= c2
N−X
i α
σi α+ X
j
δij
X
i
X
α6=β
σi ασi β
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Składnik penalizujący energii:
E2(¯σ) = c2X
i
−1 +X
α
σi α
!2
E2(¯σ) = c2
X
i
1 −2X
α
σi α+X
α6=β
σi ασi β+ X
α
σ2i α
= c2
N −X
i
X
α
σi α+X
i
X
α6=β
σi ασi β
= c2
N−X
i α
σi α+ X
j
δij
X
i
X
α6=β
σi ασi β
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Składnik penalizujący energii:
E2(¯σ) = c2X
i
−1 +X
α
σi α
!2
E2(¯σ) = c2
X
i
1 − 2X
α
σi α+X
α6=β
σi ασi β+ X
α
σ2i α
= c2
N −X
i
X
α
σi α+X
i
X
α6=β
σi ασi β
= c2
N−X
i α
σi α+ X
j
δij
X
i
X
α6=β
σi ασi β
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Składnik penalizujący energii:
E2(¯σ) = c2X
i
−1 +X
α
σi α
!2
E2(¯σ) = c2
X
i
1 − 2X
α
σi α+X
α6=β
σi ασi β+ X
α
σ2i α
= c2
N −X
i
X
α
σi α+X
i
X
α6=β
σi ασi β
X X XX
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Składnik penalizujący energii:
E2(¯σ) = −c2
2
−2X
i α
σi α+ 2X
ij αβ
δij(1 − δαβ)σi ασi β
E = E1+ E2
E (¯σ) = −1 2
X
i ,j ,α,β
(−2c1vijδαβ − 2c2δij(1 − δαβ))σi ασj β+X
i α
σi αc2
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Składnik penalizujący energii:
E2(¯σ) = −c2
2
−2X
i α
σi α+ 2X
ij αβ
δij(1 − δαβ)σi ασi β
E = E1+ E2
E (¯σ) = −1 2
X
i ,j ,α,β
(−2c1vijδαβ − 2c2δij(1 − δαβ))σi ασj β+X
i α
σi αc2
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Składnik penalizujący energii:
E2(¯σ) = −c2
2
−2X
i α
σi α+ 2X
ij αβ
δij(1 − δαβ)σi ασi β
E = E1+ E2
E (¯σ) = −1 2
X
i ,j ,α,β
(−2c1vijδαβ− 2c2δij(1 − δαβ))σi ασj β+X
i α
σi αc2
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Wagi
Otrzymujemy zależności na:
wagi
wij αβ = −2c1vijδαβ − 2c2δij(1 − δαβ)
oraz
pola zewnętrzne
hi α= c2
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Cykl Hammiltona
Problem:
Dany jest graf ważony G = (V, E ) oraz wagi krawędzi v : V × V → R.
Jeżeli (u1u2) /∈ E, to jej waga jest duża v ((u1u2)) N · maxe∈Ev (e).
Cel:
Chcemy znaleźć kolejność wierzchołków (permutację τ ∈ SN), taką by odwiedzenie wierzchołków w jej kolejności, dało minimalny koszt.
N−1
X
i =1
v ((uτ (i )uτ (i +1))) + v (uτNuτ1) → min
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Konfiguracja sieci
sieć składa się z N2= |V|2 neuronów indeksowanych podwójnym oznaczeniem σi µ,
σi µ= +1 — µ-tym elementem cyklu jest wierzchołek vi, σi µ= 0 — że wierzchołek vi 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.
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Cykl Hammiltona
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Składnik optymalizujący energii:
E1(¯σ) = c1
X
i µ
X
j ν
vij · (δµ,ν−1+ δµ−1,ν) · σi µσj ν
Składnik penalizujący energii:
E2(¯σ) = c2
X
µ
X
i
σi µ− 1
!2
+ c2
X
i
X
µ
σi µ− 1
!2
Pomiń obliczenia
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Składnik optymalizujący energii:
E1(¯σ) = c1
X
i µ
X
j ν
vij · (δµ,ν−1+ δµ−1,ν) · σi µσj ν
Składnik penalizujący energii:
E2(¯σ) = c2
X
µ
X
i
σi µ− 1
!2
+ c2
X
i
X
µ
σi µ− 1
!2
Pomiń obliczenia
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
E2(¯σ) = c2P
µ
P
iσi µ2 +P
i 6=jσi µσj µ− 2P
iσi µ+1 + c2P
i
P
µσi µ2 +P
µ6=νσi µσi ν − 2P
µσi µ+1
E2(¯σ) = c2P
µνδµνP
ij(1 − δij)σi µσj ν− c2P
i µσi µ + c2P
i ,jδijP
µν(1 − δµν)σi µσj ν− c2P
i µσi µ
E2(¯σ) = c2
X
ij µν
(δµν(1 − δij) + δij(1 − δµν)) σi µσj ν− 2c2X
i µ
σi µ
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
E2(¯σ) = c2P
µ
P
iσi µ2 +P
i 6=jσi µσj µ− 2P
iσi µ+1 + c2P
i
P
µσi µ2 +P
µ6=νσi µσi ν − 2P
µσi µ+1
E2(¯σ) = c2P
µνδµνP
ij(1 − δij)σi µσj ν− c2P
i µσi µ + c2P
i ,jδijP
µν(1 − δµν)σi µσj ν− c2P
i µσi µ
E2(¯σ) = c2
X
ij µν
(δµν(1 − δij) + δij(1 − δµν)) σi µσj ν− 2c2X
i µ
σi µ
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
E2(¯σ) = c2P
µ
P
iσi µ2 +P
i 6=jσi µσj µ− 2P
iσi µ+1 + c2P
i
P
µσi µ2 +P
µ6=νσi µσi ν − 2P
µσi µ+1
E2(¯σ) = c2P
µνδµνP
ij(1 − δij)σi µσj ν− c2P
i µσi µ + c2P
i ,jδijP
µν(1 − δµν)σi µσj ν− c2P
i µσi µ
E2(¯σ) = c2
X
ij µν
(δµν(1 − δij) + δij(1 − δµν)) σi µσj ν− 2c2X
i µ
σi µ
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
E2(¯σ) = c2P
µ
P
iσi µ2 +P
i 6=jσi µσj µ− 2P
iσi µ+1 + c2P
i
P
µσi µ2 +P
µ6=νσi µσi ν − 2P
µσi µ+1
E2(¯σ) = c2P
µνδµνP
ij(1 − δij)σi µσj ν− c2P
i µσi µ + c2P
i ,jδijP
µν(1 − δµν)σi µσj ν− c2P
i µσi µ
E2(¯σ) = c2
X
ij µν
(δµν(1 − δij) + δij(1 − δµν)) σi µσj ν− 2c2X
i µ
σi µ
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
E (¯σ) = −1 2
X
ij µν
σi µσj ν· (−c2(δµν(1 − δij) + δij(1 − δµν))−
−c1vij(δµ,ν−1+ δµ−1,ν)) − c2X
i µ
σi µ
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Wagi
Otrzymujemy zależności na:
wagi
wij µν = −c2(δµν(1 − δij) + δij(1 − δµν)) − c1vij(δµ,ν−1+ δµ−1,ν))
oraz na
pola zewnętrzne
hi µ= c2
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Przydział zadań
Problem:
Danych jest N zadań oraz N wykonawców. Koszt wykonania zadania α przez wykonawcę i wynosi vi α, 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 τ ∈ SN):
X
i
vi ,τi → min
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Konfiguracja sieci
sieć liczy N2 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 α,
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Składnik optymalizujący energii:
E1(¯σ) = c1X
i α
vi ασi α
Składnik penalizujący energii:
E2(¯σ) = c2
X
α
X
i
σi α− 1
!2
+ c2
X
i
X
α
σi α− 1
!2
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Składnik optymalizujący energii:
E1(¯σ) = c1X
i α
vi ασi α
Składnik penalizujący energii:
E2(¯σ) = c2
X
α
X
i
σi α− 1
!2
+ c2
X
i
X
α
σi α− 1
!2
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Energia sieci
Po przeliczeniach (analogicznie jak przy cyklu Hammiltona):
E2(¯σ) = c2X
ij αβ
(δαβ(1 − δij) + δij(1 − δαβ)) σi ασj β− 2c2X
i α
σi α
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Dwupodział grafu Kolorowanie wierzchołkowe Cykl Hammiltona Przydział zadań
Wagi
Zależności na:
wagi
wij αβ = −2c2(δαβ(1 − δij) + δij(1 − δαβ))
oraz na
pola zewnętrzne
hi α = 2c2− c1vi α
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Złożoność pamięciowa Dynamika stochastyczna
1 Przypomnienie Sieci Hopfielda
2 Sieci Hopfielda w optymalizacji grafowej Dwupodział grafu
Kolorowanie wierzchołkowe Cykl Hammiltona
Przydział zadań
3 Uwagi
Złożoność pamięciowa Dynamika stochastyczna
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Złożoność pamięciowa Dynamika stochastyczna
Reprezentacja naiwna
int N=100;
float wagi[N][N][N][N];
Niech |V| = N = 100,
Sieć liczy N2 = 104 neuronów,
Ilość krawędzi synaptycznych (N2)2 = 108, Tablica float-ów (4B) — 400MB na sieć...
Wagi są symetryczne wij αβ= wji βα, więc tablice dynamiczne redukują o połowę.
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Złożoność pamięciowa Dynamika stochastyczna
Jak oszczędzić?
Wagi w autoasocjatorze Hopfielda:
wij = −1 N
P
X
µ=1
ξiµξjµ,
PP
µ=1ξµi ξjµ∈ −P, ..., +P,
P N2, więc 1B wystarczy na 127 wzorców,
zamiast tablicy wag przetrzymujemy P N2 tablic z wzorcami uczącymi,
wymaga to PN2= 100 · 10000(·4B) = 4MB (za cenę liczenia
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Złożoność pamięciowa Dynamika stochastyczna
Jak oszczędzić?
Wagi w problemie kolorowania wierzchołków:
wij αβ= −2c1vijδαβ − 2c2δij(1 − δαβ) c1 i c2 są stałe,
δαβ, δij ∈ {0, 1} i można je policzyć w czasie stałym, vij jest jedyną informacją, którą trzeba przechować, tablica (symetryczna) v zajmie N2· 4B = 40kB
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
Złożoność pamięciowa Dynamika stochastyczna
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.
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
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
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
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
Przypomnienie Sieci Hopfielda w optymalizacji grafowej Uwagi
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.