Laboratorium Sieci Neuronowych Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej



Pobieranie 60.68 Kb.
Data30.04.2016
Rozmiar60.68 Kb.

Laboratorium Sieci Neuronowych

Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej


Instytut Elektrotechniki Teoretycznej i Systemów Informacyjno-Pomiarowych, PW

Ćwiczenie Nr 4

Badanie sieci samoorganizujących Kohonena

Autor: K. Siwek, S. Osowski




  1. Cel ćwiczenia

Celem ćwiczenia jest zapoznanie się z działaniem algorytmów uczenia sieci Kohonena, sposobami jej wykorzystania oraz zastosowaniem sieci w rozwiązywaniu różnych problemów praktycznych.

  1. Implementacja sieci Kohonena w postaci pakietu KOHON

Pakiet programów KOHON, wywoływany poleceniem kohon (spod okna tekstowego 4dos lub 4nt), umożliwia uczenie sieci samoorganizujących się poprzez konkurencję, testowanie oraz zastosowanie w rozwiązywaniu problemów praktycznych sieci Kohonena. Oprócz programów uczących i testujących, pakiet zawiera szereg programów niezbędnych do wygenerowania danych uczących, konwersji obrazów graficznych i plików dźwiękowych na dane numeryczne, jak również programy do graficznego odzwierciedlenia danych uczących, mapy oraz wyników uczenia.

Programy pakietu KOHON są programami graficznymi, w którym niemal cała komunikacja z użytkownikiem przeprowadzana jest przy pomocy myszy. Program KOHON jest platformą, z której mamy dostęp do wszystkich funkcji pakietu .

Pola „Input Data File”, „Input Code File” oraz „Input Test File” umożliwiają podanie nazw plików zawierających dane uczące, wagi neuronów i dane testujące. Przycisk „Shapedit” pozwala wywołać edytor graficzny SHAPEDIT, przycisk „Brief” wywołuje natomiast edytor tekstowy brief.

Parametry sieci ustawiane są poprzez zmianę nastaw suwaków („xdim”, „ydim” – wymiary mapy, liczba neuronów jest równa iloczynowi xdim i ydim), wybranie ikonki na polu „Neighborhood” (typ sąsiedztwa) – „bubble” (skokowe) lub „gaussian” (ciągłe), oraz ikonki na polu „Topology” (rodzaj topologii mapy) – „hexagonal” (6 najbliższych sąsiadów) lub „rectangular” (4 sąsiadów). Startowe parametry uczenia określane są nastawami suwaków: „alfa” (początkowa wartość stałej uczenia), „nlen” (liczba iteracji) oraz „radius” (średnica sąsiedztwa).

Przypisanie początkowych wag sieci przeprowadzana jest po wybraniu przycisku „Randinit” – wagom sieci nadaje się wartości losowe lub „Lininit” – początkowe wagi neuronów zostają określone na podstawie danych uczących. Uczenie rozpoczyna się po naciśnięciu przycisku VSOM (alg. Kohonena), NGAS (alg. neural gas) lub CWTA (alg. WTA z sumieniem), testowanie po naciśnięciu przycisku „Start test”. Podczas testowania wciśnięcie klawisza SPACJA skutkuje wyłonieniem zwycięzcy dla jednego wektora wejściowego, a wciśnięcie klawisza „a” przeprowadza testowanie na wszystkich danych testujących.

Przyciski „VGraph” oraz „Sammon” umożliwiają wizualizację rozkładu danych uczących i testowych. Przycisk „Attract” umożliwia wyświetlenie na ekranie komputera obszarów atrakcji neuronów sieci. Program „SHAPEDIT” jest edytorem graficznym, umożliwiającym ręczne wygenerowanie dwu i trójwymiarowych danych uczących i testujących. Obsługa programu jest intuicyjnie prosta i bardzo podobna do obsługi innych edytorów np. programu Paintbrush. Ikony umieszczone w lewej, górnej części ekranu pozwalają wybrać sposób rysowania (punkty – PAINT, linie – LINE, elipsy – CIRCLE, prostokąty – RECT), wypełniania narysowanych kształtów – FILL, usuwania zbędnych elementów – ERASE. Narysowane kształty są traktowane jak maska, na której zostaną wygenerowane losowo (przycisk „GENG”, klawisz SPACJA) bądź równomiernie (klawisz ENTER) punkty. Przycisk „SAVE” umożliwia zachowanie danych w pliku. W wywołanym okienku dialogowym należy wybrać rodzaj normalizacji danych: przeskalowanie danych („2-variable”), dodanie trzeciej współrzędnej („3-variable”), lub brak normalizacji („no normalization”). Wciśnięcie przycisku „KILL” czyści cały ekran. Przycisk „LOAD” umożliwia załadowanie do edytora wcześniej przygotowanych danych. Przycisk „DATA” wywołuje okienko dialogowe umożliwiające ustawienie zakresu generowanych danych (standardowo ±1). Ponadto przycisk „HELP” uruchamia system podpowiedzi. Wyjście z programu umożliwia przycisk „QUIT”.

