Klasteryzacja danych za pomocą sieci Kohonenea
Marek Bazan
III rok - Elektornika
Semestr letni 2019/2020
Plan zajęć
1. Dane
2. Algorytm Kohonena
Dane
1. iris.data 2. dane giełdowe
https://www.kaggle.com/camnugent/sandp500
Algorytm Kohonena
Dane: X = {xi}Ni =1, gdzie xi ∈ Rl, p - liczba klas w danych
1. Definiujemy p wektorów reprezentantów w1, w2, . . . , wp, gdzie wi ∈ Rl oraz współczynnik uczenia α(0) ∈ (0.1, . . . , 0.7) 1 2. Przed rozpoczęciem uczenia:
2.1 Przesuwamy dane X tak, aby środek ciężkości s = N1PN i =0xi był w początku układu współrzędnych oraz normalizujemy ich długość do 1
ˆ
xi def= s − xi
||xi|| i = 0, 1, . . . , N (1) 2.2 Inicjalizujemy wektory reprezentantów
ˆ
wi = 1
√n[1 1 · · · 1]T i = 1, 2, . . . , p (2)
1[1] J. Żurada et al. ”Sztuczne sieci neuronowe”, PWN 1996.
Algorytm Kohonena – cd
3. Dla kolejnych ˆx ∈ ˆX wybieramy ˆwm(k), wg jednej z miar:
ˆ
wTmˆx = max
i =1,2,...,pwˆTi ˆx (3)
|| ˆwTm− ˆx|| = min
i =1,2,...,p|| ˆwTi − ˆx|| (4)
| ˆwmT− ˆx| = min
i =1,2,...,p
v u u u t
l
X
j =1
| ˆwijT − ˆxj| (5)
i dla każdego ˆx zapamiętujemy odpowiadające mu m w tablicy. Następnie modyfikujemy ˆw(k)m wg wzorów:
wˆ(k+1)m = wˆ(k)m + α(k)(ˆx − ˆwm(k)), wˆ(k+1)m = wˆ(k+1)m
|| ˆw(k+1)m ||
ˆ
w(k+1)i = wˆ(k)i , i 6= m.
Algorytm Kohonena – cd (2) – Współczynnik uczenia
Współczynnik α(k) maleje wraz z upływem czasu wyznaczanego przez numer iteracji k. Niech T będzie ustalone z góry jako
maksymalna liczba iteracji2. T jest tak dobrane, aby zbiór X mógł być przejżany w całości kilkukrotnie. Wówczas współczynnik uczenia maleje wg wzorów
1. Liniowe zmniejszanie
α(k) = α(0)(T − k)/T , k = 1, 2, . . . , T . (6) 2. Wykładnicze zmniejszanie
α(k) = α(0)exp(−Ck), k = 1, 2, . . . , T , C > 0. (7) 3. Hiperboliczne zmniejszanie
α(k) = C1/(C2+ k), k = 1, 2, . . . , T , C1, C2 > 0.(8)
2[2] http://zsi.tech.us.edu.pl/~nowak/wi/som.pdf - slajd 33
Algorytm Kohonena – do wykonania
1. Zaimplementować algorytm
2. Przetestować wszystkie miary podobieństwa danych do ich reprezentantów (3)-(5)
3. Przetestować różne sposoby modyfikacji współczynnika uczenia (6)-(8)
4. Sprawdzić czy algorytm działa bez normalizacji danych X 5. Testy wykonać na danych iris oraz danych giełdowych
wybierając różne wartości p