Aplikace vícevrstvých sítí ► Diagnóza srdečního infarktu ► Predikce časových řad ► NETtalk ► ALVINN ► Rozpoznávání směrovacích čísel ► Komprese dat Zdroj: Fundamentals of Artificial Neural Networks. Mohamad H. Hassoun, The MIT Press i Diagnóza srdečního infarktu ► infarkt není jednoduché diagnostikovat ► expert (údajne) pozná infarkt ve zhruba 88% prípadu, planý poplach nastává ve zhruba 29%. ► neuronové síte to poCátkem devadesátých let zvládly lépe Organizační dynamika: ► Trívrstvá síť 41 - 10 - 10 - 1 ► Vstupy jsou ruzné atributy pacientu přijatých na kardiologii: ► např. vek, pohlaví, nevolnost, zvracení, dušnost, cukrovka, vysoký tlak, ... ► binární vstupy jako napřr. přrítomnost cukrovky nebo pohlaví jsou kódovány pomocí 0 a 1 ► ostatní jsou normalizovány do intervalu [0,1] Aktivní dynamika: ► aktivacřní funkce: standardní logistické sigmoidy = 1+e-í 2 Diagnóza srdečního infarktu Adaptivní dynamika: trénink: ► tréninková množina obsahovala 356 pacientů, 236 bez infarktu, 120 s infarktem ► gradientní sestup na náhodne vybrané polovine pacientů (půl s a půl bez infarktu) ► oCekávané výstupy 1 nebo 0 podle toho, zda pacient mel Ci nemel infarkt výsledky: ► testováno na 178 pacientech, kterí nebyli souCástí tréninkové množiny (60 s infarktem, 118 bez) ► 92% korektní identifikace infarktu (oproti 88% u expertu) ► 4% falešný poplach (oproti 29% u expertu) 3 Predikce časových řad Např. se jedná o předvídání vývoje počasí, hodnot akcií, menových kurzu, počtu zákazníku apod. (hrubá) matematická formulace: ► Mejme numerickou řadu a1, a2, a3,... (např. hodnota koruny vuci euru po jednotlivých dnech) ► Chceme odhadnout at+1 na základe at, at-1,..., at-k Uvažme síť s k vstupními a jedním výstupním neuronem. Tuto sít' natrénujeme na cásti rady tak, že jí budeme predkládat at, at-1,..., at-k na vstupy a at+1 ocekávaný výstup. (V prípade menových kurzu použijeme historii vývoje za poslední roky.) Síte pro predikcicasových rad se obvykle rozširují o další vlastnosti: ► další vstupy modelující prostredí v nemž se řada vyvíjí (napr. hospodárske parametry státu) ► výstup se casto vrací zpet jako další vstup, címž lze dosáhnout predikce na více kroku 4 NETtaIk ► Neuronová síť, která převádí anglicky psaný text na řetěz fonémů (tj. provádí fontetický prepis) Foném je nejmenší souCást zvukové stránky řeCi, která má rozlišovací funkci v systému konkrétního jazyka. ► Výstup potom muže být vstupem hlasového syntezátoru. Text NETtalk Phoneme string DECtalk Speech 5 NETtalk ► vstup je reprezentován pomocí 29 symbolu (anglická abeceda + Čárka, teCka, mezera) ► mezivýstup (výstup sítě) je posloupnost 26-dimenzionálních artikulaCních vektoru vektor popisuje zpusob, jakým je zvuk generován, napr. pozice v ústech, přízvuk, intonace, mlaskavost,... ► artikulacní vektor je poté přeložen na foném Zkoumalivíce zpusobu překladu: ► foném s Euklidovsky nejbližším artikulacním vektorem ► foném jehož artikulacní vektor svírá nejmenší úhel s výstupním vektorem 6 NETtalk-síť Organizační dynamika: ► Síť je vícevrstvá. ► 203 vstupních neuronu ► systému se na vstup dává „okno" obsahující 7 symbolu, Cte se prostrední symbol, ostatní dávají kontext ► každý znak je kódován unárne (tj. na každý symbol připadá 29 vstupu (7 • 29 = 203)) ► 1 až 2 skryté vrstvy Čítající až 0 až 120 neuronu Štandardne se tento príklad prezentuje s jednou skrytou vrstvou obsahující 80 neuronu ► výstupní vrstva obsahuje 26 výstupních neuronu, které představují artikulacní vektor (výstup se nakonec preloží na foném) Aktivní dynamika: aktivacní funkce: standardní logistická sigmoida o(£) = j+^-i. 7 NETtalk Adaptivní dynamika: ► dva druhy vzorů: Miriam Webster's Pocket Dictionary a dětská neformální reC ► gradientní sestup (zpetná propagace) ► iniciálne váhy nastaveny náhodne uniformne z intervalu [-0.3,0.3] Vzory: Miriam Webster's Pocket Dictionary ► celý slovník mel 20012 slov, trénováno na podmnožine o 1000 nejfrekventovanejších slovech ► slova vybírána náhodne ► adaptace vždy po jednom slove (tj. rámeckem se projelo slovo, podle kumulovaného gradientu se upravily váhy) 8 NETtalk Výsledky pro Miriam Webster's: ► na tréninkových vzorech dosáhli přesnosti 98% (při 120 skrytých neuronech) ► při aplikaci takto naucené síte na celý slovník dostali přesnost 77% ► při prUbežném ucení na celém slovníku dosáhlipo jednom prUbehu 85% ► po petipruchodech 90% ► zvyšování poctu neuronu, velikosti rámecku, poctu vrstev vždy vedlo ke zlepšení (byli limitováni výpocetním výkonem cca 2 znaky za vterřinu (rok 1987) ) 9 NETtalk Vzory: Detská neformální řec: ► trénink na 1024 slovech, testováno na dalších 439 ► rámeckem se projíždel celý text, hranice slov byly speciálneř vyznacřeny ► problematické, jedno slovo bylo vyslovováno mnoha zpusoby Výsledky pro neformální řrecř: ► na tréninkových vzorech dosáhli 95%, při testu pak 78% (tj. docela dobrá generalizace) ► testovali odolnost proti narušení: přricřtení náhodneř vygenerovaných hodnot z [-0.5,0.5] k váhám se projevilo jen minimálneř ► naucená sít' mela vetšinu vah v prumeru 0.8 (témeř všechny byly menší než 2) 10 ALVINN 11 ALVINN Organizační dynamika: ► vícevrstvá sít, 960 - 4 - 30 (nekdy 960 - 5 - 30) ► komponenty vstupu odpovídají bodum obrazu z kamery Aktivní dynamika: ► aktivacní funkce: skryté neurony mají sigmoidální funkce, výstupní mají lineární ► Smer jízdy odpovídá težišti všech výstupních neuronu tj. výstupní neurony lze uvažovat jako hmotné body umístené na přímce se stejným rozestupem, hmotnost neuronu se rovná jeho hodnote 12 ALVINN Adaptivní dynamika: Trénováno za jízdy. ► Aktuální výhled na silnici snímán kamerou, zhruba 25 obrazu za vteřinu ► Tréninkové vzory tvaru (xk, dk) kde ► Xk = obraz silnice ► dk = příslušné natoCení volantu ridiCe ► natoCení volantu distribuováno pomocí Gaussova rozložení na výstupy: dk = e-D2/1° kde Dj je vzdálenost /-tého výstupu od toho, který odpovídá natoCení volantu (Toto je lepší než binární výstup, protože reakce na podobné silnice jsou velmi blízké.) 13 Výber vzorU Naivní přístup: brát vstupy z kamery a podle nich adaptovat. To vede k následujícím problémum: ► Jestliže řidic jede dobre, síť se nenaucí řešit odchylky od trasy. Možná drsná řešení jsou ► vypnout přechodne ucení a sjet z trasy, poté zapnout ucení a nechat sít' sledovat, jak se s tím ridic vyrovná ► nechat řridicře jezdit divoce (poneřkud nebezpecřné, drahé, nespolehlivé) ► aktuální výhledy z okna jsou ponekud repetitivní, sít se muže přetrénovat na málo vzorech 14 Výběr vzoru Problém s příliš „správnou" jízdou řidiče se řeší takto: ► každý výhled na silnici je posouváním rozmnožen na 15 podobných kopií ► požadovaný výstup se vygeneruje pro každou kopii Repetitivnost aktuálních výhledu z okna se reší takto: ► systém má buffer 200 obrázku (včetne 15 kopií aktuálního), v každém kole tréninku se trénuje na techto vzorech ► po tréninku se sejme nový obraz, udelá se 15 kopií a teemi se nahradí 15 obrazu z bufferu (10 s nejmenší chybou, 5 náhodne) 15 ALVINN - učeni ► standardní zpeřtná propagace ► konstantní rychlost ucení pro každý neuron zvlášť, úmerná poctu vstupu ► pomalu rostoucí moment Výsledek: ► Trénink trval 5 minut, ridicc jel rychlostí 4 míle za hodinu ► ALVINN byl schopen jet i po cástech silnice, které nikdy „nevidel" a za rozlicného pocasí ► v dobeř vzniku byl schopen jet maximální rychlostí, kterou zvládal hydraulický ovladacř 16 ALVINN - vývoj vah h1 h2 h3 h4 h5 kolo 0 kolo 10 kolo 20 kolo 50 Zde h 1,...,h5 jsou skryté neurony. 17 ALVINN - komentáře Srovnání ALVINNa s „explicitním programováním". Pro efektivní řízení je potreba: ► najít vlastnosti obrázku duležité pro rízení (ALVINN najde sám) ► tyto vlastnosti detekovat v aktuálních obrazech (ALVINN si vytvorí vlastní detektory) ► implementovat řízení v reakci na vlastnosti obrázku (ALVINN se to naucí sám od ridice (rychle)) Nevýhody ALVINNa (pozdeji řešené celou škálou rozšírení) ► umel jezdit jen po jednom typu silnice (nuzný povrch, pocet pruhu, atd.) Pozdeji rešeno pomocí slucování více ALVINNu spojených do jedné síte, každý natrénován na jiný typ silnice (MANIAC) ► nebyl nijak napojen na „vyšší" rízení, například sledování cesty po mapeř apod. Řešeno napr. vcleneením ALVINNa do vetšího ucícího systému. 18 Rozpoznávání směrovacích čísel Cílem je rozpoznat rukou psané císlice ► vstupy: obrázky císlic 16 x 16, stupne šedi normalizovány do [-1,1] výstup: jedna z deseti hodnot ► 19 Rozpoznávání číslič Organizační dynamika: acyklická sít' (4 vrstvy), neco jako vícevrstvá, ale nemusí vést spoj mezi všemi neurony sousedících vrstev ► 1. vrstva: ► 12 skupin po 8 x 8 neuronech (skupina 8 x 8 tvorí „obrázek" pro vyší vrstvu) ► každý neuron z jedné skupiny má vstupy z okna 5 x 5 ze vstupu (okna se prekrývají, jsou položena ob dva pixely) ► všechny neurony z jedné skupiny sdílí stejné váhy (mají za úkol detekovat stejnou vlastnost v ruzných cástech obrázku) ► 2. vrstva: ► 12 skupin po 4 x 4 neuronech ► každý neuron z jedné skupiny má vstupy z oken 5 x 5 ze všech skupin z nižší vrstvy (všech 12 oken pro jeden neuron má stejnou polohu) ► všechny neurony z jedné skupiny sdílí stejné váhy ► 3. vrstva: 30 neuronu, kompletne spojena s předchozí vrstvou 4. vrstva: 10 výstupních n., kompletneř spojena s přredchozí 21 Rozpoznávání číslic Aktivní dynamika: aktivacní funkce: hyperbolický tangens Dvojí interpretace výstupu: ► výstupní neuron s nejvetší hodnotou identifikuje císlici ► totéž, ale vstupy se dvema a více velkými výstupními hodnotami (tj. nejednoznacné) byly odmítnuty Adaptivní dynamika: Vstupy: ► trénink na 7291 vzorech, testováno na 2007 vzorech ► mnoho príkladu bylo hodne pokrivených Trénink: ► modifikovaná zpetná propagace (v podstate sdružené gradienty), online ► váhy iniciálne náhodne z [-2.4,2.4], podeleny poctem vstupu daného neuronu 22 Rozpoznávání číslic - výsledky ► výsledky bez odmítání nejednoznacných: 0.14% špatne klasifikovaných na tréninkové množine, 5% na testovací ► výsledky s odmítáním nejednoznacřných: 1% špatneř na testovacích za cenu 12% odmínutých ► obycřejná dvouvrstvá sít se 40 skrytými neurony se dostala na 1% špatne klasifikovaných za cenu 19.4% odmítnutých 23 Komprese dat Komprese obrazových dat pro prenos signálu. ► Použita dvouvrstvá sít n - 4 - n (tj. pocet skrytých neuronu je 4x menší než pocřet vstupních a výstupních). ► Síti byly předkládány obrazy, stejný obraz na vstup i výstup. ► Naucená sít potom byla použita takto: - Vysílající vypocte pro daný vstup hodnoty skrytých neuronu ► Hodnoty skrytých neuronu jsou odeslány příjemci ► Príjemce vypocte hodnoty výstupních neuronu po dosazení hodnot skrytých neuronu Metoda funguje pokud jsou vysílané obrazy podobné tréninkovým vzorum. Dá se ukázat, že tato metoda realizuje PCA na obrazových datech - tedy nejlepší možnou redukci dimenze dat (probereme pozdeřji) 24 Komprese dat - konkrétní implementace (historická) Organizační dynamika: Vícevrstvá sít 64 - 16 - 64 Aktivní dynamika: aktivacní funkce: sigmoidální, bipolární (tedy nejaký hyperbolický tangens s extrémy -1 a 1) Adaptivní dynamika: Vstupy: ► obrázky 256 x 256, 8 bitu na pixel ► vzory: vstup i výstup byl rámecek 8 x 8, který se náhodne volil z obrázku ► vstupy normalizovány do intervalu [-1,1] Ucření: ► zpeřtná propagace ► rychlost ucení: 0.01 pro vnitřní, 0.1 pro výstupní ► trénováno v 50 000 - 100 000 iteracích 25 Komprese dat - výsledky Tréninkový obraz obraz 256 x 256 se projede rámeckem 8 x 8 (jednotlivá „priložení" rámecku se nepřekrývají) (A) originál (B) komprese (C) komprese + zaokrouhlení hodnot vnitrních neuronu na 6 bitu (prenos 1.5 bitu na pixel) (D) komprese + zaokrouhlení hodnot vnitrních neuronu na 4 bity (přrenos 1 bit na pixel) 26 Komprese dat - výsledky Nový obraz (A) originál (B) komprese (C) komprese + zaokrouhlení hodnot vnitrních neuronu na 6 bitu (prenos 1.5 bitu na pixel) (D) komprese + zaokrouhlení hodnot vnitrních neuronu na 4 bity (prenos 1 bit na pixel) (C) (D) 27