Inteligencja Obliczeniowa Binarne modele pamięci skojarzeniowych Wykład 4 Włodzisław Duch Katedra Informatyki Stosowanej UMK Google: W. Duch (c) 1999. Tralvex Yeap. All Rights Reserved
Neurony logiczne Co już było. SDM, Rozproszona Pamięć Komórkowa CMAC – model móżdżku. RAMnet – sieci n-ek Sieć Hamminga Macierz ucząca się Steinbucha MBR - Memory Based Reasoning. Co będzie dalej. (c) 1999. Tralvex Yeap. All Rights Reserved
Szybka powtórka Modele bezwagowe, korelacyjne, Hebbowskie Pamięć autoasocjacyjna i rozpoznawcza BCM Macierze korelacji. Model BAM. (c) 1999. Tralvex Yeap. All Rights Reserved
SDM, Rozproszona Pamięć Komórkowa SDM, Sparse Distributed Memory (Kanerva 1988). Model statystyczny, inspiracja: pamięć w móżdżku. Jaka jest funkcja neuronu? Neuron biologiczny wykrywa korelacje (t,x). Sygnały z dendrytów definiują hiperpłaszczyzny dyskryminujące. Sygnały z dendrytów działają jako klucze-adresy. (c) 1999. Tralvex Yeap. All Rights Reserved
SDM, cd.1 Uwagi wstępne. Synapsy w niektórych częściach mózgu zmieniają swój stan skokowo – resorpcja kolców dendrytycznych? Powolne i gwałtowne zmiany współistnieją. Neurony początkowo reagują przypadkowo na kombinację pobudzeń. ¾ wszystkich neuronów jest w móżdżku, kodują głównie złożone ruchy, każdy neuron ma 103-105 wejść. Potraktujmy je binarnie. Jak zapisać/odczytać długie ciągi bitów wykorzystując przypadkowe adresy? Nawet 100 bitów daje 2100=1030 możliwości. Mając do dyspozycji 1010 komórek w móżdżku trzeba przypisać każdej hipersferę i notować, czy pojawił się w niej jakiś element, a więc traktować jako znacznik. (c) 1999. Tralvex Yeap. All Rights Reserved
SDM, cd.2 Problem najlepszego wzorca: Dany wektor bitów z, znaleźć najbardziej podobny zapamiętany wektor. Adres neuronu o wagach W = {W0, W1,..Wn-1}, Wi=±1 a = {Q(W0), Q(W1), ... Q(Wn-1)} Neuron o 4 wejściach, wagach W={+1,-1,-1,-1}, a =1000, q =+1, realizuje funkcję: Reaguje na ciągi binarne x o odległości Hamminga d(x,a) q (c) 1999. Tralvex Yeap. All Rights Reserved
SDM, cd.3 Próg q decyduje o promieniu Hamminga (liczbie bitów) wokół a. n duże, 2n stanów, znikomy procent użyty w czasie treningu. N ciągów n-bitów w kuli o promieniu d, funkcja rozkładu N(d). Wektory binarne przypadkowe: średnia odległość do najbliższego wektora dla dużego n wynosi n/2 a wariancja rozkładu średniej odległości n/4. Zakładamy, że każdy bit jest jednakowo prawdopodobny. l bitów o wartości 1 w ciągu n bitów opisany rozkładem dwumiennym Przybliżenie rozkładem Gaussa: max. dla n/2, wąski pik rozkładu (c) 1999. Tralvex Yeap. All Rights Reserved
SDM, cd.4 Sieć neuronów - dekodery adresów, pamiętają prototypy ciągów bitów a, reagując na adresy z hipersfery o promieniu q. „ Pamięć oszczędna”, zamiast 2n komórek tylko adresy zajęte. Czy to wystarczy jako pamięć rozpoznawcza? Nieliczne komórki RAM, adresy fizyczne (hard locations). Np. N'=220 na N=21000 komórek. Adres fizyczny reprezentuje średnio 2980 logicznych. (c) 1999. Tralvex Yeap. All Rights Reserved
SDM, cd. 5 Prawd. rozkładu N(d; x) liczby N ciągów bitów oddalonych o d od x Rozkład dla adresów fizycznych N'(d; x) jest analogiczny. Prawdopodobieństwo p znalezienia ciągu y poza sferą o promieniu d wynosi 1-N(d; x). Dla N' punktów całkowite p = (1-N(d; x))N‘ Prawd. znalezienia jednego z N’ adresów w odległości d: (c) 1999. Tralvex Yeap. All Rights Reserved
SDM, cd. 6 Dla N'=220 oraz n = 1000 98% ciągów bitów ma d(x) pomiędzy 411 do 430 bitów. 1 na 10.000 ma d<400 bitów lub d> 432 bity. Wniosek: najbliższy adres fizyczny może mieć > 40% różnych bitów. Rozwiązanie : rozproszone przechowywanie tego samego ciągu bitów pod wieloma adresami. Ciągi bitów znajdują się pod fizycznymi adresami w O(r,x) o promieniu r wokół x. Zbiór adresów fizycznych O'(r,x)=N'ÇO(r,x) to mała część N'. Np. dla r = 451 bitów to około 1000, czyli N’/1000. Dla O'(r,x), O'(r,y) liczba wspólnych fizycznych adresów maleje eksponencjalnie. Pytanie z, odpowiedź – średnia z otoczenia z. (c) 1999. Tralvex Yeap. All Rights Reserved
SDM, cd. 6 Iteracje: z uśredniane wielokrotnie. Np. zi(1) będzie 0 lub 1 jeśli większość bitów yi = 0 lub 1. Jeśli odległość d(z,x) jest zbyt duża ciąg rozbiega się. Pojemność: c(n) N' L. słów/komórkę pamięci c(n) maleje: 16.5% dla n=102, 10% dla n=103, 7% dla n=104 5% dla n=105. Przepełnienie: SDM zapomina stare wzorce. (c) 1999. Tralvex Yeap. All Rights Reserved
SDM, zastosowania Pamięć rozpoznawcza. Klasyfikacja obiektów. Cmattie (Anwar, Franklin 2000), „świadomy agent programowy”, wg. teorii Baarsa. Realizacje VLSI. Analiza działania móżdżku. Sterowanie? (c) 1999. Tralvex Yeap. All Rights Reserved
CMAC Cerebellar Model Arithmetic Computer (Albus 1971). Model również wzorowany na móżdżku. n-wymiarowa przestrzeń wejściowa X = {x=(x1,...xn)} Przestrzeń asocjacyjna A, zbiory G-wymiarowe. Kwantowanie danych qi = Q(xi) daje numery kwantów qi Segmenty pamięci wirtualnej, vij=V(qi), i=1..n, j=1..G. Konkatenacja segmentów daje adres wirtualny vj=[v1j v2j ... vnj], j=1..G Adres fizyczny RAM: funkcja mieszająca hj=H(vj). (c) 1999. Tralvex Yeap. All Rights Reserved
CMAC - schemat Wynik: suma W(hj) dla j=1..G (c) 1999. Tralvex Yeap. All Rights Reserved
CMAC - działanie Uczenie: pary danych (x,y), odpowiedź sieci C(x) Współczynnik uogólniania G rzędu 10-1000. Zbiory asocjacyjne: topograficznie poprawne rozmywanie danych, lokalne uogólnianie. Zbiory A dla bliskich x mają elementy wspólne. Prezentacja x pobudza element A, komórki RAM, sumuje się wag tych komórek. Zastosowania: aproksymacja, kontrola procesów, np. sterowanie kończynami robota. (c) 1999. Tralvex Yeap. All Rights Reserved
Metoda n-ek A-liczba cech, przeznaczamy n-bitów na cechę, RAMnets, metoda n-ek (1959), rozpoznawanie wzorców. Chociaż stara i nikt jej nie zna to jest prosta i daje dobre wyniki. Główna idea: utwórz M nowych cech. A-liczba cech, przeznaczamy n-bitów na cechę, N – liczba n-ek; Odwzorowanie h: reprezentacja wektora danych X w n-kę X => H(X) = {hk(X), k=1..N}, czyli transformacja danych z A wymiarów do N wymiarów. Sieć: każdy węzeł realizuje funkcję hk(X) Trening: przeczytaj wszystkie wektory X należące do klasy C(X). Przypisz hk(X) klasę, w której która dany podciąg występuje najczęściej. Topograficznie poprawna zamiana x R L (stringi binarne) (c) 1999. Tralvex Yeap. All Rights Reserved
n-ki, sieć. Np. wejście z siatkówki, próbki obrazu z kilku obszarów pozwalają na rozpoznanie całego obiektu. (c) 1999. Tralvex Yeap. All Rights Reserved
Kodowanie Greya Kod binarny Graya: dwa kolejne słowa kodowe różnią się o 1 bit. Można go zastosować dla liczb rzeczywistych o skończonej dokładności Przepis: zrobić XOR(x,x/2), np. w C: gray = x^(x/2) lub gray = x^(x>> 1) Kodowanie Grey’a ma liczne zastosowania; Wiki o kodowaniu Grey’a http://pl.wikipedia.org/wiki/Kod_Graya W Matlabie: http://www.mathworks.com/matlabcentral/fileexchange/8051-dec2gc-m Dla liczby całkowitej I chcemy ciąg a bitów IG=XOR(I,I/2) L(x) = konkatenacja K ciągów Graya, dla (x+j-1)/K, j=1..K L reprezentuje x [0, (2a-1)K] tak, że jeśli |x-y|<K to |L(x)-L(y)|<K Wektor X={xi} zamieniamy na {L(xi)}, długości L=aKA hk(X) wybiera z tego jeden podciąg i daje 1 (obecny) lub 0 (nieobecny). (c) 1999. Tralvex Yeap. All Rights Reserved
n-ki, algorytm. C klas, wybierz z L bitów podciągi, czyli n-ki. Np. 3-kę a=[b3=0,b4=1,b8=1]. To daje nam adres (funkcję n-ki) i jej położenie. Pozycje bitów h348(a)=(3,4,8) i adresie B(a)=[011] określają n-kę. Liczba n-ek N =100-1000 dla klasy. Wszystkie n-ki mogą być o tych samych lub różnych długościach. h przypisuje ciągom L-bitów n-ki, odwzorowanie ustalone w sposób przypadkowy by uniknąć jakiegoś szczególnego sposobu wyboru. Klasyfikator = sieć C N elementów, 1 bit/el (n-ka jest/nie). Klasa C, n-ka i=1..N, o adresie B, bit mCiB =1 oznacza obecność i-tej cechy n-ki z adresem B. Wynik: X => Klasa c=arg max_C Sum (mCiB(X)), Interpretacja: złożony obraz, fragmentaryczne dane, sakady oka. (c) 1999. Tralvex Yeap. All Rights Reserved
n-ki algorytm cd. Trening: zamień X na L(X) porównaj grupę bitów a wybranych z L bitowych ciągów, zawierającą bity o wartościach B(a) na pozycjach A(a), określonych przez odwzorowanie h , z ustalonymi w n-kach bitami. Jeśli bity są zgodne wstaw bit mCiB =1, nie mCiB =0. Klasyfikacja: wybierz klasę, dla której liczba zgodnych cech mCiB =1 z cechami obecnymi w wzorcach danej klasy jest największa. (c) 1999. Tralvex Yeap. All Rights Reserved
n-ki zastosowania. Zalety: bardzo szybkie; niewielka pamięć często daje bardzo dobre wyniki Testy: kodowanie Graya z a=5 i K=8. x skalowane do przedziału [0,248], kodowane na 40 bitach. 1000 n-ek przy n=8 dla każdej klasy. Probabilistyczne sieci pRAM (Gorse, Taylor 1988), uogólnienie n-ek, stochastyczne neurony użyteczne dla neurobiologii. Prawdopodobieństwo pu uzyskania 1 na wyjściu. Neurony impulsujące, po uśrednieniu aktywność pu. pRAM zrobiono w VLSI (256 neuronów, 6 wejść). Liczne zastosowania: wykrywanie obiektów w sygnale wideo, prognozowanie, identyfikacja głosu, OCR, biometria, gra Othello, rozpoznawanie twarzy, kontrolery ... (c) 1999. Tralvex Yeap. All Rights Reserved
Zastosowania - przykłady Iteracje: z uśredniane wielokrotnie. Np. zi(1) będzie 0 lub 1 jeśli większość bitów yi = 0 lub 1. Jeśli odległość d(z,x) jest zbyt duża ciąg rozbiega się. Pojemność: c(n) N' L. słów/komórkę pamięci c(n) maleje: 16.5% dla n=102, 10% dla n=103, 7% dla n=104 5% dla n=105. Przepełnienie: SDM zapomina stare wzorce. (c) 1999. Tralvex Yeap. All Rights Reserved
Inne modele bezwagowe Istnieje wiele wariantów przedstawionych tu metod. Wielką zaleta jest możliwość realizacji sprzętowej. Elementy PLN (Probabilistic Logic Nodes): 2 bity: 0, 1, 0.5=? Łączone w piramidy. m-PLN, elementy PLN o m stanach, kilka odpowiedzi. GSN, Goal Seeking Neurons, pamiętają 0, 1, ? Różne architektury, piramidy, rekurencja. GRAM – generalizing RAM, rozmywanie na poziomie elementów. GNU – General Neural Unit, rekurencyjna architektura z węzłami GRAM. (c) 1999. Tralvex Yeap. All Rights Reserved
Co dalej? Dynamiczne pamięci skojarzeniowe Sieci Hopfielda Sieci Hebbowskie i modele mózgu Perceptrony proste Perceptrony wielowarstwowe (c) 1999. Tralvex Yeap. All Rights Reserved
Koniec wykładu 4 Dobranoc (c) 1999. Tralvex Yeap. All Rights Reserved