• Nie Znaleziono Wyników

2012-10-24 MajaCzoków,JarosławPiersa Wstępdosiecineuronowych,wykład04.Skierowanesiecineuronowe.Algorytmykonstrukcyjnedlasieciskierowanych

N/A
N/A
Protected

Academic year: 2021

Share "2012-10-24 MajaCzoków,JarosławPiersa Wstępdosiecineuronowych,wykład04.Skierowanesiecineuronowe.Algorytmykonstrukcyjnedlasieciskierowanych"

Copied!
77
0
0

Pełen tekst

(1)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Wstęp do sieci neuronowych, wykład 04. Skierowane sieci neuronowe. Algorytmy konstrukcyjne dla sieci

skierowanych

Maja Czoków, Jarosław Piersa

Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika

2012-10-24

Projekt pn. „Wzmocnienie potencjału dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych”

(2)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

1 Sieci skierowane Motywacja Sieć skierowana

Siła opisu sieci skierowanej

2 Algorytmy konstrukcyjne Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

3 Podsumowanie wykładu Zadania do przemyślenia

(3)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

1 Sieci skierowane Motywacja Sieć skierowana

Siła opisu sieci skierowanej

2 Algorytmy konstrukcyjne Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

3 Podsumowanie wykładu Zadania do przemyślenia

(4)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

1 Sieci skierowane Motywacja Sieć skierowana

Siła opisu sieci skierowanej

2 Algorytmy konstrukcyjne Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

3 Podsumowanie wykładu Zadania do przemyślenia

(5)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

Cel

Chcemy skonstruować system, który będzie w stanie nauczyć się i replikować klasyfikacje danych (jak perceptron)

Tym razem system będzie trochę bardziej skomplikowany

(6)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

Ograniczenia pojedynczego neuronu

Klasyfikacja wyłącznie problemów liniowo separowalnych, Co, gdy mamy trudniejszy problem?

-6 -4 -2 0 2 4 6

-6 -4 -2 0 2 4 6

(7)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

Ograniczenia pojedynczego neuronu

Albo bardzo zgrubne rozwiązania, albo perceptron całkowicie głupieje.

Czy da się temu zaradzić?

Znalezienie odpowiedzi zajęło ok 5 lat, jej spopularyzowanie kolejne 5.

(8)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

Koncepcja sieci skierowanej

(9)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

Koncepcja sieci skierowanej

Wejścia (liczby całkowite, rzeczywiste...) x1, .., xn, Zbiór perceptronów, każdy z własnym zestawem wag,

Graf sieci — skierowany i acykliczny, rozpięty na perceptronach, Wejściami do perceptronów są: dane wejściowe do sieci oraz mogą być wyjścia z dowolnych perceptronów leżących wcześniej, Odpowiedzi perceptronów bez potomków (liście) są traktowane jako wyjścia z całej sieci.

(10)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

Dynamika sieci skierowanej

Działanie synchroniczne,

Każdy neuron czeka, aż wszyscy rodzice zostaną obliczeni, Na koniec zwracana jest odpowiedź sieci (liczba lub wektor liczb),

W implementacji: obliczenia po kolei według kolejności sortowania topologicznego,

Jeżeli topologia na to pozwala, to można zrównoleglać obliczenia neuronów,

(11)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

Przykład

Sieć rozwiązująca XOR

out

(12)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

Funkcje logiczne

Koniunktywna postać normalna zdania logicznego.

Zapis równoważnego zdania w postaci koniunkcji alternatyw zmiennych lub negacji zmiennych,

(A ∨ B ∨ ¬C ) ∧ (C ∨ ¬D ∨ E ) ∧ ¬A

Każde zdanie rachunku logiki boolowskiej da się zapisać w CNF (Conjunctive Normal Form),

W szczególności A xor B = (A ∨ B) ∧ (¬A ∨ ¬B).

(13)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

Funkcje logiczne

(A ∨ B ∨ ¬C ) ∧ (C ∨ ¬D ∨ E ) ∧ ¬A

(14)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

Funkcje na R

d

Sieć bez warstw ukrytych jest w stanie przybliżać funkcje liniowo separowalne.

-1 -0.5 0 0.5 1 1.5 2

-1 -0.5 0 0.5 1 1.5 2

(15)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

Funkcje na R

d

