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