25
Komputerowe Wspomaganie w Inżynierii Materiałowej Wprowadzenie do sieci rekurencyjnych – sieć Hopfielda

Komputerowe Wspomaganie w Inżynierii M ateriałowej

  • Upload
    hedda

  • View
    50

  • Download
    0

Embed Size (px)

DESCRIPTION

Komputerowe Wspomaganie w Inżynierii M ateriałowej. Wprowadzenie do sieci rekurencyjnych – sieć Hopfielda. Sieci rekurencyjne. Sieci rekurencyjne. - PowerPoint PPT Presentation

Citation preview

Page 1: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Komputerowe Wspomaganie w Inżynierii Materiałowej

Wprowadzenie do sieci rekurencyjnych – sieć Hopfielda

Page 2: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Sieci rekurencyjne

Page 3: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Sieci rekurencyjne

W dotychczas omawianych sieciach nie rozważaliśmy przypadku, w którym sygnał otrzymany na wyjściu trafiał powtórnie na wejścia sieci. Taki obieg sygnału nazywamy sprzężeniem zwrotnym, a sieci w których to występuje nazywamy sieciami rekurencyjnymi. Najbardziej znane sieci rekurencyjne to:

sieć Hopfielda

siec Hamminga

sieć RTRN (ang. Real Time Recurrent Network)

sieć Elmana

sieć BAM (ang. Bidirectional Associative Memory)

Page 4: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Przykład sieci rekurencyjnej

S, f

S, f

S, f

w11

w12

w13

w21

w22

w23

w31

w32

w33

y1

y2

y3

Na rysunku widać jednowarstwową sieć ze sprzężeniem zwrotnym. Widać, że wyjścia z poszczególnych neuronów mogą być także kierowane na wejścia (tych samych jak i innych neuronów). Na rysunku nie zaznaczono sygnałów wejściowych, x1, x2, x3, gdyż są one podawane do sieci tylko raz.

Page 5: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Model sieci Hopfielda (n=3)

S

S

S

w12

w13

w21

w23

w31

w32

y1

y2

y3

-1

1

-1

1

-1

1

Klasyczna sieć Hopfielda nie posiada sprzężenia neuronu z samym sobą, tzn. waga takiego połączenia jest równa zero, wii=0. Dlatego często na rysunkach z tymi sieciami nie jest w ogóle rysowane połączenie i—i.

Page 6: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Klasyczna sieć Hopfielda jest więc siecią jednowarstwową składającą się z neuronów połączonych każdy z każdym z wyjątkiem sprzężenia neuronu samego ze sobą. Poniższe trzy warunki są charakterystyczne dla klasycznej sieci Hopfielda:

0 dla 1, , .iiw i n

2) Wagi tej sieci są symetryczne:

.ij jiw w

Zatem waga łącząca neuron j-ty z i-tym jest taka sama, jak waga łącząca i-ty z j-tym. 3) Funkcje aktywacji w sieci Hopfielda są dwustanowe (np. bipolarna {-1, +1} lub unipolarna {0,+1}).

1)

Page 7: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Sposób funkcjonowania sieci Hopfielda jest odmienny od dotychczas poznanych modeli sieci jednokierunkowych. Po pierwsze uczenie (czyli dobór wag) polega na jednorazowym przypisaniu im odpowiednich wartości (nie trzeba stosować jakichś skomplikowanych procedur jak np. wsteczna propagacja). W trybie odtworzeniowym wagi nie ulegają modyfikacjom, natomiast sygnał wejściowy inicjuje pobudzenie sieci, która dzięki mechanizmowi sprzężenia zwrotnego wielokrotnie przyjmuje na swoje wejście zmodyfikowany sygnał pierwotny, aż do ustabilizowania odpowiedzi.

W trybie odtworzeniowym sygnał wielokrotnie przechodzi przez sieć aż do ustabilizowania się odpowiedzi, tzn. do momentu w którym sygnał nie ulega już dalszej zmianie. Ta ustabilizowana odpowiedź jest przyjmowana jako wynik działania sieci.

Page 8: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Dobieranie wag w sieci Hopfielda

Jedną z metod uczenia sieci Hopfielda jest uogólniona metoda Hebba. Zgodnie z tą regułą wagi definiowane są następująco

( ) ( )

1

0 dla ,1 dla ,

Tij t t

