Algorytmy konstrukcyjne dla sieci skierowanych

Transkrypt

Algorytmy konstrukcyjne dla sieci skierowanych
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytmy konstrukcyjne dla sieci skierowanych
M. Czoków, J. Piersa
2010-11-09
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
1
Spis treści
2
Przypomnienie
RLA
3
Algorytmy konstrukcyjne
Algorytm wieżowy
Algorytm piramidalny
Algorytm kafelkowy
Algorytm upstart
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
RLA
Zagadnienie
Daną mamy listę przykładów uczących tj.
punkt E k ∈ Rn ,
odpowiadającą mu poprawną klasyfikację C k ∈ {−1, +1}.
Chcemy znaleźć pojedynczy perceptron (= wagi wi i próg θ), który
klasyfikuje możliwie wiele z przykładów uczących.
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
RLA
Algorytm uczenia perceptronu
1
Przypisujemy wagom i progowi małe losowe wartości wokół 0,
przypisujemy takiemu układowi wag zerowy czas życia, kopie
wag, progu i czasu zycia zapamiętujemy jako rekordzistę,
2
Przebiegamy przykłady losując z listy,
Dla wybranego przykładu E i jego oczekiwanej klasyfikacji C
sprawdzamy, czy E jest dobrze klasyfikowany,
3
Jeśli tak, to zwiększamy mu czas życia o jeden. Jeżeli jest to
wynik lepszy niż u dotychczasowego rekordzisty i jeżeli
dotychczasowy rekordzista klasyfikował poprawnienie wiecej
przykładow niż bieżący układ, to zapisujemy bieżący układ wag
jako nowego rekordzistę. W obu wypadkach wracamy do kroku 2,
Jeśli nie, to wi := wi + CEi oraz θ := θ − C , nowo powstałemu
układowi przypisujemy zerowy czas zycia,
4
Wracamy do kroku 2.
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Zagadnienie
Daną mamy listę przykładów uczących tj.
punkt E k ∈ Rn ,
odpowiadającą mu poprawną klasyfikację C k ∈ {−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 = ?
???
M. Czoków, J. Piersa
out
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Algorytm Wieżowy
...
...
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Algorytm wieżowy
1
Rozpocznij od sieci składającej się z pojedynczego perceptronu z
progową funkcją aktywacji,
2
Naucz jedyny preceptron algorytmem kieszonkowym (z zapadką),
Powtarzaj aż do uzyskania zadowalającego rezultatu (tj.
zadowalający poziom klasyfikacji, limit czasowy itp.)
3
Na szczyt wieży dodaj kolejny neuron. Jego wejściami będą dane
uczące E1 , .., En oraz 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ć.
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Algorytm wieżowy
out
out
...
out
...
M. Czoków, J. Piersa
out
...
WSN 2010/2011 Wykład 5
...
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Uzasadnienie
Przyjmijmy oznaczenia:
Oj — jednostka j-ta,
Oj+1 — jednostka j + 1-sza, tą będziemy uczyli,
E k — 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 .
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Uzasadnienie
out
Przypiszmy:
wi,j+1 :=C k Eik
wj,j+1 :=n − ε
θj+1 := − 12 C k
...
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Uzasadnienie
Pokażemy, że sieć z dodanym neuronem Oj+1 jest w stanie
zaklasyfikować poprawnie przynajmniej o jeden przykład uczący
więcej.
Dla przykładu E k neuron Oj+1 otrzyma na wejściu
X
(n − ε)(−1)C k +
C k Eik · Eik = nC k − nC k + εC k = εC k
i
1
θj+1 = − C k
2
więc sieć zwróci oczekiwaną odpowiedź na E k .
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Uzasadnienie
Dla pozostałych przykładów E j , j 6= k neuron Oj+1 zwróci tę
samą odpowiedź co neuron Oj :
X
(n − ε)Oj +
C j Eij · Eik
i
Jeżeli dla każdego i Eij = Eik oraz C k = C k , to oba przykłady E k
oraz E j są te same i E j też będzie porawnie klasyfikowany,
Jeżeli dla każdego i zachodzi Eij = Eik oraz C k 6= C k , to oba E k
oraz E j 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
j j
k
C Ei · Ei ≤ n − 1
i
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Uzasadnienie
Suma ważona w jednostce Oj+1 wyniesie zatem:
X
(n − ε)Oj +
C j Eij · Eik ≤ (n − ε)Oj + (n − 1)C j
i
Oraz próg:
1
θj+1 = − C k
2
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 .
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Algorytm
Algorytm
Algorytm
Algorytm
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
wieżowy
piramidalny
kafelkowy
upstart
Przykład 1/4
6
4
2
0
-2
-4
-6
-8
-6
M. Czoków, J. Piersa
-4
-2
0
2
WSN 2010/2011 Wykład 5
4
6
Algorytm
Algorytm
Algorytm
Algorytm
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
wieżowy
piramidalny
kafelkowy
upstart
Przykład 2/4
6
4
2
0
-2
-4
-6
-8
-6
M. Czoków, J. Piersa
-4
-2
0
2
WSN 2010/2011 Wykład 5
4
6
Algorytm
Algorytm
Algorytm
Algorytm
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
wieżowy
piramidalny
kafelkowy
upstart
Przykład 3/4
1
0.5
0
-0.5
-1-6
-4
-2
0
2
4
6 -8
M. Czoków, J. Piersa
-6
-4
-2
0
WSN 2010/2011 Wykład 5
2
4
6
Algorytm
Algorytm
Algorytm
Algorytm
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
wieżowy
piramidalny
kafelkowy
upstart
Przykład 4/4
1
0.5
0
-0.5
-1-6
-4
-2
0
2
4
6 -8
M. Czoków, J. Piersa
-6
-4
-2
0
WSN 2010/2011 Wykład 5
2
4
6
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Algorytm piramidalny
...
...
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
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ą),
Powtarzaj aż do uzyskania zadowalającego rezultatu (tj.
zadowalający poziom klasyfikacji, limit czasowy itp.)
3
Na szczyt wieży dodaj kolejny neuron. Jego wejściami będą dane
uczące E1 , .., En oraz 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ć.
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Algorytm
Algorytm
Algorytm
Algorytm
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
wieżowy
piramidalny
kafelkowy
upstart
Algorytm piramidalny
out
out
...
out
...
M. Czoków, J. Piersa
out
...
out
...
WSN 2010/2011 Wykład 5
...
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Algorytm kafelkowy
out
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Algorytm kafelkowy
Rozpocznij od sieci składającej się z warstwy wejściowej L = 1,
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ą kombinację odpowiedzi (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
wybrany powinien być najliczniejszy,
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Algorytm kafelkowy cd.
Jeżeli kafel poprawnie klasyfikuje wszystkie przykłady (tj.
różnym kategoriom przypisuje różne zestawy odpowiedzi), 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ę).
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Przykład 1/8
Dane
Sieć
6
4
2
0
out
-2
-4
-6
-8
-10
M. Czoków, J. Piersa
-5
0
WSN 2010/2011 Wykład 5
5
10
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Przykład 2/8
Dane
Sieć
6
4
2
0
out
-2
-4
-6
-8
-10
M. Czoków, J. Piersa
-5
0
WSN 2010/2011 Wykład 5
5
10
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Przykład 3/8
Dane
Sieć
6
4
2
0
out
-2
-4
-6
-8
-10
M. Czoków, J. Piersa
-5
0
WSN 2010/2011 Wykład 5
5
10
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Przykład 4/8
Dane
Sieć
6
4
2
0
out
-2
-4
-6
-8
-10
M. Czoków, J. Piersa
-5
0
WSN 2010/2011 Wykład 5
5
10
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Przykład 5/8
Dane
Sieć
6
4
2
0
out
-2
-4
-6
-8
-10
M. Czoków, J. Piersa
-5
0
WSN 2010/2011 Wykład 5
5
10
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Przykład 6/8
(0 1 1)
6
(1 1 1)
4
2
(0 0 1)
0
(1 0 1)
(0 1 0)
-2
-4
(1 1 0)
-6
-8
-10
(0 0 0)
-5
0
5
10
M. Czoków, J. Piersa
(1 0 0)
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Przykład 7/8
Dane
Sieć
(0 1 1)
(1 1 1)
(0 0 1)
(1 0 1)
out
(0 1 0)
(1 1 0)
(0 0 0)
(1 0 0)
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Przykład 8/8
Dane
Sieć
(0 1 1)
(1 1 1)
(0 0 1)
(1 0 1)
out
(0 1 0)
(1 1 0)
(0 0 0)
(1 0 0)
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Algorytm upstart
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
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),
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
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:
E k : Uik = −1, CUki = +1 ∪ E k : 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,
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
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:
E k : Uik = +1, CUki = −1 ∪ E k : 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ć.
M. Czoków, J. Piersa
WSN 2010/2011 Wykład 5
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Przykład 1/6
6
4
2
0
-2
-4
-6
-8
-10
M. Czoków, J. Piersa
-5
0
WSN 2010/2011 Wykład 5
5
10
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Przykład 2/6
6
4
2
0
-2
-4
-6
-8
-10
M. Czoków, J. Piersa
-5
0
WSN 2010/2011 Wykład 5
5
10
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Przykład 3/6
6
4
2
0
-2
-4
-6
-8
-10
M. Czoków, J. Piersa
-5
WSN 2010/2011 Wykład 5
0
5
10
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Przykład 4/6
6
4
2
0
-2
-4
-6
-8
-10
M. Czoków, J. Piersa
-5
WSN 2010/2011 Wykład 5
0
5
10
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Przykład 5/6
6
4
2
0
-2
-4
-6
-8
-10
M. Czoków, J. Piersa
-5
WSN 2010/2011 Wykład 5
0
5
10
Spis treści
Przypomnienie
Algorytmy konstrukcyjne
Algorytm
Algorytm
Algorytm
Algorytm
wieżowy
piramidalny
kafelkowy
upstart
Przykład 6/6
6
4
2
0
-2
-4
-6
-8
-10
M. Czoków, J. Piersa
-5
WSN 2010/2011 Wykład 5
0
5
10