1. Sieci samoorganizujące poprzez współzawodnictwo

1.4. Program Kohon

Pakiet programów KOHON, napisany w języku Matlab wywoływany jest poleceniem kohon [46]. Umożliwia zarówno uczenie jak i testowanie sieci Kohonena. Może służyć do rozwiązywania różnorodnych problemów praktycznych. 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. Obsługa tego programu jest intuicyjnie prosta.

Rys. 7.10. Wygląd okna menu głównego programu Kohon

Na rys. 7.10. przedstawiono wygląd okna menu głównego programu. Pola Learning data, Testing data oraz Network z lewej strony menu służą do zadawania odpowiednio danych uczących, testujących oraz zapamiętywania i wczytywania zapamiętanej sieci Kohonena. Format danych powinien zawierać w pierwszej linii wymiar wektora x. Następne linie zawierają kolejne wektory x stanowiące zasadniczą treść danych.

Środkowa cześć menu (Network parameters) zawiera podstawowe informacje dotyczące definicji struktury sieci i sposobu tworzenia mapy odwzorowań. Są to:

  • Network dimension – określa ilość neuronów umieszczonych w osi poziomej i pionowej. Należy podać dwie liczby, np. 5 7, z których pierwsza określa rozmiar mapy w osi x (równy 5) a druga w osi y (rozmiar 7). Liczba neuronów jest równa wówczas iloczynowi obu liczb (w przykładzie n=35).

  • Neighborhood function – określa rodzaj zastosowanej funkcji sąsiedztwa. Dostępne są następujące typy: bubble –prostokątne, gaussian – gaussowskie, cutgaussian – zmodyfikowane gaussowskie z obciętą i podwyższoną podstawą oraz ep=max(0, 1-x2).

Rys. 7.11 Typowe funkcje sąsiedztwa używane przy tworzeniu mapy Kohonena: od lewej prostokątne, gaussowskie, zmodyfikowane gaussowskie oraz typu ep.


  • Topology – rodzaj siatki określającej topologię sąsiedztwa. Dostępna jest siatka prostokątna (rect) oraz heksagonalna (hexa).

  • Shape – określa sposób rysowania mapy Kohonena. Możliwe są 3 typy przedstawień mapy: sheet (struktura płaska mapy), cylinder (struktura cylindryczna) i toroid (struktura toroidalna).

  • Initialization type - sposób inicjalizacji wartości wag początkowych sieci. Są możliwe dwie metody: randinit (przypisanie losowych wartości wag) oraz lininit – przypisanie wag według specjalnej procedury korzystającej z zależności liniowych odpowiadających danym uczącym.

  • Initialize – przycisk do faktycznej inicjalizacji wag sieci według wybranej wcześniej procedury inicjalizacji.

Z prawej strony menu występują parametry definiujące sposób uczenia sieci (pole Learning). Na pole to składa się:

  • Wybór algorytmu uczenia (Learning algorithm) w ramach którego można wybrać spośród następujących metod uczenia: WTA (metoda Winner Takes All), CWTA (metoda WTA z mechanizmem zmęczenia), WTM batch (algorytm Kohonena aktualizujący wagi po prezentacji wszystkich danych z pliku uczącego), WTM seq (algorytm Kohonena aktualizujący wagi sieci w sposób on-line) oraz Neural gas (algorytm gazu neuronowego).

  • Training length – ustala liczbę cykli (epok) uczących

  • Radius initial – podaje początkową wielkość sąsiedztwa (w liczbie neuronów) przy zastosowaniu algorytmu Kohonena)

  • Alpha initial – początkowa wartość stałej uczenia  \alpha

Po ustawieniu tych wielkości należy przycisnąć przycisk Learn, uruchamiający proces uczenia. Testowanie wytrenowanej sieci odbywa się na danych testujących po przyciśnięciu przycisku Test w polu Testing. Program umożliwia różny sposób wizualizacji wyników. Dostępne są następujące opcje (po wybraniu odpowiedniego przycisku):

  • Graph – ilustracja położeń danych 2D na tle danych uczących.

  • Map – przedstawienie położenia danych wielowymiarowych jako mapy Kohonena. Aby to uzyskać należy przeprowadzić uczenie sieci przy użyciu algorytmu Kohonena (możliwe jest krótkie douczenie przy zastosowaniu innych algorytmów).

  • Sammon 2D i Sammon 3D – ilustracja położenia danych uczących odpowiednio w przestrzeni 2-wymiarowej (2D) lub trójwymiarowej (3D) przy zastosowaniu algorytmu Sammona.

  • Voronoi – ilustracja położenia danych 2D i neuronów jak mozaiki Voronia.

W skład pakietu Kohon wchodzą również programy konwertujące dane obrazów graficznych zapisane w formacie PCX (pcxkoh.exe) na format plików pakietu Kohon i koh2pcx.exe dokonujące konwersji w drugą stronę. Program koherror.bat umożliwia natomiast obliczenie błędu PSNR (w dB) wyrażającego różnicę pomiędzy obrazem oryginalnym, a odtworzonym.