Sieci konkurencyjne i samoorganizujące się :: Instrukcja

Transkrypt

Sieci konkurencyjne i samoorganizujące się :: Instrukcja
Sieci konkurencyjne i samoorganizujące się :: Instrukcja
Marcin Suchorzewski
[email protected]
4 grudnia 2008
1
Klasteryzacja za pomocą sieci konkurencyjnych
Przykład
1. Wygenerować 400 próbek z około 10 różnych, 2-wymariowych rozkładów normalnych, o środkach niezbyt od siebie odległych (randn, mvnrand).
2. Wykreślić próbki (plot, scatter).
3. Utworzyć sieć konkurencyjną (newc). Jako pierwszy argument podaje się macierz
minimów i maksimów (minmax).
4. Wykreślić wagi neuronów (znajdują się w strukturze sieci w polu IW{1}).
5. Wytrenować sieć (train).
6. Wykreślić nowe położenie neuronów.
7. Zasymulować sieć (sim).
8. Wykreślić wyniki symulacji (scatter). Uwaga wyniki trzeba przetworzyć z postaci
rzadkiej do indeksowanej (vec2ind).
Pytanie: Dlaczego nie dokonano podziału danych na część uczącą i testującą?
Zadanie – grupowanie gmin
1. Za pomocą sieci konkurencyjnej pogrupować gminy w województwie Zachodniopomorskim (plik gminy2000.txt). Wyniki klasteryzacji przedstawić w pomysłowy sposób.
2. Ocenić jakość grupowania za pomocą wybranego wskaźnika, np. Davis’a–Bouldin’a
(patrz dodatek).
3. Wykreślić zależność jakości grupowania od liczby neuronów w sieci.
4. Eksperyment powtórzyć, ale stosując walidację, czyli podział danych na uczące i testujące. Sieć trenujemy na danych uczących, testujemy na testujących. Jakość grupowania w zależności od liczby neuronów liczymy na danych testujących.
1
2
Klasteryzacja za pomocą mapy Kohonena
Przykład
1. Wygenerować 400 próbek z około 10 różnych, 2-wymariowych rozkładów normalnych, o środkach niezbyt od siebie odległych. (randn, mvnrand).
2. Wykreślić próbki (plot, scatter).
3. Utworzyć mapę Kohonena o rozmiarach w przybliżeniu 5x5 (newsom). Jako pierwszy
argument podaje się dane ”próbne”, niekoniecznie trenujące.
4. Wykreślić
topologię
sieci,
tj.
położenie
i
(plotsom(net.iw{1},net.layers{1}.distances)).
powiązanie
neuronów:
5. Wytrenować sieć (train).
6. Wykreślić ponownie topologię sieci.
7. Zasymulować sieć (sim).
8. Wykreślić wyniki symulacji (scatter). Uwaga wyniki trzeba przetworzyć z postaci
macierzowej do indeksowanej (vec2ind).
Zadanie – mapowanie kolorów
1. Wygenerować dużą liczbę znormalizowanych próbek RGB, tj. wektorów 3elementowych o wartościach z przedziału [0; 1].
2. p
Utworzyć sieć o topologii prostokątnej, dobierając odpowiednią liczbę neuronów (np.
N/2, gdzie N to liczba próbek).
3. Wytrenować sieć.
4. Wykreślić mapę kolorów. W tym celu należy utworzyć macierz o wymiarach równych
topologii sieci i każdemu elementowi (i, j) tej macierzy przypisać wektor wag neuronu
znajdującego się w odpowiadającej pozycji (i, j) (uwaga na indeksowanie od 0).
Pozycje neuronów w sieci znajdują się w polu net.layers{1}.positions, wagi w
polu net.IW{1}. Tak utworzoną macierz o wymiarach I × J × 3 (gdzie I – liczba
wierszy, a J liczba kolumn) można wyświetlić poleceniem image.
3
Dodatek: Wskaźnik jakości klasteryzacji Davis’a – Bouldina’a
Wskaźnik Davis’a–Bouldin’a jest tym mniejszy (lepszy) im mniejsze jest rozproszenie
próbek w klastrach i im większa jest odległość pomiędzy klastrami.
DB =
M
1 X
max
dij ,
j=1,...,M ;i6=j
M
i=1
gdzie
dij =
σi + σj
d(ci , cj )
• M – liczba klastrów
2
• σi – średnie rozproszenie w i-tym klastrze, czyli średnia odległość wszystkich próbek
od środka klastra.
• ci – współrzędne środka i-tego klastra.
• d(ci , cj ) – odległość (np. Euklidesowa) pomiędzy środkami klastrów i oraz j.
Literatura
[1] Leszek Rutkowski. Metody i techniki sztucznej inteligencji. PWN, Warszawa, 2005.
[2] Anil K. Jain, Jianchang Mao and K. M. Mohiuddin. Artificial Neural Networks:
A Tutorial. IEEE Computer, vol. 29, no. 3, pp. 31–44, March 1996. URL:
http://citeseer.ist.psu.edu/jain96artificial.html
[3] Howard Demuth, Mark Beale. Neural Network Toolbox For Use with Matlab. User’s
Guide 3.0. The MathWorks, 1997. (Dostępny jako pomoc w Matlab’ie, jak również:
http://citeseer.ist.psu.edu/434736.html.)
Uzupełniająca:
[4] Teuvo Kohonen and Timo Honkela (2007), Kohonen network. Scholarpedia, 2(1):1568.
URL: http://www.scholarpedia.org/article/Kohonen network
[5] Cluster
analysis.
(2008,
December
4).
In
Wikipedia,
The
Free
Encyclopedia.
Retrieved
15:44,
December
4,
2008,
from
http://en.wikipedia.org/w/index.php?title=Cluster analysis&oldid=255837823
[6] Simon Haykin. Neural Networks: A Comprehensive Foundation. Prentice Hall, 2nd ed.,
Upper Saddle River, NJ, USA, 1998.
3