Sieci z jedną warstwą ukrytą są w stanie przybliżać funkcje ciągłe.

-1 -0.5 0 0.5 1 1.5 2

-1 -0.5 0 0.5 1 1.5 2

(16)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

Funkcje na R

d

Sieci z dwiema lub więcej warstwami ukrytymi są w stanie przybliżać funkcje nieciągłe.

-1 -0.5 0 0.5 1 1.5 2

-1 -0.5 0 0.5 1 1.5 2

(17)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

Jakie grafy sieci?

Dające dobre rezultaty,

Proste w implementacji (regularne, niezbyt gęste), Zdatne do zrównoleglenia (warstwowe).

(18)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Motywacja Sieć skierowana Siła opisu sieci skierowanej

Sieć (wielo) warstwowa ((multi) layer network)

out

(19)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

1 Sieci skierowane Motywacja Sieć skierowana

Siła opisu sieci skierowanej

2 Algorytmy konstrukcyjne Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

3 Podsumowanie wykładu Zadania do przemyślenia

(20)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Zagadnienie

Daną mamy listę przykładów uczących tj.

punkt Ek ∈ Rn,

odpowiadającą mu poprawną klasyfikację Ck ∈ {−1, +1}.

Chcemy znaleźć skierowaną sieć neuronów, to jest graf wraz z wagami, który klasyfikuje poprawnie możliwie najwięcej spośród danych uczących.

wi ,j = ?

???

out

(21)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm Wieżowy

...

...

(22)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm wieżowy

1 Rozpocznij od sieci składającej się z pojedynczego perceptronu z progową funkcją aktywacji,

2 Naucz jedyny perceptron algorytmem kieszonkowym (z zapadką),

3 Powtarzaj aż do uzyskania zadowalającego rezultatu (tj.

zadowalający poziom klasyfikacji, limit czasowy itp.)

Na szczyt wieży dodaj kolejny neuron. Jego wejściami będą dane uczące E1, .., Enoraz wyjście neuronu leżącego bezpośrednio niżej,

Naucz szczytowy neuron algorytmem kieszonkowym (z zapadką), za n + 1-sze wejścia przyjmij wyniki z neuronu niższego,

Jako wynik całej sieci zwracany będzie wynik nowo-dodanego perceptronu,

4 Zwróć wynikową sieć.

(23)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm wieżowy

...

out

...

out

...

out

...

out

(24)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm wieżowy

...

out

...

out

...

out

...

out

(25)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm wieżowy

...

out

...

out

...

out

...

out

(26)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm wieżowy

...

out

...

out

...

out

...

out

(27)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Uzasadnienie

Przyjmijmy oznaczenia:

Oj — jednostka j -ta,

Oj +1 — jednostka j + 1-sza, ta jednostka będzie uczona, Ek — k-ty przykład uczący, źle klasyfikowany przez Oj, n — ilość wejść (wymiar danych),

θj +1 — próg jednostki Oj +1, 0 < ε  1 — mała stała dodatnia,

wi ,j +1 — wagi neuronu Oj +1 stowarzyszone z danymi wejściowymi,

wj ,j +1 — waga neuronu Oj +1 stowarzyszona wejściem pochodzącym z jednostki Oj.

(28)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Uzasadnienie

Dla ułatwienia, zakładamy, że wśród przykładów uczących nie ma negatywów (w razie konieczności odwracamy przykład) Załóżmy, że mamy sieć klasyfikującą przykłady E1...Ek−1 i dającą błędną odpowiedź dla Ek

Dodamy nowy neuron Oj +1

Pokażemy, że sieć z dodanym neuronem Oj +1jest w stanie zaklasyfikować poprawnie przynajmniej o jeden przykład uczący więcej.

(29)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Uzasadnienie

Przypiszmy:

wi ,j +1:=CkEik wj ,j +1:=n − ε θj +1:= −12Ck

...

out

(30)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Uzasadnienie

Dla przykładu Ek neuron Oj +1 otrzyma na wejściu (n − ε)(−1)Ck+X

i

CkEik · Eik = nCk − nCk+ εCk = εCk

θj +1= −1 2Ck, więc sieć zwróci oczekiwaną odpowiedź na Ek.

(31)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Uzasadnienie

