• Nie Znaleziono Wyników

2011-10-11 MajaCzoków,JarosławPiersa Wstępdosiecineuronowych,wykład02Perceptronyc.d.Maszynaliniowa.

N/A
N/A
Protected

Academic year: 2021

Share "2011-10-11 MajaCzoków,JarosławPiersa Wstępdosiecineuronowych,wykład02Perceptronyc.d.Maszynaliniowa."

Copied!
54
0
0

Pełen tekst

(1)

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

(2)

1 Modelowanie funkcji logicznych za pomocą perceptronu Przypomnienie uczenia neuronu

Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne

Zastosowania

2 Diagnozowanie za pomocą perceptronu Problem

Algorytm Przykład

3 Klasyfikacja na wiele kategorii Model maszyny liniowej Uczenie maszyny

(3)

1 Modelowanie funkcji logicznych za pomocą perceptronu Przypomnienie uczenia neuronu

Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne

Zastosowania

2 Diagnozowanie za pomocą perceptronu Problem

Algorytm Przykład

3 Klasyfikacja na wiele kategorii Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera

(4)

Perceptron z biasem

out

(5)

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,

(6)

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ź.

(7)

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.

4 Po przebiegnięciu odpowiedniej liczby iteracji zwracamy najlepszy

(8)

Interpretacja geometryczna uczenia

click

(9)

Interpretacja geometryczna uczenia

Dlaczego nie należy korzystać z podstawowej wersji algorytmu?

click

(10)

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)

(11)

NOT

NOT

p NOT (p)

0 1

1 0

Jedno wejście p,

Problem jest rozwiązywalny przez pojedynczy perceptron.

(12)

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

(13)

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

(14)

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.

(15)

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.

(16)

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.

(17)

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

(18)

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.

(19)

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.

(20)

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

(21)

Autoasocjator graficzny

(22)

1 Modelowanie funkcji logicznych za pomocą perceptronu Przypomnienie uczenia neuronu

Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne

Zastosowania

2 Diagnozowanie za pomocą perceptronu Problem

Algorytm Przykład

3 Klasyfikacja na wiele kategorii Model maszyny liniowej Uczenie maszyny

(23)

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.

(24)

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.

(25)

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.

(26)

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.

(27)

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.

P

(28)

Przykład 1

przykład ¯x = (+1, +1 + 1, +1),

wagi dodatnie w1 > w2> w3> w4> 0, odpowiedź O(¯x ) = +1.

(29)

Przykład 1/3

(30)

Przykład 2/3

(31)

Przykład 3/3

(32)

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.

(33)

Przykład 1/4

(34)

Przykład 2/4

(35)

Przykład 3/4

(36)

Przykład 4/4

(37)

1 Modelowanie funkcji logicznych za pomocą perceptronu Przypomnienie uczenia neuronu

Przypomnienie algebry boolowskiej Perceptron jako bramka logiczna Uwagi kombinatoryczne

Zastosowania

2 Diagnozowanie za pomocą perceptronu Problem

Algorytm Przykład

3 Klasyfikacja na wiele kategorii Model maszyny liniowej Uczenie maszyny Konstrukcja Kesslera

(38)

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ź,

(39)

Maszyna Liniowa

out

(40)

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ą

(41)

Rozpoznawanie znaków

1

2 3 4

A

MAX

(42)

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

(43)

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

(44)

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.

(45)

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 prostego.

(46)

Modelowanie funkcji logicznych za pomocą perceptronu Diagnozowanie za pomocą perceptronu Klasyfikacja na wiele kategorii

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]

-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

-4 -3

-2 -1

0 1

2 3

4 x

-4 -3

-2 -1

0 1

2 3

4

y -10

-5 0 5

(47)

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]

-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

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

(48)

Interpretacja geometryczna

click

(49)

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).

(50)

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

(51)

Konstrukcja Kesslera

Maszyna liniowa:

out

(52)

Konstrukcja Kesslera

Odpowiadający perceptron:

out

(53)

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.

(54)

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

Cytaty

Powiązane dokumenty

Wizualizacja danych za pomocą danej struktury przestrzennej (zadanej przez graf) w innym wymiarze (przykłady są wtedy rozłożone jednostajnie na obszarze reprezentacji). przejście

1 jeżeli neurony A i B połączone synapsą są pobudzone jednocześnie, to połączenie synaptyczne jest wzmacniane,. 2 jeżeli neurony A i B połączone synapsą

Generalizacja Walidacja jakości uczenia Błędy klasyfikacji Przypadek ciągły.. Wstęp do sieci neuronowych, wykład 09, Walidacja

Przedstaw sposób kodowania problemu grafowego (dwupodział, kolorowanie, cykl Hammiltona) na konfigurację sieci neuronowej. Zaimplementuj sieć neuronową do rozwiązywania

2 Modelowanie funkcji logicznych za pomocą perceptronu Przypomnienie algebry boolowskiej?. Perceptron jako bramka logiczna

(*) Zapoznaj się i zaimplementuj algorytm szybkiej transformaty Fouriera (fast Fourier transform, FFT) w

2 Algorytmy konstrukcyjne Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart.. 3 Podsumowanie wykładu Zadania

Siatka prostokątna rozprowadzona przez rozszerzony algorytm Kohonena na trzech ścianach (o wspólnym wierzchołku) sześcianu.