Projekt č.2
Autor
Tomáš Šmajda
Úloha
Naprogramujte doprednú neurónovú sieť Kohonenovho typu s metódou učenia "Dot produkt" a "Eukl. vzdialenosť". Naprogramujte ich v jazyku C, alebo Matlab prostredí. Kohonenova vrstva je dvojrozmerná. Expertimenty realizujte na zadaných dátach a urobte program na vizualizáciu Kohonenovej mapy počas učenia siete. Vypracujte detailnú správu o chovaní týchto sieti a vplyvu ich parametrov.
Riešenie
Neurónová sieť je naprogramovaná v jazyku C (Unix). Hodnoty neurónov, váh, zmeny váh i vstupné hodnoty sa uchovávajú v statických poliach. Počty neurónov v jedvotlivých vrstvách sú definované v makrách. Zmena parametrov 'r', 'Gama' a počet epoch učenia sa ukladá do súboru 'error_file2.txt' (výpis sa realizuje aj na obrazovku). Konečné váhy sa ukladajú do súboru 'vahy2.txt'.
Popis algoritmu
  1. Prvotná inicializácia váh.
  2. Naplnenie učiaceho poľa.
  3. Fáza života:
    a. ulož vzorku do premenných.
    b. výpočet hodnoty neurónov na výstupe.
    c. nájdenie minima.
    d. zmena váh.
    e. vizualizácia.
    f. ak neboli prejdené všetky vzorky, skok na bod a.
    g. úprava veľkosti 'Gamy' a parametra 'r'.
    h. výpis zmeny parametrov a počet epoch na obrazovku a do súboru.
  4. Kým počet epoch nedosiahol určitú hodnotu, opakuj bod 3.
  5. Uloženie konečných váh do súboru.
  6. Úspešný koniec programu.
Experimenty
obr. è.1
Topológia siete: 1x8
počet epoch=200
Gama=<1;0.000058> r=<4.5;0.000231>
obr. è.2
Topológia siete: 3x3
počet epoch=200
Gama=<1;0.000058> r=<3.0;0.000173>
obr. è.3
Topológia siete: 5x5
počet epoch=200
Gama=<1;0.000058> r=<5.0; 0.000289>
obr. è.4
Topológia siete: 10x10
počet epoch=200
Gama=<1;0.000058> r=<10.0; 0.000578>
obr. è.5
Topológia siete: 20x20
počet epoch=200
Gama=<1;0.000058> r=<20.0; 0.001157>
obr. è.6
Topológia siete: 30x30
počet epoch=200
Gama=<1;0.000058> r=<30.0; 0.001735>
Zdrojové súbory
'kohonen.pat' - 'pattern' súbor.
'kohonen' - spustiteľný súbor pre kohonenovu mapu (UNIX).
'kohonen.cc' - zdrojový kód.