W skład pakietu KOHON wchodzą również programy konwertujące dane obrazów graficznych zapisane w formacie PCX (pcx2koh) na format plików pakietu KOHON i dokonujące konwersji w drugą stronę.




  1. Program badań

Program badań zakłada testowanie algorytmów uczących dostępnych w programie na kilku problemach testowych. Są to:


  • Odwzorowanie danych jednowymiarowych

    • Zapoznać się ze sposobem przygotowania danych dla programu Kohon (pliki 1DA.dat, 1LINIA.dat w katalogu KOHON).

    • Przeprowadzić uczenie mapy odwzorowań jednowymiarowych na pliku 1DA (uwaga: ustawić jeden z wymiarów sieci xdim lub ydim mapy równy 1). Zanotować wartość błędu kwantyzacji i liczbę neuronów martwych dla każdej z metod uczenia.

Tabela 1 Błąd kwantyzacji dla odwzorowań danych w pliku 1DA.dat



Metoda uczenia

Błąd kwantyzacji

Liczba neuronów martwych

WTA







CWTA







WTM_batch







WTM_seq







Neural gas






Narysować (zrzut ekranu) rozkład danych i neuronów dla dwu wybranych przypadków (np. WTA i CWTA).




  • Odwzorowanie danych dwuwymiarowych tworzących zwarty obszar

    • Zapoznać się ze sposobem przygotowania danych dla programu Kohon (pliki KWAD.dat, KOLO.dat KOLKO.dat w katalogu KOHON).

    • Przeprowadzić uczenie mapy odwzorowań dwuwymiarowych. Zanotować wartość błędu kwantyzacji dla każdej z metod uczenia wypełniając tabelę 2 dla jednego przypadku rozkładu danych (np. danych z pliku KWAD.dat). Zanotować wartość błędu kwantyzacji dla każdej z metod.

    • Zaobserwować i narysować (zrzut ekranu) kształt diagramu Voronoia i narysować go dla metody WTA i CWTA.

Tabela 2 Błąd kwantyzacji dla odwzorowań danych w pliku KOLO.dat, nx= ……, ny=……



Metoda uczenia

Błąd kwantyzacji

Liczba neuronów martwych

WTA







CWTA







WTM_batch







WTM_seq







Neural gas










  • W przypadku algorytmu Kohonena sprawdzić wpływ rodzaju funkcji sąsiedztwa na uzyskany rozkład położeń neuronów . Wyniki zanotować w tabeli 3.

Tabela 3 Błąd kwantyzacji dla odwzorowań danych w pliku KOLO.dat, nx= ……, ny=……






WTM_batch

WTM_seq

buble







Gaussian







cutgaussian







ep


















    • Zbadać wpływ liczby neuronów n=nx*ny na błąd kwantyzacji dla dwu wybranych metod uczenia, np. WTA i CWTA. Wyniki zanotować w tabeli 4.

Tabela 4 Zależność błędu kwantyzacji dla danych w pliku KWAD.dat dla różnych metod grupowania



Liczba neuronów (n=nx*ny)

WTA

CWTA

6







10







15







20







25







30







40







50







60







70







80







100









  • Odwzorowanie danych dwuwymiarowych rozłącznych

    • Przeprowadzić uczenie sieci Kohonena dla danych tworzących grupy rozłączne (plik 2PROST.dat) Zanotować wartość błędu kwantyzacji i liczbę neuronów ukrytych dla każdej z metod uczenia. Wyniki zanotować w tabeli 5. Przyjąć n=nx*ny=50. Zaobserwować

    • Narysować (zrzut ekranu) rozkład danych i położenia neuronów dla WTA i CWTA jako diagramu Voronoia.

Tabela 5 Błąd kwantyzacji dla odwzorowań danych w pliku 2PROST.dat, n=50



Metoda uczenia

Błąd kwantyzacji

