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 2012-10-10 Projekt pn. Wzmocnienie potencjału dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych realizowany w ramach Poddziałania 4.1.1 Programu Operacyjnego Kapitał Ludzki
1 Przypomnienie uczenia neuronu 2 Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania 3 Problem Algorytm Przykład 4 Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera
Perceptron z biasem out
Perceptron z biasem 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,
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ź.
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.
Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania 1 Przypomnienie uczenia neuronu 2 Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania 3 Problem Algorytm Przykład 4 Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera
Interpretacja geometryczna uczenia Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania click
Interpretacja geometryczna uczenia Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania Dlaczego nie należy korzystać z podstawowej wersji algorytmu? click
Funkcje logiczne 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 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 Przypomnienie uczenia neuronu AND 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 Przypomnienie uczenia neuronu OR 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 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 algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania AND 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 n wejść p 1, p 2,..., p n, Problem liniowo separowalny.
Uogólniony OR Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania OR 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 n wejść p 1, p 2,..., p n, Problem liniowo separowalny.
y Przypomnienie uczenia neuronu XOR 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 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 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 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 algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania
Problem Algorytm Przykład 1 Przypomnienie uczenia neuronu 2 Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania 3 Problem Algorytm Przykład 4 Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera
Cel Problem Algorytm Przykład 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.
Cel Problem Algorytm Przykład 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.
Algorytm Problem Algorytm Przykład 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.
Algorytm Problem Algorytm Przykład 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.
Algorytm Problem Algorytm Przykład 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.
Przykład 1 Problem Algorytm Przykład przykład x = (+1, +1 + 1, +1), wagi dodatnie w 1 > w 2 > w 3 > w 4 > 0, odpowiedź O( x) = +1.
Przykład 1/3 Problem Algorytm Przykład Ponieważ...
Przykład 2/3 Problem Algorytm Przykład Ponieważ spełnia w 1...
Przykład 3/3 Problem Algorytm Przykład Ponieważ spełnia w 1 i spełnia w 2.
Przykład 2 Problem Algorytm Przykład 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.
Przykład 1/4 Problem Algorytm Przykład Ponieważ...
Przykład 2/4 Problem Algorytm Przykład Ponieważ spełnia w 1...
Przykład 3/4 Problem Algorytm Przykład Ponieważ spełnia w 1, nie spełnia w 3...
Przykład 4/4 Problem Algorytm Przykład Ponieważ spełnia w 1, nie spełnia w 3 i spełnia w 4.
Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera 1 Przypomnienie uczenia neuronu 2 Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Zastosowania 3 Problem Algorytm Przykład 4 Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera
Zagadnienie Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Chcemy zbudować (nieskomplikowany) system, który będzie w stanie dokonać klasyfikacji na więcej niż dwie kategorie Dodatkowo chcemy aby system mógł sam nauczyć się reguł klasyfikacji na podstawie małej próbki danych
Maszyna Liniowa Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera 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ź,
Maszyna Liniowa Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera out
Maszyna Liniowa Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera 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).
Rozpoznawanie znaków Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera 1 2 3 4 MAX A
y Przypomnienie uczenia neuronu Interpretacja geometryczna Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera 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
Interpretacja geometryczna Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera 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
Zagadnienie uczenia Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera 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.
Algorytm Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera 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.
Interpretacja geometryczna Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Etap startowy Etap końcowy 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
Interpretacja geometryczna Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera click
Konstrukcja Kesslera Model maszyny liniowej Uczenie maszyny 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).
Konstrukcja Kesslera Model maszyny liniowej Uczenie maszyny 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
Konstrukcja Kesslera Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Maszyna liniowa: out
Konstrukcja Kesslera Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera Odpowiadający perceptron: out
Konstrukcja Kesslera Model maszyny liniowej Uczenie maszyny 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.
Zadania Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera 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.