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 Modelowanie funkcji logicznych za pomocą perceptronu Przypomnienie algebry boolowskiej
Perceptron jako bramka logiczna Uwagi kombinatoryczne
Zastosowania
3 Diagnozowanie za pomocą perceptronu Problem
Algorytm Przykład
4 Klasyfikacja wielokategoryjna Model maszyny liniowej Uczenie maszyny
Perceptron z biasem
out
Perceptron z biasem
n wejść x1, ..., xn, n + 1 wag w0, w1, ..., xn,
przyjmuje się dodatkowe, zawsze włączone n + 1-sze wejście x0 = +1
zwracana wartość O(x1, ..., xn) =
−1 [1, xi]wt=Pn
i =0wixi < 0 +1 [1, xi]wt=Pn
i =0wixi ≥ 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 Ej,
3 Sprawdzamy czy Ej jest dobrze klasyfikowany (ERR = Tj− 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:
wi := wi+ η · ERR · Eij θ := θ − ERR
Nowym wagom przypisujemy zerowy czas życia. Wracamy do 2.
1 Przypomnienie uczenia neuronu
2 Modelowanie funkcji logicznych za pomocą perceptronu Przypomnienie algebry boolowskiej
Perceptron jako bramka logiczna Uwagi kombinatoryczne
Zastosowania
3 Diagnozowanie za pomocą perceptronu Problem
Algorytm Przykład
4 Klasyfikacja wielokategoryjna Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera
Interpretacja geometryczna uczenia
click
Interpretacja geometryczna uczenia
Dlaczego nie należy korzystać z podstawowej wersji algorytmu?
click
Funkcje logiczne
Niech B = {true, false} — wartości logiczne, Stosujemy kodowanie
false = 0 true = 1
Rozważmy proste funkcje logiczne f : Bn→ B np. NOT, AND, OR, NAND, NOR, XOR itp.
Chcemy modelować takie funkcje za pomocą perceptronu progowego (w0= −θ — bias, w1, w2, ..., wn)
NOT
NOT
p NOT (p)
0 1
1 0
Jedno wejście p,
Problem jest rozwiązywalny przez pojedynczy perceptron.
AND
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.
-0.5 0 0.5 1 1.5
-0.5 0 0.5 1 1.5
y
x
np. w1= w2= +1, w0 = 1.5
OR
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.
-0.5 0 0.5 1 1.5
-0.5 0 0.5 1 1.5
y
x
np. w1= w2= +1, w0 = 0.5
Projekcja
Pi(x1, ..., xn) = +1 ⇐⇒ xi = +1
p1...pi −1 pi pi +1pn Pi(p1, p2, ..., pn)
∗ 0 ∗ 0
∗ 1 ∗ 1
Dwa wejścia p, q,
Problem liniowo separowalny.
Uogólniony AND
AND
p1 p2 ... pn AND(p1, p2, ..., pn)
0 0 ... 0 0
1 0 ... 0 0
...
1 1 ... 0 0
1 1 ... 1 1
n wejść p1, p2, ..., pn,
Problem liniowo separowalny.
Uogólniony OR
OR
p1 p2 ... pn OR(p1, p2, ..., pn)
0 0 ... 0 0
1 0 ... 0 1
...
1 1 ... 0 1
1 1 ... 1 1
n wejść p1, p2, ..., pn,
Problem liniowo separowalny.
XOR
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.
-0.5 0 0.5 1 1.5
-0.5 0 0.5 1 1.5
y
x
NXOR / IFF
NOT XOR / IF and only IF
p q IFF (p, q)
0 0 1
1 0 0
0 1 0
1 1 1
Dwa wejścia p, q,
Problem nie jest liniowo separowalny.
NAND i NOR
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
Wszystkich funkcji logicznych o n zmiennych jest 22n, Ilość funkcji separowalnych liniowo rośnie wielomianowo, Dla małych wymiarów
n 22n 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
1 Przypomnienie uczenia neuronu
2 Modelowanie funkcji logicznych za pomocą perceptronu Przypomnienie algebry boolowskiej
Perceptron jako bramka logiczna Uwagi kombinatoryczne
Zastosowania
3 Diagnozowanie za pomocą perceptronu Problem
Algorytm Przykład
4 Klasyfikacja wielokategoryjna Model maszyny liniowej Uczenie maszyny
Cel
Dany jest nauczony perceptron progowy (zestaw wag + próg w1, .., wn, θ = −w0),
Dany jest symboliczny wektor wejściowy (x1, .., xn), xi = ±1 (tak lub nie),
Perceptron zwrócił klasyfikację o np. TAK, Chcemy uzyskać wyjaśnienie dlaczego TAK.
Cel
Poprzez wyjaśnienie rozumiemy podzbiór oryginalnych cech xi1, ..., xik, 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
Dane: Nauczony perceptron prosty z funkcją progową, próg θ, wejście u = (u1, ..., un),
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
1 Obliczamy odpowiedź perceptronu o na przykładzie u.
2 Przypisujemy p := θ (kopia progu).
3 Znajdujemy czynnik kluczowy tj. ui takie, że uiwio > 0 tj. cecha wspiera wynikową odpowiedź,
|wi| ma największą wartość spośród wszystkich ui, które wspierają odpowiedź o,
ui jeszcze nie był użyty jako fragment uzasadnienia w poprzednich krokach.
Algorytm
4 Sprawdź czy
|wi| > X
l 6=i iul niewykorzystany
|wl| + p,
gdzie p jest kopią progu funkcji aktywującej.
jeżeli tak, to dodaj ui do uzasadnienia i zwróć gotowy zestaw cech:
uzasadnienie+ = “ bo ui = (..).“
jeżeli nie, to dodaj ui do uzasadnienia:
uzasadnienie+ = “ bo ui = (..) oraz “
p = p − uiwi
Po czym oznacz jednostkę ui jako wykorzystaną i wróć do 2.
Przykład 1
przykład ¯x = (+1, +1 + 1, +1),
wagi dodatnie w1 > w2> w3> w4> 0, odpowiedź O(¯x ) = +1.
Przykład 1/3
Przykład 2/3
Przykład 3/3
Przykład 2
przykład ¯x = (+1, +1, −1, +1),
niektóre wagi są ujemne w2< w3< 0 < w4< w1, odpowiedź O(¯x ) = +1,
x2w2 nie wspiera odpowiedzi.
Przykład 1/4
Przykład 2/4
Przykład 3/4
Przykład 4/4
1 Przypomnienie uczenia neuronu
2 Modelowanie funkcji logicznych za pomocą perceptronu Przypomnienie algebry boolowskiej
Perceptron jako bramka logiczna Uwagi kombinatoryczne
Zastosowania
3 Diagnozowanie za pomocą perceptronu Problem
Algorytm Przykład
4 Klasyfikacja wielokategoryjna Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera
Zagadnienie
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
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
out
Maszyna Liniowa
Komponenty:
n wejść x1, .., xn,
m perceptronów, każdy z własnym zestawem wag (w11, .., wn1) do (w1m, .., wnm),
Ewentualnie obciążenie (bias) dla każdego neuronu w01, .., w0m, Każdy z perceptronów (j = 1..m) oblicza swoją sumę ważoną
aj =
n
X
i =1
wijxi (+w0j).
Uwaga! Funkcja aktywacji f jest identycznościowa.
Cała jednostka zwraca numer perceptronu, który dał największą
Rozpoznawanie znaków
1
2 3 4
A
MAX
Interpretacja geometryczna
-10 -5
0 5
10
-10 -5 0 5 -10010
-50 0 50 100
z
x y
z
-10 -5 0 5 10
-10 -5 0 5 10
y
x
Interpretacja geometryczna
Bez biasu / progu.
-10 -5 0 5 10
-10 -5 0 5 10
y
Z biasem w0 / progiem θ.
-10 -5 0 5 10
-10 -5 0 5 10
y
Zagadnienie uczenia
Dane:
Maszyna liniowa z n wejściami oraz m kategoriami,
Zbiór danych uczących E(i )= (E1(i ), ..., Em(i )), i = 1...P, m < P wraz z odpowiadającymi im poprawnymi klasyfikacjami T1, ..., TP ∈ {1, ..., m}.
Cel:
Chcemy znaleźć wagi wij, dla których jednostka klasyfikuje poprawnie możliwie wiele przykładów uczących.
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:
wik − = Ei wil + = Ei dla i = 1..n (wymiar wejścia)
4 Wracamy do 2,
5 Dodajemy modyfikację kieszeni i zapadki, jak dla perceptronu
Interpretacja geometryczna
Etap startowy
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]
-4 -3
-2 -1
0 1
2 3
4 x
-4 -3
-2 -1
0 1
2 3
4
y -10
-5 0 5 10 15 20 z
ERR = 33
Etap końcowy
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]
-4 -3
-2 -1
0 1
2 3
4 x
-4 -3
-2 -1
0 1
2 3
4
y -10
-5 0 5 10 15 20 z
ERR = 0
Interpretacja geometryczna
click
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
Przykładowe wejście maszyny liniowej:
(Ei, Li)
Konstruujemy k − 1 przykładów dla perceptronu:
( −Ei 0...0 0...0 Ei 0...0 0...0 0...0 ) ...
( 0...0 0...0 −Ei, Ei 0...0 0...0 0...0 ) ( 0...0 0...0 0...0 Ei −Ei 0...0 0...0 )
...
( 0...0 0...0 0...0 Ei 0...0 0...0 −Ei ) Li-ty blok
Konstrukcja Kesslera
Maszyna liniowa:
out
Konstrukcja Kesslera
Odpowiadający perceptron:
out
Konstrukcja Kesslera
Perceptron zwróci +1 na danych [0..0, Ei, 0..0, −Ei, 0..0] (gdzie Ei jest w l -tym bloku) wtw, gdy maszyna dla Ei 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
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 w0i w1i
1 1 +1
2 −1 +5
3 0.5 −15