Dla pozostałych przykładów Ej, j 6= k neuron Oj +1 zwróci tę samą odpowiedź co neuron Oj:

(n − ε)Oj +X

i

CjEij · Eik,

Jeżeli dla każdego i Eij = Eik oraz Ck = Ck, to oba przykłady Ek oraz Ej są te same i Ej też będzie poprawnie klasyfikowany, Jeżeli dla każdego i zachodzi Eij = Eik oraz Ck 6= Ck, to oba Ek oraz Ej są te same, ale mają oczekiwane różne odpowiedzi — dane są sprzeczne i stuprocentowa klasyfikacja możliwa nie jest, Poza powyższymi przypadkami mamy

X

i

CjEij · Eik

≤ n − 1.

(32)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Uzasadnienie

Dla pozostałych przykładów Ej, j 6= k neuron Oj +1 zwróci tę samą odpowiedź co neuron Oj:

(n − ε)Oj +X

i

CjEij · Eik,

Jeżeli dla każdego i Eij = Eik oraz Ck = Ck, to oba przykłady Ek oraz Ej są te same i Ej też będzie poprawnie klasyfikowany,

Jeżeli dla każdego i zachodzi Eij = Eik oraz Ck 6= Ck, to oba Ek oraz Ej są te same, ale mają oczekiwane różne odpowiedzi — dane są sprzeczne i stuprocentowa klasyfikacja możliwa nie jest, Poza powyższymi przypadkami mamy

X

i

CjEij · Eik

≤ n − 1.

(33)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Uzasadnienie

Dla pozostałych przykładów Ej, j 6= k neuron Oj +1 zwróci tę samą odpowiedź co neuron Oj:

(n − ε)Oj +X

i

CjEij · Eik,

Jeżeli dla każdego i Eij = Eik oraz Ck = Ck, to oba przykłady Ek oraz Ej są te same i Ej też będzie poprawnie klasyfikowany, Jeżeli dla każdego i zachodzi Eij = Eik oraz Ck 6= Ck, to oba Ek oraz Ej są te same, ale mają oczekiwane różne odpowiedzi — dane są sprzeczne i stuprocentowa klasyfikacja możliwa nie jest,

Poza powyższymi przypadkami mamy

X

i

CjEij · Eik

≤ n − 1.

(34)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Uzasadnienie

Dla pozostałych przykładów Ej, j 6= k neuron Oj +1 zwróci tę samą odpowiedź co neuron Oj:

(n − ε)Oj +X

i

CjEij · Eik,

Jeżeli dla każdego i Eij = Eik oraz Ck = Ck, to oba przykłady Ek oraz Ej są te same i Ej też będzie poprawnie klasyfikowany, Jeżeli dla każdego i zachodzi Eij = Eik oraz Ck 6= Ck, to oba Ek oraz Ej są te same, ale mają oczekiwane różne odpowiedzi — dane są sprzeczne i stuprocentowa klasyfikacja możliwa nie jest, Poza powyższymi przypadkami mamy

X

i

CjEij · Eik

≤ n − 1.

(35)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Uzasadnienie

Suma ważona w jednostce Oj +1 wyniesie zatem:

(n − ε)Oj +X

i

CjEij · Eik ≤ (n − ε)Oj + (n − 1)Cj,

Oraz próg:

θj +1= −1 2Ck,

Jeżeli zatem ε nie będzie za duży, to zwrócona przez Oj +1 odpowiedź będzie taka sama jak ta, którą zwrócił Oj.

(36)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Uzasadnienie

Suma ważona w jednostce Oj +1 wyniesie zatem:

(n − ε)Oj +X

i

CjEij · Eik ≤ (n − ε)Oj + (n − 1)Cj,

Oraz próg:

θj +1= −1 2Ck,

Jeżeli zatem ε nie będzie za duży, to zwrócona przez Oj +1 odpowiedź będzie taka sama jak ta, którą zwrócił Oj.

(37)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Uzasadnienie

Suma ważona w jednostce Oj +1 wyniesie zatem:

(n − ε)Oj +X

i

CjEij · Eik ≤ (n − ε)Oj + (n − 1)Cj,

Oraz próg:

θj +1= −1 2Ck,

Jeżeli zatem ε nie będzie za duży, to zwrócona przez Oj +1 odpowiedź będzie taka sama jak ta, którą zwrócił Oj.

