12.3. KBANN, a tudás alapú neurális hálózat

A tudás alapú neurális háló (Knowledge Based Artificial Neural Network, KBANN) egy lehetséges megoldást ad arra, hogy hogyan ötvözhetők a magyarázat alapú és a mintapontok alapján tanuló rendszerek előnyei [Tow91]. A KBANN rövid bemutatása előtt összefoglaljuk a kétféle ismereten alapuló rendszerek legfontosabb előnyeit és hátrányait.

Míg a neuronhálók minták formájában rendelkezésre álló ismeretet tudnak feldolgozni, a magyarázat alapú rendszerek egy adott tématerületre – a tárgytartományra (domain) vonatkozó – szimbolikus szabályhalmazzal fogalmazzák meg az adott problémáról rendelkezésre álló ismereteket. Például a neuronhálókkal ellentétben egy élőlény madár voltát nem rengeteg példán keresztül határozzák meg, hanem egy előre meghatározott szabályrendszer – mint tollas-e, van-e szárnya stb. – alapján. A szabályrendszert – amit szakértők állítanak fel – a tanuló rendszerek irodalmán belül szokás a tárgytartományra vonatkozó elméletnek, domén elméletnek (domain theory) is nevezni. A továbbiakban mi is ezt az elnevezést fogjuk használni.

A minták alapján, induktív tanulással (empirikus tanulás, ET) létrehozott és a magyarázat alapú rendszerek (MA) alapvetően eltérő tudásreprezentációt alkalmaznak. Mindkét megközelítésnek megvannak az előnyei és hátrányai, melyeket a 12.1. táblázatban foglalunk össze. Az előnyös tulajdonságokat (+), a hátrányosakat (-) jellel jelöltük. Ha összevetjük a két tudásreprezentáció problémáit jól látható, hogy a két megközelítés kiegészíti egymást, azaz a kombinációjukból adódó hibrid-neurális rendszerben az egyik reprezentáció erősségeivel felülkerekedhetünk a másik gyengeségein. A minták formájában meglévő tapasztalati tudás és a szabályok formájában rendelkezésre álló domén elmélet együttes felhasználására alkalmasak a tudás alapú neuronhálók (KBANN). A KBANN alapvető megközelítése, hogy a domén ismeretet a kiinduló neuronháló konstrukciójánál használja fel: a feladatról rendelkezésünkre álló szabálykészlet alapján olyan háló architektúrát és kiinduló hálóparamétereket (súlyokat) határoz meg, hogy a kiinduló háló leképezése teljes mértékben megegyezzen a bemenetek és kimenetek között szabályok formájában megfogalmazott kapcsolattal.

12.1. táblázat - A különböző tudásreprezentációs tanuló rendszerek egymást kiegészítő erősségei (+) és gyengeségei (-)

Magyarázat alapú rendszerek

(MA)

Mintákból történő tanuló rendszerek (ET)

(-) teljes és korrekt domén elméletet tételez fel (bizonyos feladatokra a domén ismeret megfogalmazása nemcsak hogy nehéz, de egyenesen lehetetlen)

(+) az ET rendszer nem vagy alig igényel elméleti tudást

(-) valójában nem tanul, lényegében csak átfogalmaz, ezért a kiinduló elmélet hibáit nem képes kijavítani

(+) az ET rendszer képes új ismereteket befogadni, képes tanulni

(-) a domén elméletekre nem jellemző a "fokozatos romlás": ha a tudáshatárt átlépi a feladat, a megoldóképesség drasztikusan romlik, emellett a tudáshatár átlépésének detektálása is problematikus

(+) az ET rendszer "fokozatosan romlik"

(-) a domén elmélet túl terjedelmes/bonyolult is lehet (idő/memória korlátok)

(+) egy megtanított ET rendszer gyors működésű

(-) a domén elméletet valakinek meg kell fogalmaznia

(+) az ET rendszer kevés domén ismeretet igényel

(+) az MA nem használja a példák közötti korrelációt

(-) a példákban található álkorrelációk helytelen osztályozáshoz vezethetnek (pl. ha a példahalmazban minden madár fekete tollazatú, a rendszer kikövetkeztetheti, hogy minden madárnak feketének kell lennie)

(+) a domén tudásban tetszőleges mennyiségű alhalmazt/altudást tudunk reprezentálni (speciális, kivételes esetek kezelése)

(-) sok pozitív példa mellett is elképzelhető, hogy a kivételes eseteket nem, vagy nem kellő mértékben reprezentálják a példák

(+) a kontextus szerepelhet a szabályrendszerben

(-) az osztályozás szempontjából lényeges vonások környezetfüggőek lehetnek, a kontextust valahogy reprezentálni kell

(+) a releváns tulajdonságokat a domén tudás specifikálja

(-) bármelyik objektum elvileg végtelen sok különféle attribútummal írható le, a lényegi vonások kiszűréséhez tudás kell

(+) a bonyolultabb jellemzők a végállapot és kezdeti szabályok közötti "köztes következtetések"

(-) a kezdeti primitív tulajdonságokból bonyolultabb jellemzők kinyerése segítené a tanulást, ez a kinyerés azonban nem automatizált és garantált


A szabályok ugyanakkor nem szolgálnak teljes ismerettel a megoldandó feladatról, további ismeret mintapontok formájában áll rendelkezésünkre. Ezt az ismeretet használjuk fel a kiinduló háló finomítására, paramétereinek pontosabb beállítására, sőt esetleg a kiinduló háló struktúrájának a megváltoztatására is. A KBANN nemcsak arra képes, hogy a kétféle reprezentációjú tudást a háló kialakításánál hasznosítsa, hanem arra is, hogy a megtanított hálóból a kiinduló szabályokhoz hasonló szabályok formájában szimbolikus ismeretet is kinyerjünk.

12.3.1. Apriori tudás használata a kezdeti hipotézis kialakításában: KBANN

A KBANN konstrukciója három fázisból áll (ld. 12.3. ábra). Az első fázis a kezdeti domén elmélet alapján egy kiinduló neuronháló – MLP – létrehozása. Ez a fázis a szimbolikus szabályokat egy neurális hálózatba konvertálja. Az így keletkezett hálózat garantáltan ugyanazt a választ adja, mint amit a kiinduló szabályok adnának.

A második fázisban a létrehozott neuronhálót tanítóminták segítségével tanítjuk. A tanítás módja alapvetően megegyezik az MLP tanításánál bemutatott eljárással, tehát itt is a hibavisszaterjesztéses algoritmust alkalmazzuk. Ugyan a tanítási algoritmus a megszokott, ezt azonban nem egy szokványos hálón végezzük, hanem a szabályokból nyert, a domén tudásból létrehozott speciális struktúrájú hálón, és ez a tanításra bizonyos korlátokat ad (ld. bővebben a 12.3.4 alfejezet).