Liczba neuronów martwych

WTA







CWTA







WTM_batch







WTM_seq







Neural gas










    • Wygenerować rozkład danych losowych o rozkładzie nierównomiernym (można skorzystać z pliku NONUN.m).

    • Przeprowadzić uczenie sieci Kohonena dla danych (plik NONUN.m) Zanotować wartość błędu kwantyzacji i liczbę neuronów ukrytych dla każdej z metod uczenia. Wyniki zanotować w tabeli 6. Przyjąć n=nx*ny=50. Zaobserwować

    • Narysować (zrzut ekranu) rozkład danych i położenia neuronów dla WTA i CWTA jako diagramu Voronoia.

Tabela 6 Błąd kwantyzacji dla odwzorowań danych w pliku 2PROST.dat, n=35



Metoda uczenia

Błąd kwantyzacji

Liczba neuronów martwych

WTA







CWTA







WTM_batch







WTM_seq







Neural gas










  • Załadować dane dotyczące obciążenia elektroenergetycznego (wektory 24-elementowe)

  • Wytrenować sieć przy użyciu algorytmu WTM (np. 15 neuronów)

  • Sporządzić mapę Kohonena

  • Przerysować kształt mapy z rozkładem obciążeń czterech pór roku: wiosna (W), lato )L), jesień (J) i zima (Z).




  • Mapa Kohonena dla rozkładu kształtu kwiatów

  • Załadować dane dotyczące rozkładu danych 3 rodzajów kwiatów – plik DATA_4d.dat (wektory 4-elementowe)

  • Wytrenować sieć przy użyciu algorytmu WTM (np. 15 neuronów)

  • Sporządzić mapę Kohonena

  • Przerysować kształt mapy z rozkładem położeń poszczególnych kwiatów (SE - setosa, Vi – Virginica, Ve – Versicolor)




Przykładowe obrazy umieszczone są w podkatalogu DATA, należy skopiować je do katalogu roboczego na dysku F. Aby przeprowadzić tę część badań należy wykonać kolejno następujące kroki:

  1. Utworzyć wektory uczące i testujące dla pliku OBRAZ.pcx w formie plików .dat przy użyciu polecenia img2koh W wyniku powstaje plik OBRAZ.dat.

Przeprowadzić uczenie i testowanie sieci Kohonena z użyciem plików uczących i testujących dotyczących badanych obrazów. W rezultacie uczenia i testowania generowane są miedzy innymi pliki OBRAZ.tab oraz OBRAZ.bat. Po przetestowaniu sieci należy w oknie Matlaba uruchomić plik komendą !OBRAZ.bat. W wyniku powstaje plik zrekonstruowanego obrazu OBRAZNET.pcx.

  1. Obrazy oryginalny, zrekonstruowany i różnicowy można obejrzeć przy użyciu programu img2diff.

    • kompresję przeprowadzić dla obrazów len256.pcx i las256.pcx, dla ramek o wymiarach 4×4 i liczby neuronów wskazanej przez prowadzącego (np. n=100, 200)

    • uczenie przeprowadzić na jednym obrazie, a testowanie na innym (np. uczenie – las256, testowanie len256).

    • zaobserwować obrazy odtworzone i porównać je z oryginalnymi

    • zanotować wartości PSNR dla danych uczących (testowanie tym samym obrazem) i testujących (testowanie innym obrazem) oraz błąd średniokwadratowy obrazu różnicowego. Wyniki zanotować w tabeli 7

    • obliczyć współczynnik kompresji dla przyjętej liczby neuronów n.

Tabela 7 Wyniki kompresji obrazu (liczba neuronów n=……)



Obraz uczący

Obraz testujący: LAS

Obraz testujący: LENA


PSNR

Błąd średniokwadratowy

PSNR

Błąd średniokwadratowy

LAS













LENA












  1. Sprawozdanie

Sprawozdanie powinno zawierać wyniki badań wyszczególnionych w poszczególnych punktach, w tym wyniki liczbowe, uzyskane obrazy map Kohonena, itp. Dla danych z tabeli sporządzić wykresy. Zalecane jest zamieszczenie wniosków z przeprowadzonych badań.
WAŻNE: Nazwy wszystkich plików i katalogów powinny być nie dłuższe niż 8 znaków i nie powinny zawierać spacji.
Literatura:

  1. Osowski S. Sieci neuronowe do przetwarzania informacji, OW PW, 2006





©absta.pl 2016
wyślij wiadomość

    Strona główna