Inteligencja Obliczeniowa Inteligencja Obliczeniowa
Neurony logiczne Neurony logiczne
Wykład 3 Wykład 3
Włodzisław Duch
Katedra Informatyki Stosowanej, WFAiIS Laboratorium Neurokognitywne ICNT
Uniwersytet Mikołaja Kopernika
Google: W. Duch
Szybka powtórka 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?
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 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
( ) ( )
ij i j
W
a t o t
Najprostsza pamięć autoasocjacyjna:
Najprostsza pamięć autoasocjacyjna:
BCM (
BCM ( Binary Correlation Matrix Binary Correlation Matrix ) )
Zapamiętaj wektory binarne 110000 i 010001
To samo na wejściu i wyjściu, 6 bitów.
Macierz
Wij = (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 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
Macierz korelacji wejść i wyjść Macierz korelacji wejść i wyjść
po pierwszym prezentowanym wektorze po pierwszym prezentowanym wektorze
1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
110000
Macierz korelacji wejść i wyjść Macierz korelacji wejść i wyjść
po drugim wektorze po drugim wektorze
1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 1 110000
010001
Działanie modelu BCM Działanie modelu BCM
• Czy 010001 znane?
• Suma kolumn
A = W2 + W6 = 120002
• Neuron logiczny
(A; =2) = 010001, znane!
• Czy 010100 znane?
• Suma kolumn
A = W2 + W4 = 110001
• Neuron logiczny
(A; =2) = 000000, nieznane!
Obliczanie aktywacji jest równoważne obliczeniu funkcji progowej
(WX - )
Obniżenie progu pozwala na identyfikację „prawie znanych”
wektorów, a więc generalizację nauczonych faktów.
Cechy binarnej pamięci autoasocjacyjnej Cechy binarnej pamięci autoasocjacyjnej
1. Zdolność do rozpoznawania uszkodzonych wzorców – adresowalność kontekstowa.
2. Czas nie zależy od liczby zapamiętanych wzorców.
3. Uszkodzenie części macierzy połączeń nie prowadzi do zapomnienia konkretnych wzorców - brak lokalizacji.
4. Interferencja (mylenie się) dla podobnych wzorców jest częstsza niż dla wzorców odmiennych.
5. Przepełnienie pamięci (macierzy wag) prowadzi do chaotycznego zachowania.
Wnioski 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.
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.
Pamięć rozpoznawcza - cd.
Jeśli W(i,j)=1 to dla ciągu A z n bitów zawsze
(A; =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.
Pamięć rozpoznawcza - cd.
Macierz dla sieci po prezentacji 2 wyrazów: aba i cab.
Pamięć rozpoznawcza - cd.
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.
W
x 0 0 0 x 0 0 0 x
x x x x x x x x x x x x
x x x x x x
x 0 0 0 x 0 0 0 x
x x x x x x x x x x x x
x x x x x x
x 0 0 0 x 0 0 0 x
Pamięć rozpoznawcza - cd.
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.
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 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,
CMM, Correlation Matrix Memory 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:
( ) ( ) T
k k
k
W
X Y( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
T
i k k i k ik i i i
k k
WY
X Y Y
X Y X YCMM cd.
CMM cd.
( ) ( )
( ) k ( ) k e n Y W n X
( ) ( )
( )( 1) ( ) k ( ) k k T
W n W n Y W n X X
min
WY WX W YX
CMM można tworzyć iteracyjnie minimalizując błąd:
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+Xi XX+ to macierze Hermitowskie.
Zmiana wag prop. do błędu i danych wejściowych (reguła delta)
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: Wij(X,Y) = 2(Xi,Yj)-1
BAM: Tworzenie macierzy wag BAM: Tworzenie macierzy wag
Przykład:
(X1,Y1) =(011101, 1100), (X2,Y2) =(100100, 1010), końcowe W
1 1 0 0
0 1 1 1 0 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 0 1 0
1 0 0 1 0 0
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
0 2 2 0 0 2 2 0 0 2 2 0
2 0 0 2
2 0 0 2 0 2 2 0
BAM: odtwarzanie nazwy BAM: odtwarzanie nazwy
Przykład:
(X1,Y1) =(011101, 1100), (X2,Y2) =(100100, 1010).
((X1,X2)T W) = (Y1,Y2)
0 1 1 1 0 0 1 0 0 1 0 0
0 2 2 0 0 2 2 0 0 2 2 0
2 0 0 2
2 0 0 2 0 2 2 0
2 4 4 2
2 2 2 2 x 1 1 0 0 1 0 1 0
BAM: odtwarzanie obrazu BAM: odtwarzanie obrazu
Przykład:
(X1,Y1) =(011101, 1100), (X2,Y2) =(100100, 1010).
(W . (Y1,Y2)) = (X1,X2), ale czasami potrzebne są iteracje.
0 2 2 0 0 2 2 0 0 2 2 0
2 0 0 2
2 0 0 2 0 2 2 0
1 1 1 0 0 1 0 0
2 2 2 2 2 2
2 2 2 2 2 2 0 1 1 1 0 1 1 0 0 1 0 0
BAM: algorytm 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?
Dlaczego BAM działa?
- funkcja progowa neuronu; wektory o wartościach 0,1
( ) ( ) ( )
1
; ' ( )
m m
p T
i m
W X Y Y WX
Znany wzorzec na wejściu da:
( ) ( )
( ) ( ) 2 ( )
( ) ( )
( )1
m m m m
p p
T T
k k k k
m m k
Y Y X X X Y Y X X
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.
Dlaczego BAM działa? Cd.
Można zdefiniować funkcję typu energii:
1
( , ) T N ij i j
i
E X Y W X Y
X WY
W czasie iteracji funkcja ta musi maleć, osiągając minimum.
Niech po prezentacji Y wektor X zmieni się o X, gdzie
Xj = +1 tylko jeśli Ij = (WY)j > 0, lub Xj = 1 tylko jeśli Ij = (WY)j < 0 Zmiana Xj ma ten sam znak co Ij.
1
( , ) T N j j 0
i
E X Y X WY X I
Pojemność BAM: niewielka, mniej wzorców niż min długości X, Y
Przykład
Przykład y y działania BAM 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 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?
Co dalej?
• Probabilistyczne podstawy uczenia.
• Sieci Hamminga
• Perceptrony
• Perceptrony z dużym marginesem,
• MLP i ulepszenia wielowarstwowych perceptronów.