12.3. ábra - Az információ terjedése KBANN-ban
Az információ terjedése KBANN-ban

A végső, harmadik fázis során történik meg a módosított neuronhálóból a módosított szabályrendszer kinyerése. A kapott elméleti tudás már emberi elemezésre is alkalmas, megoldva ezzel a neurális hálók egyik legnagyobb hiányosságát. A kapott finomított domén tudást akár kiinduló tudásként is alkalmazhatjuk egy következő KBANN-ben, így az információ visszaáramoltatással egy iterációs alkalmazáshoz is juthatunk.

Az ábrán az ellipszisek adatstruktúrákat, a négyszögek algoritmusokat jelentenek. A dupla ellipszisek a kiinduló ismereteket jelölik. A KBANN tehát kétféle kiinduló ismeretből építkezik: egyrészt a kezdeti domén tudásból, másrészt tanító mintapontokból. Az alábbiakban röviden bemutatjuk a KBANN alapváltozatának a konstrukciójához szükséges lépéseket. Az alapváltozaton kívül a KBANN-nek számos továbbfejlesztett változatát dolgozták ki.

12.3.2. Az elméleti tudás neurális hálózatba történő konvertálása

A KBANN szimbolikus szabályokból indul ki, a szabályokat egy többrétegű perceptron neuronjaira képezi le. A szabály MathType@MTEF@5@5@+=feaagCart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqipu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeyOKH4kaaa@37C2@ neuronháló konverzió a szabályokra nézve meglehetősen szigorú korlátokat állít fel. A KBANN csak Horn klózként megfogalmazott szabályokból tud hálót építeni. A Horn klóz az ítéletkalkulus fontos fogalma. Egy Horn klóz literálok diszjunkciója, ahol a literálok közül legfeljebb egy lehet pozitív. Egy literál egy atom vagy annak negáltja, ahol az atom az ítéletkalkulus osztatlan szintaktikai eleme. (Részletesebben ld. [Rus05]).

A KBANN által felhasználható szabályok a Boole-algebra nyelvén is megfogalmazhatók. E szerint egy szabály olyan logikai kifejezés, amely bemeneti logikai változók konjunktív és diszjunktív kapcsolataiból áll. A logikai kifejezés bemenetére kerülő logikai változók képezik a szabályok feltétel részét, a logikai kifejezés kimenete pedig a szabály következmény részét. A kiinduló szabályok olyan logikai kifejezéseknek felelnek meg, ahol a kimeneti logikai változó a bemeneti változók ÉS kapcsolatainak VAGY kapcsolataként írható fel (ezt szokás konjunktív normál alaknak (conjunctive normal form) is nevezni). A bemeneti logikai változók ponált vagy negált értékkel szerepelhetnek. A KBANN kiinduló szabályainál korlátozás még, hogy a szabályok csak aciklikus szabályok lehetnek (azaz nincs olyan szabály, vagy szabály kombináció, ahol egy szabály következménye a feltételben is szerepel). Az aciklikusság követelménye azonban nem zárja ki a hierarchikus szabályok alkalmazhatóságát, amikor egy szabály következményrésze egy következő szabály feltételrészeként jelenik meg. A hierarchikus felépítésű szabályrendszerből kiindulva a konverzió rejtett neuronokat is tartalmazó többrétegű hálót eredményez.

A KBANN konstrukciója a következő 7 fő lépésből áll.

1. Szabályok átírása

A fentiekben definiált szabályok közvetlenül nem minden esetben konvertálhatók neuronokká. A konverzió úgy biztosítható, ha előbb a szabályokat olyan formába írjuk át, hogy a diszjunkcióknál a feltételrészben csak egyetlen logikai változó szerepeljen. Ez az átírás lehetővé teszi a szabályok egyértelmű konvertálását neurális háló elemekre (neuronokra) és egyben tisztázza is a hierarchikus struktúrát. Tekintsük a következő példát: legyen a kiinduló szabályrendszerünk:

A :− B, C, D

A :− D, E, F, G

ahol A,B,C,D,E,F és G mind logikai változók. A fenti szabályrendszer Boole-algebrai megfelelő felírása:

A=BCD+DEFG

vagyis az A kimeneti logikai változó akkor vesz fel IGAZ értéket, ha VAGY a B,C és D bemeneti logikai változók mindegyike IGAZ értéket vesz fel (ÉS kapcsolat) VAGY D,E,F és G mindegyike vesz fel IGAZ értéket.

A szabály MathType@MTEF@5@5@+=feaagCart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqipu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeyOKH4kaaa@37C2@ háló konverzióhoz a következő átírásra van szükség:

A :− A′

A′ :− B, C, D

A :− A′′

A′′:− D, E, F, G

vagy Boole-algebrai felírással

A = A′+A′′

A′ = BCD;

A′′ = DEFG

Az átírás azért szükséges, mert másképpen nem tudjuk a szabályból származtatott neuronok eltolásértékeit (bias), úgy beállítani, hogy a konverzió eredményeképpen létrejött háló megfeleljen a szabály logikai működésének.

2. Szabálystruktúra leképezése neurális hálóvá

A második lépésben az előzőekben már átírt szabályok mindegyikét egy-egy neuronra képezzük le. A neurális háló bemenetei a szabályok feltétel részének, az előzményeknek, míg a kimenetei a végső következményeknek felelnek meg. A fentiekből már jól látszik, hogy a neurális háló rejtett elemei a szabályrendszer közbülső következményeit reprezentálják.

A szabályok nemcsak az egyes neuronok felépítését (bemenetek száma) határozzák meg, hanem a neuronok súlyait és az eltolásértékét is. A súlyok megválasztása − amit a későbbiekben ismertetünk − a konvertálandó szabály típusától függ. A kapott hálózat már megfelel a kezdeti domén elméletnek: a kimenete csak akkor aktív, amikor a szabályrendszer alapján is igaz az állítás.

3. Címkézés

Címkézést hajtunk végre, melynek eredményét a későbbi lépések hasznosítják. A címkézés során minden rejtett és kimeneti neuronhoz egy, a neuron rétegének megfelelő számot (címkét) rendelünk úgy, hogy a bemenettől azonos „rétegtávolságra” lévő neuronok azonos számot kapnak. (A bemenetek a 0. réteget képviselik.) A címkézés végrehajtásához szükséges, hogy minden érvelési pálya teljes legyen, azaz minden közbülső konklúzió egy olyan pályán legyen, amely egy vagy több bemeneti egységből egy vagy több kimeneti egységhez vezet. Nem teljes pályák esetén ezeket a szabály MathType@MTEF@5@5@+=feaagCart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqipu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeyOKH4kaaa@37C2@ neuronháló konverter kiegészíti igen kis súlyú kapcsolatok bevezetésével.

