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. Výstupní vrstva 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 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 4: hit = false; 5: for kaºdý skrytý neuron hyperkoule do 6: vypo ti vzdálenost mezi vahou neuronu a vstupním vektorem; 7: if vzdálenost je men²í nebo stejná jako polom r neuronu then 8: if hyperkoule reprezentuje stejnou t ídu jako vstupní vektor then 9: hit = true; 10: else 11: zmen²i polom r hyperkoule na hodnotu: vypo tená vzdálenost * alfa parametr; 12: modif = true; 13: end if 14: end if 15: end for 16: if hit == false then 17: vytvo nový skrytý neuron se st edem odpovídající vstupnímu vektoru a maximální 18: hodnotou polom ru; 19: if p ekrytí skrytých neuron není povoleno then 20: vy e² p ekrytí skrytých neuron zmen²ením jejich polom r ; 21: end if 22: modif = true; 23: if výstupní neuron pro t ídu vstupního vektoru jiº existuje then 24: p ipoj nov vytvo ený neuron k tomuto výstupnímu neuronu; 25: else 26: vytvo nový výstupní neuron, který bude reprezentovat novou t ídu a p ipoj k n mu 27: nov vytvo ený skrytý neuron; 28: end if 29: end if 30: end for 31: 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: vypo ti vzdálenost k nejbliº²ímu vstupnímu vektoru li²ící se t ídy; 3: vytvo nový skrytý neuron se st edem odpovídajícím vstupnímu vektoru 4: a polom rem s hodnotou: vypo tená vzdálenost * alfa parametr; 5: if výstupní neuron pro t ídu vstupního vektoru jiº existuje then 6: p ipoj nov vytvo ený neuron k tomuto výstupnímu neuronu; 7: else 8: vytvo nový výstupní neuron, který bude reprezentovat novou t ídu 9: a p ipoj k n mu nov vytvo ený skrytý neuron; 10: end if 11: 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: Hlavní okno, které obsahuje ovládací panel a panel, který zobrazuje vstupy trénovací mnoºiny a neurony. 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. V druhém oknu je zobrazena samotná neuronová sí 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 Shue 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 Clear 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 Neuron compare (algoritmus 1) a Input compare (algoritmus 2). Spolu s výb rem algoritmu je moºné nastavit jejich parametry, kterými jsou: 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 Step), animaci (tla ítka Start a Stop) s nastavitelným asovým zpoºd ním mezi jednotlivými kroky nebo provedení celého algoritmu (tla ítko Learn). 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. Obrázek 3: Hlavní okno aplikace v pr b hu u ení sít 4
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