Algoritmy a struktury meuropočítačů ASN – C2 Několik obecných poznámek k učení UNS učení UNS je ve své podstatě optimalizační proces optimalizujeme tzv. účelovou funkci ( chybová funkce při učení s učitelem, extrakce statistických veličin ze vstupních vektorů při samoorganizaci) účelové učení (performance learning) - založené na hledání extrémů (minim a maxim) účelové funkce Y = T( X, W ) transformační funkce účelová funkce vyjadřuje : - vzájemnou závislost vstupních parametrů a parametrů neuronové sítě - míru vzdálenosti v prostoru adaptačních parametrů učení s filtrací - optimalizace pouze některé vlastnosti signálu (některá složka spektra) adaptační soubor - změnami jeho parametrů dochází k učení sítě důležité je určení jeho velikosti a rozsah jeho parametrů
a) vhodný průběh učení NN (závislost chyby, např a) vhodný průběh učení NN (závislost chyby, např. průměrné střední kvadratické chyby, sumy stř.kvadr. chyby, chyby min-max apod., na počtu učebních etap ) hladká chybová funkce ukazuje na dobře zvolenou velikost trénovacího souboru a na dobře zvolené parametry učení b) nevhodný průběh učení NN (závislost chyby na počtu učebních etap ) plochý průběh chybové funkce ukazuje na příliš velký trénovací soubor nebo špatně zvolené parametry učení, např. malý krok učení (learning rate) a) b) c) c) nevhodný průběh učení NN (závislost střední kvadratické chyby na počtu učebních etap ) oscilační průběh chybové křivky ukazuje na malý trénovací soubor nebo špatně zvolené parametry učení, např. velký krok učení (learning rate)
Jak nastavit váhy a prahy NN ? Pro NN, která dosud nebyla učena, je vhodné použít pro inicializaci funkce typu sigmoida malá náhodná čísla, aby derivace funkce nabývala malých hodnot (při velkých hodnotách parametrů dochází k saturaci a síť se přestává adaptovat). Naopak - velké hodnoty derivací jsou vhodné pro aktivační funkce Gaussova typu. Pro aktivační funkce typu hyperbolická tangenta se doporučuje - β ≤ wi j ≤ β , β = 0.7 ( p ) 1/n n … počet neuronů ve vstupní vrstvě, p … počet neuronů ve skryté vrstvě
Perceptron Typ učení: s učitelem (supervised learning) SSC – cvičení 2 Perceptron 1957 Frank Rosenblatt Typ učení: s učitelem (supervised learning) vstup: x = [x0, x1,…,xn] vektor bias (=1) … prahová hodnota 0 pro < 0 výstup: y = 1 pro > 0 možnosti: klasifikace do 2 tříd pro lineárně separabilní vzory
o x Perceptron Funkce XOR x o a1 = sgn [w11 x1 + w12 x2 + w10] vnitřní a2 = sgn [w21 x1 + w22 x2 + w20] proměnné y = sgn [w1 a1 + w2 a2 + w0] y = 0 pro (0,0) a (1,1) x y = 1 pro (0,1) a (1,0) o 1. x = (0,1) a1 = 1 x = (0,0), (1,0), (1,1) a1 = 0 Červené šrafování 2. x = (0,1), (0,0), (1,1) a2 = 1 x = (1,0) a2 = 0 Černé šrafování x = (0,1) a1 = 1 a2 = 1 o x = (1,0) a1 = 0 a2 = 0 x = (0,0), (1,1) a1 = 0 a2 = 1 x
Příklad: XOR problém P = [0 0 1 1 ; 0 1 0 1]; 4 vstupní vektory o 2 elementech T = [1 0 0 1]; 4 vektory požadovaných hodnot o 1 elementu y = f [ w1 x1 + w2 x2 + w0] f(x) = 1, x > 0 f(x) = 0, x 0 2-vrstvý perceptron pro řešení XOR problému 1 w10 w1 1 w0 a1 w20 y x1 w21 w2 a2 2 w22 x2 Mód off-line (k adaptaci dochází až po průchodu všech vstupních vektorů) … batch učení
Neural Network Toolbox Functions Network Use Functions Perceptron v MATLABu Help – Product help (F1) help percept vytvoření sítě: newp inicializace: init simulace: sim trénování: train učení: learnp Normované učení: learnp aktivační funkce: hardlim Neural Network Toolbox Functions Network Use Functions New Networks Functions Perceptron
NEWP Syntaxe: net = newp net = newp(pr,S,tf,lf) pr - Rx2 matice minimálních a maximálních hodnot pro R vstupních elementů S - počet neuronů tf – přenosová funkce, default = 'hardlim'. lf – algoritmus učení, default = 'learnp'. přenosová (aktivační) funkce tf může být hardlim nebo hardlims algoritmus učení lf může být learnp nebo learnpn Příklad: Je vytvořen Perceptron se 2 elementy na vstupu (rozsah [0 1] a [-2 2]) a 1 neuronem. net = newp([0 1; -2 2],1); Na vstupu je množina P tvořená 4 vektory o 2 elementech a 4 odpovídající cílové (target) hodnoty T o 1 elementu. P = [0 0 1 1; 0 1 0 1]; T = [0 1 1 1]; Trénovat budeme na 20 epoch a pak provedeme simulaci. y = sim(net,P) net.trainParam.epochs = 20; net = train(net,P,T); Pozn: Je–li u hodnot vstupních elementů velký rozptyl, dosáhneme rychlejšího naučení pomocí funkce learnpn.
Demonstrační úlohy – MATLAB Váhy a prahy jsou inicializovány pomocí funkce initzero. Adaptace a trening jsourealizovány pomocí trains a trainc, Míra naučení se určuje pomocí průměrné absolutní chyby mae. Demonstrační úlohy – MATLAB nnd4db ukázka hraniční přímky nnd4pr pravidlo učení Perceptronu (rozdíl mezi učením a tréninkem) demop1 klasifikace pomocí Perceptronu se 2-vstupy (4 vektory o 2 elementech, klasifikace do 2 tříd) demop4 nevyvážená data (dlouhé učení) P = [-0.5 -0.5 +0.3 -0.1 -40; -0.5 +0.5 -0.5 +1.0 50]; T = [1 1 0 0 1]; plotpv(P,T); demop5 Normalizace Perceptronu (2-vstupní hard limit neurony jsou trénovány pro klasifikaci 5 vstupních vectorů do 2 kategori, jeden z vektorů je mohem větší než ostatní, trénink s funkcí learnpn je rychlejší) demop6 lineárně neseparabilní prostory Pozn: dále následuje soubor sscC2M_04.ppt
ADALINE – ADAptivní LIneární Neuron 1960 Bernard Widrow Lineární sítě, lineární aktivační funkce (bipolární), Výstupní hodnota analogová, lineárně separabilní vstupní data. Algoritmus učení: Widrow-Hoffův LMS (Least Mean Square) Typy úloh: 1. Výstup z natrénované sítě odpovídá požadovaným (cílovým) hodnotám. 2. Výstup z natrénované sítě odpovídá na změny v síti (adaptivní systém).
± Lineární síť (W,b) help linnet newlin vytvoření lineární sítě newlind návr lineární vrstvy learnwh W-H učící algoritmus purelin aktivační funkce sim simulace adapt adaptaptivní filtrace T P A ± Lineární síť (W,b) E applin2 adaptivní linearní predikce demolin8 adaptivní odšumování nnd10nc adaptive odhlučněnín kokpitu letadla demolin1 asociace vzorů demolin2 trenink lineárního neuronu nnd10lc lineární klasifikátor demolin4 lineární řešení nelineárního problému demolin5 nedostatečně určená úloha demolin6 lineárně závislá úloha demolin7 příliš velký learning rate