4. Rejtett egységek hozzáadása a felhasználó által specifikált szinteken

Ahhoz, hogy a neurális hálónk a tanulás során az eredeti domén tudáson túlmutató új kapcsolatokat tudjon megtanulni, szükség lehet rejtett egységek hozzáadására. Mivel a hozzáadott rejtett egységekre nem mindig van szükség (a kezdeti információkészlet elegendő), ezért ez a lépés opcionális.

5. Bemeneti egységek hozzáadása

Ha elfogadjuk, hogy a domén elmélet csak közelítőleg helyes, vagyis lehetnek olyan bemenetek, melyek a kimenetekre hatnak, de melyek nem szerepelnek a szabályokban feltételként, akkor a szabályokban nem szereplő bemeneteket, mint új hálóbemeneteket a kiinduló hálóhoz hozzá kell adni.

6. Szabályokban nem specifikált kapcsolatok hozzáadása szomszédos szinteken

Ebben a lépésben a címkézés eredményének felhasználásával a hálóba újabb éleket (kapcsolatokat) iktatunk, melyekhez nulla kezdeti súlyértékeket rendelünk. A kapcsolat beiktatása lehetővé teszi, hogy a későbbi, minták alapján történő tanítás során ott valóban érdemi kapcsolat alakuljon ki, a nulla kezdeti érték ugyanakkor azt biztosítja, hogy a beiktatást követően a háló által megvalósított leképezés az eredeti szabályrendszer által meghatározott leképezéshez képest ne változzon.

Az új élek beiktatása az alábbi elv szerint történik. Kössünk össze egy–egy éllel minden (n-1) címkéjű egységet (bemenetet vagy neuront) minden (n) címkéjű egységgel. Az összeköttetések beiktatásánál a 4. és az 5. lépésben beiktatott bemeneteket illetve rejtett neuronokat is vegyük figyelembe.

7. Súlyok perturbálása.

Módosítsuk a háló összes súlyát úgy, hogy mindegyikhez hozzáadunk egy kisértékű véletlen számot. A kismértékű módosítás nem változtatja meg érdemben a háló leképezését, de elegendő ahhoz, hogy a háló későbbi tanításánál bizonyos szimmetria-kialakulásból adódó problémákat elkerüljünk.

12.4. ábra - Mintapélda KBANN kialakítására
Mintapélda KBANN kialakítására

12.1 példa

A 12.4 ábrán bemutatott példán végigkövethetjük a KBANN konstrukciójának lépéseit.

Az ábra (a) és (b) ablaka a kezdeti domén elméletet megadó szabályokat mutatja az eredeti (a) és a konstrukció által megkövetelt átírt (b) formában. A (c) és (d) ablak illusztrálja a szabályok neuronhálóba való átültetését. Látható, hogy egy olyan többrétegű hálóarchitektúrát kapunk, amely nem teljesen összekötött, hiszen a bemenetek és a neuronok, illetve az egyes neuronok közötti összeköttetéseket a kiinduló szabályok határozzák meg. Az (e) ablakban a struktúrabővítés látható, itt egy rejtett egységet és két bemeneti egységet adunk a hálóhoz. Ezen az ábrán láthatók a címkézések is, ahol számozás a bemenettől indul és a címkék a bemenettől számított leghosszabb út hosszúságát reprezentálják. Az (f) ablakban a nulla súlyú extra élek felvétele látható. Figyeljük meg, hogy a később hozzáadott egységeknek a hálózat többi eleméhez való hozzákapcsolása szintén megtörténik.

12.3.3. Szabály→ neuron konverzió

A szabályfordítás egyszerűsítéséért feltesszük, hogy csak bináris értékű bemenetekkel kell számolnunk. Mivel a többértékű jellemzők átalakíthatók bináris jellemzők logikai kapcsolatává, ezért a fenti egyszerűsítés nem jelent korlátozást. Könnyen belátható, hogy a konjunktív és a diszjunktív szabályok a 12.5 (a) illetve (b) ábrán látható módon konvertálhatók neuronokká.

12.5. ábra - Szabálykonverzió. Konjunktív (a) illetve diszjunktív (b) szabály leképezése
Szabálykonverzió. Konjunktív (a) illetve diszjunktív (b) szabály leképezése

Az ábra olyan neuronokat mutat, melyek a szokásos módon a bemenetek súlyozott összegét képezik, majd az összegre egy szigmoid típusú nemlinearitást alkalmaznak. A konverzió során a ponált bemeneteket (pozitív feltételek) azonos w>0 súlyokkal, a negált bemeneteket (negált feltételek) pedig –w súlyokkal vesszük figyelembe. Ha a feltételezésünknek megfelelően bináris bemenetekkel dolgozunk (vagy legalább azt biztosítjuk, hogy a bemenetek közel 0 vagy közel 1 értéket vegyenek fel) és a kimeneteken is közel bináris értékeket szeretnénk kapni, akkor logisztikus szigmoid függvényt kell alkalmaznunk. A w súly értékét – megfelelő feltételek betartása esetén – viszonylag egyszerűen, elemi számítások felhasználásával határozhatjuk meg. A részletek bemutatásától eltekintünk csak a feltételeket és az eredményt adjuk meg.

