• Nie Znaleziono Wyników

1 Powtórzenie — Konstrukcja autoasocjatora Hopfielda

N/A
N/A
Protected

Academic year: 2021

Share "1 Powtórzenie — Konstrukcja autoasocjatora Hopfielda"

Copied!
7
0
0

Pełen tekst

(1)

Wprowadzenie do Sieci Neuronowych — Laboratorium 12 Sieci rekurencyjne

Maja Czoków, Jarosław Piersa 2013-01-09

1 Powtórzenie — Konstrukcja autoasocjatora Hopfielda

1.1 Konstrukcja

Danych jest m obrazów wzorcowych ξ1..ξm, gdzie każdy pojedynczy wzorzec ξµ∈ {−1, +1}n.

Autoasocjator składa się z n (tj. rozmiar pojedynczego wejścia) neuronów połączonych wagami wij

każdy z każdym. Przyjmujemy, że wagi są symetryczne wij = wji oraz waga neuronu z samym sobą jest zerowa wii = 0. Do tego neuron ma przypisane pola zewnętrzne hi. Każdy neuron znajduje się w swoim stanie (spinie) oznaczonym dalej przez σi ∈ −1, +1 (np. +1 — kolor biały, −1 kolor czarny).

Konfigurację całej sieci oznaczmy poprzez ¯σ.

Zdefiniujmy funkcję energetyczną

E(¯σ) = −1 2

X

i6=j

σiσjwij−X

i

hiσi (1)

1.2 Dynamika działania

Obraz wejściowy jest kopiowany do konfiguracji sieci (σ1..σn). Ze startowego ustawienia rozpoczynane jest przeszukiwanie przestrzeni w celu znalezienia rozwiązania minimalizującego E. Przykładowa dynamika asynchroniczna w temperaturze 0:

1. Powtarzaj wielokrotnie:

(a) Wylosuj jednostkę σi;

(b) Jeżeli zmiana spinu (σi:= −σi) zmniejsza energię E to przypisz σi:= −σi

(c) W przeciwnym przypadku nie rób nic

Po ustabilizowaniu się symulacji zwróć uzyskaną konfigurację sieci.

UWAGA Równoważne dla punktów 1b i 1c jest przypisanie σi:= sign(X

j6=i

wij, σj+ hi)

Liczenie energii może być kosztowne. Jeżeli rozważamy autoasocjator graficzny to ilość jednostek n skaluje się kwadratowo z rozmiarem obrazu wejściowego. Ilość wag między neuronami wij jest kwadratowa względem n, czyli ma się jak rozmiar obrazu w potędze 4. Zmiana energii po zmianie neuronu σi zależy tylko od wag w1i, w2i, ..., wniczyli jej przeliczenie ma koszt (tylko) liniowy względem n.

(2)

1.3 Nauka sieci

Działanie sieci wymaga znajomości wag wij ∈ R oraz pól zewnętrznych hi ∈ R. Oznaczmy: ξi — i- ty przykład (czyt. „ksi”), ξj — j-ota współrzędna przykładu ξ, n — wymiar przykładu, m — ilość przykładów.

Postać wag w autoasocjatorze:

wij:= 1 n

m

X

k=1

ξikξkj (2)

Pola zewnętrzne:

hi:= 0 (3)

Zauważmy, że są to zależności zgodne z regułą Hebba, tj. uzyskanie tych samych impulsów zwiększa wagę.

1.4 Dynamika sieci w dodatniej temperaturze

Podana wyżej dynamika nie radzi sobie z minimami lokalnymi. Problem można obejść stosując mechanizm symulowanego wyżarzania. Oznaczmy β ≥ 0 — temperatura odwrotna np.

β = 1 kT gdzie k > 0 stała, T > 0 temperatura.

Dynamika sieci:

1. Powtarzaj wielokrotnie (a) Wylosuj neuron σi

(b) Oblicz zmianę energii ∆E jaką spowodowałaby zamiana spinu neuronu σi na przeciwny (c) Jeżeli ∆E < 0 (energia zmalała) to przyjmij zmianę σi= −σi

(d) W przeciwnym wypadku przyjmij zmianę σi= −σi z prawdopodobieństwem P = exp(−β∆E)

(e) Co pewien czas zmniejsz temperaturę T.