i jt

i jw

x x i jn

gdzie2(1) ( ) ( ), , , ,Tx x x

jest ciągiem wektorów uczących, a n jest liczbą neuronów w sieci. Taki tryb uczenia sprawia, że wagi przyjmują wartości wynikające z uśrednienia wielu próbek uczących.

Niestety ta prosta reguła nie daje zbyt dobrych rezultatów, gdyż pojemność sieci przy takim sposobie uczenia stanowi tylko 13,8% liczby neuronów. Ponadto prowadzi do licznych przekłamań. Dlatego częściej stosuje się metodę pseudoinwersji.

Page 9: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Dobieranie wag w sieci Hopfielda (c.d.)W zapisie macierzowym wzory na wagi wg uogólnionej reguły Hebba można zapisać następująco

1 ,TW X X T In

gdzie I jest macierzą jednostkową (jedynki na przekątnej, poza nią zera), X jest macierzą której kolumnami są wektory ciągu uczącego, XT oznacza transponowanie macierzy X, stała T jest liczbą wektorów uczących).

Jak już wiemy funkcje aktywacji w sieci Hopfielda są dwustanowe. W praktyce używa się funkcji bipolarnej {-1, 1} lub unipolarnej {0, 1}. Podobnie jest z wektorami sygnałów: składają się z współrzędnych bipolarnych lub unipolarnych. Jeżeli stosujemy wektory unipolarne, to uogólniona reguła Hebba (formuła powyżej lub poprzedni slajd) przyjmie postać

( ) ( )

1

0 dla ,1 (2 1)(2 1) dla ,

Tij t t

i jt

i jw

x x i jn

Page 10: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Przykład(regułą Hebba dla sieci Hopfielda)

Dany jest zbiór wektorów (wzorców) kodowanych bipolarnie ({-1,+1})

(1) (2) (3)(1, 1,1,1, 1), ( 1, 1,1,1,1), (1,1,1, 1, 1).x x x

0 1 1 1 3 0 0.2 0.2 0.2 0.61 0 1 3 1 0.2 0 0.2 0.6 0.2

1 .1 1 0 1 1 0.2 0.2 0 0.2 0.25

1 3 1 0 1 0.2 0.6 0.2 0 0.23 1 1 1 0 0.6 0.2 0.2 0.2 0

W

( ) ( )

1

0 dla ,1

lub 1dla ,

T Tij t t

i jt

i jW X X T I w

x x i jnn

Stosując omawiane już wzory na macierz wag

gdzie T=3, n=5 otrzymujemy

Podkreślmy, że uzyskana macierz wag została zbudowana wg uogólnionej reguły Hebba. Dalej pokażemy inny sposób nadawania wag dla sieci Hopfileda

Page 11: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Metoda pseudoinwersji dla sieci Hopfielda

Punktem wyjścia w tej metodzie jest założenie, że przy właściwie dobranych wagach wij każdy wzorzec x(t) z ciągu uczącego podany na wejście generuje na wyjściu samego siebie, prowadząc zatem do natychmiastowego stanu ustalonego. Mamy więc warunek Wx(t)=x(t) co można zapisać tak:

( ) ( )

1

dla 1, , , 1, , .n

t tij j i

j

w x x i n t T

Jeżeli wprowadzimy pomocniczą macierz X, której kolumnami są kolejne wektory uczące

,WX X

gdzie W jest macierzą wag o wymiarach n x n, a X jest macierzą prostokątną o wymiarach n x T.

(1) ( )[ , , ],TX x x

to warunki Wx(t)=x(t) można zapisać w postaci następującego równania macierzowego

Page 12: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Rozwiązanie takiego układu (pamiętajmy, że macierz X jest dana a szukana jest macierz W) jest następującej postaci

,W XX

gdzie X+ oznacza tzw. pseudoinwersję (pseudoodwrotność) macierzy X.Jeżeli wektory uczące

2(1) ( ) ( ), , , Tx x x

są liniowo niezależne, to macierz W może być wyrażona przy pomocy zwykłej odwrotności (nie musimy używać pseudoinwersji):

1( ) .T TW X X X X

Page 13: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

PrzykładUżyjemy sieci Hopfielda do rozpoznawania trzech cyfr: 1, 4 i 7. Cyfry są definiowane na matrycy 3x4:

(1)

2( )

