I. LABOR -Mesterséges neuron A GYAKORLAT CÉLJA: A mesterséges neuron struktúrájának az ismertetése, neuronhálókkal kapcsolatos elemek, alapfogalmak bemutatása, aktivációs függvénytípusok szemléltetése, neuron matematikai modellje. 1)Elméleti alapfogalmak A neurális hálózat az a hardver vagy szoftver megvalósítású párhuzamos eszköz amely: azonos vagy hasonló felépítésű, lokális feldolgozást végző műveleti elemek, neuronok (processing element, neuron) általában rendezett topológiájú, nagymértékben összekapcsolt rendszeréből áll rendelkezik tanulási algoritmussal (learning algorithm), amely általában minta alapján való tanulást jelent rendelkezik előhívási algoritmussal (recall algorithm) A neurális hálózatok működése tipikusan két fázisban történik: 1 fázis, amelyet tanulásnak nevezünk- a hálózatban valamilyen módon eltároljuk a kívánt információ feldolgozó eljárást. 2 a második fázisban, -előhívási fázis- a tárolt eljárás felhasználásával elvégezzük az információfeldolgozást. A két fázis a legtöbb esetben időben szétválik, rendszerint a tanulási fázis lassú, hosszú iterációt, esetleg sikertelen tanulási szakaszokat is hordoz. Az előhívási fázis gyors feldolgozást jelent. Ha a két fázis nem válik szét, bizonyos adaptív rendszerek az információ-előhívási szakaszban is módosítják paramétereiket, tanulnak. A neuronok felépítése A neuron több bemenetű, egy kimenetű műveleti elem, amely rendelkezhet lokális memóriával, amelyben akár bemeneti, akár kimeneti értékeket tárol. A bemeneti és tárolt értékekből az aktuális kimeneti értéket tipikusan nemlineáris transzfer-függvény segítségével hozza létre, amelyet aktiváló függvénynek nevezünk. θ x x w 1 w 2 w N Σ ν y x N x 1, x 2 x N- a neuron bemenetei vagy X=[ x 1, x 2 x N ] T -bemeneti vektor θ-referencia bemenet ν-inger (súlyozott összeg ) y-a neuron kimenete w i -súlyzó W=[w 1 w 2 w i w N ] T - súlyzóvektor ϕ aktivációs függvény 3
Mesterséges Intelligencia Labor Az x i bemenetek változó értékűek, míg a θ konstans marad, miután az értékét meghatároztuk. Az x i skalár-bemenetek w i súlyozással kerülnek összegzésre, majd a súlyozott összeg egy nemlineáris elemre kerül. A bemeneti jelek súlyozott összegét, mely a nemlineáris elem bemenete, ingernek (excitation), míg a kimeneti jelet válasznak (activation) nevezzük. A ϕ függvényt aktiváló függvénynek (activation function) nevezzük. A neuron kimenete a következőképpen számolható ki: N ν = x w i i + θ, y = ν ) i= 1 A mesterséges neuron esetében a következő aktivációs függvények alkalmazhatóak: a) Küszöbfüggvény b) Lépcsőfüggvény 1 ha ν 0 ν ) = 0 ν < 0 1 ha ν 0 ν) = 1 ν < 0 c) Logisztikus vagy szigmoid függvény. Az a paraméterrel meg lehet határozni a függvény szaturációs részét. A függvény különböző a paraméterekre ábrázolva a következő grafikonon látható 1 ν ) = 1 aν + e d) Tangens hiperbolikus függvény. Az alábbi ábrán a tangens hiperbolikus függvény különböző értékekre van ábrázolva. 4
1 e ν ) = 1 + e aν aν e) Telítéses lineáris függvény ν ) = 1 ha ν ha 1 ha ν < 1 1 ν 1 ν > 1 f) Gauss függvény. A gauss függvényt például az RBF típusú hálók esetében alkalmazzák. Az RBF típusú hálót a következő laborórákon tanulmányozzuk.,, = = + + + x-bemeneti vektor, c-középpont vektor, σ-szórás Az aktivációs függvény típusának a megválasztása attól függ, hogy a neuron kimenete milyen értékeket vehet fel. Ha a kimenet egy bináris érték, aktivációs függvénynek küszöbfüggvényt vagy lépcsőfüggvényt választunk, 0, 1 értékek esetében küszöbfüggvényt, -1, 1 értékek esetében pedig lépcsőfüggvényt. Ha a kimenet folytonos érték, akkor egy folytonos aktivációs függvényt alkalmazunk, annak függvényében, hogy a kimenet csak pozitív, vagy pozitív / negatív értékeket is felvehet. Csak pozitív értékek esetében szigmoid függvényt, míg pozitív negatív értékek esetében tangens hiperbolikus függvényt alkalmazunk. Megoldandó feladatok 1) Ábrázoljuk grafikusan és tanulmányozzuk a szigmoid és tangens hiperbolikus függvényeket az a paraméter függvényében. Milyen szerepet játszik az a paraméter? 2) Ábrázoljuk grafikusan és tanulmányozzuk a szigmoid és a tangens hiperbolikus függvényeket az y = ϕ ( ν + θ ) θ paraméter függvényében. Milyen szerepet játszik 5
Mesterséges Intelligencia Labor a θ paraméter? 3) Ábrázoljuk grafikusan a szigmoid és tangens hiperbolikus függvények deriváltját 4) Ábrázoljuk grafikusan a gauss függvényt a középérték és szorásparaméterek függvényében 5) Milyen aktivációs függvényt kell alkalmazni, ha sin(x) függvényt szeretnénk approximálni? 6) Milyen aktivációs függvényt kell alkalmazni, ha sin(x) 2 et szeretnénk approximálni? Megoldás a tangens hiperbolikus és szigmoid függvények tanulmányozására a ν és θ paraméterek függvényében %1 laborgyakorlat Mesterséges Intelligencia clear all; close all; %%Tangens hiperbolikus függvény ábrázolása az a paraméter függvényében figure(1); teta=0 tang_hip=@(s,a,teta) (1-exp(-a*(s+teta)))./(1+exp(-a*(s+teta))) a=.5:.5:1.5; s=-10:0.1:10 y=tang_hip(s,a(i), 0); %a valtozo, teta konstans title('tangens hiperbolikus fuggveny tanulmanyozasa az a parameter fuggvenyeben'); 6 %%Tangens hiperbolikus függvény ábrázolása a teta paraméter függvényében figure(2); teta=.5:.5:1.5; y=tang_hip(s,1, teta(i)); %a -konstans ; teta valtozik
title('tangens hiperbolikus fuggveny tanulmanyozasa a teta parameter fuggvenyeben'); %%Szigmoid függvény ábrázolása az a paraméter függvényében figure(3); szigm=@(s,a,teta) 1./(1+exp(-a*(s+teta))) a=.5:.5:1.5; s=-10:0.1:10 y=szigm(s,a(i),0); %a valtozo ; teta konstans title('szigmoid fuggveny tanulmanyozasa az a parameter fuggvenyeben'); %%Szigmoid függvény ábrázolása az a paraméter függvényében figure(4); szigm=@(s,a,teta) 1./(1+exp(-a*(s+teta))) teta=.5:.5:1.5; y=szigm(s,1,teta(i)); %a konstans ; teta valtozo title('szigmoid fuggveny tanulmanyozasa a teta parameter fuggvenyeben'); 7