Zauważmy, że dla temperatury T malejącej do 0, temperatura odwrotna β zbiega do nieskończoności, a prawdopodobieństwo przyjęcia zmiany pod górę wykładniczo zanika do 0. Z drugiej strony dla T dużego, β zbiega do 0 a prawdopodobieństwo do jedynki, każda zmiana jest przyjmowana.

2 Zadania

Zadania dotyczą listy piątej (sieci rekurencyjne). Przy implementacji zalecane jest dodanie do dynamiki fluktuacji termicznych.

(3)

2.1 Zadanie — Autoasocjator graficzny

Zaimplementuj autoasocjator Hopfielda dla obrazów binarnych.

Uwagi:

• Rozmiar obrazu może się okazać wąskim gardłem, obraz 100 × 100 pikseli ma 108 wag ×4B (typ float) daje 400MB pamięci!

• Wagi są symetryczne wij = wji, więc przechowanie ich w dynamicznie alokowanej tablicy zmniejsza wymogi pamięciowe o połowę.

• Kodowanie kolorów powinno przyjmować wartości σi= ±1 zamiast {0, 1}.

• W wypadku wprowadzania symulowanego wyżarzania należy rozpocząć symulację z wysokiej war- tości β.

• Wzorce mogą być nieliczne, ale powinny być nieskorelowane ze sobą.

• Mile widziany podgląd wag (przestrzeń wag ma cztery wymiary + wartość wagi daje piąty, monitor ma tylko dwa — zadanie do przemyślenia)

2.2 Autoasocjator lingwistyczny

Zaimplementuj autoasocjator lingwistyczny tj. działający na ciągach liter. Można (wzkazane jest) ogra- niczenie do angielskiego alfabetu i spacji (podkreślenia ) jako końca / początku słowa. Małe i wielkie litery można utożsamiać. Pojedynczy neuron odpowiada za parę znaków występujących obok siebie w zdaniu np: „ala ma kota” otrzymujemy pary ( a), (al), (la), (a ), ( m), (ma), (a ), ( k), (ko), (ot), (ta), (a ). Można rozważać sieć dla trójek liter, ale ponownie należy liczyć się z problemami z pamięcią (27 × 27 × 27 neuronów i tyleż do kwadratu wag). Waga między parami liter wskazuje jak bardzo popu- larne (lub niepopularne w zależności od znaku) są słowa zawierające jednocześnie obie pary. Intuicyjnie para ( y)(gh) powinna być niepopularna, gdyż w polskim języku y nie występuje na początku słowa, podobnie para spółgłosek (gh). Z kolei para (pr)(rz) pochodzić może np. z przedrostków przy-, przez-, przed- ale również słowa „procarz”.

Energię słowa definiujemy np. jako:

E(v1..vn) =X

i<j

wvivi+1wvj,vj+1 (4)

Jak widać nie ma preferencji dot pól zewnętrznych To jest suma popularności (niepopularności w zależności od interpretacji) zawartych w słowie par liter. Popularność będzie maksymalizowana, niepo- pularność minimalizowana.

Dynamika sieci powinna na wejściowym słowie dokonywać losowych niewielkich przekształceń, które mogą doprowadzić do znalezienia lepszego. Punktem wyjścia mogą być najczęściej popełniane błędy podczas pisania:

1. wstawienie losowej litery na losowej pozycji, 2. usunięcie losowej litery,

3. zamiana losowej litery na inną losową (np. pochodzącą z empirycznie uzyskanego rozkładu liter w tekście)

4. zamiana litery z sąsiednią (błąd czeski)

(4)

5. miss-typing: zamiana litery na leżącą niedaleko na klawiaturze np. a → s (szczególny przypadek punktu trzeciego).

Dla ambitnych: sieć lingwistyczna operująca na trójkach, a nie parach liter. Jeden neuron koduje trzy sąsiadujące litery np: „ala ma kota” daje: ( al), (ala), (la ), ( ma), (ma ), ( ko), (kot), (ota), (ta ).

Zalecane jest pominięcie spacji jako środkowej litery tj. (a m).

