Druhou metodu, kterou jsme aplikovali na problém dvou spirál, bylo třífázové učení. Protože tréninková data jsou ve vstupním prostoru uspořádána na spirálách, je rozmístění středů RBF jednotek zajímavým problémem. Zaměříme se tedy na první fázi a metody vektorové kvantizace.
Pro určení jednotek vybereme vhodnou metodu a parametry pro další kroky a doučíme zbylé parametry. Opět budeme uvažovat jak síť s euklidovskou normou tak s váženou normou. Sítě budou mít 150 RBF jednotek.
Nalezení vhodných středů jsme řešili pomocí metod vektorové kvantizace, Lloydova algoritmu, Kohonenova učení, Kohonenova učení s lokální pamětí a genetických algoritmů.
U Lloydova algoritmu dochází při jedné iteraci k průchodu celou tréninkovou množinou, naproti tomu u Kohonenova učení adaptujeme zvolenou jednotku po načtení každého tréninkového vzoru. Proto nebudeme nyní používat pojem iterace, ale průchod tréninkovou množinou.
Pro každou z metod jsme výpočet provedli pětkrát. Lloydův algoritmus potřebuje k průchodu tréninkovou množinou v průměru 0.08 s. U Kohonenova učení trvá jeden průchod tréninkovou množinou zhruba 0.17 s, při použití lokální paměti 0.33 s. Genetické algoritmy jsme nechali běžet 2 500 iterací, populace měla 50 jedinců, elita dva jedince. Při výpočtu každé generace bylo tedy potřeba projít tréninkovou množinu 50krát. Průměrný čas potřebný na výpočet 100 generací byl 10 min 25 s.
Tabulka 7.15 obsahuje výsledné chyby, počet potřebných průchodů tréninkovou množinou a čas pro jednotlivé metody. Nejhůře dopadl Lloydův algoritmus, nejlépe Kohonenovo učení s lokální pamětí. Protože počet jednotek je poměrně vysoký, nejsou rozdíly ve výsledné hodnotě chybové funkce příliš velké.
Na obrázku 7.28 je vidět výsledné rozmístění reprezentantů. Ani použití lokální paměti nedokázalo přitáhnout všechny jednotky. Je to způsobeno velkým počtem jednotek v oblasti spirál, tedy některá z těchto jednotek má vždy dostatečně malou četnost výhry, aby kompetici vyhrála.
Středy jsme nastavili pomocí Kohonenova učení s lokální pamětí. Pro druhý krok jsme použili minimalizaci chybové funkce s parametrem . V obou případech pomocí 200 iterací gradientní metody. Váhy jsme doučili pomocí metody nejmenších čtverců využívající SVD rozklad.
Výsledná hodnota chybové funkce je 1.101 při použití euklidovské normy a 0.051 pro sítě používající vážené normy.
Klasifikace bodů v rovině pomocí sítě s váženou normou naučenou třífázovou metodou je znázorněna na obrázku 7.29.