(38)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Mapy klasyfikacyjne

click

(39)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 1/4

-8 -6 -4 -2 0 2 4 6

-6 -4 -2 0 2 4 6

(40)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 2/4

-8 -6 -4 -2 0 2 4 6

-6 -4 -2 0 2 4 6

(41)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 3/4

-6 -4

-2 0

2 4

6 -8 -6 -4 -2 0 2 4 6

-1 -0.5 0 0.5 1

(42)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 4/4

-6 -4

-2 0

2 4

6 -8 -6 -4 -2 0 2 4 6

-1 -0.5 0 0.5 1

(43)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przestrzeń wag

click

(44)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm piramidalny

...

...

(45)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm piramidalny

1 Rozpocznij od sieci składającej się z pojedynczego perceptronu z progową funkcją aktywacji,

2 Naucz jedyny preceptron algorytmem kieszonkowym (z zapadką),

3 Powtarzaj aż do uzyskania zadowalającego rezultatu (tj.

zadowalający poziom klasyfikacji, limit czasowy itp.)

Na szczyt wieży dodaj kolejny neuron. Jego wejściami będą dane uczące E1, .., Enoraz wyjście wszystkich leżących niżej neuronów,

Naucz szczytowy neuron algorytmem kieszonkowym (z zapadką), za n + 1, ..., n + l -te wejścia przyjmij wyniki z neuronów niższych, Jako wynik całej sieci zwracany będzie wynik nowo-dodanego perceptronu,

4 Zwróć wynikową sieć.

(46)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm piramidalny

...

out

...

out

...

out

...

out

...

out

(47)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm piramidalny

...

out

...

out

...

out

...

out

...

out

(48)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm piramidalny

...

out

...

out

...

out

...

out

...

out

(49)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm piramidalny

...

out

...

out

...

out

...

out

...

out

(50)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm piramidalny

...

out

...

out

...

out

...

out

...

out

(51)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm kafelkowy

out

(52)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm kafelkowy — idea

Odpowiedź warstwy sieci przypisuje zbiorom punktów pewien binarny ciąg — etykietę np. 010,

W obrębie jednej etykiety punkty muszą być jednakowo klasyfikowane, (wpw. przechodząc do kolejnej dostajemy sprzeczność),

Jeżeli w obrębie jakiejś etykiety są dwie różne klasy punktów, to dodajemy jednostkę do warstwy rozdrabniając podział,

Jeżeli w obrębie etykiet nie ma konfliktów (warstwa wykształciła wierną reprezentację), to zamykamy bieżącą warstwę i dodajemy następną.

(53)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm kafelkowy

Rozpocznij od sieci składającej się z warstwy wejściowej L = 0,

Dodaj do sieci L + 1 kafel, na razie składający się tylko z jednego neuronu.

Dodany neuron za wejścia przyjmuje wszystkie wyjścia z kafla L. Za wyjście sieci przyjmij wyjście z nowego neuronu,

Naucz dodaną jednostkę algorytmem kieszonkowym z zapadką. Jeżeli sieć klasyfikuje poprawnie wszystkie przykłady, to zakończ zwracając wynikową sieć,

Jeżeli nie, to dodaj do L + 1-go kafla kolejny neuron. Naucz go algorytmem kieszonkowym z zapadką, ale tylko na takim zbiorze, że:

poprzednie neurony w L + 1 kaflu dają na tych przykładach tę samą etykietę (tj. z punktu widzenia sieci jest to ta sama klasa), oczekujemy, że mają być to przykłady z różnych klas,

spośród wszystkich podzbiorów spełniających dwa powyższe warunki wybrany powinien być najliczniejszy.

(54)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm kafelkowy cd.

Jeżeli kafel poprawnie klasyfikuje wszystkie przykłady (tj.

różnym kategoriom przypisuje różne etykiety), to wróć do 2 (dodaj nowy kafel), jeżeli nie to wróć do 4 (dodaj nową jednostkę w tym samym kaflu),

Zwróć wynikową sieć (oczekujemy odpowiedzi binarnej, więc ostatni kafel powinien liczyć tylko jedną jednostkę).

(55)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 1/8

out

-8 -6 -4 -2 0 2 4 6

-10 -5 0 5 10

Sieć Dane

(56)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 2/8

out