3( )

( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),

( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),

( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1).

x

x

x

Ciąg uczący tworzymy wg kodowania: biały piksel = -1; czarny piksel = +1 ma postać

Page 14: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

(1) ( 2) (3)

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1, ,

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

x x x

1 1 11 1 11 1 11 1 11 1 11 1 1

.1 1 11 1 11 1 11 1 11 1 11 1 1

X

(1)

2( )

3( )

( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),

( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),

( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1).

x

x

x

Wektory kodujące cyfry 1, 4, 7

Wektory zapisane kolumnowo i macierz X zawierająca te wektory jako kolejne kolumny

Page 15: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1

TX X

1

1

12 6 8 0.1607 0.0357 0.0893( ) 6 12 6 0.0357 0.1190 0.0357

8 6 12 0.0893 0.0357 0.1607

TX X

1 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 1

12 6 86 12 6 .8 6 12

Mnożymy macierz transponowaną XT przez macierz X i otrzymujemy macierz kwadratową (wymiaru takiego, jakiego była liczba wektorów uczących – w tym przypadku 3).

Teraz macierz XTX musimy odwrócić (jest to możliwe, gdyż wektory x(1), x(2), x(3) są liniowo niezależne).

Page 16: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

1 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 1

0.1607 0.0357 0.0893 1 1 1 1 1 1 1 1 1 1 1 10.0357 0.1190 0.0357 1 1 1 1 1 1 1 1 1 1 1 10.0893 0.0357 0.1607 1 1 1 1 1 1 1 1 1 1 1 1

1( )T TX X X X

Po wykonaniu mnożeń macierzy uzyskamy ostatecznie macierz wag W=X(XTX)-1XT dla przykładowej sieci. Jest to macierz kwadratowa wymiaru 12x12 (liczba wejść do sieci – w przykładzie jest to związane z liczbą pikseli matrycy).

Page 17: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

0,404762 0,190476 0,02381 0,190476 0,404762 0,02381 -0,02381 -0,02381 0,02381 -0,02381 -0,02381 0,02381

0,190476 0,619048 -0,04762 -0,38095 0,190476 -0,04762 0,047619 0,047619 -0,04762 0,047619 0,047619 -0,04762

0,02381 -0,04762 0,119048 -0,04762 0,02381 0,119048 -0,11905 -0,11905 0,119048 -0,11905 -0,11905 0,119048

0,190476 -0,38095 -0,04762 0,619048 0,190476 -0,04762 0,047619 0,047619 -0,04762 0,047619 0,047619 -0,04762

0,404762 0,190476 0,02381 0,190476 0,404762 0,02381 -0,02381 -0,02381 0,02381 -0,02381 -0,02381 0,02381

0,02381 -0,04762 0,119048 -0,04762 0,02381 0,119048 -0,11905 -0,11905 0,119048 -0,11905 -0,11905 0,119048

-0,02381 0,047619 -0,11905 0,047619 -0,02381 -0,11905 0,119048 0,119048 -0,11905 0,119048 0,119048 -0,11905

-0,02381 0,047619 -0,11905 0,047619 -0,02381 -0,11905 0,119048 0,119048 -0,11905 0,119048 0,119048 -0,11905

0,02381 -0,04762 0,119048 -0,04762 0,02381 0,119048 -0,11905 -0,11905 0,119048 -0,11905 -0,11905 0,119048

-0,02381 0,047619 -0,11905 0,047619 -0,02381 -0,11905 0,119048 0,119048 -0,11905 0,119048 0,119048 -0,11905

-0,02381 0,047619 -0,11905 0,047619 -0,02381 -0,11905 0,119048 0,119048 -0,11905 0,119048 0,119048 -0,11905

0,02381 -0,04762 0,119048 -0,04762 0,02381 0,119048 -0,11905 -0,11905 0,119048 -0,11905 -0,11905 0,119048

1( )T TW X X X X

Page 18: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Przykład (c.d.)Teraz zaszumimy (ang. noise) trzy cyfry: 1, 4 i 7, aby sprawdzić jaka będzie odpowiedź sieci.

(1)

(2)

(3)

( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),

( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),

( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1).

sz

sz

sz

x

x

x

Obrazy kodujemy wg schematu: biały piksel = -1; czarny piksel = +1.

