Bevezetés

A neurális hálózatok olyan, számítási feladatok megoldására létrejött párhuzamos feldolgozást végző, adaptív eszközök, melyek eredete a biológiai rendszerektől származtatható. Az idegrendszer tanulmányozása, az idegsejt (neuron) felépítésének, illetve működésének valamilyen szinten való megismerése indította el azt a gondolkodást, hogy kíséreljünk meg az élő szervezetekben létező, bonyolult rendszerek mintájára létrehozni számító rendszereket. A biológiai, "természetes" neurális hálózatoknál nagyszámú, hasonló vagy azonos felépítésű, egymással összeköttetésben lévő építőelemekből, idegsejtekből felépülő hálózatok a legkülönfélébb feladatok ellátására bizonyulnak alkalmasnak.

A természetes neurális hálózatok számos feladat megoldásánál nemcsak alkalmasnak, hanem alapvetően jobbnak is bizonyulnak, mint a hagyományos algoritmikus számítási rendszerek. Ilyen feladatok tipikusan a különféle felismerési problémák, kezdve a viszonylag egyszerű nyomtatott számok és karakterek felismerésétől a jóval bonyolultabb kézírás-, kép- és egyéb alakzatfelismerésekig. A felismerési feladatokat a "kellően összetett biológiai neurális hálózattal" rendelkező élőlények minták alapján tanulják meg. Egy arc felismerése az ember számára egy cseppet sem jelent megerőltető feladatot, annak ellenére, hogy nehéz megmondani milyen módon végezzük a felismerést, nehéz megnevezni azokat a jegyeket, melyek az adott arc egyértelmű vagy legalábbis nagy biztonságú felismerését lehetővé teszik, és ennek megfelelően nehéz olyan algoritmikus megoldást találni, amely hasonlóan sikeres e feladat megoldásában, mint az ember.

A biológiai neurális rendszerek nagymértékben párhuzamos felépítéssel és tanulási képességgel rendelkeznek; e két jellemzőjük következtében jelentősen különböznek a hagyományos számítástechnikai eszközöktől. Ráadásul bizonyos feladatokban − tipikusan azon feladatokban, melyekre hatékony algoritmikus megoldást eddig nem sikerült találni − jó eredmény elérését teszik lehetővé. Ezért vetődött fel olyan számítási rendszerek − "mesterséges" neurális hálózatok − létrehozásának lehetősége, amelyek a hagyományos algoritmikus eljárásokkal dolgozó eszközök helyett, a biológiai neurális hálózatokhoz hasonló felépítésűek és melyek tanulással nyerik el azt a képességüket, hogy bizonyos feladatokat meg tudnak oldani.

A felismerési feladatokon kívül sok egyéb olyan problémával találkozunk, ahol jelenleg nem ismert algoritmikus megoldás, vagy ha van is ilyen, az annyira bonyolult és/vagy olyan sok műveletet igényel, hogy reálisan elfogadható idő alatt a mai legnagyobb teljesítményű számítógépekkel sem oldható meg.

E feladatok egy részénél − ilyenek pl. komplex ipari, gazdasági vagy pénzügyi folyamatok időbeli viselkedésének előrejelzése − a megoldás nehézsége általában abból ered, hogy nem rendelkezünk azzal a tudással, amely az algoritmikus megoldáshoz szükséges lenne. Alapvetően kétféle tudásra lenne szükségünk: egyrészt a folyamatok mögött meghúzódó fizikai, közgazdasági, stb. törvényszerűségeket kellene ismernünk, másrészt a törvényszerűségek ismeretében is csak akkor tudnánk a feladatot megoldani, ha a folyamatokat létrehozó rendszerek pillanatnyi állapotát és e rendszerekre ható összes vagy legalább minden lényeges hatást, a környezeti feltételeket is ismernénk. A feladatokról ugyanakkor más formában − adatokban megtestesülve − rendelkezésünkre áll tudás, amelyet ha fel tudunk használni, a feladat valamilyen megoldásához eljuthatunk. Egy adott problémáról mindig véges számú adatunk lehet, továbbá az adatok által hordozott tudás sohasem teljes. Mégis a természetes neurális hálók képesek az adatokból nyert ismeretek általánosítására: olyan szituációkban is jó választ adnak, melyek az adatok között nem találhatók meg. Egyes mesterséges neurális hálók is rendelkeznek ezzel a képességgel. Ez azt jelenti, hogy hiányos, esetleg pontatlan ismereteket hordozó, legtöbbször zajos adatokból is kinyerhető általános tudás. Ez a tudás azonban a feladat "tökéletes" megoldását rendszerint nem teszi lehetővé, viszont "jó" megoldás elérését biztosítja.

