• Nie Znaleziono Wyników

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

N/A
N/A
Protected

Academic year: 2021

Share "2012-10-10 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

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

(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

(3)

Perceptron z biasem

out

(4)

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,

(5)

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

(6)

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.

(7)

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

(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 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

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

(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 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

(38)

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

(39)

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

(40)

Maszyna Liniowa

out

(41)

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ą

(42)

Rozpoznawanie znaków

1

2 3 4

A

MAX

(43)

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

(44)

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

(45)

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.

(46)

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

(47)

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

(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

zmień uprawnienia katalogu wswz mój login na rwxr--r-- ponownie spróbuj wylistować zawartość katalogu utworzonego przez osobę siedzącą obok.. Uprawnienia plików

(*) 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

2 Powtórzenie z wykładu Perceptrony prosty Uczenie perceptronu.

mieć założone konto w systemie komputerowym lub przynajmniej wypełniony formularz zakładania konta znać obowiązujący regulamin (lub wiedzieć gdzie go

(Linux) Uruchom klienta poczty (Thunderbird, Evolution etc.) Skonfiguruj klienta aby obsługiwał serwis poczty WMiI. Wyślij wiadomość testową do osoby siedzącej po lewej

wykonać podstawowe operacje w systemie plików: wyświetlenie zawartości, zmiana katalogu, tworzenie, zmiana nazwy, usuwanie, przenoszenie,

Administrowanie kontem Pliki w UNIXie Praca z plikami tekstowymi Bezpieczne kopiowanie plików Podsumowanie.. Wstęp do systemów wielozadaniowych laboratorium 03 — Praca z