Hogyan tanuljon a mesterséges intelligencia?
Legyen ön is kódfejtő, tanuljon a géppel, és tudja meg, mi a különbség a szabályalapú nyelvleírás és a valószínűségi modellek között.
Hogyan tudja egy gép hatákonyan megtanulni a nyelvet? Mi a különbség a szabályalapú és a statisztikai nyelvleírás között? Hogyan találhatunk rendszert a nyelvi adatokban? A nyelv leírásnak a deduktív, vagy az empirikus tudományok módszerét kell-e követnie? A környezet vs öröklődés vita sejlik fel a mesterséges intelligencia születésénél is. Most kódfejtőkké válunk, hogy megvilágítsuk egy kicsit a kérdést!
Csak logikusan
(Forrás: Wikimedia Commons / CC0 Public Domain)
A deduktív tudományok abban a kényelmes helyzetben vannak, hogy tényleg megfellebezhetetlen állításokat tehetnek. A dedukció, vagy levezetés adott axiómák és levezetési (vagy következtetési) szabályok alkalmazását jelenti. A matematikában és a logikában nem tapasztalati tényekből kiindulva állítunk fel törvényeket (ahogy az empirikus, vagy tapasztalati tudományok), hanem adott axiómarendszerek és szabályok használatával vezetünk le tételeket vagy bizonyítunk állításokat. Az ismert példa szerint, ha „minden ember halandó” és „Szókratész ember”, akkor „Szókratész halandó” – ezt nevezik a logikusok modus ponensnek. Itt nem arról van szó, hogy a „minden ember halandó” mondat univerzálisan igaz, hanem arról, hogy ha elfogadjuk igaznak és követjük a logika szabályait, akkor a „ha A, akkor B igaz, és A is igaz” kijelentések igazsága maga után vonja hogy B is igaz. Elsőre ez játék a szimbólumokkal, hiszen a szabályok lehetnek önkényesek (valójában azért akad egy kikötés: nem lehetnek ellentmondásosak, mivel egy ellentmondásos premisszahalmazból bármi következhet – ami azért nem annyira jó, mint elsőre gondolnánk). Bolyai János például a semmiből teremtett egy új világot a párhuzamossági axiómát tagadva a nemeuklideszi geometriát, ami elsőre tényleg csak egy a valóságtól elrugaszkodott elméletnek tűnt, amíg a fizikusoknak nem lett szűk az euklideszi keret a világunk leírására.
A modern nyelvelmélet sokáig a matematika és a logika eszköztárával próbálta megragadni a nyelvet. Noam Chomsky híres Mondattani szerkezetek című könyvecskéjében amellett érvel, hogy a nyelv leírására nem használhatjuk a valószínűségi elméleteket, mivel ezek leíróak és nem képesek magyarázatot adni arra, miképp lehetséges, hogy a beszélők képesek általuk még sosem hallott mondatok megértésére, vagy szerkesztésére. Ezen nézet szerint a nyelvtudomány, vagy legalább a grammatika feladata az, hogy leírja azt a szabályrendszert amely egy adott nyelv összes lehetséges szabályos mondatát képes generálni (és elemezni is), méghozzá úgy, hogy ne generáljon semmi olyat, ami nem helyes, no és az értelmezésben se tévedjen. Felmerülhet a kérdés, hogy ezzel tényleg modellezük-e az emberek nyelvi viselkedését. Szoktunk-e tévedni? Szoktunk-e nem grammatikus mondatokat mondani? Akad-e olyan amikor félreértünk valakit? Chomsky válasza erre az, hogy persze, de ez azért fordul elő, mert nem vagyunk tökéletes gépek, viszont ott van bennünk egy szerkezet, ami szuperül generálna és értelmezne, csak hát véges erőforrrásokkal dolgozik. Aki erről adatokat gyűjt, rendszerezi azokat és bemutatja őket, az nem ás le a dolgok mélyére, leírást ad csupán és nem értelmezést.
Tulajdonképpen mi alapján fogunk hozzá a nyelvtanilag helyes és helytelen sorozatok különválasztásához? [...] Először is, nyilvánvaló, hogy a nyelvtanilag helyes mondatok halmaza nem azonosítható a megnyilatkozások egyetlen, a nyelvész által terepmunka során megszerzett korpuszával sem. Egy nyelv valamennyi nyelvtana a megfigyelt megnyilatkozások véges, és bizonyos fokig esetleges korpuszának tulajdonságait vetíti rá a nyelvtanilag helyes megnyilatkozások (feltehetően végtelen) halmazára. E tekintetben a nyelvtan a beszélő eljárását tükrözi, a beszélőét, aki a nyelvvel kapcsolatos véges és esetleges tapasztalata alapján végtelen számú új mondatot képes létrehozni és megérteni. (Chomsky: Mondattani szerkezetek - Nyelv és elme, Osiris, 1999)
Ebben a szemléletben a nyelvleírás feladata az, hogy találjunk valamilyen mögöttes mechanizmust, amely alapján elválaszthatjuk a helyes és helytelen mondatokat egymástól. A helyesség fogalmát a chomskiánusok adottnak veszik, hiszen mindenki meg tudja ítélni egy mondatról, hogy grammatikus-e. A szabályokat a mondatok összetevőinek elemzésével kísérlik meg leírni. A híres S → NP + VP szabály szerint egy mondat (S) egy főnévi (NP) és egy igei (VP) szerkezetből épül fel, a főnévi szerkezet lehet egy névelő és egy főnév, stb. Ezt a megközelítést nem igazán érdekli, hogy az adott szerkezeti elemet (pl. főnevet) milyen szó reprezentálja egy adott mondatban. Jó példa erre a híres “színtelen zöld eszmék dühödten alszanak” mondat, mely azt hivatott illusztrálni, hogy helyes, de értelmetlen mondatot is tudunk szerkeszteni, ezért a grammatika és a szemantika egymástól függetlenek. De tényleg szoktuk használni a “zöld” szót a “színtelen” után?
Nature vs nurture, öröklődés vagy környezet, racionalizmus vs empirizmus
Chomsky egy régi vitát elevenít fel, ami végig vonul a gondolkodástörténeten; tudásunkat szimplán tapasztalatainkra alapozzuk, azaz a környezet határoz meg minket alapvetően, vagy pedig olyan “készülékkel” rendelkezünk eleve, ami segít a tapasztalatot rendszerezni. Az empirizmus szokás a tabula rasa, azaz a üres lap (szó szerint tiszta tábla) hasonlattal jellemezni, mely szerint az elménk születésünkkor egy üres lap, amit a környezet tapasztalása tölt fel tudással. Az empirizmus nem tagadja, hogy léteznie kell pár alapelvnek, ami segít szervezni a tapasztalatot, de szerinte ezek szerepe minimális. A racionalizmus ellenben úgy gondolja, a tapasztalatot szervező alapelveink eleve adottak kell hogy legyenek, nélkülük nem lehet írni a fehér lapra. A Mondattani szerkezetek megjelenésének évében 1956-ban gyűltek össze számítástudósok a Dartmouth College-ben John McCarthy vezetésével és indították el a mesterséges intelligencia kutatásokat. McCarthy Chomsky-hoz hasonlóan a racionalista irányt képviselte. A konferencia végén kiadott nyilatkozat szerint a szervezők úgy látták, pár okos és ambíciózus fiatalember hatalmas haladást tud elérni akár egy nyáron is. Az alapítók befolyása annyira erősnek bizonyult, hogy a múlt század nyolcvanas éviig az empirizmus követői kisebbségben voltak ezen a téren, annak ellenére, hogy csak nem akart összejönni a várt nagy áttörés. Mostanában fordult a kocka és mindent empirista, illetve valószínűségi alapokon akarnak megoldani a mesterséges intelligenciában, még azt is, amire van bevált régi szabály alapú recept...
Egy másik iskola
Chomsky megjegyzése a Claude Shannon és Norbert Wiener által az ötvenes évek végén megalapozott új tudománnyal, az információelmélettel (vagy kibernetikával) vitatkozik. Shannon már az információelméletet megalapozó egyik első dolgozatában is nyelvi példákkal szemléltette, hogyan lehet leírni egy jelforrást. A leírás itt egy kicsit mást jelent, Chomskyval ellentétben nem deduktív szabályokat keres, hanem megfigyelésekre építve próbálja meg kitalálni, hogyan generálódik a jel.
(Forrás: Bell Labs / Wikimedia Commons / Public Domain)
Vegyünk egy egyszerű véletlenszerű karaktersort:
d cfvgbhnjkngbsfk
Ezt nem tekintjük semmilyen tekintetben értelmesnek. Vegyünk most egy olyat, amiben az egyes karakterek leütésének valószínűsége megegyezik a magyar szövegeken mért előfordulásuk gyakoriságával.
as mif eőej noesha ej
Itt már annyi látszik, hogy a szóközök megszakítják a karaktersort. Most vegyünk karakterketteseket (bigrammokat) úgy, hogy leütésük valószínűsége megegyezik előfordulási gyakoriságukkal.
egy kamase írza mira
Folytassuk karakterhármasokkal:
ők miren kizek nem is
A fenti módszereket nevezi Shannon nullad-, első-, másod- és harmadrendű közelítésnek. Ha ugyanezt szavakkal játszuk el, akkor a nulladrendű közelítésre egy példa:
mobiltelefon asztal egy autó
Az elsőrendű közelítésre ilyesmit kapunk:
nem egy az van
Harmadrendűre pedig ezt:
az nem lehet egy
Shannon modelljében nem abszolút szabályok vannak. Sőt, maguk a szabályok empirikus megfigyelésen alapulnak, itt például betű- és szógyakorisági adatokon. Ezeket a szabályokat alkalmazva a megfigyelt jelhez (azaz a nyelvhez) hasonló jelet tudunk mi is generálni. Minél több megfigyelésünk van, minél mélyebbre megyünk le (az együtt előforduló karakterek, vagy szavak számának gyakoriságát elemezve), annál jobb, természetesebb karakter- vagy szósorokat tudunk generálni. Persze ez nem lesz teljesen tökéletes, mert itt is van egy bökkenő. Az információelmélet felteszi, hogy a jel forrása stacionárius és ergodikus, azaz nem változik. A nyelv pedig nem ilyen, nem egy forrása van (hisz több beszélője van) időben pedig változik. Ennek ellenére ez a megközelítés vált egyre inkább egyeduralkodóvá a nyolcvanas évektől a számítógépes nyelvészetben és nyelvfeldolgozásban.
De mire jó egy ilyen valószínűségi modell? Hogyan segíthet megfejteni a nyelv egy-egy tulajdonságát? Példaként nézzük meg, hogyan lehet egy írást megfejteni. A holt nyelvek, vagy éppen a titkosírások esetében is az a kérdés, miképp tudjuk rekonstruálni a vizsgált jelsorokat.
This machine kills fascists
Mi van akkor, ha a jelünkben van ez meg az, amit számolgathatunk, de nem találunk nagyon mintákat? A németek Enigma kódja pontosan azt szerette volna elérni, hogy a megfelelő kulcs (a rejtjelezett üzenet feloldásához szükséges szabályok) hiányában értelmezhetetlenné tegye az üzeneteket. Ha csk khgyk gys mgnhngzkt a szövegből és behelyettesítem másra, páldűl mondun megenhengzüt e hözzűlagküzalabbore e bollantyázatan, akkor viszonylag könnyen feltörhető kódot használtam, mert eltoltam a magánhangzókat. Ha viszont egy betűt több betű is helyettesíthet, azaz ‘a’ helyett lehet ‘k’, ‘q’ és mondjuk ‘a’ is, akkor szinte lehetetlenné válik mintázatot találni a behelyettesítésre. Az Engima pedig pontosan ezt csinálta, többszörösen eltolta a karaktereket, sőt, az alkalmazott kulcsokat rendszeresen változtatták is.
(Forrás: Karsten Sperling / Imperial War Museum, London / Wikimedia Commons / CC0 Public Domain)
Alan Turing és a Bletchley Park kódfejtői szerencsére kaptak segítséget; lengyel kollégáik az Engima régebbi verziójával sokat foglalkoztak, a fronton is sikerült készülékeket találni, no meg több ezer önkéntes figyelte a rádióforgalmazást és rögzítette az értelmetlen karaktersorozatokat a második világháború alatt. A feladat adott volt, a német nyelv és a jelsorozatok között valamilyen összefüggést kellet találni. Ehhez felépítették az egyik első számítógépet a Colossus-t.
(Forrás: CC0 / Public Domain)
Mindenki tudja, hogy Turingnak volt egy képzeletbeli gépe, a Turing-gép. Azután lett több nagyon konkrét gépe, melyekkel sikeresen törték fel Bletchley Parkban a német Enigma kódokat. Azt már kevesebben tudják, hogy Turing gépe a 19. század végén kezdődő matematikai és logikai válság lezárásának csodálatos pontja. A matematika megalapozásának programja a 19. században kezdődött, ennek terméke Frege munkássága, ami megalapozta a modern logikát (s egyben a számítástudományt). Sajnos Frege teljesen lemaradt arról, hogy learathassa a babérokat, mivel nagy összegző művében, Az aritmetika alaptörvényeiben Russel ellentmondást fedezett fel (Russel erről szóló levelét mellékletként leközölte Frege!) Innét elindult a hajsza a matematika megalapozása után. 1928-ban Hilbert fogalmazta meg, milyen követelményeket kell kielégítenie a szilárd alapoknak, ez a híres Entscheidungsproblem, vagy eldöntésprobléma. Ez tkp. azt követeli meg, hogy egy rendes algoritmusunk legyen, ami minden jólformált kijelentésre képes megadni hogy helyes-e, vagy másképp fogalmazva, levezethető-e rendszerünk axiómáiból. Gödel tételei (mert kettő van neki) bebizonyították egy konzisztens rendszerben vannak eldönthetetlen (se nem bizonyítható, se nem cáfolható) állítások, s hogy az ilyen rendszerek konzisztenciája nem bizonyítható a rendszeren belül. Gödel eredményei alig három évvel Hilbert problémájának ismertetése után jelentek meg. Turing egy kicsit tovább várt, mivel őt az izgatta, hogy mi „kiszámítható", azaz mit lehet levezetni, már ha érdeklődésünket a levezethető, bizonyítható állításokra korlátozzuk. Ez tulajdonképpen a matematikai tevékenység formalizálása, ami a híres Church-Turing tézishez vezetett. A Turing-gép nem más, mint annak formalizált leírása, hogy mit lehet bizonyítani, ezért lett az ezt bemutató tanulmány címe On Computable Numbers, with an Application to the Entscheidungsproblem. A Colossus ennek a gyakorlati megvalósítása. Vészterhes időkben nem lamentáltak azon, hogy a racionalistáknak vagy az empiristáknak van-e igaza, a racionalista alapokon nyugvó eszköz empirikus problémák bevetésén dolgozhatott.
Már Caesar is csinálta
Az Enigma feltörése helyett egy sokkal egyszerűbb kódot, a Caesar-rejtjelet fogjuk feltörni. Ennek lényege, hogy a rejtjelezéshez minden betűt eltolunk, azaz az ábécében az utána (vagy előtte) n pozícióban lévő betűvel helyettesítünk. A magyar esetében bonyolítja a helyzetet, hogy vannak több karakterből álló betűnik is, ezért mi a következő, csupa kisbetűből álló ábécét használjuk (az utolsó elemünk a szóköz)
'a', 'á', 'b', 'c', 'd', 'e', 'é', 'f', 'g', 'h', 'i', 'í', 'j', 'k', 'l', 'm', 'n', 'o', 'ó', 'ö', 'ő', 'p', 'q', 'r', 's', 't', 'u', 'ú', 'ü', 'ű', 'v', 'w', 'x', 'y', 'z', ' '
Ha eggyel toljuk el a karaktereket, akkor a ‘z’-ből szóköz lesz, a szóközből pedig a, mivel “körbeért” az eltolás. Így például az
“Eszter elemet evett eme helyen”
karaktersort eggyel eltolva
'ét uésaéménéuaéwéuuaénéaiémzéo'
lesz. Ha tudjuk, hogy magyarul íródott a rejtjelezett karaktersor és fel akarjuk törni, elég azonosítanunk pár betűt. Ebben a – szóközökkel együtt – harminc karakternyi szövegben tizenegy azonos karakter van. Ha ismerjük a magyar szövegek karatergyakoriságát, megállapíthatjuk, hogy ez bizony jó eséllyel az „e” lesz. Elég egy pillantás az ábécénkre és láthatjuk, eggyel van eltolva minden karakter. De mi a helyzet ha növeljük az eltolást? Ebben a karaktersorban is megállapíthatjuk hogy mi a leggyakoribb betű:
‘uhöiugőu uauiőumuiiőuauővu óuá’
ellenben nem annyira kézenfekvő már az eltolás mértéke (ami huszonegy).
“Ebben a mondatban már sokkal kevesebb e van, okkal”
'urruáőpőabátpirpáőaqgőhbzzp őzumuhurrőuőmpáőbzzp '
“Itt olyan mondatot akartam írni ami kihagyja azt”
'wiiőb ópáőabátpibiőpzpgipaőxgáwőpawőzwvpűóypőpöi'
Mit is csinálunk, amikor meg akarjuk fejteni ezeket a rejtjeleket? Összevetjük a vizsgált karakterek gyakoriságát (azaz a rejtjelezett üzenetek gyakoriságát) egy várható gyakorisággal (a magyar szövegeken mért karaktergyakorisággal). Azaz megnézzük, milyen betűmegfeleltetéssel lehet a rejtjel karaktergyakoriságát közeli fedésbe hozni az általános betűgyakorisággal. A statisztikusok azt mondanánk, hogy Khí-négyzet-próbákat végzünk. Azonban ezt a munkát senki sem akarja (vagy éppen tudná) kézzel elvégezni. Szerencse, hogy vannak ma már számítógépek és a Caesar-rejtjel feltörése minden hobbiprogramozó egyik első projektje.
Persze az Enigma feltöréséhez bonyolultabb eljárást alkalmaztak, aminek a kor egyszerű gépein kellett futnia. Turing ezt is megoldotta, a Banburismus és később a Turingery nevű eljárásai valószínűségi alapon közelítették meg a rejtjelező beállításait, azaz hogy hogyan tolják el a betűket.
Chomsky kritikája azonban nem alaptalan, legalábbis az ötvenes években nem volt az. Abban a korban még nem álltak rendelkezésre nagy adatbázisok, hogy a nyelvi jelenségek széles köréről lehessen statisztikákat gyűjteni. A kor számítógépeinek kapacitása nem volt elegendő akár egyszerű műveletekre sem (pl. egy nagyobb szöveghalmazban már a szópárok, vagy bigrammok előállítása és megszámolása sem volt egyszerű).
A nyolcvanas évekig nem is volt jellemző a valószínűségi megközelítés sem a nyelvészetre, sem a nyelvtechnológiára. A hardverek fejlődése azonban alaposan megváltoztatott mindent. A nyelvészetben és a kognitív tudományokban is egyre nagyobb teret nyertek a valószínűségi modellek. Az utóbbi években megjelent a big data és a mesterséges intelligencia, a beszédfelismerés, és a nyelvtechnológia mindennapi életünk részévé vált. Habár a módszerek sokat finomodtak, ma is a Turing és Shannon által lefektetett elveken nyugszanak. A valószínűségi modellek ott kezdődnek, hogy sok adatot gyűjtünk és megvizsgáljuk milyen képet látunk. Az igazán izgalmas munka az, amikor megpróbáljuk kideríteni, hogyan generálhatunk valami hasonlót, hiszen ez nyitja meg az utat az előrejelzéshez.
‘ustwzxlstózréhclxztéuzrfétüfdvfztlsódwmxléuífmtcáőúétw uméwzrőwééxzréwc‘
"Hogyan tudja egy gép hatékonyan megtanulni a nyelvet?"
Érdekes téma, és a megközelítések bizonyára elég hatékonyak, ha a mára elég jó gépi fordításokra gondolok..
Ahogy a cikket értelmezem, ezek nem teszik lehetővé egyértelműen a hatékony "géptanulási" mechanizmust..
Úgy vélem, hogy a tanulás annyira nulláról indul, mint az újszülöttek esetében. Én arra gondolok, hogy a külső ingerek és azok belső feldolgozása, valamint a keletkező "ingerület válasz csomagok" és azok kipróbálása a külvilággal történő kapcsolatteremtésben, az arra kapott helyes/ helytelen, vagy javított válasz csomag értékelése és beépítése a tanulási folyamatba lényeges lehet..
A gond fontos eleme talán az, hogy bár ma már a gép is "tud" hallani és látni, de a kapott válasz csomag értékelése és beépítése már emberi intelligenciát feltételez emberi beszéd esetén..
Talán a "helyes" gépi tanulás/ megértés/ válasz kutatását nem is az emberi beszéd megtanításával lehetne elkezdeni, hanem valamiféle kezdetleges műnyelv alkalmazásával, aminek a bonyolultsága kisebb, mint az élő nyelveké, állandó és szabályos.. Lehetne egy ilyen módszer valamiféle "kályha" ahonnét el lehetne indulni.. ?)
@Sultanus Constantinus: „A fenti kitalált szavak betűi az előfordulási valószínűség szerint kerültek egymás mellé?” Nem, az majd a di- meg trigrammoknál lesz. (Az "eő" vagy "őe" elég ritka.)
„Az "egy" mitől karakterkettes, amikor három betű?” Az [eg], [gy], [y ] azok a karakterkettesek, amikről itt szó van.
Én már a karakteres példáknál elvesztettem a fonalat:
"Vegyünk egy egyszerű véletlenszerű karaktersort:
d cfvgbhnjkngbsfk" -- idáig OK.
"Vegyünk most egy olyat, amiben az egyes karakterek leütésének valószínűsége megegyezik a magyar szövegeken mért előfordulásuk gyakoriságával.
as mif eőej noesha ej"
Ez így nekem nem mond semmit. A fenti kitalált szavak betűi az előfordulási valószínűség szerint kerültek egymás mellé?
"Most vegyünk karakterketteseket (bigrammokat) úgy, hogy leütésük valószínűsége megegyezik előfordulási gyakoriságukkal.
egy kamase írza mira"
Az "egy" mitől karakterkettes, amikor három betű?
"Folytassuk karakterhármasokkal:
ők miren kizek nem is"
Az "ők" és az "is" miért karakterhármas, amikor kétbetűsek?
Ami utána jön, azt meg már végképp nem értem (persze nem vagyok informatikus).