Binarne modele pamięci skojarzeniowych

advertisement
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
Download