Inteligencja Obliczeniowa Neurony logiczne Wykład 3 Włodzisław Duch Katedra Informatyki Stosowanej, WFAiIS Laboratorium Neurokognitywne ICNT Uniwersytet Mikołaja Kopernika Google: W. Duch (c) 1999. Tralvex Yeap. All Rights Reserved
Szybka powtórka Inspiracje biologiczne Inspiracje, nie modelowanie Rys historyczny Możliwości i cele modelowania Ogólne własności modeli neuronowych Inteligentne zachowania Główne aspekty modeli neuronowych Reguła Hebba Inne reguły adaptacji Neurony progowe Modele synchroniczne i asynchroniczne. Separowalność i możliwości neuronów logicznych.
O czym będzie? BCM, Najprostsza pamięć asocjacyjna Macierze korelacji Zastosowania: pamięć rozpoznawcza BAM, dwukierunkowa pamięć asocjacyjna. Rzut oka na dalsze wykłady
Pamięć autoasocjacyjna Autoasocjacja pozwala na dopełnianie wzorców rozpoznawanie uszkodzonych wzorców Reguła Hebba Wzmacniaj korelacje jednocześnie aktywnych Wystarczą binarne połączenia
Najprostsza pamięć autoasocjacyjna: BCM (Binary Correlation Matrix) Zapamiętaj wektory binarne 110000 i 010001 To samo na wejściu i wyjściu, 6 bitów. Macierz Wij = d(xi xj,1) czyli Wij = xi xj 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1
Macierz korelacji wejść i wyjść po pierwszym prezentowanym wektorze 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 110000
Macierz korelacji wejść i wyjść po drugim wektorze 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 110000 010001
Działanie modelu BCM Czy 010001 znane? Czy 010100 znane? Suma kolumn A = W2 + W6 = 120002 Neuron logiczny Q(A; q=2) = 010001, znane! Czy 010100 znane? Suma kolumn A = W2 + W4 = 110001 Neuron logiczny Q(A; q=2) = 000000, nieznane! Obliczanie aktywacji jest równoważne obliczeniu funkcji progowej Q(W*X - q) Obniżenie progu pozwala na identyfikację „prawie znanych” wektorów, a więc generalizację nauczonych faktów.
Cechy binarnej pamięci autoasocjacyjnej Zdolność do rozpoznawania uszkodzonych wzorców – adresowalność kontekstowa. Czas nie zależy od liczby zapamiętanych wzorców. Uszkodzenie części macierzy połączeń nie prowadzi do zapomnienia konkretnych wzorców - brak lokalizacji. Interferencja (mylenie się) dla podobnych wzorców jest częstsza niż dla wzorców odmiennych. Przepełnienie pamięci (macierzy wag) prowadzi do chaotycznego zachowania.
Wnioski Nawet najprostszy model sieci neuronowej zachowuje się podobnie do pamięci asocjacyjnej człowieka! Sekret inteligencji – połączenia, skojarzenia, rozproszone przetwarzanie + ? Argumenty dualistów – umysł jest tylko odbiornikiem pozaświatowej rzeczywistości – nie mogą być słuszne – skrajnie proste modele dają coś umysłopodobnego.
Przykład zastosowania BCM: pamięć rozpoznawcza. Czy dane słowo istnieje w słowniku? Kodowanie: (litera, pozycja) zamiast bitów na wejściu. 35 liter języka polskiego. Wyraz (l1,l2 ,... lN) => ciąg (000...1...0) Dlaczego nie kod ASCII (7 lub 8 bitów)? Wyrazy do 20 liter, 7 bit.literę, wyraz < 140 bitów. Macierz korelacji 1402 =19600 b = 2450 B= 2.4 KB! Czy można tak zakodować dowolnie duży słownik?
Pamięć rozpoznawcza. Dla zbyt wielu słów i „gęstego kodowania” macierz korelacji ma same 1. p(bi = bj =1) a więc W(i,j)=1. Efekt: każdy wyraz będzie kojarzony z wyrazem złożonym z samych liter o nieistniejącym dla litery alfabetu kodzie 1111111. Dlatego kodowanie w oparciu o 35-bitowe litery ma w stosunku do kodowania binarnego liter pewne zalety.
Pamięć rozpoznawcza - cd. Jeśli W(i,j)=1 to dla ciągu A z n bitów zawsze Q(A; q=n) = 1111111, same znane wyrazy! Kodowanie rzadkie może tego uniknąć. Kod temperaturowy, 35-bitów na literę. Wymiar macierzy W zależy od kodowania. 35 liter, max. 20-liter, 20×35=700. 7002 Bitów < 60 KB, nadal niewiele. Interesujące korelacje: bliskie litery, dla dalszych brak korelacji. Duży słownik: litery (1,5) wszystkie możliwe, więc W(l1,l5)=1
Pamięć rozpoznawcza - cd. Macierz dla sieci po prezentacji 2 wyrazów: aba i cab.
Pamięć rozpoznawcza - cd. Brak informacji w odległych połączeniach – można je usunąć. Ograniczenia topologii sieci: tylko lokalne połączenia, np. liter oddalonych o 3 jednostki. Efekt: blokowa struktura macierzy W.
Pamięć rozpoznawcza - cd. Struktury wyższych rzędów: kombinacje lub fragmenty wyrazów. Najważniejsza jest odpowiednia reprezentacja danych! F. lokalna N(l) = {bi}, znak => ciąg bitów, np. N(l) = (0...1...0) F. nielokalna N(lk;lk-1;lk+1 ...) = {bi}, np. NS(l) = (0, N(l)) dla liter l z podzbioru S NS(l) = (N(l), 0) dla pozostałych liter l. Kodowanie k-literowych kombinacji Wk Możliwości kodowania: od „gęstego” do „rzadkiego”: binarne log2 (Nlit)k do (Nlit)k bitów/k-liter
Pamięć rozpoznawcza - słownik. Używając korelacji par, trójek, fragmentów tworzymy pamięć rozp. Jak najmniejsza macierz korelacji, jak najmniej błędów. Przykład: słownik na macierzy korelacji + generator nowych słów. Pary liter, kodowanie temperaturowe. Wyłapuje literówki, ale „rozpoznaje” nieistniejące wyrazy. argulacać argulachać argulachny argulach argulacja argula argultacja argultacji argultacjonalny argultacjonność argultarzać argultarzały argultarz argultar argultat argultać argultałcać argultałca argultałcencja argultałceniel argultałcenie argultałcent argultał argulta argumeniać argumenia argumenictwo argumeniczać argumeniczny argumeniczy argumenieć argumenie argumenika argumenik argumenić argumeni argumentacja argumentacje argumenta argument argumiadać argumiad argumialenie argumialenio argumialent argumialeć argumialiwić argumializować argumialność
Pamięć rozpoznawcza - szukanie Heteroasocjacja i inne możliwości kodowania: wyraz => alfabetycznie uporządkowany ciąg liter, np. "alfabet - aabeflt" "alfabet - (al)(lf)(fa)(ab)(be)(et)" lub posortowane "alfabet - (ab)(al)(be)(et)(fa)(lf)" Przykład: szukanie zbiorów na dysku. Liczy ile par liter się zgadza i pokazuje nazwy zbiorów przy różnych progach zgodności dopuszczając coraz więcej pomyłek, od najwyższego progu. Np.: NTWIN =>WINNT; PROAMI => AMIPRO
CMM, Correlation Matrix Memory Kohonen 1972, CMM (Correlation Matrix Memory) lub ACMM (AutoCorrelation Matrix Memory). Heteroasocjacja (X(k),Y(k)), np. nazwa <=> obraz. Macierz korelacji: Zapamiętuje asocjacje; dla ortogonalnych Y dostaniemy z obrazu nazwę lub odwrotnie:
CMM cd. CMM można tworzyć iteracyjnie minimalizując błąd: Zmiana wag prop. do błędu i danych wejściowych (reguła delta) Efekty pamięci krótkotrwałej – nowe wzorce są lepiej pamiętane. Dla autoasocjacji chcemy WX(k)= X(k), czyli wektory X to wektory własne macierzy W do wartości wł. =1 X+ to macierz pseudoodwrotna; XX+X=X, X+XX+=X+ X+X i XX+ to macierze Hermitowskie.
BAM: pamięć dwukierunkowa Bi-directional Associative Memory, Kosko 1987 Model pamięci asocjacyjnej: Czas rozpoznania nie powinien zauważalnie rosnąć wraz z liczbą nowych struktur. Struktury lekko zniekształcone powinny być również rozpoznawane jako znane. Obraz X – np. matryca 8x8; nazwa Y – znaki ASCII (ciągi bitów). Algorytm iteracyjny: wzorce binarne 0, 1; wagi pobudzające i hamujące 0, ±1, przy prezentacji wektorów (X,Y) zmiana: DWij(X,Y) = 2d(Xi,Yj)-1
BAM: Tworzenie macierzy wag Przykład: (X1,Y1) =(011101, 1100), (X2,Y2) =(100100, 1010), końcowe W
BAM: odtwarzanie nazwy Przykład: (X1,Y1) =(011101, 1100), (X2,Y2) =(100100, 1010). Q((X1,X2)T W) = (Y1,Y2)
BAM: odtwarzanie obrazu Przykład: (X1,Y1) =(011101, 1100), (X2,Y2) =(100100, 1010). Q(W . (Y1,Y2)) = (X1,X2), ale czasami potrzebne są iteracje.
BAM: algorytm 1. Zeruj W, X, Y 2. Wczytaj X, Y dla kolejnego skojarzenia 3. Uczenie: W(i,j) = W(i,j) - 1 if A(i).xor.B(j) else W(i,j) = W(i,j) + 1 4. Jeśli są jeszcze skojarzenia do nauczenia wróć do p. 2. Odtwarzanie: wczytaj X 6. Iteruj z X do Y: Y(j)=1 jeśli suma X(i)*W(i,j) > 0, w przeciwnym przypadku Y(j)=0 7. Iteruj z Y do X: X(i)=1 jeśli suma Y(j)*W(i,j) > 0, w przeciwnym przypadku Y(i)=0 Powtarzaj 6 i 7 aż ustaną wszelkie zmiany.
Dlaczego BAM działa? Q - funkcja progowa neuronu; wektory o wartościach 0,1 Znany wzorzec na wejściu da: Drugi człon (przesłuch) zwykle jest zwykle mały, dla wektorów ortogonalnych równy zero – wtedy po 1 iteracji mamy zbieżność.
Dlaczego BAM działa? Cd. Można zdefiniować funkcję typu energii: W czasie iteracji funkcja ta musi maleć, osiągając minimum. Niech po prezentacji Y wektor X zmieni się o DX, gdzie DXj = +1 tylko jeśli Ij = (WY)j > 0, lub DXj = -1 tylko jeśli Ij = (WY)j < 0 Zmiana DXj ma ten sam znak co Ij. Pojemność BAM: niewielka, mniej wzorców niż min długości X, Y
Przykłady działania BAM Program BAM: Obrazy: 100 bitów, 10 x 10 elementów, litery, cyfry. Nazwy: 7 bitów Szum dodawany do wag – sprawdza odporność na uszkodzenia. Zbieżność: kilka iteracji. Podobieństwo obrazów lub nazw psuje zapamiętywanie. Czy mogą się pojawić cykle? BAM Demo AMCSL Demo
Skojarzenia Chociaż sieci oparte na korelacjach są najprostszymi biologicznie inspirowanymi modelami mogą opisywać procesy zachodzące w korze. Korelacyjna teoria działania kory Hecht-Nielsena (2003) Tokeny: elementarne ruchy, cechy, sylaby, słowa. Przewidujemy słowo na pozycji 5 znając 4 poprzedzające słowa. Każdemu przypisujemy p(ik|j), a za końcowe j wybieramy max p(j), każde obliczane metodą najsłabszego ogniwa.
Co dalej? Probabilistyczne podstawy uczenia. Sieci Hamminga Perceptrony Perceptrony z dużym marginesem, MLP i ulepszenia wielowarstwowych perceptronów.
Koniec wykładu 3