Tételezzük fel, hogy az egyes bemenetek és kimenetek vagy aktív vagy inaktív állapotban vannak. Aktív állapotról akkor beszélünk ha a megfelelő érték a [Ca,1]MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaamaadmaabaGaam4qamaaBaaaleaacaWGHbaabeaakiaacYcacaaIXaaacaGLBbGaayzxaaaaaa@3E55@ intervallumban, inaktív állapotról pedig, ha a [0,Ci]MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaabUfacaqGWaGaaeilaiaadoeadaWgaaWcbaGaamyAaaqabaGccaqGDbaaaa@3E20@ intervallumban van, ahol CaMathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadoeadaWgaaWcbaGaamyyaaqabaaaaa@3AEE@ az a minimális aktiváció, ami mellett egy egység még aktívnak és CiMathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadoeadaWgaaWcbaGaamyAaaqabaaaaa@3AF6@ az a maximális aktiváció, ami mellett az egység még inaktívnak tekinthető. Alkalmazzuk a következő logisztikus szigmoid függvényt: sgm(x)=11+eσxMathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaabohacaqGNbGaaeyBaiaabIcacaWG4bGaaeykaiabg2da9maalaaabaGaaGymaaqaaiaaigdacqGHRaWkcaWGLbWaaWbaaSqabeaacqGHsislcqaHdpWCcaaMi8UaaGjcVlaadIhaaaaaaaaa@498C@ , ahol σ olyan konstans, melynek értéke a szigmoid függvény x=0-hoz tartozó meredekségét határozza meg, és jelölje KP a szabály ponált feltételeinek, KN a negált feltételeinek, K= KP + KN pedig az összes feltételnek a számát. Megmutatható, hogy ha ezeket a feltételeket betartjuk és a Ca=1CiMathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadoeadaWgaaWcbaGaamyyaaqabaGccqGH9aqpcaaIXaGaeyOeI0Iaam4qamaaBaaaleaacaWGPbaabeaaaaa@3F88@ , valamint a KCi<1/2MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadUeacaWGdbWaaSbaaSqaaiaadMgaaeqaaOGaeyipaWZaaSGbaeaacaaIXaaabaGaaGOmaaaaaaa@3E61@ feltételek is teljesülnek, akkor a súlyértékre a következő korlátokat kapjuk:

wln(1Ca1)KCi12MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadEhacqGHLjYSdaWcaaqaaiaabYgacaqGUbWaaeWaaeaadaWcaaqaaiaaigdaaeaacaWGdbWaaSbaaSqaaiaadggaaeqaaaaakiabgkHiTiaaigdaaiaawIcacaGLPaaaaeaacaWGlbGaam4qamaaBaaaleaacaWGPbaabeaakiabgkHiTmaalaaabaGaaGymaaqaaiaaikdaaaaaaaaa@48D6@ (12.26)

és

wln(1Ci1)Ca12MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadEhacqGHLjYSdaWcaaqaaiaabYgacaqGUbWaaeWaaeaadaWcaaqaaiaaigdaaeaacaWGdbWaaSbaaSqaaiaadMgaaeqaaaaakiabgkHiTiaaigdaaiaawIcacaGLPaaaaeaacaWGdbWaaSbaaSqaaiaadggaaeqaaOGaeyOeI0YaaSaaaeaacaaIXaaabaGaaGOmaaaaaaaaaa@4806@ (12.27)

Ha w értékét a (12.26) és a (12.27) összefüggéseknek megfelelően választjuk meg, a konjunktív szabályok konvertálásánál

w0=KP12wMathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadEhadaWgaaWcbaGaaGimaaqabaGccqGH9aqpcqGHsisldaWcaaqaaiaadUeadaWgaaWcbaGaamiuaaqabaGccqGHsislcaaIXaaabaGaaGOmaaaacaWG3baaaa@423E@ , (12.28)

a diszjunktív szabályok konvertálásánál pedig

w0=w2MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadEhadaWgaaWcbaGaaGimaaqabaGccqGH9aqpcqGHsisldaWcaaqaaiaadEhaaeaacaaIYaaaaaaa@3EBB@ (12.29)

eltolásértéket (bias) kell alkalmaznunk.

12.3.4. A KBANN háló finomítása

A KBANN háló tanítása hibavisszaterjesztéses eljárással történik. Azonban a speciális hálókonstrukció és kezdeti súlybeállítás miatt a KBANN esetében célszerű a standard hibavisszaterjesztéses eljárást kismértékű módosítása.

A KBANN háló tanításánál a speciális helyzetet az idézi elő, hogy a neuronok bemenetei és kimenetei 0-hoz vagy 1-höz közeli értékeket vesznek fel. Egy szigmoid nemlinearitással felépülő neuron kimenetén akkor kapunk közel 0 vagy 1 értéket, ha a szigmoid telítéses szakaszán vagyunk. A telítéses szakaszon viszont a szigmoid függvény deriváltja közel 0, így a súlymódosítás, amely a hiba és a szigmoid deriváltjának a szorzatával arányos, még akkor is nagyon kicsivé válhat, ha egyébként a kimeneten a hiba nagy. A szigmoid aktivációs függvénnyel dolgozó MLP-knél ez a jelenség természetesen mindig felléphet, de komolyabb következménye csak akkor van, ha a telítéses szakaszon való tartózkodás a háló „normál” működésének a jellemzője. A jelenség következménye, hogy a háló nem vagy nagyon lassan tanul, annak ellenére, hogy a bináris kimeneten épp a kívánt válasszal ellentétes választ kapunk (0 helyett 1-et vagy fordítva), tehát a hiba nagy. A KBANN esetében ez a szituáció már a kiinduló hálónál is előfordulhat, így a háló súlyain a hagyományos hibavisszaterjesztéses algoritmus már keveset változtat, függetlenül attól, hogy a háló működése a tanító minták alapján helyes vagy sem. Ezért a KBANN esetében általában a hibavisszaterjesztéses algoritmus Hinton-féle módosított változatát használjuk [Hin89]. Ebben a hagyományos négyzetes hibafüggvény helyett a keresztentrópia hibafüggvényt használjuk:

C(w)=i=1M[diln(yi)(1di)ln(1yi)]MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadoeadaqadaqaaiaahEhaaiaawIcacaGLPaaacqGH9aqpcqGHsisldaaeWbqaamaadmaabaGaamizamaaBaaaleaacaWGPbaabeaakiaabYgacaqGUbWaaeWaaeaacaWG5bWaaSbaaSqaaiaadMgaaeqaaaGccaGLOaGaayzkaaGaeyOeI0YaaeWaaeaacaaIXaGaeyOeI0IaamizamaaBaaaleaacaWGPbaabeaaaOGaayjkaiaawMcaaiaabYgacaqGUbWaaeWaaeaacaaIXaGaeyOeI0IaamyEamaaBaaaleaacaWGPbaabeaaaOGaayjkaiaawMcaaaGaay5waiaaw2faaaWcbaGaamyAaiabg2da9iaaigdaaeaacaWGnbaaniabggHiLdaaaa@5B03@ (12.30)

ahol

diMathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadsgadaWgaaWcbaGaamyAaaqabaaaaa@3B17@

az i-edik neuron számára előírt kívánt válasz

yi=yi(w)MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadMhadaWgaaWcbaGaamyAaaqabaGccqGH9aqpcaWG5bWaaSbaaSqaaiaadMgaaeqaaOWaaeWaaeaacaWH3baacaGLOaGaayzkaaaaaa@40E7@

a neuron kimeneti értéke