A feladatok másik csoportjánál a megfelelő tudás birtokában vagyunk, sőt létezik is algoritmikus megoldás. A megoldás bonyolultsága, a megoldás eléréséhez szükséges számítások mennyisége azonban a feladat méretével exponenciálisan nő. Az ilyen NP-teljes feladatok esetében is sokszor megelégszünk egy "jó", tehát nem a legjobb megoldással, ha a számítási komplexitást sikerül a polinomiális komplexitási tartományba leszorítani. E csoportba tartoznak pl. a kombinatorikus optimalizálási feladatok. A természetes neuronhálókhoz hasonlóan bizonyos mesterséges neuronhálók is alkalmasak optimalizálási feladatok megoldására, ahol a megoldás optimalitása általában nem garantálható, de az optimálishoz közeli megoldás elérésének a valószínűsége nagy.

A természetes neuronhálóknak van még számos olyan tulajdonsága, melyek, ha megvalósíthatók a mesterséges neurális hálózatokban is, a gyakorlati alkalmazások körét jelentősen bővítik. Ezek közül az egyik legfontosabb a párhuzamos felépítés és működés. A neurális architektúrák nagymértékű párhuzamossága a nagysebességű működés egyik biztosítéka. A nagyfokú párhuzamosság − ami többnyire redundanciával is párosul − robusztus működést, egyfajta hibatűrő képességet is biztosít a neurális rendszereknek. Közismert, hogy ha valami, pl. baleset vagy betegség folytán az emberi agy egyes területei megsérülnek, ez nem feltétlenül jelenti bizonyos képességek elvesztését. Sőt, az előbb említett sérülés olyan súlyos is lehet, hogy egyes agyterületek elvesztik működőképességüket, bizonyos funkciók nem működnek. Mégis idővel ezek a funkciók helyreállhatnak, más agyterületek átveszik a sérült részek feladatait. Ugyancsak fontos tulajdonság az adaptációs képesség, a változó környezethez való alkalmazkodás képessége.

A mesterséges neurális hálózatok párhuzamos hardver megvalósítása olyan működési sebesség elérését teheti lehetővé, hogy egyes alkalmazásokban a neurális megoldás már csak ezért is egyedülálló. Bizonyos feladatoknál a neurális megoldás nagymértékben párhuzamos működése miatt az algoritmikus megoldás neurális architektúrával történő implementációját érdemes alkalmazni. A hálók egy részére a redundáns struktúra jellemző, így a robusztus működés, a háló egyes részeinek hibája esetén a fokozatos és nem ugrásszerű működésbeli degradáció a mesterséges neuronhálóknál is megtalálható. A folyamatos tanulás képessége pedig a környezet változásaihoz való alkalmazkodást is lehetővé teszi.

A neurális hálózatok tehát alkalmasak lehetnek olyan feladatok megoldására, amelyek a hagyományos algoritmikus megközelítéssel nem vagy nehezen oldhatók meg, de amelyeket még az ún. klasszikus mesterséges intelligencia módszereivel (pl. szabályalapú rendszerek) sem sikerül kielégítően megoldani.

