Mesterséges neuronháló szerkezete
3.1. Neuronhálók topológiája
A neuronhálókban a neuronok elrendezése nagyon változatos. Ebben a részben főként a neuronok lehetséges összekapcsolásának módjaival fog-lalkozunk. A neuronhálók összekapcsolásának elsajátítása alapot biztosít a könyv következő részének a megértéséhez, a különböző típusú neuronhá-lók tanításához. A mesterséges neurális hálózatok alapjában véve absztrakt entitások. Leírhatóak matematikailag és megvalósíthatóak különböző válto-zatban: szoftveresen vagy hardveresen. A neuronhálóban a neuronok közötti kapcsolatokat a neuronháló topológiája határozza meg. A mesterséges ne-uronhálók topológiája úgy tekinthető, mint a neuronok közötti reláció kap-csolataik révén. A topológia kifejezésre alternatíva a neuronháló szerkezete vagy a neuronháló architektúrája. Általában a neuronhálózat topológiája irányított gráffal írható le. A neuronok a gráf csomópontjai, míg a neuron-háló bemeneteit, kimeneteit és a neuronok közötti kapcsolatokat a gráf élei reprezentálják. Az élek a neuron bemenetétől a kimenet felé vannak irányít-va. Általában egy neuronhálóban három típusú neuront különböztethetünk meg (3.1. ábra):
1. Bemeneti neuronok: a bemeneti neuronoknak általában nincsen jel-feldolgozó, processzáló szerepük. A bemeneti neuronok a hálózat bemenetéről kapják a jeleket és más neuronok bemenetére továb-bítják.
2. Kimeneti neuronok: a neuronháló kimenetén a környezet felé köz-vetítik az információt. A kimeneti neuronok bemenetét általában a neuronhálóban található egyéb neuronok szolgáltatják.
3. Rejtett neuronok: bemeneteikkel és kimeneteikkel szigorúan csak más neuronokhoz kapcsolódnak.
A legtöbb neuronháló esetében a neuronok rétegekbe vannak szervezve. Van egy pár kivétel, amikor a neuronhálóban a neuronok nem rétegekbe vannak szervezve, viszont ezek a neuronhálók is értelmezhetőek többrétegű topoló-giájú rendszerekként [11].
Egy többrétegű neuronháló esetében, a neuronok osztályozása szerint megkülönböztetünk:
1. bemeneti réteget: bemeneti neuronokat tartalmaz;
2. kimeneti réteget: kimeneti neuronokat tartalmaz;
3. rejtett réteget: rejtett neuronokból épül fel.
3.1. ábra. Többrétegű neuronháló szemléltetése
Többrétegű neuronháló esetében a rétegek rendezettek és megszámlálha-tók, a bemeneti réteg indexe 1, első rejtett réteg indexe 2, következő rejtett
3.1. Neuronhálók topológiája 55 réteg indexe 3, és az utolsó kimeneti réteg indexe L, mely a neuronháló-ban található rétegeknek a száma. Rétegenként ismerjük a neuronok számát N<1>, N<2>, . . . , N<L>. A3.1. ábrán egy többrétegű neuronháló van szem-léltetve.
3.1.1. Neuronok összekapcsolása
A neurális hálózatok topológiája, összekapcsolási struktúrája (3.2. ábra) meghatározza a neuronok összekapcsolódásának módját.
3.2. ábra. Neuronok közötti kapcsolatok
A többrétegű neuronhálókra alapozva, különböző típusú kapcsolatok lehetségesek [4], [6], [11].
– rétegek közötti kapcsolat (i – interlayer connection): szomszédos ré-tegekben található neuronok közötti kapcsolat;
– laterális (o), intralayer connection: egy rétegen belüli neuronok kö-zötti kapcsolat, a réteg kimenete a rétegben található neuronok bemenetére van csatolva;
– elemi visszacsatolás (e): egy neuron kimenetének saját bemenetére való visszacsatolása (ez egy speciális esete a rétegen belüli kapcsola-toknak);
– supralayer connection (s): nem szomszédos rétegekben található neu-ronok közötti kapcsolat; általában egy réteg kimenetének a visszacsa-tolása egy előbbi réteg bemenetére, de nem a saját réteghez tartozó neuronok bemeneteire.
Minden egyes kapcsolathoz egy súlytényező van rendelve, egy súlyozá-si tényező, amely meghatározza a bemenet fontosságát. A súlytényező egy skalár érték, pozitív érték esetén gerjesztő, negatív érték esetén gátló szere-pe van. Ha a kapcsolathoz tartozó súlytényező értéke zérus, úgy tekinthető, hogy az adott időpontban a kapcsolat nem létezik.
Teljesen összekötött topológia: akkor beszélünk teljesen összekötött topo-lógiáról, ha a neuronhálóban a lehetséges kapcsolatok közül az összes jelen van. A különböző neuronháló-topológia összehasonlítására fontos, hogy is-merjük, hogy egy adott topológia összesen hány kapcsolatot tartalmaz.
A legtöbb neuronháló esetében a kapcsolatoknak a száma megegyezik a súlytényezőknek a számával, vagyis minden egyes kapcsolathoz egy súlyté-nyező van rendelve. Egyes típusú neuronháló, mint például a konvolúciós neuronhálók [1] esetében, beszélhetünk súlytényező-megosztásról, amikor egy kapcsolatcsoport oszt meg egy súlytényezőt. Ebben az esetben több kapcsolat ugyanazt a súlytényezőt osztja meg, a súlytényezőknek a szá-ma sokkal kevesebb a kapcsolatok számához képest. Amikor megszámoljuk a súlytényezők számát egy hálóban, szintén el kell dönteni, hogy a neu-ron bias (eltolási, offset) értékeit is figyelembe vegyük-e vagy nem. Amint a neuron bemutatásánál már szemléltettük, a bias is lényegében egyfajta súlytényezőnek is tekinthető, és gyakran a bias érték adaptálása is ugyan-olyan módszerrel történik, mint a súlytényezők tanítása.
Parciálisan összekapcsolt topológia: egy érdekes alternatívát jelenthet a teljesen összekapcsolt neuronhálókhoz képest; csökkentett mértékű redun-dancia mellett fokozott hatékonyságot biztosít.
3.1.2. Előrecsatolt topológiájú neuronhálók
Többrétegű előrecsatolt neuronhálók esetében minden egyes réteghez tartozik:
– súlymátrixW<l>,
– réteg bemenete (réteg bemeneti vektora)X<l>, – réteghez tartozó ingervektor S<l>,
– réteg kimeneteY<l>,
3.1. Neuronhálók topológiája 57 – a réteg kimenetén a hibavektor δ<l>, ahol l a réteg száma.
Minden egyes réteghez egy rétegszámot rendelünk, és a réteg számával indexeljük a változókat. Ezen index alapján különböztetjük meg, hogy az adott változó melyik réteghez tartozik. Egy több neuront tartalmazó réteg-ben, ahhoz, hogy egy bemenet és egy neuron között azonosítani lehessen egy kapcsolatot, a súlytényezőket két indexszel kell ellátni. Az első index meghatározza a neuron számát, amelyhez a bemenet kapcsolódik, illetve a második index meghatározza a bemenet számát. Például egy kétrétegű neuronháló esetében a következőképpen alakul a változók jelölése:
Első réteg változóira alkalmazott jelölések:
X<1> W<1> S<1> Y<1> δ<1>
A tanítás során minden réteghez szükség van egy kimeneti hibavektorra, amelyet δ-val jelölünk. A második réteghez kapcsolódó változók:
X<2> W<2> S<2> Y<2> δ<2>
Általánosan az l-edik réteghez tartozó változók:
X<l> W<l> S<l> Y<l> δ<l>
Egy réteghez tartozó súlymátrix a következőképpen van felépítve:
a rétegben található neuronok súlyvektorait oszloponként egymás mellé he-lyezzük a mátrixban.
Többrétegű topológiájú neuronháló esetében a neuronháló kimenetét a bemenettől a kimenet felé számoljuk. Első lépésben kiszámoljuk az első
réteg ingerét, majd kimenetét. Az első réteg kimenete a második réteg be-menetét képezi. Kiszámoljuk a következőben a második réteg ingerét, illetve a második réteg kimenetét, amely jelen esetben a neuronháló kimenetét is jelenti.
3.1.3. Visszacsatolást tartalmazó neronhálók
Az előrecsatolt neuronhálók esetében a feldolgozás a bemenettől a ki-menet irányába történik. A neuronháló kiki-menete csak a neuronháló beme-netére kapcsolt pillanatnyi értékektől függ. A visszacsatolt vagy rekurrens neuronhálók memóriaként viselkednek. Összehasonlítva egy sorrendi háló-zattal, mely a visszacsatoló ágban memóriát, tároló elemet tartalmaz, a visszacsatolással lényegében állapotokat iktatunk a neuronhálóba. A vissza-csatolt neuronhálókat bonyolultabb, dinamikus rendszerek modellezésére, zajos jelminták visszaállítására vagy akár osztályba való sorolására is al-kalmazzák. A visszacsatolt neuronhálók közül a Hopfield-hálók szerkezeti felépítését, tanítását és alkalmazását a 8. fejezet keretében részletezzük.
A visszacsatolt neurális hálózatok a természetes nyelvfeldolgozásban az egyik leggyakrabban alkalmazott hálózatnak számítanak az ígéretesnek bi-zonyuló elért eredményeknek köszönhetően.
A rekurrens neurális hálóknak a természetes nyelvfeldolgozásban való alkalmazására két fő megközelítés áll:
– a hálóval becsülhetjük vagy kitalálhatjuk a mondatokat és javíthat-juk a hibát a becslés során,
– egy adott partikuláris műfajnak megfelelően tanítható a neuronháló és a műfajnak megfelelő szöveg generálható.
3.1.4. Időfüggő vagy idővariáns neuronhálók
Az időfüggő hálók többféleképpen alakíthatóak ki. Egy lehetséges vál-tozat, hogy a neuronháló bemenetére a modellezendő rendszer időben kés-leltetett bemeneteit, illetve a késkés-leltetett kimeneteit vezetjük be (3.3. ábra).
Egy másik lehetséges változat, hogy például egy többrétegű perceptron típusú neuronháló kimeneteit visszacsatoljuk a neuronháló bemeneteire (3.4.
ábra).
3.1. Neuronhálók topológiája 59
3.3. ábra. Időfüggő neuronháló, késleltetett bemenetek
3.4. ábra. Időfüggő neuronháló kialakítása a kimenet visszacsatolásával
Ebben az esetben a kimenetszámítást, de főleg a tanítás során a vissza-csatolt rendszermodellt kitekerjük és úgy kezeljük, mint egy előrevissza-csatolt neuronhálót. A kitekerés során a különböző részekben ugyanazok a súlyté-nyezők vannak megosztva. Az alábbi példában egy egyrétegű neuronhálóval szemléltetjük a kiterített neuronháló szerkezetét (3.5. ábra). A neuronháló-nak a szemléltetett ábrán egy bemenete van, és mindegyik kimenete vissza van csatolva a neuronháló bemeneteire. A bemenetekhez kapcsolódó súlyté-nyezőketw-vel, míg a visszacsatolt bemenetekhez kapcsolódó súlytényezőket ω-val jelöltük.
3.5. ábra. Kiterített neuronháló
Az előreszámolás, vagyis a bemenettől a kimenet felé való számolás során a megosztott súlytényezők értéke megegyezik az egyes részekben.
A visszaterjesztéskor, amely a kimenetszámítástól a bemenet felé történik, a súlytényezők más és más értékeket vesznek fel, ugyanis az utolsó rétegbeli értékek alapján számoljuk az új súlytényezők értékeit a hiba-visszaterjesztés módszerével. Az előírt hibát az utolsó rész kimenetén határozzuk meg, és innen áramoltatjuk vissza a kiterített neuronhálón. Az x bemeneteket az egyes kitekert részekben az adott mintavételbeli értékek határozzák meg.
A következő kimenetszámítás során a legutolsó lépésben meghatározott súlytényezőpárokat alkalmazzuk.
Egy harmadik lehetséges kialakítását az időfüggő hálóknak a súlyté-nyezőknek véges impulzus válasz (FIR) szűrővel való helyettesítése jelenti (3.6. ábra). A FIR szűrök digitális szűrők, amelyek impulzusválasza időben véges. A szűrő algoritmusa csak az aktuális és az előző bemeneti értéket veszi figyelembe. Nem rekurzív, konvolúciós vagy mozgó átlag szűröknek is nevezik [12].
3.1. Neuronhálók topológiája 61
3.6. ábra. Időfüggő neuronháló kialakítása FIR szűrővel
Az időfüggő hálók alkalmazása és tanítása jóval bonyolultabb, összeha-sonlítva az előrecsatolt neuronhálókkal. Alaposabb betekintést az időfüggő hálók szerkezetébe, tanításába és alkalmazásába a szakirodalom [4], [2] ta-nulmányozását követően nyerhetünk.