A keresztentrópia hibafüggvény alkalmazása azt eredményezi, hogy a hibaviszszaterjesztéses algoritmusban a gradiens számításból származó δ=εsgm´(.)MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiabes7aKjabg2da9iabew7aLjaayIW7caaMi8Uaae4CaiaabEgacaqGTbGaaeiTamaabmaabaGaaiOlaaGaayjkaiaawMcaaaaa@46CA@ értékek (ld. az 4. fejezetben a (4.6), (4.12) és (4.14) összefüggéseket) akkor sem adnak közel nulla értéket, ha a szigmoid függvény telítéses szakaszán vagyunk. Ez jól látható a 12.6 ábrán. Az ábra bináris kívánt választ feltételezve δ alakulását mutatja a kimeneti hiba függvényében. A szaggatott vonal a szokásos négyzetes hibafüggvényre, a folytonos vonal a keresztentrópia hibafüggvényre érvényes δ-t mutatja. Ezt az eredményt könnyen származtathatjuk, ha a (12.30) összefüggéssel megadott kritériumfüggvény alapján meghatározzuk a hibavisszaterjesztéses algoritmus megfelelő δ-ira vonatkozó összefüggéseket.

A KBANN tanításánál a standard hibavisszaterjesztéses eljáráshoz képest egy további módosítás alkalmazása célszerű. Mivel a tanuló eljárás során a háló kiinduló súlyai megváltoznak, a háló által reprezentált szabályok is változni fognak. Ha a kiinduló szabályrendszer kellően megbízható, azt szeretnénk, ha az eredeti szabályok a tanítás után is érvényesek maradnának, a tanítás következtében pedig esetlegesen további szabályok lennének megfogalmazhatók. A kiinduló szabályok csak akkor maradnak érvényben, ha a kiinduló hálóarchitektúra rész súlyai nem módosulnak jelentős mértékben.

12.6. ábra - Kimeneti neuron származtatott hibája keresztentrópia (folytonos) és négyzetes (szaggatott) hibafüggvény mellett
Kimeneti neuron származtatott hibája keresztentrópia (folytonos) és négyzetes (szaggatott) hibafüggvény mellett

Ennek biztosítására a kritériumfüggvényhez egy regularizációs tagot vehetünk hozzá, amelynek szerepe a kiinduló súlyok jelentős módosításának megnehezítése. A regularizációs tag egy olyan büntető tag, mely az eredeti súlyok (winit) megváltozását bünteti.

Ω(w)=i(wiwiniti)21+(wiwiniti)2MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadM6adaqadaqaaiaahEhaaiaawIcacaGLPaaacqGH9aqpdaaeWbqaamaalaaabaWaaeWaaeaacaWG3bWaaSbaaSqaaiaadMgaaeqaaOGaeyOeI0Iaam4DamaaBaaaleaacaWGPbGaamOBaiaadMgacaWG0bWaaSbaaWqaaiaadMgaaeqaaaWcbeaaaOGaayjkaiaawMcaaiaayIW7caaMi8+aaWbaaSqabeaacaaIYaaaaaGcbaGaaGymaiabgUcaRmaabmaabaGaam4DamaaBaaaleaacaWGPbaabeaakiabgkHiTiaadEhadaWgaaWcbaGaamyAaiaad6gacaWGPbGaamiDamaaBaaameaacaWGPbaabeaaaSqabaaakiaawIcacaGLPaaacaaMi8UaaGjcVpaaCaaaleqabaGaaGOmaaaaaaaabaGaamyAaaqaaaqdcqGHris5aaaa@6032@ (12.31)

Ekkor a kritériumfüggvényünk a következő lesz:

Cr(w)=C(w)+λΩ(w)MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadoeadaWgaaWcbaGaamOCaaqabaGcdaqadaqaaiaahEhaaiaawIcacaGLPaaacqGH9aqpcaWGdbWaaeWaaeaacaWH3baacaGLOaGaayzkaaGaey4kaSIaeq4UdWMaamyQdmaabmaabaGaaC4DaaGaayjkaiaawMcaaaaa@4839@ (12.32)

ahol C(w) a (12.30) összefüggéssel megadott eredeti kritériumfüggvény, λ pedig a regularizációs együttható.

12.3.5. Szabályok kinyerése – finomított domén elmélet

A szabályok kinyerése fázis arra szolgál, hogy a most már mintákkal is tanított hálóban „meglévő tudást” szabályok formájában is meg tudjuk fogalmazni. Ez a fázis teszi lehetővé, hogy a háló válaszához magyarázatot is tudunk rendelni. A szabálykinyeréssel visszatérünk a kiinduló tudás reprezentációra azzal a különbséggel, hogy kezdetben a szabályok egy kiinduló domén ismeretet tükröztek, az eljárás végén kinyert szabályok viszont már a tanítómintákból származó ismeretet is tartalmazzák.

Az alább részletezett szabálykinyerő módszer két fő feltételezéssel él. Egyrészt feltesszük, hogy a KBANN tanítása nincs nagy befolyással az egységek szimbolikus jelentésére. Tanított hálókon végzett vizsgálatok azt mutatják, hogy a jelentések általában stabilak. Ha mégis történik jelentésváltozás, akkor az „elmozdulás” a legkevésbé biztos szabályoknál figyelhető meg. Másrészt feltesszük, hogy a megtanított KBANN-nél majdnem minden egység vagy aktív, vagy inaktív (közel 1 vagy 0). Ez a feltevés megvalósítható, hiszen a standard 11+eσxMathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaamaalaaabaGaaGymaaqaaiaaigdacqGHRaWkcaWGLbWaaWbaaSqabeaacqGHsislcqaHdpWCcaWG4baaaaaaaaa@4040@ logisztikus aktivációs függvény paramétereinek változtatásával egységugrás függvényt tudunk közelíteni (minél nagyobb σ értéke, annál meredekebben vált át a szigmoid függvény az egyik telítési tartományból a másik telítési tartományba).

A két feltevés következménye, hogy egy szabályt ki lehet nyerni csupán a súlyok értékei alapján, megvizsgálva, milyen súlykombináció mellett igaz a szabály. Azaz a szabálykinyerő módszerek általános elve olyan súlycsoportok keresése, melyeknek az összege meghaladja az eltolás (bias) értékét. (Az eltolásértéket itt szokás küszöbértéknek is nevezni, ami természetesen adódik a működés jellegéből.)

A fenti elvek és feltevések jelentős mértékben csökkentik a keresési tér méretét. A továbbiakban egy specifikus szabálykinyerő módszerről lesz szó.

NofM módszer

Az NofM szabálykinyerő algoritmus az alábbi általános formájú szabályokat keres:

ha(N a következő M feltétel közül IGAZ) akkor ...,

Az NofM szabálykinyerő módszer lépései a következők:

