Sieci rekurecyje Przedmiot: Sieci euroowe i ich zastosowaie Sieci rekurecyje posiadają sprzężeie zwrote, co ma istoty wpływ a ich możliwości uczeia. Mają symulować asocjacyjy charakter ludzkiej pamięci. Najprostszy przykład sieci rekurecyjej to jedowarstwowa sieć Hopfielda.. Sieć Hopfielda Po podaiu owej próbki wejściowej wyliczae jest wyjście i podawae z powrotem a wejście. Wyliczae poowie, proces powtarzay jest dopóki wyjście się ie ustali (ie zmieia się w kolejych iteracjach). Zmiay w wartościach wyjściowych kolejych iteracji ie zawsze skutkują coraz miejszymi zmiaami ich wartości. Przeciwie, mogą prowadzić do chaotyczych zachowań. W takim przypadku, wyjście sieci igdy się ie ustali i sieć jest iestabila. (a) Jedowarstwowa sieć Hopfielda, z euroami (źródło [2]) (b) Bipolara fukcja przejścia Rys. a przedstawia warstwową sieć Hopfielda z euroami. Wyjście każdego eurou jest sprzężoe z wejściami (z wyjątkiem własego, brak samosprzężeia). W sieci stosuje się zazwyczaj euroy ze skokowymi, bipolarymi fukcjami przejścia (rys. b): { + if X Y = if X < Bieżący sta sieci jest określoy przez zestaw wyjść euroów y, y 2,..., y : y y 2 Y =. y Wagi w macierzowej formie: W = Y m Ym T M I, m= gdzie M to liczba staów do zapamiętaia przez sieć, Y m to wymiarowy biary wektor, I macierz idetyczościowa. Jak działa sieć Hopfielda przykład. Załóżmy, że mamy do zapamiętaia dwa stay (,, ) oraz (,, ):. Możemy określić wagi: W = [ ] + Y = ad Y = [ ] 2 = 2 2 2 2 2 2
Po określeiu wag moża przetestować sieć podając wektory wejściowe X oraz X 2 (które są rówoważe wektorom docelowym Y, Y 2 ). Po podaiu wektora wejściowego X oraz obliczeiu aktualego wyjścia Y porówujemy wyik z wektorem wejściowym. W celu uzyskaia wyjścia: Y m = sig(w X m θ), m =, 2,..., M gdzie θ jest wartością progową, w przypadku aszej fukcji przejścia rówą. Dla aszego przykładu, wyjścia sieci: Y = sig 2 2 2 2 = 2 2 oraz Y 2 = sig 2 2 2 2 2 2 = Wszystko się zgadza, obydwa stay możemy określić jako stabile. Jak wygląda sytuacja z pozostałymi staami? Dla sieci złożoej z trzech euroów (o skokowych fukcjach przejścia) możliwych jest osiem staów. W aszym przypadku pozostałe sześć staów jest iestabilych. Natomiast stabile stay (fudametala pamięć powiy przyciągać stay im bliskie. W ramach ćwiczeń obliczeiowych proszę sprawdzić, czy tak jest rzeczywiście, a uzyskae wyiki umieścić w tabeli. Podsumujmy algorytm treigowy sieci Hopfielda.. Zapamiętywaie. Wagi euroowa sieć Hopfielda, wymagaej do zapamiętaia M wzorców: Y, Y 2,..., Y M w formie macierzowej: W = Y m Ym T M I. () Raz obliczoe wagi pozostają stałe. m= 2. Testowaie. W celu potwierdzeia, że sieć prawidłowo odtwarza wszystkie wzorce fudametalej macierzy Y m, które są rówoważe wejściom X m : Y m = sig(w X m θ), m =, 2,..., M. (2) Jeżeli wszystkie wzorce odtwarzae są prawidłowo, możemy przejść do astępego kroku. 3. Odzyskiwaie daych. Zaprezetujmy sieci iezaą próbkę X, w celu uzyskaia stau stabilego. Zazwyczaj, w takim przypadku próbka jest iekompletą bądź uszkodzoą wersją stau z pamięci fudametalej: X Y m dla m =, 2,..., M. Obliczmy odpowiedź sieci dla aszej próbki X(), w iteracji p = : Y() = sig(w X() θ) Obliczoy sygał wyjściowy podajemy z powrotem a wejście sieci i w ramach kolejej iteracji poowie obliczmy wyjście. Porówujemy obydwa wektory Y(p) oraz Y(p+) czyli wyjście uzyskae w bieżącej iteracji z wcześiejszym. Jeżeli obydwa wektory są iezmieioe, ozacza to, że uzyskaliśmy sta stabily. Waruek stabilości: Y(p + ) = sig(w Y(p) θ) Okazuje się, że wprzypadku sieci Hopfielda uzyskay sta stabily iekoieczie musi odpowiadać wzorcowi z fudametalej pamięci, a jeżeli odpowiada to ie musi to być sta ajbliższy badaej próbce testowej. Przykład: Dla sieci zlożoej z pięciu euroów umieść w pamięci fudametalej trzy wzorce: X = (,,,, ) X 2 = (,,,, ) X 3 = (,,,, ) 2
Następie sprawdź reakcję sieci a ową próbkę testową:x = (,,,, ). Jeżeli wcześiej porówamy ową próbkę z aszą pamięcią, to zauważymy, że ajbardziej odpowiada wzorcowi X (różica tylko a jedym bicie). Jakiej odpowiedzi atmiast udzieliła sieć? Przykład wskazuje a problem charakterystyczy dla sieci Hopfielda, o którym już wspomialiśmy (częsty brak zbieżości do abliższego wzorca). Iym problemem jest pojemość pamięci, czyli maksymala liczba wzorców, która może być w iej umieszczoa oraz poprawie odzyskaa. Hopfield wykazał eksperymetalie, że dla euroowej sieci maksymala liczba możliwych wzorców do zapamiętaia wyosi: M max =.5 (3) Geeralie, większość wzorców może być odzyskaa z pamięci o maksymalej pojemości: M max = 2 l Natomiast wszystkie próbki odzyskamy perfekcyje dla pamięci o pojemości zmiejszoej o połowę: M max = 4 l Jak widzimy, pamięć sieci Hopfielda ie jest pojema i ta cecha jest jej główym ograiczeiem. Na rys.. możemy sprawdzić wartości pojemości w zależości od liczby euroów w sieci (od 2 do euroów). Przykładowo, z sieci składającej się ze euroów możemy w sposób perfekcyjy odzyskać maksymalie 5 wzorców (pojemość 5.43). (4) (5) Rysuek : Zależość liczby euroów w sieci Hopfielda od maksymalej pojemości: M max = 4 l Dodatkowo, sieć Hopfielda reprezetuje typ pamięci auto asocjacyjej. Iymi słowy, może odtworzyć uszkodzoy lub iekomplety wzorzec, atomiast ie skojarzy go z ią iformacją. W odróżieiu od ludzkiej pamięci, która jest skojarzeiowa (asocjacyja). Przykładowo, jeda iformacja wyzwala skojarzeie z ią, bądź ciąg skojarzeń. Dlaczego sieć Hopfielda posiada wspomiae ograiczia? Składa się z jedej warstwy euroów. Wzorzec wyjściowy pojawia się a tym samym zbiorze euroów, a którym próbka wejściowa została zastosowaa. W celu skojarzeia jedej pamięci z ią, potrzebujemy sieci rekurecyjej akceptującej wzorzec wejściowy a jedym zbiorze euroów i produkującej skojarzoy wzorzec wyjściowy a iym zbiorze euroów. Potrzebujemy dwuwarstwowej sieci rekurecyjej:dwukierukowej pamięci asocjacyjej bidirectioal associative memory (BAM)..2 BAM Dwukierukowa pamięć asocjacyja (BAM) została zapropoowaa przez B. Kosko. Kojarzy próbki z jedego zbioru: A, z próbkami z iego zbioru: B i odwrotie. Podobie jak sieć Hopfielda, BAM może geeralizować oraz odtwarzać wzorce uszkodzoe bądź iekomplete. Podstawowa architektura przedstawioa jest a rys. 2. Sieć składa się z dwóch, w pełi połączoych warstw: wejściowej oraz wyjściowej. Wektor wejściowy X(p) podaway jest do traspoowaej macierzy wag W T, w celu ustaleia Y(p) (rys. 2(a).) Następie wektor Y(p) 3
Rysuek 2: Architektura sieci BAM: (a) kieruek wprzód, (b) wstecz (źródło [2]) podaway jest wstecz do macierzy wag W dla uzyskaia owego wektora wejściowego Y(p + ). Proces jest powtarzay dopóki wektory wejściowy oraz wyjściowy się ie zmieiają sieć uzyska sta stabily. Podstawową ideą pamięci BAM jest takie zapamiętaie par wzorców, że po zaprezetowaiu -wymiarowego wektora wejściowego X ze zbioru A, sieć odpowie m-wymiarowym wektorem Y ze zbioru B, bądź odwrotie (wektor Y a wejściu skutkuje odpowiedzią X). W celu zapamiętaia par wzorców ależy stworzyć macierz ich korelacji, którą staowi iloczy macierzowy wektora wejść X oraz traspoowaego wektora wyjść Y T. Tak więc macierz wag jest sumą macierzy korelacji wszystkich wzorców: W = X m Ym, T (6) gdzie M jest liczbą próbek do zapamiętaia. Podobie jak sieć Hopfielda, BAM zazwyczaj posiada euroy z bipolarą fukcją aktywacji. Algorytm uczeia sieci BAM. m=. Zapamiętywaie. W pamięci ależy umieścić trzy pary próbek: Wejściowe:X = X 2 = X 3 = Wyjściowe:Y = [ ] [ Y 2 = ] [ Y 3 = W tym przypadku, warstwa wejściowa BAM będzie posiadać trzy euroy, atomiast wyjściowa dwa. Ustalamy macierz wag zgodie z zależością 6: W = 3 X m Ym T m= ]. czyli W = [, ] + [, ] + [, ] = 3 3 3 2. Testowaie. Podając dowoly wektor ze zbioru wejściowego powiiśmy uzyskać odpowiedi wektor wyjściowy: Y m = sig(w T X m ), m =, 2,..., M (7) i odwrotie X m = sig(w Y m ), m =, 2,..., M (8) 4
3. Odtwarzaie. Zaprezetujmy sieci iezaą próbkę i sprawdźmy reakcję. Obliczamy wyjście Y(p) = sig(w T X(p)) dla początkowej iteracji p =.. Aktualizujemy wektor wejściowy: X(p + ) = sig(w Y(p)) procedurę powtarzamy dopóki, w kolejych iteracjach, wektory wejściowy i wyjściowy się ie zmieiają..3 Zadaie do samodzielego wykoaia Ze względu a biary charakter wzorców możliwych do umieszczeia w pamięci BAM (oczywiście przy założeiu skokowych fukcji aktywacji euroów), sprawdźmy możliwości tej sieci w rozpozawaiu zaków prezetowaych, przykładowo w formie moochromatyczych map bitowych.. Zbiór próbek do przechowaia. W tym celu ależy przygotować zbiór zaków. Należy założyć stały rozmiar bitmapy przechowującej pojedyńczy zak oraz wygeerować (przykładowo w programie pait ) wybraą liczbę zaków przykładowo 2 plików. Obliczeia ależy wykoać w formie macierzowej w Matlabie (fukcja do pobraia pliku graficzego imread). Przykładowy zbiór pięciu próbek wejściowych: (a) (b) (c) (d) (e) oraz odpowiedio wektorów wyjściowych: A: Y = [,, ], B: Y 2 = [+, +, +], C: Y 3 = [, +, ], D: Y 4 = [+, +, ], E: Y 5 = [,, +]. 2. Struktura sieci. Przykładowo dla rozmiaru bitmapy 3 3 pikseli, warstwa wejściowa sieci będzie posiadać 69 euroów (rozmiar macierzy bitmapy w formie wektora kolumowego). Liczba euroów w warstwie wyjściowej będzie zależała od długości wektora wyjściowego, będącego kodem daego zaku (w aszym przykładzie 3 euroy). 3. Zapis oraz odtwarzaie. Przygotoway zbiór próbek ależy umieścić w pamięci. Sprawdzić możliwości odtwarzaia zapisaych zaków. Jeżeli wszystkie zaki odtwarzae są prawidłowo, przystępujemy do astępego kroku. 4. Weryfikacja. Najciekawsza część weryfikacja możliwości odtwarzaia przez pamięć wzorców uszkodzoych, iekompletych. W tym celu ależy przygotować zbiór testujący. Przykładowo zapisae w pamięci wzorce moża częściowo zdekompletować, bądź obciążyć szumem. 5. Przeprowadzoe eksperymety obiczeiowe ależy zdokumetować w postaci sprawozdaia. Literatura [] Mark H. Beale Marti T. Haga, Howard B. Demuth. Neural Network Desig. ISBN: -97732--8. [2] M. Negevitsky. Artificial Itelligece. A Guide to Itelliget Systems. Secod Editio. Addiso Wesley, 25. [3] Osowski S. Sieci euroowe do przetwarzaia iformacji. Oficya Wydawicza Politechiki Warszawskiej, 26. 5