Inteligencja Obliczeniowa Binarne modele pamięci skojarzeniowych Wykład 4 Włodzisław Duch Katedra Informatyki Stosowanej UMK Google: W. Duch Neurony logiczne • Co już było. • Sieć Hamminga • SDM, Rozproszona Pamięć • Macierz ucząca się Steinbucha Komórkowa • MBR - Memory Based • CMAC – model móżdżku. Reasoning. • RAMnet – sieci n-ek • Co będzie dalej. Szybka powtórka • Modele bezwagowe, korelacyjne, Hebbowskie • Pamięć autoasocjacyjna i rozpoznawcza BCM • Macierze korelacji. • Model BAM. 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). 1. Sygnały z dendrytów definiują hiperpłaszczyzny dyskryminujące. W x 0 i i i 2. Sygnały z dendrytów działają jako klucze-adresy. 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. 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, =+1, realizuje funkcję: u( x ) Q( x0 x1 x2 x3 ) Reaguje na ciągi binarne x o odległości Hamminga d(x,a) SDM, cd.3 Próg 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. n n 1 1 N l ; n, 2 l 2 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 n/2 n/4 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 . „ 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. SDM, cd. 5 Prawd. rozkładu N(d; x) liczby N ciągów bitów oddalonych o d od x N (d ) Pr d ( x, y ) d | x, y N 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: N '(d ) 1 1 N ( d ) N' 1 1 N ' N (d ) / N ' 1 e N ' N ( d ) N' 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. 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% 10% 7% 5% dla n=102, dla n=103, dla n=104 dla n=105. Przepełnienie: SDM zapomina stare wzorce. 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? 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). CMAC - schemat X A x W 1 v x 2 x 3 Przestrzeń wejściowa v ij Przestrzeń asocjacji, G=3 Wynik: suma W(hj) dla j=1..G Pamięć fizyczna CMAC - działanie Uczenie: pary danych (x,y), odpowiedź sieci C(x) Wi Wi + y C( x) / G • • • • • 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. Metoda n-ek 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 : 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) n-ki, sieć. bity cech +1 b 1 {x} b 2 .... wykrywa (1,0,1) -1 +1 Klasa C1 b L L bitów Klasa C2 Np. wejście z siatkówki, próbki obrazu z kilku obszarów pozwalają na rozpoznanie całego obiektu. 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). 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. 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. 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 , 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. 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 ... 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% 10% 7% 5% dla n=102, dla n=103, dla n=104 dla n=105. Przepełnienie: SDM zapomina stare wzorce. 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. Co dalej? • Dynamiczne pamięci skojarzeniowe • Perceptrony proste • Perceptrony wielowarstwowe • Sieci Hopfielda • Sieci Hebbowskie i modele mózgu Koniec wykładu 4 Dobranoc