Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa. Maja Czoków, Jarosław Piersa, Andrzej Rutkowski Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2018-10-15 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 algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne 2 Problem Algorytm Przykład 3 Model maszyny liniowej Uczenie maszyny
Funkcje logiczne Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne 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 NOT Jedno wejście p, p NOT (p) 0 1 1 0 Problem jest rozwiązywalny przez pojedynczy perceptron.
y AND Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne AND 1.5 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 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 OR Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne OR 1.5 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 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 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 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 algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne 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 XOR Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne XOR p q XOR(p, q) 0 0 0 1 0 1 0 1 1 1 1 0 1.5 1 0.5 Dwa wejścia p, q, Problem nie jest liniowo separowalny. 0-0.5-0.5 0 0.5 1 1.5 x
NXOR / IFF Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne 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 NAND (NOT AND) oraz NOR (NOT AND) Negacja koniunkcji i alternatywy, Po dwa wejścia p, q, Oba problemy okazują się separowalne liniowo, Można zbudować dowolny układ kombinatoryczny, Zadanie: wskazać wagi perceptronów rozwiązujących problemy.
Separowalne liniowo funkcje logiczne Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne 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
NAND Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne Sieć perceptronów jako dowolne urządzenie cyfrowe, www.nand2tetris.org NANDputer
Problem Algorytm Przykład 1 Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne 2 Problem Algorytm Przykład 3 Model maszyny liniowej Uczenie maszyny
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 1 Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne 2 Problem Algorytm Przykład 3 Model maszyny liniowej Uczenie maszyny
Zagadnienie Model maszyny liniowej Uczenie maszyny 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 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 out
Maszyna Liniowa Model maszyny liniowej Uczenie maszyny 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 1 2 3 4 MAX A
y Interpretacja geometryczna Model maszyny liniowej Uczenie maszyny 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 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 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 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 ki = E i w li + = E i 5 Dodajemy modyfikację kieszeni i zapadki, jak dla perceptronu prostego.
Interpretacja geometryczna Model maszyny liniowej Uczenie maszyny 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 click
Model maszyny liniowej Uczenie maszyny 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 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 Maszyna liniowa: out
Model maszyny liniowej Uczenie maszyny Odpowiadający perceptron: out
Model maszyny liniowej Uczenie maszyny Maszyna liniowa i odpowiadający perceptron: out out
Model maszyny liniowej Uczenie maszyny 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ść, Uczenie perceptronu jest równoważne uczeniu maszyny liniowej - podobne ograniczenia, Zob. Zimak06.pdf, str. 16 (pdf: str. 31)
Zadania Model maszyny liniowej Uczenie maszyny 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 i0 w i1 1 1 +1 2 1 +5 3 0.5 15 Przeprowadź kilka pierwszych kroków algorytmu uczenia maszyny liniowej.