Wst¦p do sieci neuronowych, wykªad 9 Algorytmy klasykuj¡ce.
M. Czoków, J. Piersa
Wydziaª Matematyki i Informatyki, Uniwersytet Mikoªaja Kopernika w Toruniu
2010-12-06
1 Algorytm k-means Zagadnienie Algorytm k-means Przykªad
Inicjalizacja ±rodków ci¦»ko±ci
1 Algorytm k-means Zagadnienie Algorytm k-means Przykªad
Inicjalizacja ±rodków ci¦»ko±ci
Zagadnienie
Dane:
zbiór punktów w Rn:
E =nE(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
∀i6=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/6
2 4 6 8 10 12
-6 -4 -2 0 2 4 6
Przykªad dziaªania 2/6
2 4 6 8 10 12
-6 -4 -2 0 2 4 6
Przykªad dziaªania 3/6
2 4 6 8 10 12
-6 -4 -2 0 2 4 6
Przykªad dziaªania 4/6
2 4 6 8 10 12
-6 -4 -2 0 2 4 6
Przykªad dziaªania 5/6
2 4 6 8 10 12
-6 -4 -2 0 2 4 6
Przykªad dziaªania 6/6
2 4 6 8 10 12
-6 -4 -2 0 2 4 6
Inicjalizacja ±rodków ci¦»ko±ci w k-means
Poªo»enie ±rodków ci¦»ko±ci mo»na wylosowa¢. Nast¦pnie przykªady wstawia si¦ do kategorii o najbli»szym ±rodku ci¦»ko±ci, za ka»dym razem aktualizuj¡c ±rodek ci¦»ko±ci powi¦kszanej kategorii.
Ale czy to jest dobre rozwi¡zanie?
Inicjalizacja ±rodków ci¦»ko±ci w k-means
Ka»demu z k pierwszych przykªadów przydziela si¦ inn¡ kategori¦
i wstawia pozostaªe N − k punktów do kategorii o najbli»szym ±rodku ci¦»ko±ci, za ka»dym razem aktualizuj¡c ±rodek ci¦»ko±ci powi¦kszanej kategorii.
Uwagi do algorytmu
Algorytm k-means prowadzi do klasykacji lokalnie (niekoniecznie globalnie) optymalnej ze wzgl¦du na sum¦ kwadratów odlegªo±ci.
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.
Uwagi do algorytmu
Inicjalizacja ±rodków ci¦»ko±ci u»yta w algorytmie k-means++
±rednio osi¡ga du»o ni»sze warto±ci bª¦du.
Dodatkowo k-means++ szybciej zbiega ni» k-means.
Uwagi do algorytmu
Jest on na tyle szybki, »e mo»na wybiera¢ odpowiedni¡ liczb¦
kategorii stosuj¡c go dla ró»nych k i patrze¢, kiedy nast¡pi skok jako±ciowy (ze wzgl¦du na funkcj¦ straty deniowan¡ jako suma kwadratów odlegªo±ci od ±rodków ci¦»ko±ci kategorii).
Algorytm ko«czy dziaªanie osi¡gaj¡c stabilno±¢.