1. Csoportosítás. Minden rejtett és kimeneti egység súlyait csoportosítsuk hasonló értékek szerint.

Mivel a tanulás során inkább laza súlyklaszterek keletkeznek, mint határozott ekvivalencia osztályok, ezért klaszterezésre van szükség. Több különböző klaszterező megoldást ismerünk.

Az egyik ilyen megoldás az egyesít (join) eljárás, ahol a klaszterek egyesítése, egyelemű klasszterektől kezdve történik. A leállás akkor következik be, ha nincs már két olyan klaszter, amely közelebb lenne, mint egy megadott küszöb-távolság. Ez a klaszterező eljárás O(n2)MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaad+eacaqGOaGaamOBamaaCaaaleqabaGaaGOmaaaakiaabMcaaaa@3D25@ számítási komplexitású, ahol n a súlyok száma.

A másik klaszterező eljárás a rendez (sort) eljárás. Ebben a súlyokat előzetesen rendezzük, majd a rendezett súlyokon egylépésben végigmegyünk. A sorbarendezett súlyokat egyenként elővesszük és az aktuális klaszterhez adjuk egészen addig, amíg vagy az új súly távolabb esik az aktuális klaszter középpontjától, mint egy megadott t távolság, vagy az új súly hozzáadása egy meglévő súlyt a megváltozott klaszter középponttól t távolságon kívülre helyez. Szinte kizárólag a rendez eljárást alkalmazzák, mivel ennek számítási komplexitása csak O(nlog(n))MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaad+eadaqadaqaaiaad6gacaqGSbGaae4BaiaabEgadaqadaqaaiaad6gaaiaawIcacaGLPaaaaiaawIcacaGLPaaaaaa@41AB@ .

2. Súlyok átlagolása. A csoport súlyértékeinek átírása a súlyok átlagértékére.

3. Bemeneti klaszterek elhagyása. Azon csoportok kizárása, amelyek nem befolyásolják, hogy az egység aktív, vagy inaktív lesz.

Az elimináció célja a befolyással nem bíró klaszterek megkeresése. Ehhez minden klaszter totális aktivációját kell kiszámítanunk, majd egy összehasonlításos elemzést kell végezni a többi súlyértékkel. A vizsgált klaszter eliminálható, ha a totális értékét hiába adjuk hozzá egyetlen másik szabálycsoport súlyösszegéhez, az nem haladja meg a szükséges küszöbértéket. Jó példa az eliminációra a 12.7 ábra. Látható, hogy a teljes C klaszter szumma aktivációja (10*0,1=1) nem befolyásolja az egység aktív vagy inaktív voltát.

12.7. ábra - Példa az eliminációra.
Példa az eliminációra.

4. Eltolásérték újratanítása. Az eltolásértékek optimalizálása a hibavisszaterjesztéses algoritmussal úgy, hogy közben a többi súly értékét nem változtatjuk.

Erre a lépésre azért van szükség, mert a szükségtelen bemenetek törlése és a súlyok átlagolása megváltoztathatja az egység aktivációját. Ennek eredményeképpen egy KBANN háló hiba aránya szignifikánsan nagyobb lehet az NofM 3. lépése után, mint az eredeti tanított formájában.

5. Szabály képezés. Ebben a lépésben minden rejtett és kimeneti egységhez külön szabályt rendelünk, azaz „leírjuk” a hálóban található szabályokat. A szabály akkor lesz igaz, ha a súlyozott igaz bemenetek összege meghaladja az adott neuron eltolásértékét.

6. Szabály egyszerűsítés. Ha lehetséges, egyszerűsítsük a szabályokat az eltolásértékek és súlyok eliminálásával. Az egyszerűsítés során megállapítjuk a csoportok lehetséges kombinációit, melyek meghaladják a szabály küszöbértékét, a biast. Ez a lépés gyakran több szabályt eredményez. Tehát a kezdeti bonyolult szabály helyett több egyszerűbb szabályt alkotunk, így az egyedi szabály komplexitását a szabályhalmazból eredő komplexitással váltjuk fel.

Példaként nézzük a következő szabály egyszerűsítését:

  • Z : − 18<9,1*AktívElemekSzáma{A,B,C,D}

  • +7,5* AktívElemekSzáma {E,F,G}

ahol az AktívElemekSzáma függvény azt adja vissza, hogy az argumentumában szereplő feltételek közül hány vesz fel igaz értéket.

Az egyszerűsítés eredményeképp a következő három szabály fogalmazható meg:

  • Z : − 2 az {A,B,C,D} közül

  • Z : − 1 az {A,B,C,D} közül és 2 az {E,F,G} közül

  • Z : − E,F,G

A 12.8 ábra az NofM eljárás lépéseit mutatja egy egyszerű példán keresztül. A kiindulás egyetlen neuron hét bemenettel. Az eljárás olyan szabályt eredményezett, amely szerint a következmény igaz, ha három feltétel közül kettő igaz.

12.8. ábra - Példa az NofM működésére egyszerűsítéssel
Példa az NofM működésére egyszerűsítéssel

12.3.6. Új csomópontok dinamikus hozzáadása a KBANN hálóhoz: TopGen algoritmus

A KBANN konstrukciójának eddig bemutatott lépései alapvetően a kiinduló szabályok háló architektúrára való konvertálására és az így kapott hálónak a tanítómintákkal történő tanítására vonatkoztak. A konstrukció lépései között volt azonban két olyan lépés – a 4. és az 5. lépés –, melyek a kiinduló háló strukturális módosítását tették lehetővé rejtett neuronok illetve újabb bemenetek beiktatása révén. Újabb bemenetek beiktatása a priori ismeret alapján lehetséges, illetve annak alapján, hogy a tanító adatok olyan új bemeneti komponens(ek)re is vonatkoznak, mely(ek) az eredeti szabályokban nem szerepel(nek). A rejtett elemek közbeiktatása azonban további megfontolásokat igényel. A következőkben egy olyan eljárást ismertetünk, mely a strukturális módosításoknak egy lehetséges módját adja meg.

A strukturális módosítás célja, hogy új szabályok megfogalmazása lehetségessé váljon. Erre különösen akkor van szükség, ha a kiinduló domén elmélet nem teljes, a kiinduló szabályok a tárgytartományra vonatkozó szükséges ismereteknek csak egy részét reprezentálják. A KBANN-nel szerzett tapasztalatok szerint az általánosítóképesség nagymértékben csökken, ha a konstrukció nem „teljes” domén elméleten alapul, azaz hiányoznak szabályok vagy tények a tanult domén elméletből [Tow91]. Ugyanakkor, ha egy „teljes” domén elméletet bővítünk további szabályok hozzáadásával a KBANN hatékonyan kiszűri ezeket a feladathoz nem illő szabályokat.