Uwaga. Przy takim kodowaniu ilość neuronów rośnie z 272do ok. 273, a wag z (272)2/2 na (273)2/2 ' 2 · 108 Z drugiej strony wszystkie wagi wchodzące do neuronu np. (fgs) będą zerowe (chyba, że sieć będzie uczona na losowym tekście), a takich niewykorzystanych neuronów będzie dość dużo. Ilość realnie występujących trójek w tekście nie przekroczy długości tekstu (plus stała) — patrz przykład powyżej.

Zamiast tablicy sześciowymiarowej lepiej będzie skorzystać z np. tablicy hashowanej, czy choćby 273 tablic dynamicznej długości (lista niezerowych wag dla każdego z neuronów).

2.3 Dwupodział grafu

Zastosuj omawiane powyżej mechanizmy do rozwiązywania problemu dwupodziału grafu. Dany niech będzie graf G = (V, E) oraz funkcja wag krawędzi f : E → R+. Należy podzielić graf na dwa równoliczne i rozłączne podzbiory V, U , V ∪ U = W , V ∩ U = ∅, |V | ' |U |, takie że suma wag krawędzi pomiędzy zbiorami jest minimalna

X

u∈U,v∈V :{u,v}∈E

f ({u, v}) → min (5)

Sieć składać się powinna z n = |V | węzłów. Spin σi = +1 można interpretować jako „w danym rozwiązaniu wierzchołek vi ∈ U ”, spin σi= −1 interpretowany jest jako przynależenie vi do W . Postać funkcji energetycznej:

E(σ) = −α1X

i,j

σiσjf ({vi, vj}) + α2 X

i

σi

!2

Funkcja jest sumą ważoną składników:

• optymalizującego tj. opisującego jakość danego rozwiązania (im mniejsza wartość tym lepiej) — porównaj z 5.

• ograniczającego tj. jak bardzo zwrócone rozwiązanie nie spełnia kryteriów problemu. W tym przykładzie jest to różnica w liczebności zbiorów. Bez tego ograniczenia optymalnym rozwiązaniem byłoby U = V, W = ∅ (lub na odwrót), brak krawędzi pomiędzy U i W dawałby minimalną wartość składnika optymalizującego.

Alternatywnie, zależności na wagi

wij = 2 (α1· f ({vi, vj}) − α2) oraz na pola zewnętrzne

hi= 0

Dobór skalarów α1, α2powinien skutkować porównywalną wielkością obu składników. Zbyt małe α1

spowoduje utknięcie w pierwszym podziale z poprawnymi mocami zbiorów U i W . Zbyt małe α2skutkuje przypisaniem wszystkich wierzchołków do jednego zbioru. Dynamika ewolucji przebiega poprzez zmianę losowych spinów na przeciwne, tj losowe przenoszenie wierzchołków pomiędzy zbiorami. Uwaga! bez mechanizmu symulowanego wyżarzania bardzo prawdopodobne jest utknięcie w minimum loklanym.

(5)

Rysunek 1: Zastosowanie sieci do rozwiązywania problemu dwupodziału.

2.4 Kolorowanie grafu

Dla danego grafu planarnego G = (V, E) należy znaleźć kolorowanie wierzchołków, tak aby żadne dwa połączone krawędzią nie miały tych samych kolorów. Jeżeli graf jest planarny to wystarczą cztery kolory (patrz twierdzenie o czterech barwach).

Konstrukcja sieci rozwiązującej problem. Oznaczmy |V | = n. Sieć składa się z 4n jednostek oznaczo- nych σi,k gdzie i = 1..n jest numerem wierzchołka w grafie, naromiast k = 1..4 jest kolorem wierzchołka.

Spin σi,k= +1 oznacza zatem, że węzeł vima przypisany kolor k. UWAGA: w przestrzeni stanów istnieją konfiguracje, w których wierzchołek może mieć więcej niż jeden kolor lub nie mieć koloru w ogóle!

Rysunek 2: Zastosowanie sieci do kolorowania wierzchołków.

(6)

Określamy funkcję energetyczną:

E(σ) = c1·X

i,j

1(vi,vj)∈E

X

k

1σi,k=+1∧σj,k=+1+ c2X

i

(X

k

σi,k− 1)2 (6)

Pierwszy składnik opisuje jakość rozwiązania, penalizuje sytuacje gdzie dwa sąsiadujące wierzchołki mają ten sam kolor. Drugi ze składników daje dodatkową karę gdy wierzchołek jest pokolorowany ilością kolorów inną niż 1.

