A neuráls hálózatok alapja (A Neuráls hálózatok és mszak alkalmazásak cím könyv (ld. források) alapján) 1. Bológa alapok A bológa alapok megsmerése azért fontos, mert nagyon sok egyed neuráls struktúra, és maguk a neuráls hálózatok s ezen alapulnak. Az agy az ember elsdleges nformácófeldolgozó egysége. Képes tanuln, nagyságrendekkel gyorsabb, mnt a jelenleg processzorok, hbatr képessége kemelked. Az agy f feldolgozó egysége a neuronok. A neuron felépítése Az agy neuronok bemenete a dendrtek, amelyek más neuronokhoz csatlakoznak. A tényleges feldolgozást a neuron tulajdonképpen sejtmagja végz, és az eredményet az axonon keresztül juttatja el a több neuronhoz. Az axon végzdése több másk neuron dendrtjehez csatlakozhatnak. Az degrendszer tovább része a neuronok mellett a glasejtek, amelyek tápláló és véd funkcót töltenek be (az utóbb dk kutatása szernt egyéb a feldolgozást s segít funkcók s vannak). A bológa kutatások eredményeképpen egyre többet tudhatunk meg a neuronok és az agy felépítésérl, mködésérl. Ezen kutatások ereményet felhasználva mszak analógák sorát alkothatjuk meg, amelyek, mnt számos példa bzonyítja, használhatóak s lehetnek.
2. A mesterséges neuron A mesterséges neuron (processng element) az agy neuron másolata. A legegyszerbb formájában a következképpen néz k: x1 w1 y x2 w2 A két bemenet súlyozva egy összegz bemenetére kerül, és ez adja a kmenetet (ld. Oja hálózat). A neuron jóval általánosabb megfogalmazása s lehetséges. Az n súlyozott bemenetet és egy konstansra választott bemenetet (bas) egy összegzés és valamlyen általában nemlneárs függvény követ. Ez utóbb kettt szokás transzfer függvénynek s nevezn. A neuron rendelkezhet lokáls memórával s, amelyet például késleltetéseken, vsszacsatolásokon, lneárs szrkön keresztül érhetünk el. Egy ábrán llusztrálva a fenteket: x0 = 1 x1 x2 w0 w1 w2 Transzfer függvény y xn wn Lokáls memóra A transzfer függvény tehát tulajdonképpen egy összegz, amely a bemenetek súlyozott összegét adja, és egy ezt követ általában nemlneráls függvény. A következkben néhány lyen függvényt adunk meg: + 1, s > 0 y ( s) = 1, s 0 lépcsfüggvény + 1, s > 1 y ( s) = s, 1 s 1 1, s < 1 telítéses lneárs függvény Ks 1 e y( s) = ; K > 0 Ks 1+ e tangens hperbolkus függvény (K=2)
1 ( s) = ; K > 0 1+ e logsztkus függvény y Ks Természetesen más típusú függvények s elképzelhetek. A neuron által megvalósított leképezés tehát így írható: N y = f ( s) = f ( w w T x ) = x, ahol x a bemenet vektor, w a súlyvektor, míg f egy függvény, például valamelyk a fentek közül. = 0 3. Neuráls hálózatok A neuronokból álló hálózatokat nevezzük neuráls hálózatoknak. De nézzük meg, hogy mlyen jellemzk s írjnak le egy lyen hálózatot. A neuronok ugyanolyan vagy hasonló típusú mveleteket végeznek. Egy hálózatban ezeket a mveleteket a többektl függetlenül, lokálsan végzk. Egy neuron nagyon sok másk neuronnal lehet összekapcsolva, és mnt sejthetjük a bológa analógából, ezek a hálózatok tanuln s képesek. Tehát a neuráls hálózatok olyan nformácófeldolgozó eszközök, amelyek párhuzamos, elosztott mködésre képesek, lokáls feldolgozást végz neuronokból állnak, képesek tanuln, és a megtanult nformácót felhasználn. Megvalósításuk szernt lehetnek hardver, szoftver, vagy akár a kett kombnácója s. A neuráls hálózatok tehát a neuronok különböz összekapcsolásaból jönnek létre. Általában egy rányított gráffal reprezentáljuk ket, amelyben a csomópontok az egyes neuronok, míg az rányok a kmenetektl a bemenetek felé mutatnak. Bonyolultabb esetekben ez a jelölésmód átteknthetetlen lehet. A neuron egy hálózaton belül általában csak meghatározott számú neuronnal vannak összekötve, és ez a kapcsolat általában egyrányú, ezért a hálózatokat különböz rétegekre szoktuk bontan az összekötések szernt. Az egyes rétegekhez tartozó neuronok az elz réteg neuronjanak kmenetével, vagy a bemenettel, lletve a következ réteg bemenetével vannak összekötve. a. Bemenet réteg: azok a neuronok találhatók tt, amelyek a bemenet jel továbbítását végzk a hálózat felé. A legtöbb esetben nem jelöljük ket külön. b. Rejtett réteg: a tulajdonképpen feldolgozást végz neuronok tartoznak de. Egy hálózaton belül több rejtett réteg s lehet. c. Kmenet réteg: az tt található neuronok a külvlág felé továbbítják az nformácót. A feladatuk ugyanaz, mnt a rejtett rétegbel neuronoké. A neuronokat a hálózatokon belül elhelyezkedésük alapján általában három csoportba szokták soroln. a. bement neuronok (nem mnden rodalom jelöl ket): ezek a neuronok csak jeltovábbítást, a neuronok meghajtását végzk b. rejtett neuronok: mnd a bemenetek, mnd a kmenetük valamely más neuronhoz csatlakozk c. kmenet neuronok: a külvlág felé továbbítják az nformácót, jellegükben és feladatukban nem különböznek a több neurontól
A legtöbb hálózat esetében az egyes rétegek teljesen össze vannak kötve, vagys egy réteg egy neuronjának kmenete a következ réteg összes bementével össze van kötve. A hálózatoknál elforduló számítások elvégzéséhez célszerbb a hálózatokat különböz mátrxokkal jellemezn. A bemeneteket elegend egy darab vektorba rendezve ábrázoln, ez N bemenet esetén egy N-es vektort jelent. Az egyes rétegek között súlyokat hasonlóan a bemenetekhez mátrxokba szoktuk rendezn. Ez a következképpen néz k: ha az l. rétegben n darab neuron van az l+1. rétegben pedg m, akkor a köztük lév súlyok száma n x m. Ez mátrxba rendezve egy m x n-es mátrxot jelent, amelynek oszlopa az l. réteg neuronjat, sora az l+1. réteg neuronjat reprezentálják. Vagys a W súlymátrx w j -dk eleme az l. réteg j. neuronjának kmenete és az l+1. réteg. neuronjának bemenete közt súly értékét adja meg. Ebben az esetben mnden két réteg között egy W mátrx jelöl a súlyokat, vagys L rejtett réteg esetén L db W mátrxunk lesz. Ennek egy általánosítása, amkor mnden neuront külön megszámozunk, a mátrx elemenek jelentése ugyanaz, mnt az elz esetben és azok az elemeket, amelyek között nncs összeköttetés 0-val jelöljük (ez az elz esetben s érvényes). Ilyenkor csak egyetlen mátrxunk van. A legtöbb esetben az egyes rétegek között nncs vsszacsatolás, lyenkor elrecsatolt hálózatokról beszélünk, vsszacsatolás esetén vsszacsatolt hálózatokról. A vsszacsatolásnak több esete s lehetséges, aszernt, hogy a vsszacsatolás honnan történt. Eszernt lehetséges egy rejtett réteg valamely neuronjának kmenetét a saját bementére (elem vsszacsatolás), egy elz réteg neuronjának bemenetére (rétegek között vsszacsatolás), vagy egy ugyanabban a rétegben található neuron bementére vsszacsatoln (lateráls vsszacsatolás). Egy neuráls hálózat tehát sokféleképpen épülhet fel, és mnt látn fogjuk sokféle tanítás eljárással tanítható. Ezek a tulajdonság teszk lehetvé, hogy a neuráls hálózatokat sok helyen alkalmazhassuk, hszen a felépítéstl és tanítás eljárástól függen dnamkusan tudjuk változtatn a hálózatok tulajdonságat. 4. A neuráls hálózatok felhasználás területe A neuráls hálózatok felhasználása sok területen ígéretes lehet. Néhány terület ezek közül. Adattal címezhet memóra A hálózatot úgy tanítjuk, hogy azonos címhez rendelje az összetartozó adatokat. Elhíváskor a bementre adott adatra valamely megtanult címet adja vssza a hálózat. Asszocatív memóra A hálózatnak ebben az esetben s valamlyen adatot tanítunk, de tt cím helyett a kmeneten s adatot várunk. Aszernt, hogy ugyanazt, vagy más adatot várunk a kmeneten auto-, vagy heteroasszocácóról beszélünk. Ez a funkcó különböz jelfeldolgozás feladatok során lehet hasznos. Osztályozás feladatok Adott egy mntahalmaz, amelynek eleme különböz osztályokba sorolhatóak. Gondoljunk például egy olyan feladatra, amelyben írott szövegbl kell az egyes karaktereket felsmern. Célunk a rendelkezésre álló mnták alapján a hálózatot megtanítan arra, hogy az egyes írott karaktereket helyesen smerje fel. Sok esetben azonban nem smeretes, hogy melyk mntát hova kell soroln, lyenkor a hálózatnak magának kell összefüggéseket keresne az egyes mnták között, és megtanuln ket. Optmalzálás feladatok
A feladat valamlyen költségfüggvény optmalzálása. A neuráls hálózatot úgy alakítjuk k, hogy a megoldandó probléma paraméteret tartalmazza. A lyen célra létrehozott hálózatok általában vsszacsatolt struktúrák. Approxmálás feladatok Sokszor feladat egy problémánál a megfelel leképezés létrehozása. Rendelkezünk adatokkal, például mérés adatokkal valamlyen probléma esetében, de nem tudjuk az adatok által leírt függvény jellemzt, és azok analtkus úton nehezen, vagy egyáltalán nem határozhatóak meg. Ilyenkor segíthetnek a neuráls hálózatok. Nemlneárs dnamkus rendszer A legtöbb folyamat változk az dben, tehát egy adott pllanatbel értéke, nem csak az adott pllanatban jelen lév bemenet jeltl, hanem az elzményektl s függ. Ide sorolhatók például az a feladatok, amkor különböz dsorokat kell elemezn, és elre jelezn a következ értékeket. Dnamkus rendszerek létrehozása neuráls hálózatokkal sokféleképpen történhet. Lehetséges dnamkus neuráls hálózatok létrehozása, vsszacsatolásokkal, késleltetésekkel, lehetséges egy lneárs dnamkus rendszer paraméterenek állítása neuráls hálózatokkal. A terület legtöbb problémája, hogy a dnamkus struktúrák a legtöbb esetben lassan tanulnak, és nem mndg bztosított a rendszer stabltása. Konkrét alkalmazások Több alkalmazás s született már, ahol neuráls hálózatokat alkalmaztak. A felhasználás területek fként a felsmerés feladatok. Ilyenek az alakzatfelsmerés, és osztályozás, elrejelzés, szabályozás feladatok. Alkalmazás területek a robotka (szabályozás), üzlet alkalmazások (elrejelzések), orvos alkalmazások (alakzatfelsmerés, osztályozás). 5. A neuráls hálózatok tanulása Ellenrzött tanulás Összetartozó be- és kmenet adatpárok állnak rendelkezésre. Tanításkor tehát egy adott bemenet esetén tudjuk, hogy mt várunk a kmeneten, vagys a hálózat válaszát össze tudjuk hasonlítan a kívánt válasszal. A keletkez hba, a két válasz különbsége felhasználható a hálózat tanítására. Némely esetben csak azt tudjuk egy adott válaszról, hogy helyes-e vagy sem, de a pontos értéket nem smerjük. Ezt a tanítás formát megersít tanulásnak nevezzük. Az ellenrzött tanulás esetében a célunk az, hogy a tanítandó hálózat mködése mnél jobban közelítse a vzsgált rendszer mködését. Ez a megfelel hálózat kválasztásával és paraméterenek állításával történk. A modell-llesztés általános alakja a következ ábrán látható:
n u Ismeretlen rendszer g(u,n) d Krtérum függvény C(d,y) C Modell (w,u) y Paraméter módosító algortmus A feladatunk tehát a d = g(u,n) függvénykapcsolathoz egy y =(w,u) változtatható paraméter modell llesztését jelent. Az llesztés feladat ebben az esetben általában egy mnmalzálás, szélsérték-keresés feladatot jelent, amelyben egy C(d,y) krtérumfüggvény mnmumát keressük w függvényében. Neuráls hálózatoknál a tanítás célja a megfelel súlytényezk kalakítása, így a használt krtérumfüggvény az optmáls (w * ), és a tényleges súlyvektor (w) függvénye lesz: C(w *,w). A krtérumfüggvény megválasztása függ a feladat jellegétl, az esetleges a pror smeretektl, és bzonyos mértékg szubjektív tényezktl s. A leggyakrabban használt krtérumfüggvény a négyzetes hbakrtérum, amelyet a zaj jelenléte matt várható értékként értelmezünk: T C( d, y) = Ε{ ( d y) ( d y) } = Ε( d j j y j 2 ) A négyzetes krtérumfüggvény elnye, hogy egyszer kezeln, másrészt a négyzetes hbának a hbateljesítmény révén fzka értelmezés s adható. Tovább hbafüggvények lehetnek még az abszolútérték függvény, különböz abszolútértékhatvány függvények, az gen-nem függvény. Specáls esetekben használnak logartmkus, trgonometrkus, hperbolkus függvényekbl alkalmasan elállított hbafüggvényeket s.
Gradens alapú szélsértékkeresés eljárások Szélsérték-keresés paramétereben lnearzálható modellek esetén Newton-módszer Legmeredekebb lejt módszer Konjugált gradensek módszere LMS algortmus Megersítéses tanulás Sztochasztkus szélsérték-keres eljárások Véletlen keresés Genetkus algortmusok Nemellenrzött tanulás Nem állnak rendelkezésünkre összetartozó be- és kmenet adatpárok. A hálózatnak a bemenetek alapján kell valamlyen vselkedést kalakítan. Általában a hálózatoknak valamlyen összefüggéseket, hasonlóságokat kell felderítenük a bemenet adatokban. Ezeket a hálózatokat hívják önszervezd hálózatoknak s. A neuráls hálózatok esetében leggyakrabban alkalmazott lyen eljárások a Hebb és a verseng tanulás. Hebb tanulás Az eljárás bológa analógán alapszk, és a következképpen néz k: w ( k + 1) = w + µ y y, j j j Vagys két processzáló elem között súlytényez értéke a processzáló elemek kemenetének szorzatával arányosan növekszk. A probléma az eljárással, hogy a súlyok a végtelenségg nhetnének, ezért általában valamlyen normalzált változatát használják a gyakorlatban. Verseng tanulás A verseng tanulás esetén a processzáló elemek közül egyet valamlyen szempont szernt kválasztunk gyztesnek, például a gyztes kmenete 1 értéket vesz fel, míg a többé 0-t. A verseng tanulás célja a bemenet mntatér tartományokra osztása úgy, hogy mnden egyes tartományhoz tartozó bemenet esetén egy processzáló elem aktválódjon. A kválasztás történhet automatkusan s, lyenkor a processzáló elemek között oldalrányú kapcsolatok vannak. Analtkus tanulás A megfelel vselkedés hálózatok kalakítása elmélet úton, a feladatból meghatározható, tehát valójában nem s tanulás történk ebben az esetben. Ilyenkor a tanító pontokból közvetlenül, analtkus összefüggéseken keresztül határozzuk meg a hálózat súlyat. Némely esetben valamlyen energafüggvény képez a súlyok meghatározásának alapját. 6. A kezdetek: Perceptron és Adalne Az els próbálkozások 1943-ban történtek, amkor McCulloch és Ptts megalkották az els mesterséges neuront, amely a Threshold Logc Unt (TLU) nevet kapta. Ez a bemenetek súlyozott összegét egy küszöbfüggvény nemlneartáson keresztül vezetve adott eredményt, amely a küszöbfüggvény eltolásától függött.
Az els nagyobb eredmény az 1959-ben Rosenblatt által alkotott perceptron volt, amelyet 1960-ban követett a Wdrow és Hoff által javasolt Adalne (adaptve lnear element). A perceptron ma formája hasonlatos a TLU-hoz, meg kell jegyeznünk azonban, hogy a Rosenblatt által javasolt forma sokkal bonyolultabb volt. A perceptron felépítése az alábbakban látható: x0 w0 x1 x2 xn w1 w2... wn s(k) +1-1 y(k) A mködést megadó egyenlet: y = f ( w x ) = sgn( w x ) A perceptron tanítása pedg a következképpen történk: w = w( k 1) + µε x( k) Nézzük meg egy kcst részletesebben a perceptron mködését. Az ábrából láthatóan, ha az összegz kmenete nagyobb, mnt 0, a kmenet +1, ha ksebb, akkor -1 értéket vesz fel, vagys a perceptron a bemenetére kerül adatokat két csoportba tudja osztan, vagys egy kétosztályos lneárs szeparálás probléma megoldására alkalmas. A hba kfejezésében ε(k) értéke tehát a várt és tényleges kmenet különbségét adja: ε = d y, Ez a kfejezés a [+2,-2] ntervallumban vehet fel egész értékeket. A tanulás tényez értéke ksebb vagy egyenl 1-el. Bzonyítható (a bzonyítást egyszersége matt érdemes elolvasn a hvatkozott rodalomban), hogy a tanítás konvergens. A perceptron, azonban még nem az a megoldás amre m várunk, hszen nem mnden probléma megoldására képes, st valójában még egy egyszer XOR probléma s kfog rajta:
Amnt az ábrán látható a két mntahalmazt nem lehet elválasztan egy egyenessel, vagys lneársan nem szeparálható. Általánosságban a következ mondható el a perceptron osztályozó képességérl (kapactásáról). 1 C P, N) = 2 p 2 ( N 1 = 0 P 1 ha P N ha P > N P a véletlenszeren kválasztott pontok száma, N a dmenzószám, és C(P,N) jelöl a perceptron kapactását. Tehát ha a mntahalmaz nagysága ksebb, mnt a dmenzószám, akkor bztos, hogy a perceptron képes szeparáln. Ez két dmenzó, vagys sík esetén azt jelent, hogy már 3 pont kválasztása esetén sem bztos a lneárs szeparálhatóság. Az adalne hasonló a perceptronhoz azzal a különbséggel, hogy a hbát a nemlneartás eltt képezzük, és az LMS algortmussal tanítunk 7. Többréteg perceptron hálózatok (MLP - mult-layer perceptrons) A gyakorlatban legtöbbször alkalmazott struktúra. A neuráls hálózatok újrafelfedezése akkor kezddött, amkor a 80-as évek elején felfedezték a tanítására alkalmas hbavsszaterjesztéses algortmust. A többréteg perceptron hálózatokban perceptronokat kötünk össze, azonban az alkalmazott nemlneartás valamlyen folytonosan dfferencálható függvény (pl. szgmod típusú). A súlymódosítást ebben az esetben szntén az LMS algortmussal végezzük. A többréteg hálózatok egyes rétegeben egyszer perceptronok vannak összekötve. A perceptronok kemenete, mnt említettük, folytonos, mndenütt dferencálható nemlneartás. A többréteg hálózatok rétegenek neuronszáma eltér lehet. A többréteg hálózatok tanítás összefüggése a következk: A kmenet réteg esetén: ( W ( k + 1) = W + 2µε f ( s ) x = W + 2µδ A rejtett rétegek esetén: ( l ) ( l ) ( l ) W ( k + 1) = W + 2µδ x T ( l ) ( l ) ( s ) Nl 1 ( l) ( l 1) ( l 1) = + + + δ δ r wr f r= 1 A δ értékeke az L. rétegtl kezdve számítandók vsszafelé. (l ) L) x A többréteg hálózatok alkalmazásánál több olyan fontos problémába ütközünk, amely fontos a neuráls hálózatok témakörében. Általános jellemz, hogy a felmerül kérdésekre nem adható egzakt válasz, a legtöbb esetben ntutív módon, elzetes tapasztalatokra alapozva válaszoljuk meg a felmerül kérdéseket.
A hálózat méretének megválasztása A rétegek számának, az egyes rétegeken belül neuronok számának meghatározására nncs egyértelm módszer. Általánosan elmondható, hogy a több réteg alkalmazása könnyíthet a feladat megoldását, lletve rétegenként kevesebb processzáló elem s elegend lehet. Kétféle módszer terjedt el a hálózat méretének meghatározására. Az els szernt egy nagyobb hálózatból kndulva próbáljuk meg csökkenten annak méretét, a másk szernt egy ksebb hálózat bvítésével próbálunk eljutn a megfelel megoldásg. A tanulás aránytényez megválasztása Nagyobb értékek választásakor a tanulás konvergencája gyorsabb lehet, de a mnmumhely közelében problémák mutatkozhatnak, st egyes esetekben dvergencához s juthatunk. Ksebb aránytényez választása esetén a konvergenca lassabb, de a mnmumhely megtalálása pontosabban lehetséges. Általában célszer adaptív megoldásokat alkalmazn, ahol a tanulás aránytényez lépésenként változk, st akár rétegrl rétegre s. A kezdet súlyok megállapítása Amennyben rendelkezünk a problémáról valamlyen elzetes smerettel, úgy a kndulás súlyokat érdemes ennek megfelelen megválasztan. Általában azonban lyen smeretenk nncsenek, így a legmegfelelbb a kezdet súlyok véletlenszer meghatározása. Amennyben a tanítás skertelen, célszer más súlyokkal megpróbáln. A tanító lépések száma A tanító lépések száma nem határozható meg elre, azonban fgyelnünk kell arra, hogy a hálózat túltanulhatja magát, am az általánosítóképesség rovására megy. A megtanított hálózat mnsítése A megtanított hálózat mnsítése a hálózat smeretlen adatokra adott hbája alapján lehetséges. Amennyben a hba elfogadható a tanítás (a struktúra megválasztása) skeres volt. A tanító mntahalmaz A hálózat tanításához szükséges mnták száma természetesen függ a feladattól, de elmondható, hogy a legtöbb esetben kevés mnta áll rendelkezésre. A tanító mntakészletet több részre szokták osztan, amelyek a hálózat tanításánál, és a tanítás skerességének mnsítésénél lehetnek fontosak. A tanító készletet használjuk a tanításra, míg a kértékel mntakészletet a tanítás kértékelésére. A hálózat általánosítóképessége matt várható, hogy ezeket a mntákra s helyes választ ad. A kértékel mntakészlet felhasználása s lehetséges a tanítás során. Szokás még egy teszt mntakészlet meghatározása s, amelyet a tanításnál egyáltalán nem használunk fel. Kevés adat esetén a csoportok elemet cseréljük (cross valdaton), és mnden mntát felhasználunk tanításra és kértékelésre s. Backpropagaton változatok A tanítás algortmus elbb bemutatott változata vszonylag lassú konvergencát bztosít. A konvergenca gyorsítására, a lokáls mnmumba való beragadás elkerülésére különböz módszereket dolgoztak k. Konjugált gradens módszer Levenberg-Marquardt eljárás
Kalman-szr alapú eljárás Momentum módszer Felejt tanulás 8. Egyéb hálózat struktúrák Ellenrzött tanítású hálózatok RBF (Radal Bass Functon) hálózat CMAC (Cerebellar Model Artculaton Controller) hálózat CPN (Counterpropagaton) hálózat PNN (Probablstc Neural Network) hálózat GRNN (Generalzed Regresson Neural Network) hálózat Különböz vsszacsatolt hálózat struktúrák Elrecsatolt hálózat struktúrák FIR szrkkel, vagy késleltetett bemenetekkel Nemellenrzött tanítású hálózatok Kohonen hálózat (SOM) Altér hálózatok (Oja, Földák) Fkomponens hálók (APEX, Sanger) (PCA) Független komponens analízs hálózatok (ICA) Analtkus tanítású hálózatok Hopfeld hálózat Boltzmann gépek Mean-feld hálózatok CNN hálózat Források: 1. Horváth Gábor (szerkeszt): Neuráls hálózatok és mszak alkalmazásak, Megyetem Kadó, Budapest, 1998. 6-112. oldal. 2. http://www.cos.ethz.ch/teachng/nncourse/bran.html 3. http://www.shef.ac.uk/psychology/gurney/notes/l1/l1.html