Jste zde

Samoučící se neuronová síť - SOM, Kohonenovy mapy

Samoorganizující neuronové sítě s učením bez učitele jsou stále více využívány pro rozlišení, rozpoznávání a třídění neznámých číslicových signálů a dat. Hlavním představitelem jsou Kohonenovy mapy. Ty sami rozpoznávají shodné prvky nebo naopak rozdíly mezi signály a je tak s nimi možné zpracovat úplně neznámé signály a data.

Co je to SOM a Kohonenovy mapy ?

Dnes již mezi základní typy neuronových sítí a také mezi nejpopulárnější, patří tzv. SOM = Self-Organizing Maps (Samoorganizující se mapy), častěji známé po svém "stvořiteli" jako Kohonenovy mapy. Ty patří do skupiny samoučících se neuronových sítí, tzn. sítí s učením bez učitele, které ke svému nastavování nepotřebují ideální vzory. To znamená, že k učení sítě stačí jen velká skupina reálných signálů, z nichž některé mají určitou společnou vlastnost nebo naopak výrazné odlišnosti a již k nim nemusí být přiřazeny žádné ideální učící signály nebo informace (target = cílové hodnoty). Ty v případě tzv. učení s učitelem udávají konečný cílový stav, do kterého se má síť učením dostat. A právě jejich získání bývá často velkým problémem. Naopak u SOM (Kohonenovy mapy) nám například stačí jen skupina nahraných řečových signálů a během učení si síť již sama nalezne společné znaky a odlišnosti, podle kterých se bude ve své aktivní činnosti rozhodovat. A to je ta výhoda, která za cca 20 let od vzniku Kohonenových map z nich udělala velmi často využívanou a velmi oblíbenou neuronovou síť.

Obr. 1. Příklad jednoduché fyzické struktury Kohonenovy mapy

K čemu to je ?

Svojí schopností samoorganizace a shlukování objektů s podobnými vlastnostmi do skupin jsou Kohonenovy mapy přímo předurčeny pro aplikace rozhodování, rozlišování a třídění objektů, signálů, značek apod. Častou aplikací je rozpoznávání řeči (např.přepis mluveného slova na napsané apod.) nebo přeložení psaného textu na tištění (grafity). Množství aplikací je však nevyčíslitelné a ne nadarmo i odborníci v oboru říkají: "Pokud nevíš, jaký algoritmus pro zpracování signálů použít, použij SOM (Kohonenovy mapy)." V tomto případě totiž o zpracovávaných signálech není teoreticky nutné cokoliv vědět a SOM si je samo přebere a roztřídí.

Možné aplikace:

  • zpracování řeči
  • úprava zvuku
  • zpracování obrazu (videa a fotek)
  • hledání a detekce osob podle fotografií
  • bezpečnostní aplikace
  • přepis ručně psaného textu na tištění
  • hledání podobných znaků v úplně neznámých signálech
  • odstranění neznámého rušení
  • automatické třídění

Princip a struktura

I když základní princip Kohonenovy mapy není příliš obtížný, vyžaduje jeho pochopení trošku představivosti. Pokusím se ho však popsat bez nutnosti bližších znalostí neuronových sítí, pro ty, co s nimi ještě nemají žádné zkušenosti.


 

Základ tvoří uspořádaná struktura neuronů, které se v tomto případě dají představit jako body (kroužky), kde ke každému přísluší unikátní vektor koeficientů označované jako váhy W (mi na obrázku 3.). Nejčastěji má struktura formu dvourozměrné (k=2) čtvercové nebo obdélníkové matice, hexagonálního útvaru nebo někdy i jednorozměrného vektoru (k=1).