Az alapgondolat, hogy a természetes neurális hálók mintájára hozzunk létre mesterséges számító rendszereket meglehetősen régi. A kezdeti lökést természetesen az idegsejttel kapcsolatos kutatási eredmények adták, elsősorban Warren McCulloch és Walter Pitts neuron modellje [McC43], majd Donald Hebb tanulással kapcsolatos eredményei [Heb49]. Jónéhány évnek el kellett azonban telnie addig, amíg az első mesterséges neuron és az ebből, mint alapegységből felépülő mesterséges neurális hálózat megjelent. Az egyszerű neuron modell valójában nem más, mint egy többdimenziós bemenet komponenseinek súlyozott összegét meghatározó, tehát lineáris kombinációt megvalósító hálózat, amelyet egy nemlineáris leképezés követ. A modell érdekessége elsősorban nem is a felépítésében, hanem abban az eljárásban keresendő, amely biztosítja, hogy egy neuron valamilyen kívánt működést mutasson. A kívánt működés − amely összerendelt be- és kimeneti értékekkel specifikálható − megfelelő konvergens iteratív eljárással, tanuló eljárással érhető el. A tanulás itt egyszerűen azt jelenti, hogy a kívánt működést reprezentáló, összetartozó be- és kimeneti értékek alapján a hálózat maga alakítja ki a megfelelő átvitelét, illetve a hálózat bemenetére kerülő adatokban önmaga próbál valamilyen hasonlóságot felfedni. Ezen egyszerű, tanulásra képes modell alapján hozta létre Frank Rosenblatt a Perceptront [Ros58], amely már egyszerű osztályozási feladatok megoldására megtanítható volt. Rosenblatt első eredményeit hamarosan követte a Bernard Widrow és munkatársai által definiált Adaline és a hozzá kapcsolódó Widrow-Hoff tanulási algoritmus [Wid60], ill. az egyedi "neuront", processzáló elemet hamarosan kiterjesztették neuronokból felépülő hálózatokká, lehetővé téve komplexebb feladatok megoldását.

A neurális hálózatok (neurális hálók, neuronhálók) kezdeti, igen ígéretesnek mutatkozó fejlődése azonban hamarosan megtorpant, amikor Marvin Minsky és Seymour Papert kimutatták Perceptrons című könyvükben [Min69], hogy a perceptron valójában csak lineárisan szeparálható osztályozási feladatok megoldására képes, ami a megoldandó feladatoknak csak egy nagyon kis köre. Ez azt jelenti, hogy egy perceptron még egy olyan egyszerű feladatot sem képes megtanulni, mint két bináris változó kizáró VAGY (XOR) kapcsolata. Bár Minsky könyvében megmutatta, hogy ha az egyszerű processzáló elemeket rétegekbe rendezzük és többrétegű hálózatot hozunk létre, akkor a hálózat nemlineáris szeparálásra is képes, azonban akkor nem találták meg azt az algoritmust, amely egy többrétegű hálózat be- és kimeneti mintapárok alapján történő tanítására alkalmas lett volna (sőt Minsky annak a sejtésének adott hangot, hogy ilyen algoritmust nem is lehet létrehozni). A hálózatnak e hiányossága (és a kritikus megfelelő tekintélye: Marvin Minsky az MIT professzora volt) azt eredményezte, hogy az e területre irányuló érdeklődés jelentősen csökkent, csaknem megszűnt; a terület kutatásával majdnem teljesen felhagytak.

Mintegy húsz évet kellett várni ahhoz, hogy ismét megélénküljön a neurális hálózatok iránti érdeklődés. Az élénkülést az váltotta ki, hogy − az általános tendenciák ellenére − néhányan mégiscsak folyatták a hálókkal kapcsolatos kutatásaikat és olyan eredményeket értek el, amelyek ismét ráirányították a szakmai közvélemény figyelmét a neurális hálózatokra. Az érdeklődés felkeltésében a legfontosabb esemény talán az ún. Hopfield-háló publikálása volt [Hop82], amely bemutatta, hogy egy viszonylag egyszerű hálózat hogyan képes optimalizálási feladatok − köztük NP-teljes feladatok − megoldására. További jelentős eredmény volt az ún. hibavisszaterjesztéses (back-propagation) algoritmus "felfedezése", amely hatékonynak bizonyult a többrétegű hálózatok tanításánál‚ s amely cáfolatát adta Minsky sejtésének. Az algoritmust 1986-ban publikálta a David Rumelhart, Geoffrey Hinton, Ronald Williams szerzőhármas [Rum86] és egyben be is mutatták az algoritmus hatékonyságát. Később kiderült, hogy ugyanezt az algoritmust már többször is megkonstruálták, de különböző okok folytán akkor nem váltott ki komolyabb érdeklődést [Bry69], [Wer74].