A TopGen algoritmus több lépésből áll, melyek legfőbb célja a domén elméletre illetve a tanítómintákra legjobban illeszkedő háló megkeresése. A TopGen ehhez felderíti azokat a csomópontokat, amelyek a hibás kimenetekhez vezetnek és ezen csomópontok „javításával” és a háló újratanításával iterál a legjobb megoldáshoz.

A TopGen algoritmus lépései:

  1. Válasszuk szét a rendelkezésre álló mintahalmazt tanító halmazra és két kiértékelő halmazra. Legyen a két kiértékelő halmaz: validációs-halmaz-1 és validációs-halmaz-2.

  2. Tanítsuk meg a kezdeti KBANN hálót az eddig ismertetett módon és a megtanított hálót tegyük egy HÁLÓK nevű listára.

  3. A megállási feltétel (hiba egy adott küszöb alá esik a validációs halmazon, vagy elértünk egy időkorlátot) eléréséig:

válasszuk ki és töröljük a HÁLÓK listáról a validációs-halmaz-2 szerinti legjobb hálót,

a kiválasztott hálón alkalmazzuk a CsomópontÉrtékelő eljárást, hogy meghatározzunk N olyan csomópontot, ahol a leginkább szükség volna a topológia bővítésére,

készítsük el az N módosított hálót, mindegyiket tanítsuk újra és adjuk a hálókat a HÁLÓK listához,

rendezzük sorba a HÁLÓK listát a validációs-halmaz-2-n értékelt teljesítményük alapján.

a HÁLÓK listán csak az M legjobban teljesítő hálót tartsuk meg, a többit töröljük.

Válasszuk ki a HÁLÓK listáról a validációs-halmaz-2 szerinti legjobb hálót.

A CsomópontÉrtékelő eljárás alkalmazásának célja, hogy kiválogassuk azokat a csomópontokat (neuronokat), melyek módosításával a teljes hálónak a validációs-halmaz-1-re adott válaszai javíthatók. Olyan csomópontokat keresünk, ahol a módosítás hatására a javulás a lehető legnagyobb mértékű. A CsomópontÉrtékelő eljárás alkalmazása alatt a neuronok aktivációs függvényét ideiglenesen az ugrásfüggvényre cseréljük. Ez a lépés azt biztosítja, hogy egy neuron válasza mindenképpen vagy 0 vagy 1 legyen.

A CsomópontÉrtékelő eljáráshoz definiálnunk kell, hogy mit nevezünk egy adott csomópont szempontjából javítható esetnek. Egy eset javítható, ha a háló adott mintára hibás választ ad, de az adott csomópont válaszát ellenkezőjére változtatva a háló válasza helyes lesz. A javítható hibákon belül eltérő módon javítható a hiba, ha tévesen-pozitív illetve tévesen-negatív esetről van szó. Az alábbi eljárásban ezért a javítható hibák két típusát külön-külön számba kell venni.

A CsomópontÉrtékelő eljárás a következő lépésekből áll:

  1. Értékeljünk minden egyes csomópontot a következők szerint.

    • rendeljünk minden csomóponthoz két számlálót, melyek a javítható-tévesen-pozitív (false positive, FP) és a javítható-tévesen-negatív (false negative, FN) eseteket számlálják. Állítsuk a számlálók kezdeti értékeit nullára.

    • menjünk végig egy, a validációs-halmaz-1-be tartozó rosszul osztályozott mintapont esetén a háló összes csomópontján, és vizsgáljuk meg, hogy megváltoztatva egy konkrét csomópont kimenetét (0-ról 1-re vagy fordítva), a módosított háló már helyesen osztályozza-e az adott példát. Amennyiben igen, akkor az adott csomópont megfelelő számlálóját inkrementáljuk.

    • rendezzük sorba a javítandó csomópontokat a számlálók csökkenő értékei szerint.

  2. Válasszunk ki egy csomópontot a sorbarendezett csomópontok közül és módosítsuk a csomópontot úgy, hogy a válasza az adott mintánál ellenkezőjére változzon.

A módosítás többféleképpen elvégezhető: lehetséges a csomópont bővítésével, illetve a csomópont egyszerűsítésével. A csomópont egyszerűsítése a standard tanító eljárás következtében is bekövetkezhet (például egy súly a tanítás hatására nullává válik), bővítés viszont csak strukturális kiegészítéssel lehetséges. Ezért az eljárás csak a bővítésre ad megoldást. A szükséges módosítás függ attól, hogy a csomópont konjunktív (ÉS) vagy diszjunktív (VAGY) kapcsolatot valósított-e meg. Ennek megfelelően 4 lehetséges esetet kell megkülönböztetnünk.

A csomópont korrekcióhoz javasolt bővítés 4 alapesetét a 12.9 ábra mutatja. Látható, hogy mindegyik esetben bővítésre kerül sor. Téves negatív esetek javítása új VAGY kapcsolati ág beiktatásával történhet. Ez VAGY kapcsolatot megvalósító csomópontnál a meglévő csomóponthoz egy újabb bemenet beiktatását igényli, míg ÉS kapcsolatnál egy új VAGY csomópontra van szükség, ami egyben egy új réteget is jelent. Téves pozitív esetek javításához az ÉS kapcsolatot megvalósító csomópontok bővíthetők új bemenettel, míg a VAGY kapcsolathoz egy új rétegben egy új ÉS csomópont beiktatása szükséges.

12.9. ábra - Példa a TopGen beszúrási algoritmusára
Példa a TopGen beszúrási algoritmusára

12.3.7. A KBANN háló topológiájának megváltoztatása genetikus módszerrel: REGENT

A KBANN kialakításánál jelentős szerepet kaphatnak a genetikus algoritmusok is. Minthogy a kiinduló hálót a priori szabályokból hozzuk létre, valójában minden egyes neuron egy szabálynak felel meg. A tanítással történő háló finomítása – amennyiben csak a háló súlyainak hangolását eredményezi – nem alkalmas újabb szabályok beépítésére. Ez csak úgy lehetséges, ha a háló struktúráját is módosítjuk, a hálót újabb neuronnal, neuronokkal bővítjük. Az előzőekben bemutatott TopGen eljárás a háló strukturális módosításán keresztül igyekszik a háló képességét javítani. A KBANN konstrukciójánál bevezetett REGENT (Refining with Genetic Evolution Network Topologies) algoritmus a struktúra módosítás egy újabb lehetőségét teremti meg [Opi97].