Obr. 2. Možné struktury uspořádání neuronů (*) s definicí okolí R vítězného neuronu (#)

Rozměr struktury (k) však nemá nic společného s počtem vah každého neuronu (bodu), tedy dimenzí neuronu (n). Obvykle platí, že k < n , stejně jako počet neuronů m < n. Naopak tvar struktury uspořádání neuronů má vliv na učení mapy a počet vah je vždy shodný s počtem parametrů vstupních vzorků, hodnot nebo koeficientů vstupujícího zpracovávaného signálu - viz obrázek 3.

Obr. 3. Struktura neuronů Kohonenovy mapy s vítězným neuronem BMU (vstupní vektor s hodnotami x 1...x n, neuron s váhami mi = W)

Tvar uspořádání neuronů má vliv na volbu tzv. okolí neuronu R, které vymezuje jeho sousedy (sousední, nejblíže postavené neurony). V maticovém uspořádání neuronů (čtvercové nebo hexagonální) je velikost okolí rovná počtu "řad" neuronů od centrálního neuronu - viz obrázek 2. Váhy každého neuronu naopak definují polohu neuronu v prostoru.

Princip učení SOM

Matici neuronů se postupně předkládají vektory vstupního signálu (x) tak, že se zvlášť porovnává rozdíl příslušných hodnot vektoru vah (koeficientů w) každého neuronu s hodnotami vektoru vstupního signálu. K vyjádření rozdílu se může využít různých algoritmů, ale nejčastěji se dává přednost výpočtu euklidovské vzdálenosti D, tj. součet rozdílů příslušných hodnot:

D = (x 1 - w 1) 2+ (x 2 - w 2) 2 +.....+ (x n - w n) 2.

Výsledkem je tedy počet hodnot D, rovný počtu neuronů ve struktuře (např. 100 hodnot v matici 10 x 10 neuronů). Následně se vybere jediný neuron s nejmenším D a označí se jako tzv. vítěz (winner). Váhy tohoto neuronu totiž nejvíce ze všech odpovídají hodnotám právě předloženého signálu. Při předkládání první učícího vstupního vektoru se jeho hodnoty porovnávají s náhodně vygenerovanými hodnotami vah (koeficientů) jednotlivých neuronů.

Váhy W vítězného neuronu se pak upravují (updatují), aby se co nejvíce přiblížily hodnotám právě předloženého vstupního vektoru (x). Využívá se vzorce:

Wi nové = Wi staré + α (x - Wi staré),

kde α je učící koeficient vyjadřující rychlost učení (může nabývat hodnot 0 až 1, např. α = 0.6), Wi je vektor vah (koeficinetů) i-tého neuronu Wi = [Wi 1, Wi 2, ...., Wi n] a x je vstupní učící vektor x = [x 1, x 2, ... x n].

Při opětovném opakováním dávky učících vektorů nebo postupným předkládáním dalších nových dávek se učící koeficient obvykle snižuje. Spolu s vítězným neuronem se mění i ty sousední v definovaném okolí R (viz obrázek 2.). Jejich váhy se upravují stejným způsobem jako u vítěze, pouze s tím rozdílem, že koeficient α je nahrazen koeficientem β, přičemž platí α < β.  Při opětovném opakováním dávky učících vektorů se může provádět i snižování hodnoty okolí R až na R = 0, tzn. adaptuje se pouze vítěz.

Ve výsledku by se mělo dosáhnout stavu, kdy v maticové struktuře neuronů vznikne několik významných center, tzv. shluky, mezi nimiž se výrazně liší hodnoty vah neuronů. Neurony, jejichž váhy během učení dosáhly nulových hodnot, se ze struktury mohou vyloučit. Počet shluků by měl být shodný s počtem odlišných vlastností nebo parametrů, které Kohonenova mapa našla v předložených dávkách učících vstupních vektorů. To také znamená, že funkčnost mapy a neuronových sítí obecně, výrazně závisí na složení signálů a informací v učících dávkách.

Obr. 4. Příklad adaptace vah neuronu v mapě rozložení shluků ve dvojdimenzionálním prostoru

Pro jednodušší kontrolu a přehlednější dohled nad učením mapy se využívá grafického zobrazení shluků, které vyjadřuje prostorové vztahy mezi neurony v prostoru vah. V diagramu jsou váhové vektory (=neurony) zobrazeny jako černé body v dvojdimenzionálním prostoru, které zároveň tvoří centra shluků. Černé čáry představují přímky spojující váhové vektory sousedních neuronů. Na obrázku 4. je ukázaná změna "pozice" neuronu před a po adaptaci vah na vstupní vektor (zelený bod). Na obrázku 5. jsou pak uvedeny příklady diagramů shluků naučené mapy maticové a vektorové struktury uspořádání neuronů. Správné naučení představuje rovnoměrné rozprostření vzájemně propojených bodů po celé ploše, která popisuje vstupní datový prostor, v němž jsou vstupní vektory dat rovnoměrně rozloženy.

Obr. 5. Mapa rozložení shluků ve dvojdimenzionálním prostoru pro maticovou (vlevo) a vektorovou (vpravo) strukturu neuronů

Aktivní funkce naučené sítě SOM

Po naučení SOM (Kohonenovy mapy) se na vstup vždy přikládá analyzovaný neznámý vektor hodnot (zelený bod) podobného druhu, jako byly učící vektory a opět výpočtem podobnosti-vzdálenosti od vektorů vah jednotlivých neuronů (černé body), se vybere ten vítězný neuron, nejvíce podobný hodnotám na vstupu. Ten již představuje určitou definovanou skupinu (shluk) a tím je znám výsledek. Ten představuje zařazení analyzovaného neznámého signálu do některé skupiny či kategorie a tím i jeho pojmenování a nalezení jeho vlastností.

V principu jsou možné dva režimy:

  • neadaptační režim - dojde k zařazení vstupního signálu do některé již v mapě vytvořené shluku - kategorie, což je zároveň i výsledek a na výstupu sítě se může objevit číslo kategorie, její jméno, nebo nějaký jiný údaj, který neznámý vstupní vektor charakterizuje - viz obrázek 7.

Obr. 6. Zařazení analyzovaného vektoru do shluku vyhrazeného okolím bodu


  • adaptační režim - analýza vstupního signálu je stejná jako v neadaptačním režimu, pouze následně ještě dochází k malé úpravě vah vítězného neuronu. To znamená, že mapa neustále doučuje a je tedy schopna reagovat na dlouhodobě působící postupné změny, podobně jako například náš mozek a naše přizpůsobování chování ke změně okolního prostředí.

 

Obr. 7. Třídění vstupních vektorů do skupin C1 až CM (clusters) dle parametrů v nich obsažených (X1 až XN)

Příklady učení

Na následujícím obrázku 8. je uveden počátek praktického jednoduchého příkladu učení Kohonenovy mapy s jednorozměrným uspořádáním (k=1) dvou neuronů/shluků (m=2), kde každý obsahuje 4 váhy (koeficienty). Pro učení jsou k dispozici 4 vstupní binární vektory (obsahují pouze stavy 1 a 0), které mají tu společnou vlastnost, že vždy dva a dva obsahují hodnotu "1" v prvních nebo posledních dvou pozicích.

Obr. 8. Úvod do příkladu učení jednoduché Kohonenovy mapy

Pokračování celého postupu učení, kde se prakticky stále za sebou opakují na obrázku uvedené kroky, je možné vzhlédnout v česky psaném dokunetu "Neuronové sítě 1" na straně 52 až 54 v sekci Download & Odkazy, ze kterého je úvod příkladu převzat. Výsledkem je adaptace náhodně vygerenovaných vah neuronů před učením, na konečné hodnoty vah po učení:

První sloupec, tzn. váhy prvního neuronu, v sobě postihuje oba vstupní vektory (1,1,0,0) a (1,0,0,0), zatímco druhý sloupec, druhý neuron, naopak zbylé vektory (0,0,0,1) a (0,0,1,1). Výsledkem je tedy nalezené společné vlastnosti a rozdíly 4 vstupních vektorů a naučení Kohonenovy mapy. Jedinou nevýhodou , která platí i obecně pro většinu neuronových sítí, je "pomalost" učení, kdy uvedený výsledek byl naučen až po 10 000krát předložených vstupních vektorů. Rychlost lze sice zvýšit volbou vyšších hodnot koeficientů α, příp. β, více blížící se hodnotě 1, ale to pak může snížit přesnost a kvalitu učení. Je tedy nutné nalézt kompromis.

Na obrázku 9. je pak ukázka vývoje rozložení neuronů ve datovém prostoru během režimu učení pro 0, 25, 500 a 10 000 kroků. Z posledního obrázku vpravo dole je patrné, že neurony byly optimálně rozloženy tak, aby pokryly vstupní datový prostor a byly tak podchyceny a rozlišeny všechny důležité vlastnosti.

Obr. 9. Rozložení neuronů ve vstupním datovém prostoru po různém počtu kroků učení.

Závěr

Kohonenovy mapy, resp. samoorganizující mapy - SOM, jsou silným a kvalitním nástrojem pro indentifikaci neznámých vlastností a parametrů, skrytých v digitalizovaných vzorcích libovolného signálu. V některých aplikacích mohou pracovat jako alternativa k jiným algoritmům, v některých aplikacích jsou již nenahraditelné. S použitím programu Matlab a jeho toolboxu Neural Networks, lze již v celku pro krátké době vytvořit například jednoduchý rozpoznávač samohlásek v nahraném řečovém signálu. SOM lze nalézt v programech typu grafity, tedy rozpoznávání rukou psaného textu a jeho přepis na text tištění, nebo se již několik let zkouší na zjišťování nebo předvídání vývoje či vzniku nemocí a poruch mozku, které se vždy projevují jen zprostředkovaně přes plynulost mluvení, schopnost koordinovaného pohybu apod. Využití v řídících systémech robotů se již samo nabízí. Schopnost se neustálého doučování během činnosti umožňuje přizpůsobení funkce při dlouhodobě trvajících změnách. Tím se již blíží k samotné funkci našeho mozku, který též dokáže přizpůsobovat naše chování změně prostředí. Samoorganizace a samoučení je tedy základem opravdu "inteligentní" umělé inteligence. .

 

Antonín Vojáček
vojacek@ hwg.cz

DOWNLOAD & Odkazy

Hodnocení článku: 

Komentáře

Kvalitní článek! Dobře vysvětlená hlavní idea SOM bez použití nějakých velkých formalit. Děkuji