Page 19: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Po kilku iteracjach sieć prawidłowo rozpoznaje cyfrę 1 i cyfrę 4. Natomiast pojawiają się problemy z rozpoznawaniem zaburzonej cyfry 7. W tym przypadku wektor kodujący zaburzoną cyfrę, czyli

(3) ( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),szx

podany na wejście sieci generuje na wyjściu samego siebie. Jest to punkt stały sieci.Oczywiście przykład jest bardzo prosty, gdyż użyliśmy małej matrycy, 3x4. W praktyce musimy stosować większą liczbę pikseli.

Page 20: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Opis działania sieci Hopfielda w trybie odtworzeniowym

01,

( 1) ( ) ,n

i ij j ij j i

s t w y t w

Część liniowa i-tego neuronu w kroku t+1:

Oczywiście wyjście z części sumacyjnej jest jak poddawane dalej działaniu funkcji aktywacji f, więc ostatecznie sygnał wyjściowy jest dany przez

( ) ( ( )),i iy t f s t

Zakładamy, że wszystkie neuronu mają taką samą funkcję aktywacji f(s).

gdzie y(t) jest wartością na wyjściu j-tego neurony w kroku t (tzn. poprzednim).

Page 21: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Wprowadzając jak zwykle pomocniczy sygnał polaryzacji y0(k)=1 dla progu, możemy zapisać powyższe wzory w sposób bardziej zwarty następująco:

0,

( 1) ( ) ,n

i ij jj j i

y t f w y t

gdzie sumowanie zaczyna się od zera, a t=0,1,… (kolejne iteracje pętli pobudzenia).

Ponadto należy jeszcze wprowadzić sygnał wejściowy początkowy, który inicjalizuje pobudzenie sieci. Tak więc mamy

(0) dla 0,1, , ,i iy x i n

przy czym x0=1.

Page 22: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Sieć jest ustabilizowana, jeżeli dla pewnego kroku t zachodzi warunek

( 1) ( ) dla 1, , ,i iy t y t i n

dla każdego neuronu, i=1,…,n.

Oczywiście zachodzi podstawowe pytanie: czy powyższy warunek stabilizacji zostanie osiągnięty? W ogólnym przypadku warunek stabilizacji oznacza, że wartości sygnałów yi(k) dążą (w sensie granicy matematycznej) do jakiejś wartości

lim ( ) ,i iky k y

co sugerowałoby słabszy warunek zakończenia obliczeń, a mianowicie

( 1) ( ).i iy k y k

Page 23: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Okazuje się, że w ogólności taka stabilność nie musi zachodzić dla dowolnej sieci rekurencyjnej. Wszystko zależy od struktury sieci, wartości wag wij oraz od postaci funkcji aktywacji. Także wybór wektorów sygnałów początkowych może mieć wpływ na końcową stabilność.Omawiana sieć Hopfielda z podanymi dwiema metodami uczenia zapewnia stabilizację pobudzonej sieci.Przypomnijmy podstawowe założenia tej sieci rekurencyjnej:

1 gdy 0,( ) sgn( )

1 gdy 0,s

f s ss

,

,0.

T

i i

W Ww

Page 24: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

PrzykładWykorzystamy sieć Hopfielda do zapamiętania i rozpoznawania cyfr 0-9. Wzorcowe cyfry są zdefiniowane na matrycy o wymiarach 7x7 pikseli. Przedstawione są poniżej – zostały ona użyte do uczenia sieci metodą pseudoinwersji. Liczba neuronów sieci jest równa liczbie pikseli matrycy: 7·7=49. W kodowaniu użyto schematu: → (-1), → (+1).

Page 25: Komputerowe Wspomaganie w  Inżynierii  M ateriałowej

Cyfry wzorcowe

WzorceRozpoznane

Pierwszy wiersz – wzorce.Drugi wiersz – przykładowe zaburzone cyfry poprawnie rozpoznane.Trzeci wiersz – przykładowe obrazy, które nie zostały zakwalifikowane do kategorii z pierwszego wiersza. W przypadku cyfry 2 wydaje się to poprawne (mimo, że zaburzenie jest minimalne, ale dla cyfry 4 raczej uznalibyśmy to z błąd sieci.

Wzorce klasyfikowane do innych kategorii

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

                                                                                               `                                                                                                                                                                                                                                                                                                                                                                                                   

                                                                                               `