Előszó
Mintegy 50 éve, jórészt biológiai kutatások eredményeképpen merült fel az a gondolat, hogy a természetes, "biológiai" neurális hálózatokmintájára is létrehozhatók számító rendszerek. Az alapgondolat térnyerése azonban csak az utóbbi, mintegy 20-25 évben következett be. Egy "új" számítási paradigma, a neurális számítástechnika (neural computing) jelent meg, amely a természetes (biológiai) neurális rendszerek felépítése és működési mechanizmusa mintájára hoz létre számító rendszereket. Olyan rendszereket, melyek a természetből ellesett módon mintákból, példákból nyert tapasztalatok felhasználásával, tanulás útján alakítják ki feladatmegoldó képességüket. E "mesterséges" neurális rendszerek felépítésükben is hasonlóságot mutatnak a biológiai neurális rendszerekkel; sok, egymással nagymértékben összekötött elemi műveletvégző egységből állnak, melyek párhuzamos működésük révén bonyolult feladatok igen gyors megoldására is képesek lehetnek.
A neurális számítástechnika mára önálló tudománnyá vált, amely szilárd elméleti alapokkal, egyre szélesebb alkalmazási körrel és egyre több alkalmazási tapasztalattal rendelkezik.
Ez a könyv azzal a céllal született, hogy áttekintést adjon a neurális hálózatokkal kapcsolatos legfontosabb elméleti és gyakorlati eredményekről. A könyv figyelembe veszi az elmúlt néhány év során megszületett új eredményeket is, amelyek jelentősen megváltoztatták, új megvilágításba helyezték az egész "neurális számítástechnikát" és általában az adatokból való tanulást. A könyv ugyanakkor nem törekedhet teljességre, sőt még csak nem is fedi le a neurális számítástechnika minden fontos területét. A neurális hálózatokkal foglalkozó irodalom és az eddigi eredmények olyan széleskörűek, hogy a témakör jelenlegi szintjének teljes áttekintése messze meghaladná egy korlátozott terjedelemű könyv lehetőségeit. A könyv ezért nem „egyenszilárdságú”. Egyes témák talán a fontosságuknál is bővebben szerepelnek, míg más területek a szükségesnél is kisebb terjedelemben jelennek meg, sőt sok részterülettel egyáltalán nem foglalkozunk. Az ismertetett témakörök kiválasztásába jelentősen közrejátszott a szerzői kollektíva szemlélete is, tehát a témakörök kiválasztása bizonyos szubjektív elemeket is tartalmaz. Azon elméleti eredmények és hálózatok bemutatására törekszünk, amelyek a méréstechnikai, szabályozástechnikai és jelfeldolgozási feladatokhoz jobban illeszkednek, és amelyekhez kapcsolódóan a könyv szerzőinek önálló eredményei is vannak.
A könyv a neurális hálózatok biológiai vonatkozásait nem emeli ki. Ugyan megemlíti, hogy egyes hálózatok kialakulásában a biológiai, tehát a nem mesterséges, hanem a természetes neurális hálózatok jelentős szerepet játszottak, alapjában a hálózatok a könyvben, mint bizonyos operációk elvégzésére alkalmas rendszerek jelennek meg, amelyek eredetüktől függetlenül vizsgálhatók és alkalmazhatók.
A könyv alapját egy előadássorozat és egy csaknem egy évtizede készült tankönyv [Hor98] képezi. Ennek ellenére alapvetően új könyvről van szó. Az előadássorozat a BME Villamosmérnöki és Informatikai Kar különböző évfolyamos hallgatói részére az elmúlt években rendszeresen elhangzott. Az itt nyert tapasztalatok alapján az előző változattól mind szemléletében, mint felépítésében különböző, egyes fejezeteket tekintve jelentősen eltérő könyv megírását tűztük ki célul.
A nemzetközi irodalomban ma már található jónéhány olyan könyv, melyek jóval nagyobb terjedelemben foglakoznak a neurális számítástechnikával. A teljes témakör bemutatására azonban ezek a könyvek sem vállalkoznak. Az utóbbi években szinte folyamatosan jelentek meg újabb és újabb könyvek, melyek megpróbálják követni a gyors fejlődést, a legújabb eredmények azonban csak folyóirat- és konferencia-publikációkban találhatók meg. A könyvek szemlélete, a témakörök feldolgozásának mélysége, vagy a feldolgozott témakörök szerteágazósága több-kevesebb mértékben különbözik jelen könyvétől. A neurális szakirodalom talán első és máig is egyik legjobb összefoglaló műve a John Hertz, Anders Krogh és Richard Palmer szerzői kollektíva könyve [Her91]. Az összefoglaló, viszonylag széles spektrumot átfogó könyvek között elsősorban Simon Haykin könyvét kell megemlíteni, melynek a második, jelentősen bővített és módosított kiadása 1999-ben jelent meg [Hay99]. E mellett fontos utalni a Mohamad Hassoun és a Chistopher Bishop által jegyzett, 1995-ben megjelent könyvekre. Hassoun könyve szemléletében rokon Haykin könyvével, bár a hangsúlyok máshol vannak. A teljes spektrumból valamivel kisebb területet mutat be, viszont sok esetben ezt részletesebben teszi. Teljesen más szemléletű Bishop könyve [Bis95], mely talán jobban bemutatja, hogy a neurális számítástechnika milyen sok ponton kapcsolódik a mérnöki problémamegoldás és a matematika más témaköreihez. A gyors fejlődést és az egyes szakterületek összekapcsolásának igényét jelzi a közelmúltban megjelent néhány újabb könyv is, melyek a neuronhálókat az intelligens információfeldolgozás egyéb eszközei között helyezik el, bemutatva a közöttük lévő kapcsolatokat is ld. pl. [Bish06], [Has09].
Számos, a neuronhálókhoz szorosabban vagy lazábban kapcsolódó, fontos témakör a felsorolt könyvekben nem vagy csupán érintőlegesen jelenik meg. Ezen témakörök között kell megemlíteni a szupport vektor gépeket és általában a kernel gépeket, valamint az ezen hálózatok elvi megalapozásához is hozzájáruló statisztikus tanuláselméletet [Vap95], [Vap98]. E témakörökről az első áttekintő, mérnöki szemléletű összefoglaló művek angolul is csak 2000 után jelentek meg [Cri00], [Sch02], [Suy02], magyar nyelven pedig még semmilyen átfogó könyv nem született. A könyv ezért jelentős részben e témakörökkel is foglakozik.
A könyv 13 fejezetből áll. A Bevezetés a mesterséges neurális hálók legfontosabb jellemzőit, a neurális számítástechnika kialakulásának, a neurális hálózatok fejlődésének néhány fontosabb állomását veszi sorra.
Az 1. fejezet a neurális hálózatokkal kapcsolatos alapfogalmakat, a hálózatok alapelemeinek, a processzáló elemeknek és az alapvető hálózatstruktúráknak a felépítését igyekszik bemutatni. Ugyancsak ez a fejezet ad áttekintést egyes, a későbbiek szempontjából fontos matematikai eredményekről: ez a fejezet foglalja össze a hálózatok approximációs képességeinek matematikai alapjait. Az elméleti eredményeket összefoglaló részek nem törekszenek matematikai precizitásra; bár néhány tételt megfogalmazunk, ezek bizonyítását sehol sem közöljük. Ennek legfőbb oka, hogy a könyv a témakör mérnöki szemléletű bemutatását tűzi ki célul. Ugyancsak ezt a megközelítést támasztja alá, hogy a matematikai bizonyítások jelentős része nem konstruktív, tehát a probléma jobb megértését általában nem segítik elő. Ugyanakkor a tételek megléte fontos, hiszen ezek biztosítják a témakör szilárd, egzakt hátterét.
A 2. fejezet a gépi tanulással, mint a neuronhálók kialakításának egyik legfontosabb módjával foglalkozik. A fejezet bemutatja a gépi tanulás elvi alapjait, a legfontosabb elméleti eredményeket és azokat az általános tanulási eljárásokat, melyek a különböző neuronhálóknál alkalmazhatók. A fejezet a gépi tanuláshoz kapcsolódó általános eredményeket tekinti át, a konkrét tanulási eljárások bemutatására az egyes neuronhálók ismertetésénél kerül sor.
A 3. fejezet az elemi neuron különböző kialakításaival és azok tanításával foglakozik. Bemutatja azt is, hogy az elemi neuronok milyen képességekkel és korlátokkal rendelkeznek.
A 4. fejezet az egyik leggyakrabban alkalmazott neuronháló, a többrétegű perceptron (MLP) felépítését, működését és tanítását tárgyalja. Bemutatja az MLP képességét is: ez teszi lehetővé, hogy az MLP a feladatok igen széles körében sikerrel alkalmazható.
Az 5. fejezet a bázisfüggvényes hálózatokkal, ezen belül is elsősorban a Radiális Bázisfüggvényes (RBF) hálózattal és a CMAC hálózattal foglalkozik. Részletesen elemzi e két hálótípus képességbeli korlátait, valamint azokat az előnyöket, amelyek a bázisfüggvényes felépítésből következnek.
A 6. fejezet az elmúlt mintegy 10 évben kifejlesztett, és mind elméleti, mind gyakorlati szempontból kiemelten fontos területtel, a szupport vektor gépekkel foglalkozik. A szupport vektor gépek – miközben számos ponton kapcsolódnak a "klasszikus" neuronhálókhoz – új szemléletet hoztak a tanuló gépek témakörbe. Ennek a megközelítésnek az alapján olyan kérdésekre is válasz adható, amelyekre a klasszikus neurális megközelítés mellett nem kaphatunk választ.
A 7. fejezet az előrecsatolt, statikus hálók néhány alkalmazási területét mutatja be, konkrét példákat is megadva.
A 8. fejezet a dinamikus hálókkal kapcsolatos eredményeket foglalja össze. A fejezetek végén néhány fontos vagy érdekes alkalmazási területet is megemlítünk. Egyes alkalmazási példák részletesebben is bemutatásra kerülnek.
A 9. fejezet a moduláris hálók témakörrel foglakozik. A fejezet alapgondolata, hogy komplex feladatok megoldása általában csak összetett rendszerekkel lehetséges, ahol az egyes részrendszerek egymással vagy versengenek vagy együttműködnek. Egyes esetekben a kétfajta működés együttesen is megjelenhet. Bár a moduláris hálóknak nagyon sokféle változatát dolgozták ki, itt csak néhánynak a bemutatására vállalkozunk. Ezek között is a legfontosabbnak az ún. szakértőegyüttes (Mixture of Experts, MOE) architektúrát tekintjük, mivel ez önmagában is érdekes elvi megállapításokon alapul. Hasonlóan fontos témakör a moduláris hálók olyan konstrukciója, ahol a tanítópontok egyféle válogatása is szerepet játszik a moduláris architektúra kialakításában. Az ún. boosting algoritmusok, valamint az erős és gyenge tanulással kapcsolatos eredmények a neuronhálók témakörén messze túlmutató jelentőségűek.
A 10. fejezet a nemellenőrzött tanítású hálókkal foglalkozik. Bemutatja a klasszikus eredményeket (pl. Kohonen hálók), de röviden tárgyalja a legújabb kernel PCA és ICA hálózatokat is, kiemelve ezen eljárások fontos gyakorlati alkalmazási lehetőségeit.
A 11. fejezet az ún. analitikus tanítású hálókkal foglalkozik. Ennek a résznek a súlya a könyvben minden bizonnyal kisebb a jelentőségénél. Indoklásként az hozható fel, hogy ezek a hálók kisebb szerepet játszanak a méréstechnikai, jelfeldolgozási alkalmazásoknál.
A neuronhálók meglehetősen univerzális feladatmegoldó eszközök. Összetett, bonyolult gyakorlati problémák megoldásában azonban legtöbbször önmagukban nem alkalmazhatók, inkább csak részfeladatok megoldásában jelentenek nagy segítséget. Általában elmondható, hogy egy komplex feladat megoldása az esetek döntő többségében különböző megközelítések együttes alkalmazásával lesz sikeres. Az utóbbi évtizedben ezért egyre inkább megfigyelhető az a tendencia, amely a különböző eszközök ötvözésére törekszik. A neurális számító eszközöket ezért előszeretettel alkalmazzák együtt más "szoft" számítási megközelítésekkel, a hagyományos mesterséges intelligencia eszközeivel, de a hagyományos algoritmikus megoldásokkal is. Az ilyen hibrid módszerek keresése és alkalmazása jelentheti a továbblépés egyik irányát. A 12. fejezet a hibrid-neurális rendszerekkel és ezek néhány konkrét megvalósítási lehetőségével foglalkozik röviden.
A 13. fejezet a neuronhálók néhány, a gyakorlati alkalmazások szempontjából fontos kérdését foglalja össze. Ezekkel a kérdésekkel szinte minden gyakorlati feladat megoldásánál találkozunk. Fontosságukat az indokolja, hogy e kérdések vizsgálata, az itt bemutatott problémákkal való foglalkozás nélkül a neuronhálók gyakorlati feladatokra való alkalmazása esetenként nagyon nehéz, sokszor sikertelen lesz.
A könyvet egy rövid kitekintés, egy Függelék, egy viszonylag sok tételes irodalomlista és egy rövid szótár zárja. A Függelék azokat a legfontosabb matematikai alapismereteket foglalja össze, melyek ismerete az egyes fejezetek megértéséhez feltétlenül szükséges. Az irodalomlista célja, hogy segítse mindazokat, akik a neurális hálózatokkal mélyebben szeretnének megismerkedni, a szótárban pedig a legfontosabb neurális hálózatokhoz kapcsolódó kifejezéseket (angolul és magyarul) gyűjtjük össze. A szótár kapcsán meg kell jegyeznünk, hogy a neurális számítástechnika számos szakkifejezésének máig nincs magyar megfelelője. A könyvben sem törekedtünk a mindenáron való „magyarításra”. Csak azoknál a kifejezéseknél, fogalmaknál használtunk magyar elnevezéseket, ahol ezeket a szakma többé-kevésbé már elfogadta, illetve ahol a magyar elnevezés nem tűnik nagyon erőltetettnek.
A könyv szándékaink ellenére nyilván számos hibát tartalmaz. Reméljük, hogy az olvasók ezen hibákat észrevéve hozzásegítenek a kijavításukhoz.
A könyv elkészültét több pályázat is segítette, melyek közül ki kell emelni a T 046771 sz. OTKA kutatási projektet, ugyanis a könyvben szereplő egyes részek kidolgozása az említett OTKA projekt keretében valósult meg.
A könyv elektronikus változata egy TAMOP projekt (TÁMOP-4.1.2-08/2/A/KMR-2009-0026) keretében született meg. Az elektronikus változat alapvetően a 2006-os nyomtatott kiadás megfelelője. Néhány különbség azonban található a kétféle verzió között. Egyrészt az elektronikus verzióban a nyomtatott verzió hibáit igyekeztünk kijavítani, másrészt egyes fejezeteknél az eredeti verzióhoz képest kisebb mértékben bővült a szöveg.
Budapest, 2011. január 15.
Horváth Gábor