A nyolcvanas évek második fele óta a neurális hálózatok kutatása reneszánszát éli. A megélénkült kutatások következtében egyre növekvő számban jelentek meg és jelennek meg a témakör különböző elméleti és gyakorlati kérdéseivel foglalkozó cikkek, könyvek; évente egyre több konferencia kerül megrendezésre a neurális hálózatok témakörben. A nagy érdeklődésnek káros hatásai is megmutatkoznak. A neurális hálózatokat időnként úgy állítják be, mint bármilyen feladatra alkalmazható univerzális eszközöket, és olyan esetekben is alkalmazzák, vagy javasolják alkalmazni, amikor más, hagyományos eljárások hasznosabbnak bizonyulnak. Az alkalmazási területek között vannak valóban olyanok, ahol a neurális hálózatoknak komoly előnyeik vannak. Ezek elsősorban olyan területek, ahol más, algoritmikus megoldás eddig nemigen vezetett eredményre vagy azért, mert eddig nem sikerült ilyen algoritmikus megoldást találni, vagy azért, mert ezen megoldások túl bonyolultaknak bizonyultak, s így mindenképpen indokolt más, egyszerűbb, gyorsabb, könnyebben megvalósítható megoldások keresése. Ilyen feladatoknak tekinthetők a már említett különböző felismerési problémák, vagy a különböző optimalizálási feladatok. Hasonlóan fontos alkalmazási terület a nemlineáris rendszerek vizsgálata, identifikációja, irányítása, ahol − eltérően a lineáris rendszerektől − nem alakult még ki olyan matematikailag megalapozott elmélet, amely biztosítaná az algoritmikus megoldások fölényét.

A neurális hálózatok tudománya egy fejlődésben lévő tudomány. Az újabban megélénkült kutatások eredményeképpen most már nemcsak azt sikerült bemutatni, hogy a neurális hálózatok komplex feladatok megoldásában igen hasznosnak bizonyulnak, hanem az ehhez szükséges elméleti alapokat − vagy legalábbis számos elméleti alaperedményt − is sikerült kidolgozni. Bizonyított tény pl., hogy megfelelő felépítésű neurális hálózatok képesek csaknem tetszőleges nemlineáris leképezések tetszőleges pontosságú approximációjára, vagyis, hogy a neurális hálózat univerzális approximátornak tekinthető. E képességük révén a hálózatok alkalmasak nemlineáris (statikus vagy dinamikus) rendszerek modellezésére. Ugyancsak bizonyítható, hogy megfelelő tanulási algoritmussal, adott felépítésű hálózat alkalmassá tehető adatokban meglévő hasonlóságok felismerésére, az adatokban rejtve meglévő ismeretek kinyerésére, tehát egyfajta adatbányászati eszköznek is tekinthető. Az approximációs képesség megfelelően interpretált feladat esetén osztályozási képességet is jelent, egyes hálók ezért univerzális osztályozók is. A neurális hálózatokhoz kapcsolódó kutatások számos, a tanulással kapcsolatos eredményre is vezettek, ezért nagyban hozzájárultak a gépi tanulás fejlődéséhez. Az elméleti eredmények elsősorban a hálózatok működésének megértésében segítenek, tisztázzák a hálózatok korlátait, lehetőségeit, új hálóarchitektúrák kialakítását teszik lehetővé, és nagymértékben segítik a gyakorlati felhasználást.

A neurális hálózatok kutatása számos ponton kapcsolódik az egyéb, lineáris és nemlineáris rendszerekkel foglalkozó kutatásokhoz. Így különösen sok kapcsolódási pont található a neurális hálózatok és az adaptív rendszerek között − lévén, hogy a neurális hálózatok is egyfajta adaptív működést valósítanak meg. Hasonlóan erős a kapcsolat a neurális információfeldolgozás és a parallel feldolgozás között, hiszen mint láttuk, a neurális hálók maguk is elosztott párhuzamos számító rendszerek. És az is természetes, hogy a neurális hálózatok kutatása kezdetektől fogva mindvégig szoros kapcsolatban áll bizonyos biológiai kutatásokkal, elsősorban az idegrendszeri- és agykutatásokkal, hiszen a mesterséges neurális hálók számos eredménye biológiai kutatásokon, megfigyeléseken alapul.

Az elmúlt években megszületett, matematikailag megalapozott eredmények ellenére számos megválaszolatlan kérdés maradt, ezért a hálózatokkal kapcsolatos feladatmegoldásokban heurisztikus elemekkel, tapasztalatokból levont következtetések alkalmazásával is találkozunk. Az intenzív kutatás következtében azonban várható, hogy egyre több kérdésre születik egzakt válasz, lehetővé téve így, hogy egyre pontosabban meghatározzuk azon feladatok körét, ahol lehet és érdemes is neurális hálózatokat alkalmazni.