260 likes | 481 Views
Inteligencja Obliczeniowa Binarne modele pamięci skojarzeniowych. Wykład 4 Włodzisław Duch Katedra Informatyki Stosowanej UMK Google: W. Duch. 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
E N D
Inteligencja ObliczeniowaBinarne modele pamięci skojarzeniowych Wykład 4 Włodzisław Duch Katedra Informatyki Stosowanej UMK Google: W. Duch
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. Neurony logiczne
Modele bezwagowe, korelacyjne, Hebbowskie Pamięć autoasocjacyjna i rozpoznawcza BCM Macierze korelacji. Model BAM. Szybka powtórka
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.
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, q =+1, realizuje funkcję: Reaguje na ciągi binarne x o odległości Hamminga d(x,a) q
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. Nciągów n-bitów w kuli o promieniu d,funkcjarozkładuN(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ścin/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
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órkiRAM, adresy fizyczne (hard locations). Np. N'=220 na N=21000 komórek. Adresfizycznyreprezentuje średnio 2980 logicznych.
SDM, cd. 5 Prawd. rozkładuN(d; x)liczby N ciągów bitów oddalonych o d od x Rozkładdla adresów fizycznych N'(d; x) jest analogiczny. Prawdopodobieństwo p znalezieniacią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:
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ło1000, czyli N’/1000. Dla O'(r,x), O'(r,y) liczba wspólnych fizycznych adresów maleje eksponencjalnie. Pytaniez,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% dla n=102, 10% dla n=103, 7% dla n=104 5% 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 wirtualnyvj=[v1j v2j ... vnj], j=1..G • Adres fizyczny RAM: funkcja mieszająca hj=H(vj).
CMAC - schemat Wynik: suma W(hj) dla j=1..G
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.
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 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)
n-ki, sieć. 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)= konkatenacjaKciągów Graya, dla (x+j-1)/K, j=1..K L reprezentuje x[0, (2a-1)K] tak, że jeśli |x-y|<Kto |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 zL 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-ekN =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=argmax_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ściachB(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.
n-ki zastosowania. Zalety: • bardzo szybkie; niewielka pamięć • często daje bardzo dobre wyniki Testy: kodowanie Graya za=5 i K=8. xskalowane do przedziału [0,248], kodowane na 40 bitach. 1000 n-ekprzy n=8 dla każdej klasy. Probabilistyczne sieci pRAM (Gorse, Taylor 1988), uogólnienie n-ek, stochastyczne neurony użyteczne dla neurobiologii. Prawdopodobieństwo puuzyskania 1 na wyjściu. Neurony impulsujące, po uśrednieniuaktywnośćpu. pRAM zrobiono w VLSI (256 neuronów, 6 wejść). Liczne zastosowania: wykrywanie obiektów w sygnale wideo, prognozowanie, identyfikacjagł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% dla n=102, 10% dla n=103, 7% dla n=104 5% dla n=105. Przepełnienie: SDM zapomina stare wzorce.
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. Inne modele bezwagowe
Dynamiczne pamięci skojarzeniowe Sieci Hopfielda Sieci Hebbowskie i modele mózgu Perceptrony proste Perceptrony wielowarstwowe Co dalej?
Koniec wykładu 4 Dobranoc