Dynamika sieci polega na losowych zmianach spinów losowych neuronów (dodawanie / usuwanie koloru z węzła). Opcjonalnie można połączyć dwie operacje jedną zamianę koloru na inny.

Odnośniki Przykładowe grafy do pokolorowania:

• http://mat.gsia.cmu.edu/COLOR/instances.html

• ftp://dimacs.rutgers.edu/pub/challenge/graph/benchmarks/color/

Uwaga: nie wszystkie z nich są planarne, większość dotyczy raczej zagadnienia szacowania liczby kolorów!

Uwaga 2: Alternatywnie można wykorzystać sieć z wagami i polami zewnętrznymi (przeliczenia na wykładzie). Zaletą jest brak konieczności przeliczani funkcji kosztu od zera i bardziej zunifikowana struktura. Wadą jest znaczny wzrost obciążenia pamięciowego.

2.5 Cykl Hammiltona

Dany jest graf pełny G = (V, E) oraz funkcja v : E → R+wag na krawędziach. Graf niepełny można uzu- pełnić do pełnego, ustawiając wysokie wagi na dodanych krawędziach. Należy znaleźć cykl Hammiltona o minimalnej wadze.

Konstrukcja sieci. Sieć liczy n2 jednostek: σij, gdzie i = 1..n jest indeksem kroku na cylku Ham- miltona (cykl liczy n kroków), j = 1..n jest indeksem wierzchołka. Spiny dla uproszczenia rachunków przyjmują wartości +1 oraz 0. Interpretacja σi,j = +1 oznacza odwiedzenie węzła vj w kroku i.

Rysunek 3: Zastosowanie sieci do rozwiązywania problemu cyklu Hammiltona.

Jak poprzednio należy wprowadzić ograniczenia na przyjmowane stany. Każdy wierzchołek powinien być odwiedzony dokładnie jeden raz:

j(X

i

σij− 1) = 0

(7)

W jednym kroku może być odwiedzony dokładnie jeden węzeł

i(X

j

σij− 1) = 0

Ponadto funkcja energetyczna powinna uwzględniać koszt trasy X

i

X

j,k

σi−1,jσi,kf (vi, vk)

Podsumowując:

E(σ) = c1·X

j

(X

i

σij− 1)2+ c1·X

i

(X

j

σij− 1)2+ c2·X

i

X

j,k

σi−1,jσi,kf (vi, vk) (7)

Lepsze podejścia można znaleźć w P. Paretto, An Introduction to the Modelling of Neural Networks, CUP, rozdział 10.2 — Optimization.

Uwaga: Podobnie jak powyżej można wykorzystać sieć z wagami i polami zewnętrznymi dającą bar- dziej zunifikowaną dynamikę, za cenę większej (lub nie — zależnie od sposobu „reprezentacji” wag) złożoności pamięciowej.

Strony internetowe poświęcone TSP (w tym również przykładowe grafy):

• http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/

• http://www.tsp.gatech.edu/

2.6 Inne propozycje zadań

1. symulacja niepokojów społecznych, 2. przydział zadań,

3. ...

Cytaty

Powiązane dokumenty

[r]

[r]

[r]

Welche Waffe eine Befugniß im Sinne des Beschlusses mit dem harmlos klingenden Namen »Verwaltungzwangsverfahren« in der Hand eines übelwollenden Ortsarmenverbandes — man denke doch

227934, Burtan, Ciszewski, Choroszczak, Dereń, Siatka, Kozera, Górniczyk, Siwińska, Szepke, Żerko, Banach, Górecka, Miduch, Kowalczyk, Kenio,. 2:Czerw, Balcerczyk,

Można rozważać sieć dla trójek liter, ale ponownie należy liczyć się z problemami z pamięcią (27 × 27 × 27 neuronów i tyleż do kwadratu wag).. Waga między parami liter

31 Na temat innych możliwych przyczyn odrzucenia traktatu pisze: A. Niño, Política de alianzas…, op.cit., s.. zorganizowano międzynarodową konferencję. Na mocy Traktatu z

Talk to the teachers and you learn that the school has no major discipline problems, there is no bullying and children are rarely absent.. Transcendental meditation and