A REGENT algoritmus két fázisban dolgozik: egyrészt genetikus kereséssel végignézi a háló topológia terét, majd az egyes hálókat hibavisszaterjesztéses algoritmussal tanítja. A REGENT mindkét fázisban felhasználja a domén ismereteket. A domén ismeretek a topológia térben való keresést segítik, irányítják, a tanításnál pedig biztosítják, hogy jó kezdő súlyokkal induljon a hibavisszaterjesztéses algoritmus.

Az algoritmus első lépésként a rendelkezésre álló mintapontokat tanító és kiértékelő (validációs) mintakészletre bontja. A validációs készlet szerepe most is − mint minden neuronháló tanításnál − az egyes hálók teljesítőképességének, általánosítóképességének meghatározása.

A kezdeti neuronháló populáció egyedeit a kiinduló és a szabályokból létrehozott háló perturbációjával hozzuk létre. A REGENT eljárás a perturbáció során törölhet egyes neuronokat, illetve újabb neuronokat iktathat be. A neuronok törlése vagy beiktatása valójában a kiinduló háló alapját képező szabálykészlet módosítását jelenti.

A perturbációval előállított kiinduló populációra a szokásos genetikus operátorokat, vagyis a keresztezést és a mutációt alkalmazzuk. A keresztezés két kiinduló hálótopológiából (a szülőkből) két utód hálót hoz létre. Ehhez a kiinduló hálók rejtett neuronjait két csoportba osztja. Jelöljük ezeket AMathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadgeaaaa@39DA@ és BMathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadkeaaaa@39DB@ csoportnak. Így tehát létrejönnek A1MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadgeadaWgaaWcbaGaaGymaaqabaaaaa@3AC1@ , B1MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadkeadaWgaaWcbaGaaGymaaqabaaaaa@3AC2@ és A2MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadgeadaWgaaWcbaGaaGOmaaqabaaaaa@3AC2@ , B2MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadkeadaWgaaWcbaGaaGOmaaqabaaaaa@3AC3@ neuroncsoportok. A keresztezés eredményeképp létrejött utódok az A1A2MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadgeadaWgaaWcbaGaaGymaaqabaGccqGHsislcaWGbbWaaSbaaSqaaiaaikdaaeqaaaaa@3D66@ és a B1B2MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadkeadaWgaaWcbaGaaGymaaqabaGccqGHsislcaWGcbWaaSbaaSqaaiaaikdaaeqaaaaa@3D68@ neuronokat használják fel. Amennyiben több rejtett réteg van, a rejtett neuronok két csoportra bontása rétegenként történik a kimenethez közelebbi rétegtől indítva. A rejtett neuronok szétosztását az eljárás úgy végzi, hogy törekszik az erős kapcsolatban lévő neuronok együtt-tartására. Mivel ezek a neuronok egy szabály neuronhálós megfogalmazásai, ha két csoportba kerülnének, az általuk képviselt szabály semmisülne meg. A REGENT keresztezés operátora ezért lényegében szabályok keresztezését végzi.

Az utódháló összeköttetéseinek meghatározása az alábbiak szerint történik:

• egy utódháló örökli a wijMathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqkLspw0le9v8qqaqFD0xXdHaVhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfeaY=biLkVcLq=JHqpepeea0=as0Fb9pgeaYRXxe9vr0=vr0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaahEhadaWgaaWcbaGaamyAaiaadQgaaeqaaaaa@3C1D@ súlyt, ha a megfelelő (i-edik és j-edik) neuronok is öröklődnek, illetve ha ezek bemeneti vagy kimeneti neuronok,

• a nem bekötött neuronokat a szomszéd szinteken lévő neuronokhoz kötjük közel nulla értékű súlyokkal,

• beállítjuk a neuronok eltolás (bias) értékét, hogy az egyes neuronok által képviselt szabály által megvalósított eredeti logikai kapcsolat (ÉS illetve VAGY) megmaradjon.

A keresztezésre mutat példát a 12.10 ábra. Az ábrán a neuronok öröklődése követhető. A szaggatott vonalak a közel nulla súlyú kapcsolatokat reprezentálják.

A REGENT algoritmus során alkalmazott mutáció csak növelni tudja a hálót azáltal, hogy újabb neuront iktat be. Mivel minden újabb neuron beiktatása valójában egy újabb szabály beiktatását jelenti, a mutációval a szabálybázis bővítése érhető el. Annak oka, hogy a REGENT csak bővíteni képes a hálót az, hogy az eredeti KBANN tanítása alkalmatlan újabb szabályok beépítésére, miközben a tanítás eredményeképpen létrejöhet olyan háló (a súlyok olyan érték-eloszlása), mely egyes szabályok megszűnését eredményezi.

12.10. ábra - A REGENT eljárásnál alkalmazott keresztezés
A REGENT eljárásnál alkalmazott keresztezés

A REGENT algoritmussal működő KBANN hibrid rendszert számos különböző komplexitású feladatban alkalmazták. A feladatok egyike az emberi géntérkép elkészítésre irányuló Human Genome Project-hez kapcsolódott, ahol a DNS szekvenciákon belül gének helyét kellett megállapítani. A REGENT algoritmussal működő KBANN eredményét összevetették az egyszerű KBANN eredményével, illetve a klasszikus neuronhálós megoldással. Minden összehasonlításból a REGENT algoritmust alkalmazó megoldás került ki győztesen. A javulás a standard neuronhálós megoldáshoz képest mintegy 20-40% volt, és még a genetikus algoritmus nélküli KBANN-hez képest is 10-15% javulás volt tapasztalható.

A KBANN-nek számos további módosított illetve kibővített változatát dolgozták ki. A bővítés egyrészt a képességek, modellező erő kiterjesztését szolgálják, illetve a szabálykinyerés további lehetőségeit adják meg. A modellező erő kiterjesztését az ún. FS-KBANN rendszer [Mac95] biztosítja, ahol a tudásalapú háló nemcsak statikus leképezésre képes, hanem végesállapotú rendszer modellezésére is. Az FS-KBANN esetében a kiinduló domén elmélet sem egyszerű szabályok formájában, hanem procedurális ismeret formájában áll rendelkezésre, és a neuronháló sem egyszerű előrecsatolt MLP, hanem visszacsatolt háló. A szabálykinyerést döntési fák felhasználása segítségével oldja meg a TREPAN algoritmus [Cra96].

Bár a KBANN és változatai csak meglehetősen korlátozott formájú domén tudás felhasználását teszik lehetővé, jelentőségük, hogy mindezidáig talán a legsikeresebben oldották meg a különböző reprezentációjú ismeretek együttes felhasználását.