Soft Computing (SFC) 2014/2015 Demonstrace u£ení sít¥ RCE, Java aplikace Franti²ek N¥mec (xnemec61) xnemec61@stud.t.vutbr.cz
1
Úvod
Úkolem tohoto projektu bylo vytvo°it aplikaci, která bude demonstrovat u£ení Restricted Coulomb Energy (RCE) neuronové sít¥. V první £ásti práce je popsána samotná neuronová sí´ a dva algoritmy jejího u£ení. Druhá £ást obsahuje popis zp·sobu ovládání aplikace a uºivatelského rozhraní.
2
RCE neuronová sí´
Restricted Coulomb Energy (RCE) je neuronová sí´, která rozd¥luje vstupní prostor na men²í oblasti hyperkoulemi. Sí´ dokáºe °e²it lineárn¥ i nelineárn¥ separabilní problémy. Lze ji pouºít nap°. jako asociativní pam¥´ nebo jako klasikátor. Skládá se ze dvou vrstev:
Skrytá vrstva
•
obsahuje neurony s radiální bázovou funkcí a skokovou (nespojitou) p°enosovou funkcí. Neurony skryté vrstvy jsou denovány váhou (n-dimenzionální vektor, kde n je po£et dimenzí °e²eného problému) a polom¥rem. Neuron je aktivní, pokud vzdálenost vstupního vektor· a váhy neuronu je men²í neº jeho polom¥r (zmín¥ná radiální bázová funkce). Kaºdý neuron je p°ipojen na neuron výstupní vrstvy, který reprezentuje klasika£ní t°ídu.
•
neurony výstupní vrstvy provád¥jí funkci logický sou£et (OR). Neuron je aktivní, pokud alespo¬ jeden neuron skryté vrstvy p°ipojený na daný výstupní neuron je aktivní. Pro kaºdou klasika£ní t°ídu existuje práv¥ jeden výstupní neuron. Po£et výstupních neuron· tedy odpovídá po£t· klasika£ních t°íd.
2.1
Výstupní vrstva
U£ení sít¥
Neuronovou sí´ je první °ad¥ nutné nau£it °e²it denovaný problém. Existuje n¥kolik u£ících algoritm·, kde kaºdý pracuje na trochu jiném principu a kaºdý m·ºe produkovat jinou výslednou sí´ [1, 2, 3]. Kaºdý v²ak iteruje nad vstupy trénovací mnoºiny a vytvá°í neurony s váhami odpovídající vstupním vektor·m. Vytvo°ená aplikace obsahuje dva u£ící algoritmy:
• Algoritmus probíraný v p°edm¥tu Soft Computing (SFC) [3]. Algoritmus postupn¥ vytvá°í nové neurony pro vstupy, které momentáln¥ nejsou obsaºeny v ºádném jiº vytvo°eném neuronu (hyperkouli), p°i£emº upravuje polom¥ry existujících neuron· tak, aby vstupy nebyly chybn¥ klasikovány. Podoba výsledné sít¥ je také závislá na po°adí zpracování vstup· trénovací mnoºiny. Proces u£ení je detailn¥ji popsán algoritmem 1. • Druhým implementovaným u£ícím procesem je algoritmus (algoritmus 2), který je p°evzat z práce zabývající se rozpoznáním výraz· tvá°e [1]. Algoritmus prochází vstupy trénovací mnoºiny jen jednou a pro kaºdý vstup vytvá°í neuron skryté vrstvy na základ¥ vzdáleností k nejbliº²ímu vstupu li²ící se t°ídy (nikoli v závislosti na okolních neuronech, jak je tomu u p°edchozího algoritmu) a parametru alfa. Parametr alfa ur£uje výsledný polom¥r neuronu vzhledem z vypo£tené vzdálenosti vstup·. Schopnost správné klasikace výsledné sít¥ je velice závislá na zvolené hodnot¥ parametru alfa, který se pohybuje v rozmezí od 0.0 do 1.0. Nízká hodnota zp·sobí, ºe sí´ nebude na n¥které vstupy reagovat. Na druhou stranu vysoká hodnota zp·sobí klasikaci vstupu do více jak jedné t°ídy. Ur£ení tohoto parametru je aplika£n¥ závislé a neexistuje univerzální hodnota.
1
Algorithm 1 Algoritmus u£ení sít¥ prezentovaný v p°edm¥tu Soft Computing [3] 1: repeat 2: modif = false; 3: for kaºdý vstupní vektor trénovací mnoºiny do hit = false; 4: 5: for kaºdý skrytý neuron hyperkoule do vypo£ti vzdálenost mezi vahou neuronu a vstupním vektorem; 6: 7: if vzdálenost je men²í nebo stejná jako polom¥r neuronu then if hyperkoule reprezentuje stejnou t°ídu jako vstupní vektor then 8: 9: hit = true; else 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
zmen²i polom¥r hyperkoule na hodnotu: vypo£tená vzdálenost * alfa parametr; modif = true;
end if end if end for if hit == false then
vytvo° nový skrytý neuron se st°edem odpovídající vstupnímu vektoru a maximální hodnotou polom¥ru; p°ekrytí skrytých neuron· není povoleno vy°e² p°ekrytí skrytých neuron· zmen²ením jejich polom¥r·;
if then end if modif = true; if výstupní neuron pro t°ídu vstupního vektoru jiº existuje then p°ipoj nov¥ vytvo°ený neuron k tomuto výstupnímu neuronu; else
vytvo° nový výstupní neuron, který bude reprezentovat novou t°ídu a p°ipoj k n¥mu nov¥ vytvo°ený skrytý neuron;
end if end if end for until modif == false
Algorithm 2 Algoritmus u£ení sít¥ z aplikace rozpoznání výrazu tvá°e [1] 1: for kaºdý vstupní vektor z trénovací mnoºiny do 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
vypo£ti vzdálenost k nejbliº²ímu vstupnímu vektoru li²ící se t°ídy; vytvo° nový skrytý neuron se st°edem odpovídajícím vstupnímu vektoru a polom¥rem s hodnotou: vypo£tená vzdálenost * alfa parametr; výstupní neuron pro t°ídu vstupního vektoru jiº existuje p°ipoj nov¥ vytvo°ený neuron k tomuto výstupnímu neuronu;
if else
then
vytvo° nový výstupní neuron, který bude reprezentovat novou t°ídu a p°ipoj k n¥mu nov¥ vytvo°ený skrytý neuron;
end if end for
2
3
Manuál
Aplikace demonstruje u£ení sít¥, která klasikuje vstupní dvojrozm¥rný prostor. Aplikace je rozd¥lena na dv¥ okna:
ovládací panel
vstupy trénovací mnoºiny
• Hlavní okno, které obsahuje a panel, který zobrazuje a . Kaºdý neuron je zde zobrazen jako vypln¥ní kruh s p°íslu²ným st°edem (váha neuronu) a polom¥rem. Ukázka okna se nachází v následujících kapitolách.
neurony
neuronová sí´
• V druhém oknu je zobrazena samotná tedy neurony (skryté a výstupní) spolu s jejich propojením. P°i najetí na n¥který z neuron· se zobrazí informace o váze a polom¥ru neuronu a v hlavním okn¥ je p°íslu²ný neuron zvýrazn¥n ²rafováním.
Obrázek 1: Okno s neuronovou sítí a zobrazenou tabulkou informací o skrytém neuronu 3.1
Inicializace trénovací mnoºiny a parametr· u£ení
Prvním krokem je nastavení prvk· trénovací mnoºiny. Nové vstupy jsou vkládány kliknutím my²i do hlavního pole okna. T°ídy vstup· jsou ur£eny jednou z n¥kolika barev. Tla£ítkem je moºné promíchat po°adí ve kterém budou zpracovány prvky trénovací mnoºiny p°i u£ení sít¥. P°i zvolení prvního u£ícího algoritmu je totiº výsledná sí´ závislá na po°adí zpracování vstup·, jak bylo zmín¥no v sekci 2.1. Tla£ítko slouºí pro odstran¥ní v²ech vstup· z trénovací mnoºiny. Dále je moºné zvolit, který u£ící algoritmus bude pouºit. Na výb¥r je mezi (algoritmus 1) a (algoritmus 2). Spolu s výb¥rem algoritmu je moºné nastavit jejich parametry, kterými jsou:
Shue
Clear
Neuron compare
Input compare
Radius po£áte£ní polom¥r nov¥ vytvo°ených neuron·. • Alfa obecn¥ má tento parametr vliv na kone£nou hodnotu polom¥ru neuron·. Konkrétní význam
•
parametru je uveden v popisech algoritm·.
•
Overlap povolení p°ekrytí neuron· (pouze pro algoritmus 1).
3
Obrázek 2: Hlavní okno aplikace ve stavu inicializace trénovací mnoºiny a parametr· u£ení 3.2
U£ení sít¥
Po nastavení trénovací mnoºiny a parametr· na °adu p°ichází hlavní £ást, kterou je u£ení neuronové sít¥. Aplikace umoº¬uje krokování algoritmu (tla£ítko ), animaci (tla£ítka a ) s nastavitelným £asovým zpoºd¥ním mezi jednotlivými kroky nebo provedení celého algoritmu (tla£ítko ). Ihned po provedení kroku u£ení jsou zm¥ny sít¥ promítnuty do hlavního okna vytvo°ením nebo zm¥nou polom¥ru kruh·. Zárove¬ jsou provedeny zm¥ny v okn¥ s neuronovou sítí, kde jsou vytvo°eny p°íslu²né neurony a propojení. Nov¥ vytvo°ené a zm¥n¥né neurony jsou navíc zvýrazn¥ny. Po kompletním nau£ení sít¥ je moºné p°istoupit k testování sít¥.
Step
Start Stop
Obrázek 3: Hlavní okno aplikace v pr·b¥hu u£ení sít¥
4
Learn
3.3
Testování sít¥
Po nau£ení sít¥ lze sí´ testovat na r·zné vstupy. P°i zadání testovacího vstupu (kliknutí do hlavního okna) jsou zvýrazn¥ny aktivní neurony zvýrazn¥ním jejich okraj· a v okn¥ s neuronovou sítí jsou zvýrazn¥ny aktivní neurony a propojení neuron·.
Obrázek 4: Hlavní okno aplikace s testovacím vstupem a zvýrazn¥nými aktivními neurony
4
Záv¥r
Vytvo°ená aplikace demonstruje postup u£ení Restricted Coulomb Energy neuronové sít¥, p°i£emº obsahuje dva u£ící algoritmy. Pro jednoduchost je vstupem sít¥ dvojrozm¥rný prostor. U£ení lze provád¥t po jednotlivých krocích. P°ípadn¥ lze spustit automatické provád¥ní jednotlivých krok· a sledovat tak postupné vytvá°ení neuron·. Nakonec lze nau£enou sí´ testovat na r·zné vstupy a pozorovat jaké neurony se aktivují. Dal²í vývoj by se mohl týkat implementace dal²ích algoritm· u£ení sít¥ nebo pový²ení vstupního prostoru na t°i dimenze a s tím spojené 3D vykreslování neuron·. Pro spu²t¥ní aplikace je nutná Java verze 7 nebo vy²²í.
Reference [1] Xiaoyan Mu, Mehmet Artiklar, Mohamad H. Hassoun, Paul Watta: An RCE-based Associative Memory with Application to Human Face Recognition. Department of Electrical and Computer Engineering, Wayne State University, Detroit, 2003. [2] Michael J. Hudak: RCE classiers: theory and practice. Cybernetics and Systems: An International Journal, 23:483-515, 1992. [3] Zbo°il, F.: Soft Computing 3. Neuronové sít¥ RBF a RCE. Prezentace, VUT Brno FIT, 2014.
5