-8 -6 -4 -2 0 2 4 6

-10 -5 0 5 10

Sieć Dane

(57)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 3/8

out

-8 -6 -4 -2 0 2 4 6

-10 -5 0 5 10

Sieć Dane

(58)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 4/8

out

-8 -6 -4 -2 0 2 4 6

-10 -5 0 5 10

Sieć Dane

(59)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 5/8

out

-8 -6 -4 -2 0 2 4 6

-10 -5 0 5 10

Dane Sieć

(60)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 6/8

-8 -6 -4 -2 0 2 4 6

-10 -5 0 5 10

(0 0 0) (0 0 1)

(0 1 0) (0 1 1)

(1 0 0) (1 0 1)

(1 1 0) (1 1 1)

(61)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 6/8

-8 -6 -4 -2 0 2 4 6

-10 -5 0 5 10

(0 0 0) (0 0 1)

(0 1 0) (0 1 1)

(1 0 0) (1 0 1)

(1 1 0) (1 1 1)

(62)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 7/8

out

Sieć Dane

(0 0 0) (0 0 1)

(0 1 0) (0 1 1)

(1 0 0) (1 0 1)

(1 1 0) (1 1 1)

(63)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 8/8

out

Sieć Dane

(0 0 0) (0 0 1)

(0 1 0) (0 1 1)

(1 0 0) (1 0 1)

(1 1 0) (1 1 1)

(64)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm upstart

(65)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm upstart — idea

Jeżeli dla X ⊂ E powinno być +1, a jednostka zwraca −1, to tworzymy pomocniczą jednostkę dodatnią, która pomaga poprawnie klasyfikować X ,

Jednostka pomocnicza uczona jest na X (danych, które główna jeszcze źle klasyfikuje) oraz wszystkich przykładach ujemnych (aby nie nauczyła się że wszystko jest +1), odchodzą przykłady pozytywne poprawnie klasyfikowane,

Analogiczne dodajemy jednostki pomocnicze ujemne.

Rekurencyjne budujemy takie drzewa dla jednostek pomocniczych,

(66)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm upstart

Tworzymy pojedynczą jednostkę U, która widzi wszystkie wejścia. Jej wyjście jest wyjściem całej sieci,

Odkładamy U na stos wraz ze wszystkimi przykładami uczącymi, Dopóki stos jest niepusty, powtarzamy:

zdejmujemy ze stosu jednostkę Ui i zbiór stowarzyszonych z nią przykładów uczących,

uczymy Ui na jej przykładach algorytmem zapadkowym,

jeżeli klasyfikacja Ui jest w pełni zgodna, to rozpocznij następną iterację pętli (continue).

(67)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm upstart cd.

Dopóki stos jest niepusty, powtarzamy:

(...)

jeżeli istnieją źle sklasyfikowane przykłady z oczekiwaną odpowiedzią +1 dla jednostki Ui, to

tworzymy nową jednostkę Ui +, jej wejściami są wszystkie wejścia, jej wyjście wchodzi do Ui z dużą wagą dodatnią,

odkładamy Ui +na stos z następującym zbiorem uczącym:

˘Ek: Uik= −1, CUki = +1¯ ∪ ˘Ek: CUki = −1¯, to jest przykłady, które są klasyfikowane przez Ui jako −1, a powinny +1 oraz przykłady, która powinny być klasyfikowane przez Ui

jako −1, Zbiór uczący dla Ui +jest mniejszy od Ui o przykłady dodatnie, które są dobrze klasyfikowane,

(68)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Algorytm upstart cd.

Dopóki stos jest niepusty, powtarzamy:

(...)

jeżeli istnieją źle sklasyfikowane przykłady z oczekiwaną odpowiedzią +1 dla jednostki Ui, to

(...)

jeżeli istnieją źle sklasyfikowane przykłady z oczekiwaną odpowiedzią −1 dla Ui, to

tworzymy nową jednostkę Ui −, jej wejściami są wszystkie wejścia, jej wyjście wchodzi do Ui z dużą wagą dodatnią,

odkładamy Ui − na stos z następującym zbiorem uczącym:

˘Ek: Uik= +1, CUki = −1¯ ∪ ˘Ek: CUki = +1¯, to jest przykłady, które są klasyfikowane przez Ui jako +1, a powinny −1 oraz przykłady, która powinny być klasyfikowane przez Ui jako +1, zdejmujemy ze stosu następny neuron (continue),

