Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa. Maja Czoków, Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2011-10-11
1 Modelowanie funkcji logicznych za pomocą perceptronu Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania 2 Problem Algorytm Przykład 3 Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera
Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania 1 Modelowanie funkcji logicznych za pomocą perceptronu Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania 2 Problem Algorytm Przykład 3 Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera
Perceptron z biasem Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania out
Perceptron z biasem Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania n wejść x 1,..., x n, n + 1 wag w 0, w 1,..., x n, przyjmuje się dodatkowe, zawsze włączone n + 1-sze wejście x 0 = +1 zwracana wartość { 1 [1, xi ]w O(x 1,..., x n ) = t = n i=0 w ix i < 0 +1 [1, x i ]w t = n i=0 w ix i 0,
Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania Algorytm uczenia z kieszenią i zapadką Pocket Learning Algorithm with Ratchet Idea: Zmieniamy wagi przy źle klasyfikowanym przykładzie, Zapamiętujemy rekordowe wagi, Przed zapomnieniem poprzedniego zestawu wag sprawdzamy, czy nowy zestaw klasyfikuje poprawnie więcej przykładów, Po zakończeniu algorytmu zwracany jest rekordowy zestaw, (E (i), T (i) ) przykład uczący i odpowiadająca mu poprawna odpowiedź.
Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania Algorytm uczenia z kieszenią i zapadką 1 Losujemy wagi i próg wokół 0, przypisujemy układowi wag zerowy czas życia i zapisujemy go jako rekordzistę, 2 Przebiegamy przykłady losując z listy, oznaczmy go E j, 3 Sprawdzamy czy E j jest dobrze klasyfikowany (ERR = T j O), Jeśli tak, zwiększamy mu czas życia o jeden. Jeżeli jest to wynik lepszy niż u rekordzisty i klasyfikuje on więcej przykładów niż rekordzista, to zapominamy starego rekordzistę i zapisujemy nowy układ wag. Wracamy do 2. Jeśli nie, to korygujemy wagi i próg: w i := w i + η ERR E j i θ := θ ERR Nowym wagom przypisujemy zerowy czas życia. Wracamy do 2. 4 Po przebiegnięciu odpowiedniej liczby iteracji zwracamy najlepszy zestaw wag.
Interpretacja geometryczna uczenia Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania click
Interpretacja geometryczna uczenia Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania Dlaczego nie należy korzystać z podstawowej wersji algorytmu? click
Funkcje logiczne Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania Niech B = {true, false} wartości logiczne, Stosujemy kodowanie false = 0 true = 1 Rozważmy proste funkcje logiczne f : B n B np. NOT, AND, OR, NAND, NOR, XOR itp. Chcemy modelować takie funkcje za pomocą perceptronu progowego (w 0 = θ bias, w 1, w 2,..., w n )
NOT Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania NOT Jedno wejście p, p NOT (p) 0 1 1 0 Problem jest rozwiązywalny przez pojedynczy perceptron.
y Modelowanie funkcji logicznych za pomocą perceptronu AND Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania AND p q AND(p, q) 0 0 0 1 0 0 0 1 0 1 1 1 Dwa wejścia p, q, Problem liniowo separowalny. 1.5 1 0.5 0-0.5-0.5 0 0.5 1 1.5 x np. w 1 = w 2 = +1, w 0 = 1.5
y Modelowanie funkcji logicznych za pomocą perceptronu OR Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania OR p q OR(p, q) 0 0 0 1 0 1 0 1 1 1 1 1 Dwa wejścia p, q, Problem liniowo separowalny. 1.5 1 0.5 0-0.5-0.5 0 0.5 1 1.5 x np. w 1 = w 2 = +1, w 0 = 0.5
Projekcja Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania P i (x 1,..., x n ) = +1 x i = +1 Dwa wejścia p, q, p 1...p i 1 p i p i+1 p n P i (p 1, p 2,..., p n ) 0 0 1 1 Problem liniowo separowalny.
Uogólniony AND Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania AND n wejść p 1, p 2,..., p n, p 1 p 2... p n AND(p 1, p 2,..., p n ) 0 0... 0 0 1 0... 0 0... 1 1... 0 0 1 1... 1 1 Problem liniowo separowalny.
Uogólniony OR Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania OR n wejść p 1, p 2,..., p n, Problem liniowo separowalny. p 1 p 2... p n OR(p 1, p 2,..., p n ) 0 0... 0 0 1 0... 0 1... 1 1... 0 1 1 1... 1 1
y Modelowanie funkcji logicznych za pomocą perceptronu XOR Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania XOR p q XOR(p, q) 0 0 0 1 0 1 0 1 1 1 1 0 Dwa wejścia p, q, Problem nie jest liniowo separowalny. 1.5 1 0.5 0-0.5-0.5 0 0.5 1 1.5 x
NXOR / IFF Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania NOT XOR / IF and only IF Dwa wejścia p, q, p q IFF (p, q) 0 0 1 1 0 0 0 1 0 1 1 1 Problem nie jest liniowo separowalny.
NAND i NOR Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania NAND (NOT AND) oraz NOR (NOT AND) Negacja koniunkcji i alternatywy, Po dwa wejścia p, q, Oba problemy okazują się separowalne liniowo, Zadanie: wskazać wagi perceptronów rozwiązujących problemy.
Separowalne liniowo funkcje logiczne Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania Wszystkich funkcji logicznych o n zmiennych jest 2 2n, Ilość funkcji separowalnych liniowo rośnie wielomianowo, Dla małych wymiarów n 2 2n il. funkcji sep. 1 4 4 2 16 14 3 256 104 4 65536 1882 Tabela za R. Rojas A systematic introduction to neural networks
Autoasocjator graficzny Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania
Problem Algorytm Przykład 1 Modelowanie funkcji logicznych za pomocą perceptronu Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania 2 Problem Algorytm Przykład 3 Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera
Problem Algorytm Przykład Cel Dany jest nauczony perceptron progowy (zestaw wag + próg w 1,.., w n, θ = w 0 ), Dany jest symboliczny wektor wejściowy (x 1,.., x n ), x i = ±1 (tak lub nie), Perceptron zwrócił klasyfikację o np. TAK, Chcemy uzyskać wyjaśnienie dlaczego TAK.
Problem Algorytm Przykład Cel Poprzez wyjaśnienie rozumiemy podzbiór oryginalnych cech x i1,..., x ik, taki że Każda z cech wspiera zwróconą klasyfikację o, Wyjaśnienie jest wystarczające, tj. w pełni determinuje odpowiedź o niezależnie od pozostałych cech, Wyjaśnienie jest zwięzłe, zawiera tak mało cech jak to możliwe.
Problem Algorytm Przykład Algorytm Dane: Nauczony perceptron prosty z funkcją progową, próg θ, wejście u = (u 1,..., u n ), Wynik: Uzasadnienie klasyfikacji zwróconej na przykładzie u tj. najmniej liczna lista cech, które charakteryzują u, mają największy wpływ na klasyfikację, Uwaga: Algorytm jest mutacyjny, tj. modyfikuje próg neuronu. Sugerowane jest operowanie na kopii parametrów.
Problem Algorytm Przykład Algorytm 1 Obliczamy odpowiedź perceptronu o na przykładzie u. 2 Przypisujemy p := θ (kopia progu). 3 Znajdujemy czynnik kluczowy tj. u i takie, że u i w i o > 0 tj. cecha wspiera wynikową odpowiedź, w i ma największą wartość spośród wszystkich u i, które wspierają odpowiedź o, u i jeszcze nie był użyty jako fragment uzasadnienia w poprzednich krokach.
Problem Algorytm Przykład Algorytm 4 Sprawdź czy w i > l i i u l w l + p, niewykorzystany gdzie p jest kopią progu funkcji aktywującej. jeżeli tak, to dodaj u i do uzasadnienia i zwróć gotowy zestaw cech: uzasadnienie+ = bo u i = (..). jeżeli nie, to dodaj u i do uzasadnienia: uzasadnienie+ = bo u i = (..) oraz p = p u i w i Po czym oznacz jednostkę u i jako wykorzystaną i wróć do 2. 5 UWAGA: Jeżeli i w iu i = θ, to uzasadnienie nie będzie możliwe.
Problem Algorytm Przykład Przykład 1 przykład x = (+1, +1 + 1, +1), wagi dodatnie w 1 > w 2 > w 3 > w 4 > 0, odpowiedź O( x) = +1.
Problem Algorytm Przykład Przykład 1/3 Ponieważ...
Problem Algorytm Przykład Przykład 2/3 Ponieważ spełnia w 1...
Problem Algorytm Przykład Przykład 3/3 Ponieważ spełnia w 1 i spełnia w 2.
Problem Algorytm Przykład Przykład 2 przykład x = (+1, +1, 1, +1), niektóre wagi są ujemne w 2 < w 3 < 0 < w 4 < w 1, odpowiedź O( x) = +1, x 2 w 2 nie wspiera odpowiedzi.
Problem Algorytm Przykład Przykład 1/4 Ponieważ...
Problem Algorytm Przykład Przykład 2/4 Ponieważ spełnia w 1...
Problem Algorytm Przykład Przykład 3/4 Ponieważ spełnia w 1, nie spełnia w 3...
Problem Algorytm Przykład Przykład 4/4 Ponieważ spełnia w 1, nie spełnia w 3 i spełnia w 4.
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera 1 Modelowanie funkcji logicznych za pomocą perceptronu Przypomnienie uczenia neuronu Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania 2 Problem Algorytm Przykład 3 Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Maszyna Liniowa Ang. multi-class (linear) classifier, Zwraca klasyfikację, która nie musi być binarna, Grupa perceptronów, z których zawsze dokładnie jeden zgłasza odpowiedź,
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Maszyna Liniowa out
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Maszyna Liniowa Komponenty: n wejść x 1,.., x n, m perceptronów, każdy z własnym zestawem wag (w 11,.., w n1 ) do (w 1m,.., w nm ), Ewentualnie obciążenie (bias) dla każdego neuronu w 01,.., w 0m, Każdy z perceptronów (j = 1..m) oblicza swoją sumę ważoną a j = n w ij x i (+w 0j ). i=1 Uwaga! Funkcja aktywacji f jest identycznościowa. Cała jednostka zwraca numer perceptronu, który dał największą sumę ważoną (numer kategorii).
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Rozpoznawanie znaków 1 2 3 4 MAX A
y Modelowanie funkcji logicznych za pomocą perceptronu Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Interpretacja geometryczna 10 100 5 50 z 0 0-50 -5-100 10 5 10 y 0-5 -5 0 x 5-10 -10-5 0 5 10 x -10-10
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Interpretacja geometryczna Bez biasu / progu. Z biasem w 0 / progiem θ. 10 10 5 5 0 0-5 -5-10 -10-5 0 5 10 y -10-10 -5 0 5 10 y
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Zagadnienie uczenia Dane: Cel: Maszyna liniowa z n wejściami oraz m kategoriami, Zbiór danych uczących E (i) = (E (i) (i) 1,..., E m ), i = 1...P, m < P wraz z odpowiadającymi im poprawnymi klasyfikacjami T 1,..., T P {1,..., m}. Chcemy znaleźć wagi w ij, dla których jednostka klasyfikuje poprawnie możliwie wiele przykładów uczących.
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Algorytm 1 Przypisujemy małe i losowe wagi (różne!), 2 Losujemy przykład uczący (E, C) z listy, 3 Jeżeli neuron daje błędną klasyfikację (jest k, a powinno być l), to korygujemy wagi: dla i = 1..n (wymiar wejścia) 4 Wracamy do 2, w ik = E i w il + = E i 5 Dodajemy modyfikację kieszeni i zapadki, jak dla perceptronu prostego.
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Interpretacja geometryczna w1 = [-0.63, 0.47, 0.74] w2 = [-2.49, 2.26, -2.35] w3 = [2.64, -0.89, 1.46] w4 = [0.13, -2.71, 1.08] z 20 15 10 5 ERR = 33 0-5 4-10 -4-3 2 3-2 1-1 0 x 0 1 2 3-3 -2-1 y 4-4
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Interpretacja geometryczna w1 = [-0.63, 0.47, 0.74] w2 = [-2.49, 2.26, -2.35] w3 = [2.64, -0.89, 1.46] w4 = [0.13, -2.71, 1.08] w1 = [0.12, 1.50, -0.48] w2 = [-2.29, -0.56, -2.57] w3 = [1.14, -1.10, 1.79] w4 = [0.68, -0.71, 2.18] z 20 15 ERR = 33 z 20 15 ERR = 0 10 10 5 5 0-5 4 0-5 4-10 -4-3 2 3-10 -4-3 2 3-2 1-2 1-1 0-1 0 x 0 1 2 3-3 -2-1 y x 0 1 2 3-3 -2-1 y 4-4 4-4
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Interpretacja geometryczna click
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Konstrukcja Kesslera Dana maszyna liniowa z n wejściami i k kategoriami, Skonstruujemy równoważny perceptron z n k wejściami (i jednym wyjściem binarnym).
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Konstrukcja Kesslera Przykładowe wejście maszyny liniowej: (E i, L i ) Konstruujemy k 1 przykładów dla perceptronu: ( E i 0...0 0...0 E i 0...0 0...0 0...0 ). ( 0...0 0...0 E i, E i 0...0 0...0 0...0 ) ( 0...0 0...0 0...0 E i E i 0...0 0...0 ). ( 0...0 0...0 0...0 E i 0...0 0...0 E i ) L i -ty blok Wszystkie z odpowiedzią +1
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Konstrukcja Kesslera Maszyna liniowa: out
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Konstrukcja Kesslera Odpowiadający perceptron: out
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Konstrukcja Kesslera Perceptron zwróci +1 na danych [0..0, E i, 0..0, E i, 0..0] (gdzie E i jest w l-tym bloku) wtw, gdy maszyna dla E i zwróci kategorię l, W rozważaniach dotyczących uczenia perceptronu nie braliśmy pod uwagę kolejności wejść (nic się nie psuje), Zatem uczenie perceptronu jest równoważne uczeniu maszyny liniowej.
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Zadania Podaj wszystkie funkcje boolowskie o 2-ch argumentach. Określ które z nich są liniowo separowalne. (Wsk. wszystkich jest 16, separowalnych jest 14), Dla problemów z sekcji 1, które są separowalne, podaj wagi perceptronu, który implementuje taką bramkę logiczną, Dane są jednowymiarowe dane uczące z odpowiadającymi kategoriami 2 1, 0 3, +2 2. Maszyna liniowa z trzema klasami ma startowe wagi: i w 0i w 1i 1 1 +1 2 1 +5 3 0.5 15 Przeprowadź kilka pierwszych kroków algorytmu uczenia maszyny liniowej.