Wstęp do sieci neuronowych, wykład 07 Uczenie nienadzorowane cd.
M. Czoków, J. Piersa
Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika w Toruniu
2013-11-26
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 Algorytm k-means Zagadnienie Algorytm k-means Przykład
2 Algorytmy ze zmienną ilością kategorii Algorytm ART2
Przykład
3 Uczenie Hebboswkie Reguła Hebba Reguła Oja
1 Algorytm k-means Zagadnienie Algorytm k-means Przykład
2 Algorytmy ze zmienną ilością kategorii Algorytm ART2
Przykład
3 Uczenie Hebboswkie Reguła Hebba Reguła Oja
Zagadnienie
Dane:
zbiór punktów w Rn: E =
n
E(1), .., E(m) o
, E(i ) ∈ Rn, oczekiwana liczba kategorii 2 ≤ k m.
Wynik:
podział zbioru E na klastry K1∪ ... ∪ Kk,
każdy z klastrów powinien zawierać punkty, które leżą w pobliżu siebie,
klastry są parami rozłączne
∀i 6=jKi ∩ Kj = ∅.
Środek ciężkości
Środkiem ciężkości zbioru punktów x(1), .., x(n) , x(i ) ∈ Rn nazywamy punkt:
P
ix(i )m(i ) P
im(i ) , gdzie: m(i )> 0 — masa (waga) i -tego punktu.
Algorytm k-means
1 ustal ilość kategorii k,
2 przypisz przykłady kategoriom,
3 dla każdej kategorii oblicz jej środek ciężkości,
4 powtarzaj wiele razy, wybierz przykład E ,
znajdź dla E kategorię o najbliższym środku ciężkości, jeżeli nie był do niej przypisany, to przypisz tam E , uaktualnij środki ciężkości w obu kategoriach (tj. wypisanej i wpisanej), zakończ, gdy stan się ustabilizuje,
Przykład działania 1/5
2 4 6 8 10 12
-6 -4 -2 0 2 4 6
Przykład działania 2/5
2 4 6 8 10 12
-6 -4 -2 0 2 4 6
Przykład działania 3/5
2 4 6 8 10 12
-6 -4 -2 0 2 4 6
Przykład działania 4/5
2 4 6 8 10 12
-6 -4 -2 0 2 4 6
Przykład działania 5/5
2 4 6 8 10 12
-6 -4 -2 0 2 4 6
Do czego wykorzystać
2 4 6 8 10 12
-6 -4 -2 0 2 4 6
-6 -4
-2 0
2 4
6 0 2
4 6
8 10
12 0
0.5 1 1.5 2
Do czego wykorzystać
-6 -4
-2 0
2 4
6 0 2
4 6
8 10
12 0
0.5 1 1.5 2
-6 -4
-2 0
2 4
6 0 2
4 6
8 10
12 0
0.5 1 1.5 2
out
Inicjalizacja środków ciężkości w k-means++
1 Przydziel losowemu przykładowi pierwszą kategorię.
2 Dla każdego przykładu E(i ), któremu nie została przypisana żadna kategoria, oblicz D(E(i )) — odległość pomiędzy przykładem, a najbliższym środkiem ciężkości.
3 Wylosuj przykład, któremu przydzielona zostanie kolejna kategoria; każdy przykład E(i ) może zostać wylosowany z prawdopodobieństwem proporcjonalnym do D2(E(i )).
4 Powtarzaj krok 2 i 3, aż zostanie wyznaczonych k środków ciężkości.
1 Algorytm k-means Zagadnienie Algorytm k-means Przykład
2 Algorytmy ze zmienną ilością kategorii Algorytm ART2
Przykład
3 Uczenie Hebboswkie Reguła Hebba Reguła Oja
Zagadnienie
Dane:
zbiór przykładów (wektorów) uczących:
E =E1, .., Em , Ei ∈ Rn. Wynik:
podział zbioru E na klastry K1∪ ... ∪ Kk, przy czym algorytm sam określa liczbę kategorii k,
każda z kategorii jest reprezentowana przez „prototyp” P — typowy element danej kategorii,
każdy z klastrów powinien zawierać elementy leżące w pobliżu siebie,
klastry są parami rozłączne
∀i 6=jKi ∩ Kj = ∅.
Szkielet algorytmu
1 przypisz zbiór kategorii k := ∅, każda kategoria ma swój prototyp P,
2 powtarzaj wiele razy
1 wybierz losowo przykład E ,
2 znajdź kategorię o najbliższym prototypie P, jeżeli lista kategorii jest pusta, to patrz punkt 4,
3 sprawdź czy P jest wystarczająco podobny do E :
4 jeżeli nie lub lista jest pusta, to utwórz nową kategorię o prototypie E i zakończ bieżącą iterację,
5 jeżeli tak, to sprawdź czy P można zaakceptować jako prototyp dla E ,
jeżeli nie, to wróć do (2.2) i wybierz kolejny najbliższy prototyp, jeżeli tak, to upodobnij P do E ,
Wstępna obróbka danych
Wybieramy pewną liczbe 0 < θ < √1n, gdzie n oznacza wymiar przestrzeni przykładów.
Normalizujemy przykłady.
Zerujemy wszystko, co jest mniejsze od θ.
Normalizujemy jeszcze raz.
Normalizacja
E := E
|E |
Najbliższy prototyp
najbliższy P — ten, który maksymalizuje hP, E i,
Można zaakceptować
można zaakceptować
— czy hP, E i ≥ ρ, gdzie ρ ∈ (0, 1),
Upodobnij
P := (1 − β)P + βE P := P
|P|
Wynik
w2 w1 w3
1 Algorytm k-means Zagadnienie Algorytm k-means Przykład
2 Algorytmy ze zmienną ilością kategorii Algorytm ART2
Przykład
3 Uczenie Hebboswkie Reguła Hebba Reguła Oja
Reguła Hebba 1949
Reguła Hebba
Neurons, that fire together, wire together.
Reguła Hebba 1949
Jeśli neuron A jest cyklicznie pobudzany przez neuron B, to staje się on jeszcze bardziej czuły na pobudzenie tego neuronu.
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ą są pobudzone
niejednocześnie, to połączenie synapytczne podlega osłabieniu.
Reguła Hebba 1949
Zmiana wag połączenia pomiędzy neuronem A i B:
wAB(k+1)= wAB(k)+ ηyA(k)yB(k), gdzie:
wAB — waga połączenia synaptycznego pomiędzy neuronem A i B,
yA — stan aktywacji neuronu A, yB — stan aktywacji neuronu B, η — współczynnik uczenia.
Prosta reguła Hebba - algorytm
1 losujemy wektory wag,
2 wybieramy przykład x ,
3 w := w + ηyx , gdzie y jest aktywacją w odpowiedzi na x , natomiast η dodatnim współczynnikiem uczenia,
4 wracamy do 2,
Reguła Hebba - wady
x5 x1
x3 x4
x2
x6
w(1) w(5) w(3) w(2)
w(6) w(7)
w(8)
w(4)
Reguła Hebba prowadzi do niekontrolowanego wzrostu długości
Reguła Oja
Reguła Oja jest modyfikacją reguły Hebba. Dzięki niej wektor wag jest korygowany tak, żeby jego długość oscylowała wokół 1.
Modyfikacja polega na dodaniu do reguły Hebba wyrazu zanikania wagi proporcjonalnego do kwadratu aktywacji neuronu.
w := w + ηy (x − yw )
Reguła Oja
x5 x1
x3
x4 x2
x6
w(1) w(5) w(3)
w(2) w(6) w(4)
Reguła Oja
x5 x1
x3
x4 x2
x6
w(1) w(5) w(3)
w(2) w(6) w(4)