Zwracamy uzyskaną sieć.

(69)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 1/6

-8 -6 -4 -2 0 2 4 6

-10 -5 0 5 10

(70)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 2/6

-8 -6 -4 -2 0 2 4 6

-10 -5 0 5 10

źle klasyfikowane przykłady dodatnie źle klasyfikowane

przykłady ujemne

(71)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 3/6

-8 -6 -4 -2 0 2 4 6

-10 -5 0 5 10

źle klasyfikowane przykłady ujemne

(72)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 4/6

-8 -6 -4 -2 0 2 4 6

-10 -5 0 5 10

wracamy do

(73)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 5/6

-8 -6 -4 -2 0 2 4 6

-10 -5 0 5 10

źle klasyfikowane przykłady ujemne

(74)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Algorytm wieżowy Algorytm piramidalny Algorytm kafelkowy Algorytm upstart

Przykład 6/6

-8 -6 -4 -2 0 2 4 6

-10 -5 0 5 10

(75)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Zadania do przemyślenia

Po wykładzie powinienem umieć

łączyć neurony w sieci skierowane w celu zwiększenia ich siły klasyfikacyjnej

implementować dynamikę w sieciach skierowanych

skonstruować sieć skierowaną dla zadanych danych uczących

(76)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Zadania do przemyślenia

Zadania domowe

Opisz różnice mięszy siecią wieżową, a piramidalną.

Która z sieci ma większe możliwości opisu: wieżowa czy piramidalna?

Skonstruuj sieć warstwową rozwiązującą problem IFF (if and only if).

Skonstruuj dane jednowymiarowe / dwuwymiarowe, których nie będzie wstanie rozwiązać perceptron, a których nauczy się sieć.

Podaj wagi sieci.

(77)

Sieci skierowane Algorytmy konstrukcyjne Podsumowanie wykładu

Zadania do przemyślenia

Zadania domowe

Dla sieci wieżowej, piramidalnej lub / i warstwowej wyświetl profil klasyfikacji fragmentu płaszczyzny. Wagi wygeneruj losowo. Przetestuj wykresy dla kilku sieci z różną ilością neuronów / warstw i neuronów w warstwie.

(*) Skonstruuj dane dwuwymiarowe składające się z trzech przykładów uczących, którego nie będzie wstanie rozwiązać perceptron, a który rozwiąże sieć. Podaj wagi sieci.

(*) Do tego samego zestawu danych zastosuj różne algorytmy konstrukcyjne. Porównaj uzyskaną jakość uczenia. Porównaj również czas uczenia oraz zużycie pamięci (ilość neuronów i wag).

Cytaty

Powiązane dokumenty

Do grupy wstępnej będą należały wszystkie te dokumenty, które miały wyliczony współczynnik korelacji większy lub równy p min. Są to wszystkie obiekty grupy

W stochastycz- nej wersji zadania wielkości popytu poszczególnych odbiorców na poszczególne dobra są zmiennymi losowymi, a celem jest minimalizacja sumy kosztów transportu i wartości

Dla gramatyki bezkontekstowej w postaci normalnej Chomsky’ego algorytm CYK rozstrzyga, czy dane słowo należy do języka generowanego przez tę gramatykę.. Dla każdej

Algorytm Kruskala może być zrealizowany jako funkcja otrzymująca jako argument graf (lub listę wszystkich krawędzi) i zwracająca jako wynik minimalne drzewo rozpinające (wynik

W każdym kroku generowania reguły (zbiór T reprezentuje regułę) wybierany jest taki warunek, który jest spełniany przez największą liczbę obiektów (tj.. Jeżeli jest więcej

Każdy osobnik opisany jest przez liczbę bitów (chromosomów) równą LBnP * liczba parametrów (tutaj 2).. Wartość każdego bitu dobierana

Funkcja connect() nie może być ponawiana bez uprzedniego otworzenia nowego gniazda. Przebieg współpracy z serwerem określa protokół komunikacji. TCP jest protokołem

W teorii złożoności obliczeniowej problem NP-trudny (NPH) to taki problem obliczeniowy, którego rozwiązanie jest co najmniej tak trudne jak rozwiązanie każdego problemu z