ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT prof. Ing. Jiří Holčík, CSc. IV. NEURONOVÉ SÍTĚ II. Typy neuronových sítí þ existuje celá řada neuronových sítí, např. è vícevrstvá perceptonová síť (MLP) è Hopfieldova síť è Kohonenovy samoorganizující se mapy è síť RBF (Radial Basis Function – radiální bázická funkce) è ... þ každá neuronová síť je vhodná pro jiné třídy úloh; þ některé neuronové sítě se mohou vzájemně doplňovat; þ základními úlohami neuronových sítí jsou klasifikace a regrese (aproximace) þ podle přítomnosti „učitele“ můžeme neuronové sítě dělit na sítě s učitelem a bez učitele Návrh neuronové sítě þ pro řešení každé úlohy musí být navržena jedinečná neuronová síť þ otázka vhodného výběru sítě þ výběr struktury sítě, tj. počet vstupů, výstupů, vrstev, skrytých neuronů, typ aktivačních funkcí, atd. þ výběr trénovacího algoritmu þ problém over-sizing, over-learning (over-fitting) perceptrony þ neuronové sítě se strukturou s jednosměrným šířením zpracovávaného signálu ò nejsou problémy se stabilitou, všechny výpočty se provedou v jednom taktu. þ pomalá konvergence a obtížné vyrovnávání se s lokálními minimy perceptrony þ neuron – vnitřní potenciál je počítán jako vážený počet vstupů; þ aktivační funkce je sigmoida (je spojitá, lze ji derivovat) – y[i] = f(net[i]) = (1 + exp(-l.net[i]))^-1 Jednovrstvý N,M perceptron þ N,M perceptron má N vstupů a M výstupů, tj. M separátně pracujících neuronů. Jednovrstvý N,M perceptron Předpokládejme, že převodní charakteristiku i-tého neuronu zvolíme ve tvaru y[i] = f[i](net[i]) = sign(net[i]), přičemž aktivační hodnota net[i] = å[j ]w[ij].x[j], kde x[j] je hodnota přicházející z j-tého aktivačního zdroje na vstup i-tého neuronu s vahou w[ij]. Jednovrstvý N,M perceptron Jednovrstvý N,M perceptron Učení N,M perceptronu spočívá v nastavení vah každého z použitých M neuronů. Obecné požadavky na způsob úpravy vah: þ konvergence - rychle a monotónně; þ algoritmická formulace. Jednovrstvý N,M perceptron Učení jednovrstvého perceptronu se skládá z následujících fází: þ náhodná počáteční volba vektorů vah; þ učení è na vstup perceptronu jsou přiváděny jednotlivé vzory z učební množiny a výsledky po zpracování perceptronem jsou srovnávány s požadovaným výstupem; è v případě, že se požadovaný a neuronovou sítí spočítaný výstup liší více než je povoleno, pak se modifikují hodnoty váhovacích koeficientů tak, aby se rozdíl mezi oběma hodnotami výstupů minimalizoval; è pokud je celková chyba zpracování větší než je povoleno, je třeba pokračovat v učení; v opačném případě lze perceptron použít. Jednovrstvý N,M perceptron učení podle Rosenblattova d pravidla • krok - počáteční nastavení vah a prahů (je výhodné, jsou-li náhodně nastaveny na malé hodnoty); • krok - vložení nového vzoru a zjištění hodnoty požadovaného výstupu d(t); • krok - výpočet výstupu Jednovrstvý N,M perceptron učení podle Rosenblattova d pravidla • krok - adaptace vah w[i](t+1) = w[i](t) + h.[d(t) - y(t)].x[i](t), 0 £ i £ N; d = d(t) - y(t) h > 0, h < 1 je konstanta ovlivňující rychlost konvergence - kompromis mezi rychlou adaptací a zohledněním dřívějších zkušeností; • krok - skok na krok 2; Jednovrstvý N,M perceptron je dokázáno, že: þ jsou-li klasifikační třídy lineárně separabilní, procedura učení konverguje a hranice leží mezi oběma množinami; þ nejsou-li třídy lineárně separabilní, potom poloha hranice osciluje; možné modifikace: þ optimalizace metodou nejmenších čtverců; þ využití gradientních metod. VÍCEVRSTVÝ PERCEPTRON þ Na rozdíl od jednovrstvého perceptronu může být vícevrstvý perceptron použit i pro řešení nelineárně separabilních problémů. Kolik potřebujeme v perceptronu vrstev? Kolik potřebujeme v perceptronu vrstev? ROZDĚLENÍ OBRAZOVÉHO PROSTORU PŘI RŮZNÉM POČTU VRSTEV PERCEPTRONU Kolik potřebujeme v každé vrstvě uzlů? þ je-li počet neuronů malý, síť nedokáže postihnout všechny závislosti v trénovacích datech; þ je-li počet neuronů velký, zvyšuje se doba učení a navíc vlivem nadměrného počtu trénovacích dat síť špatně generalizuje vlivem tzv. přeučení (overfitting – zdůrazňování náhodných fluktuací pro učení sítě) Kolik potřebujeme v každé vrstvě uzlů? TEORIE dokázáno: þ pro dokonalé oddělení dvou tříd (máme-li k dispozici N vzorů) je potřeba nejvýše N-1 neuronů; þ pro dokonalé oddělení dvou tříd stačí N/n neuronů, kde n je dimenze vstupního prostoru; þ počet skytých neuronů musí růst s velikostí trénovací množiny; þ daná funkce může být aproximována s libovolnou přesností perceptronovou sítí se dvěma skrytými vrstvami, přičemž v první skryté vrstvě má síť nm(m+1) neuronů a v druhé vrstvě m^2(m+1)^n neuronů, kde m³2n+1 Kolik potřebujeme v každé vrstvě uzlů? HEURISTIKA þ N[1] … dáno počtem potřebných lineárních hranic þ N[2] … = 1, pokud je oblast definované třídy konvexní; > 1, pokud oblast není konvexní; v tom případě je N[2] rovno počtu konvexních oblastí (ve většině případů je N[2] << N[1]); þ N[3] … počet tříd; Kolik potřebujeme v každé vrstvě uzlů? JINÁ HEURISTIKA pro třívrstvý perceptron (dvě skyté vrstvy a jedna výstupní) první vrstva: o něco více neuronů, než je vstupů; druhá vrstva: počet nueronů daný aritmetickým průměrem počtu neuronů v první vrstvě a počtu výstupů Kolik potřebujeme v každé vrstvě uzlů? JEŠTĚ JINÁ HEURISTIKA první vrstva: dvojnásobek počtu vstupů a výstupů; druhá vrstva: polovic neuronů v první vrstvě