Bevezetés
a mesterséges intelligencia alapjaiba |
Ez a
cikk egy a mesterséges intelligenciáról szóló sorozat első részének
készült, és, hogy ne vegyük el mindenkinek a kedvét a sok matematikával és
program részlettel - amikben azért később lesz részünk - kezdjük inkább
egy kis ízelítővel. Mint általában az ilyen cikksorozatoknál itt is
beszéljünk egy kicsit az előzményekről célokról,
lehetőségekről. Már csak azért is, mert sokan hajlamosak túlzásokba
esni, fél ismeretek alapján ítélni, és nem ritkán – internetes fórumok vándor
filozófusai – scifi élmények alapján érvelni, és biztosként állítani mindenfélét
erről a tudományágról. |
1. Rész: Egy kis ízelítő |
Ahhoz,
hogy bármit is elkezdhessünk nem árt tisztázni, hogy mik azok a
határtudományok, melyekkel kapcsolatba kerülünk a későbbiek során.
Először is a matematika. Két okból is, egyrészt mert a matematika
számtalan területén kiválóan alkalmazzák a mesterséges intelligencia
alkalmazásokat (automatikus tételbizonyítás, függvény analízis, integrálás
... stb.), másrészt mert a matematika adja azt az egységes és közös leíró
nyelvet, amelyet a számítógép és a programozó is beszél. Amivel le lehet írni
a minket körülvevő jelenségeket, világot. Itt pedig rögtön meg kell
említenünk a második fontos elemet, amit sokszor fogunk használni. A
programírás. Mi a JAVA nyelvet fogjuk használni a későbbiekben,
ingyenessége, és főként objektumorientáltsága miatt, ami szintén segíti
leírni a minket, illetve jelen esetben az alkalmazásunkat körülvevő
világot. Harmadszor meg kell említenünk a kognitív tudományokat
(pszichológia), melyek segítségével megismerhetjük saját agyunk működését,
és ezzel alapvető ötleteket és ismereteket szerezhetünk alkalmazásaink,
eljárásaink mikéntjéhez. Valamint érdemes megemlíteni például a biológiát,
amelyből kölcsönvett ötlet alapján született meg a genetikus
algoritmusok alapja (öröklődés), ami persze a probléma megoldás része,
és így teljesen eltávolodott a valódi örökítéstől, de jól példázza, hogy
ha nyitott szemmel és értelemmel közlekedünk a világban akkor az onnan
ellesett ötletek milyen jól hasznosíthatóak. A
mesterséges intelligencia kutatás célja az embert segítő, és nem őt
kiváltó, túlszárnyaló gépek létrehozása. Erre jó példa a következő: Nem
túl bonyolult dolog az ember számára különbséget tenni egy élőlény és
egy guruló szikla között. Feltételezzük, hogy az emberiség eljuttat egy
robotot (holdjárót) egy bolygóra. Ha az a bolygó mondjuk olyan messze van a
Földtől mint a Mars, akkor kb. 8 perc kell, hogy a jelek eljussanak
onnan ide, és ugyanennyi, hogy vissza is érjenek. Azt mondtuk a robotunknak,
hogy vegyen talajmintát. A képernyőt figyelve egyszer csak meglátunk egy
szaladó „zöld emberkét”. De hát az nyolc perccel azelőtt történt, hogy
mi látnánk. Ráadásul mire utána küldhetnénk a robotot, már negyed óra
előny lenne. Reménytelen. Gondolhatnánk a megoldás, hogy írunk egy
programot, ami mindenre rávetődik, ami mozog. Mintavételezés közben
elindul robotunk felé egy nagy
szikla. Robotunk boldogan „szalad” (gurul) felé, és mire szólnánk neki, hogy
ez meggondolatlanság, már vége is. Ezért a legjobb megoldás, ha Ő dönti
el, hogy mi is legyen. Ehhez persze szükséges, hogy meg tudja állapítani,
hogy mivel áll szemben, és, hogy mi a helyes reakció. Persze
a Földtől kevésbé elrugaszkodott példákat is lehet hozni a mesterséges
intelligencia alkalmazására, a különféle szakértői rendszerek,
útvonaltervező rendszerek, és irányítási rendszerek területéről.
Itt már olyan bonyolult és sokféle helyzettel találkozhatunk, hogy szinte
lehetetlen az összes be- és kimenet leprogramozása. Itt csak az segíthet, ha
alkalmazásunk a rendelkezésre álló ismeretek alapján meghatározza az
elérhető legoptimálisabb megoldást. (Később majd látni fogjuk, hogy
erre hány különféle megoldást találtak már ki.) Mielőtt
nekifognánk a mesterséges intelligencia területének komolyabb és átfogóbb megismerésének néhány szó az
eddigi eredményekről, persze a teljesség igénye nélkül. A számítógép és
az intelligencia kapcsolatát legkorábban talán Alan Turing firtatta. Azt
vizsgálta, hogy a számítógép képessé tehető e a gondolkodásra. Nem azt
fogalmazta meg, hogy mi is a gondolkodás – valószínűleg erre egzakt,
minden tudományágat lefedő meghatározást nem is lehet adni – hanem egy
tesztet dolgozott ki. Ez a TURING teszt, amelynek lényege, hogy ha az ember
(egy terminálon keresztül) kommunikál egy géppel, akkor ne tudja eldönteni,
hogy egy géppel, vagy egy emberrel beszélget. Joseph Weizenbaum 1966-ban
elkészítette az ELIZA nevű rendszert, amely mintaillesztéses elven
működött. Ismer néhány mondatsémát, amikben bizonyos szavak helyén
változók állnak. A felhasználó által beírt mondatokat meghatározott séma szerint
lebontja, és egy előre megadott mondatba, a változók helyére beilleszti
a felhasználó mondataiból kivett szavakat. Ha elegendően nagy adatbázist
feltöltünk a sémákkal, akkor elég jó rendszert építhetünk. Az ELIZA
továbbfejlesztett változatait pszichológusok is alkalmazták. Persze azért a
figyelmes szemlélő bizonyos idő elteltével észreveszi, hogy a
mondatok visszatérnek, túl egyszínűek. Ha valaki készíteni szeretne egy
ilyen programot, akkor annak a Perl nyelvet ajánlom. A Perlnek nagyszerű
és könnyen használható mintaillesztő operátorai vannak, jó adatbázis
modulokkal rendelkezik, és a széles tesztelhetőség érdekében akár
CGI-ként megírva programunkat az interneten is közzé tehetjük. Ami pedig a
legjobb tulajdonsága a Perlnek, hogy ingyenes, és mind Windows-zos mind
Linuxos környezethez is alkalmazható. Természetesen ezek a mintaillesztésen
alapuló programok nem túl intelligensek. Inkább egy betanított majomra
hasonlítanak. Ez természetesen nem lebecsülésük, hanem csak az MI
alkalmazások közti helyüket mutatja. Ezek a programok nem problémákat oldanak
meg, hanem adott bemenetre előre definiált kimenetekkel válaszolnak. Tovább
haladva az időben a 70-es években általános problémamegoldó rendszereket
próbáltak kifejleszteni (Pl.: Newel). Ezekhez a rendszerekhez szükség volt
egy modellre, amelyikkel a problémák egységesen és jól reprezentálhatóak. A
feladat aztán mindig oda vezetett, hogy ebben a reprezentációs modellben
kerestünk egy utat, a kiinduló probléma és a lehetséges célok valamelyike
között. Itt már igazi, bár igen egyszerű MI alkalmazásokról
beszélhetünk. A későbbiekben megismerjük a Hanoi Tornyai nevű
problémát, és az azt megoldó néhány algoritmust., kereső rendszert.
Azonban ha nem ilyen rendszereket akarunk építeni, hanem egy egész
szakterületet lefedő rendszert, akkor hatékonyabbak az ismeret alapú
technológiák, amelyek a 80-as évek alatt fejlődtek igazán. Az ezeknél is
fejlettebb rendszerek már képesek a tanulásra, és egyéb emberszerű
cselekvésre (látás, szövegértés...). Az ilyen rendszerek készítéséhez jól
alkalmazhatóak a genetikus algoritmusok. Természetesen korántsem említettük
meg az összes eljárást, ami a rendelkezésünkre áll, és aki komolyabban
elmélyül a témában maga is láthatja, hogy ez a napjainkban fejlődő
tudomány még számtalan fel nem tárt lehetőséget tartogat. Végezetül
csak felsorolás jelleggel néhány terület, amit lefednek az MI alkalmazások,
kutatások, fejlesztések:
Talán
zárógondolatként annyit, hogy nem is olyan távoli jövőben megvalósulhat
egy olyan mérvű számítástechnikai robbanás, mint az Internet, vagy maga
a számítógép elterjedése volt. Hiszen az MI technológiák életünk egész
területén segíthetnek, az orvosdiagnosztikai rendszerektől a repülés
irányításon át, a fogyatékosok segítéséig, a tudományok
előremozdításáig, az oktatásig ... stb. Érdemes tehát időt
szakítani a témára, hiszen lehet, hogy holnaptól együtt kell dolgoznunk, és
élnünk ezekkel az alkalmazásokkal. |
Horváth Richárd |