A következő címkéjű bejegyzések mutatása: információelmélet. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: információelmélet. Összes bejegyzés megjelenítése

2016. február 10., szerda

Mi van az agyunkban?

Mi van az agyunkban, legfontosabb szervünkben, ami nagy valószínűséggel a világegyetem legkomplexebb objektuma is egyben? Természetesen neuronok. De kielégítő ez a válasz? Ha azt kérdeznénk, hogy mi van egy könyvben, és azt a választ kapnánk, hogy betűk, akkor nem lennénk vele túlságosan megelégedve. A kérdés az, hogy a neuronok aktivitás-mintázatukkal mit reprezentálnak, azaz mi a jelentésük a világ dolgaihoz viszonyítva. A szavak vagy mondatok egy kínai könyvben szintúgy csak formai elemek, önmagukban nem hordoznak semmiféle információt számunkra, csak akkor, ha egy szótárat is mellékelünk a kínai íráshoz.

Egy könyvtől persze sok vonatkozásban eltér az agyunk. Egyrészt nem statikus, hanem tanulás által folyamatosan változik. Rengeteg információ megy bele, kérdés hogy mit tart meg belőle és milyen struktúrába rendezve. Másrészt a könyvtől eltérően nem csak tárolja az információt, hanem saját magát olvassa és értelmezi is, majd az információt felhasználva tudatosan és tudattalanul is következtetéseket tesz és döntéseket hoz. Ráadásul mindezt egyazon biológiai rendszer. Bár vannak specializálódott területek az agyban és az idegsejtek is meglehetősen sokfélék, a tárolást és feldolgozást az agy ugyanazon a struktúrán valósítja meg párhuzamosan, ami igazán lenyűgöző.

Látjuk tehát, hogy az agy sok különböző funkciót megvalósít, még akkor is, ha nem specializáljuk, csak információelméleti szempontból tekintjük. Az agy az aktuálisan érzékelt és korábban eltárolt információkat például matematikai szempontból közel optimálisan tudja összekombinálni. Hogy ez pontosan mit jelent és milyen neurális és kognitív pszichológiai kísérletek támasztják alá, az egy későbbi cikk témája lesz. Most elsődlegesen azt vizsgáljuk meg, hogy egyáltalán milyen jellegű információ az, amit az idegrendszer tárol, egyelőre attól függetlenül, hogy hogyan teszi ezt neurálisan.

Ahhoz, hogy megtudjuk a neuronok milyen információt tárolnak, a klasszikus vizsgálati módszer az, hogy különféle stimulusokkal ingerelve az idegrendszert vizsgáljuk a kiszemelt neuronok aktivitását, például a vizuális kéreg neuronjait vizuális ingerek esetén. Ismeretes, hogy a neuronok tüzelési mintázata rendkívül változékony. Ha ugyanazt a stimulust mutatjuk többször, a stimulusra reagáló neuronok aktivitása más és más lesz, de akkor is jelentős az aktivitás ingadozása, ha a stimulus statikus és folytonosan mutatjuk. Ezt a jelenséget sokáig neurális zajnak interpretáltak, amit a rendszer tökéletlenségéből fakadónak tekintettek.

A zaj forrása lehet az egyes sejtek sztochasztikus jellegű tüzelési dinamikája, vagy az, hogy a hálózati dinamika működése nyomán mindig jelen van a rendszerben kontrolálatlan külső vagy belső bemenet. Az analógiára visszatérve ez olyan, mintha a könyvtáros az információ eltárolására nem egy hagyományosan nyomtatott lexikont választana, hanem egy elmosódott és folyamatosan villódzó írást, aminek egy mondata soha nem néz ki ugyanúgy. Éppen ezért a zaj zavaró hatását kiküszöbölendő a neuronok aktivitásának jellemzésére az irodalomban bevezették az átlagos tüzelési ráta fogalmát, és az idegtudományban sokan és sokáig úgy tekintették, hogy a neuronok tüzelési rátája hordozza a kódolt információt, legyen az egy illat, egy hang vagy egy objektum felismerése a látómezőben.

Ez részben így is van, ami a fenti módszerrel kísérletileg ellenőrizhető volt, azonban ez a séma nem zárja ki, hogy legyen még más információ is, amit esetleg másféle módon kódol az idegrendszer. A mindennapi tapasztalataink alapján is könnyű belátni, hogy ennél többre van szükség. Nem elegendő a megfigyelhető fontos változókat becsült értékükkel reprezentálni, hanem az érték bizonytalanságát, azaz a becslés megbízhatóságát is reprezentálni szükséges. Ennek belátására tekintsünk az alábbi szemléletes példát az ősember mindennapi életéből.

A napi tevékenység során az ősembernek gyakran kellett árkot, patakot vagy sziklahasadékot átugrania. Ha elvéti az ugrást és kibicsaklik vagy kitörik a lába, az akár az életébe is kerülhetett. Ezért nagyon fontos a gyors és megbízható döntéshez nem csak az árok szélességének, de a szélesség bizonytalanságának, sőt a saját képességeknek és az aktuális állapotának a becslése is. Ha pedig ugrás közben úgy tűnik, hogy mégsem fog sikerülni, akkor bizonytalan információk nagyon gyors kiértékelését és feldolgozását igénylő motoros kontroll folyamatban próbálja korrigálni és menteni a helyzetet az (ős)ember.

Láthatjuk tehát, hogy a bizonytalanság reprezentálása, akárhogy is történik, de valahogyan megvalósul az agyban, és különösen fontos az összes bizonytalanság összehangolt kezelése. Bizonytalanság pedig több okból is származhat. Egyrészt lehet a bizonytalanság forrása a szenzoros zaj. Például ködös időben lecsökken a kontraszt. Ilyen esetben autóvezetés közben különösen fontos, hogy különböző érzékszerveink által szolgáltatott bizonytalan információkat a lehető legjobban összekombináljuk, és tudatában legyünk becslésünk megbízhatóságának. Másrészt bizonytalanságra adhat okot az ambivalencia is, a természetszerű többértelműség, amire az egyik leghétköznapibb példa a látásunk, aholis a háromdimenziós tér a retina kétdimenziós felületére képződik le, amit elvileg végtelen sokféleképpen értelmezhetnénk. Agyunk azonban igazodik a környezet statisztikájához és a korábbi tapasztalatok alapján reális legvalószínűbb interpretációt részesíti előnyben. Ez biztosítja a rendszer hatékony működését tipikus szituációkban.

Az éremnek van azonban egy másik oldala is. A bizonytalanság hatékony kezelése egyúttal azt is eredményezi, hogy az idegrendszert át lehet verni. Ez a helyzet például az optikai illúziók esetében, amikor nem szokványos körülményeket teremtünk. Bajcsy-Zsilinszky homorú alakját például a Deák-téren domborúnak látjuk, mert ritkán találkozunk behorpadt képű emberekkel, inkább feltételezzük ezért azt, hogy a megvilágítás furcsa módon alulról jön, mégpedig anélkül, hogy ezt tudatosítanánk.

A fenti példákból tehát arra következtethetünk, hogy az agy nem csupán lexikonként tárolja a biztos tudást, hanem képes a bizonytalan információk statisztikai jellegű tárolására is, vagyis lényegében valószínűség eloszlásokat reprezentál, sőt statisztikus jellegű világmodellt épít, és az új információkat ezen világmodell szerinti struktúrában tárolja el. Egyúttal pedig alkalmas arra is, hogy a felépített statisztikai modell alapján további kalkulációkat végezzen. Egyelőre természetesen nem beszéltünk egy szót se arról, hogy neurálisan milyen folyamatok révén tudja mindezt megvalósítani. Ez már csak azért is érdekes, mert a mesterséges tanuló rendszerek hasonló probabilisztikus modelleket használnak, és ezekben a modellekben az egzakt számítások tipikusan beláthatatlan időkig tartanak. Ezért is érdeklődik a mesterséges intelligencia és a gépi tanulás is az agyműködés iránt, mert az agy láthatólag sok feladatot nagyon jól meg tud oldani limitált idő alatt.

Akiben maradtak megválaszolatlan kérdések és szeretne többet megtudni az agyműködésről az elméleti idegtudomány szemüvegén keresztül, annak ajánlom, hogy várja türelemmel a cikksorozat következő részét, vagy látogassa a Statisztikai tanulás az idegrendszerben című magyar nyelvű kurzust, esetleg tekintse át a kurzus honlapján fent lévő anyagokat.

2015. május 10., vasárnap

Shannon száma

Claude Elwood Shannon (1916-2001) amerikai elektromérnök, híradástechnikus, matematikus és kriptográfus, az információelmélet alapító atyja. Ismertségét leginkább ez utóbbinak köszönheti, hiszen a róla elnevezett Shannon-féle entrópia az információelmélet központi fogalma, az információ mérésére bevezetett mennyiség, amely számos tudományterületet forradalmasított, az információelmélet eredményeit pedig megannyi műszaki megoldás felhasználja. Kevésbé ismert azonban az, hogy lényegében Shannon az atyja a számítógépes sakkozásnak is. 1949-ben írta meg úttörő cikkét arról, hogy mi az elméleti alapja egy számítógépes sakkprogram működésének. De műszaki ember lévén ő maga is épített kezdetleges sakkgépet, amint az az alábbi ábrán is látható Emanuel Lasker matematikus, filozófus és sakkvilágbajnok társaságában, aki egyébként rekord hosszúságú 27 éven keresztül tudta 1894 és 1921 között megvédeni világbajnoki címét.

Az kezdetek óta készült sakkprogramoknak lényegében mindegyike a Shannon által vázolt megoldásra épít, a mai sakkprogramok pedig már képesek túlszárnyalni a világbajnoki szintet is. Minden ilyen algoritmus őse az ún. minimax keresés, ami lényegében nagyon egyszerű. A sakkjáték leírható egy fa jellegű gráffal, aminek a csúcsai sakkállások, az irányított élek pedig a lehetséges lépések, amik egyik állapotból a másikba vezetik a játék fonalát. Egy állapothoz hozzá tartozik az is, hogy a sötét vagy a világos játékos következik. Ez az irányított fa a játék kezdő állapotából kiindulva leírja, hogy mik a lehetséges lépés sorozatok. Nyilvánvalóan minden játékosnak azt a lépést érdemes választania, ami az ellenfél legjobb válaszlépése esetén is a legkedvezőbb számára. Ha mindkét játékos ismerné ezt a hatalmas gráfot, és át tudnák tekinteni az összes lehetséges bejárást, akkor mindegyikük eldönthetné minden egyes állásról, hogy az nyerő, vesztő, vagy esetleg döntetlenre jönne ki az ellenfél optimális lépéseit figyelembe véve. Tulajdonképpen elvileg lehetséges, hogy a sakk esetében létezik nem vesztő stratégia, vagyis a kezdő állapot tulajdonképpen döntetlent ér.

A gyakorlatban azonban az említett fa gráfot nem lehet áttekinteni csak néhány lépés mélységig, akár emberről, akár gépről legyen szó, mert a gráf lényegében csillagászati méretű. Ebből kifolyólag az állásokat sem lehet értékelni egyértelműen, csak valamilyen heurisztika alapján, például figyelembe véve a bábuk pontértékét, a gyalogállást, és egyéb tényezőket, amiket tipikusan nagymesterek segítenek megállapítani, vagy játszmák alapján tanulják a programok. Ha azonban valamilyen közelítő értékelést tudunk adni a sakkállásokra, akkor a minimax keresés lesz az, amely valamilyen mélységig a legjobb lépéskombinációt megtalálja valamely játékos számára. Az elnevezés onnan jön, hogy az egyik játékos szempontjából az állásokra adott értékelést felváltva akarják maximalizálni illetve minimalizálni a játékosok, tekintettel arra, hogy felváltva lépnek. Az algoritmus roppant egyszerű, azonban a futási ideje a fa mélységével, azaz a lépések számával exponenciálisan növekszik. A Kaszparovot legyőző Deep Blue például átlagosan hat lépéspárt tekintett előre, míg a mai legjobb Hydra nevezetű gépi sakkozó kilenc lépéspárig tekint előre átlagosan. Sannonról egyébként egy trófeát is elneveztek, amit a sakkprogramok világbajnokságán a nyertes program tervezői kapnak. Ez látszik az alábbi képen, amint azt a Deep Blue elődjének a Deep Tought-nak a tervezője vesz át Shannontól 1989-ben.

De mégis mekkora az a csillagászati szám, amiről beszélünk? Shannon adott erre egy becslést az említett cikkben, amiben azt tekintette, hogy hányféle képpen lehet a táblára helyezni az alap sakkbábu készletet, vagyis azt, amivel a játék elején rendelkeznek az ellenfelek. Ezt nevezik Shannon-féle számnak. Ez természetesen lehet több is és kevesebb is, mint a játék során előforduló valódi sakkálások száma. Egyrészt nem minden állás állhat elő szabályos játék során. Például a gyalogok nem mehetnek hátrafele, vagy nem lehetnek a királyok egyszerre sakkban. Másrészt a gyalogokat más bábukra lehet cserélni, ha elérik a szemközti alapvonalat, ez pedig növeli a lehetőségek számát. Ha azonban nagyságrendi becslést szeretnénk, akkor a Shannon-féle szám egy jó kiindulópont. Hogyan lehet tehát kiszámolni?

Ehhez érdemes tudni, hogy egy n elemű halmazból hányféle képpen lehet kiválasztani k elemet úgy, hogy a sorrendjük nem számít. Matematikusok ezt úgy mondják, hogy "n alatt a k", és úgy is jelölik, hogy zárójelbe téve n alá írják a k számot. Érdemes még azt is tudni, hogy 1-től n-ig összeszorozva a számokat, a kapott számot úgy mondják, hogy n faktoriális, és n! a jelölése, a matematikusok így rövidítik ezt a szorzatot. Faktoriálisokkal n alatt a k könnyen kifejezhető. Ha n elemből k elemet akarunk kiválasztani úgy, hogy számít a sorrend, akkor az első elemet n féle képpen választhatjuk, a másodikat (n-1) féle képpen, és így tovább, míg a k. elemet (n-k-1) féle képpen. Az összes lehetőségek számát tehát megkapjuk, ha ezeket összeszorozzuk, ami n!/(n-k)! lesz. Ha viszont a sorrend nem számít, akkor ezt le kell osztani annyival, ahány féle képpen k elemet sorba rendezhetünk, hiszen mindent ennyiszer számoltunk, ebben az esetben k! darabszor. Végeredményben tehát az alábbi képletet kapjuk.

Ezt felhasználva Shannon számát mostmár ki tudjuk számolni. Először ki kell választani, hogy hova tesszük a 32 sakkfigurát a 64 mezőből álló sakktáblán, ami 64 alatt a 32 lehetőség. Aztán ki kell választani, hogy a 32 helyből melyik 16-ra tesszük mondjuk a világos bábukat, ami 32 alatt a 16 lehetőség. Aztán ki kell választani, hogy a sötét és a világos bábuk közül melyik a 8 gyalog, ami 16 alatt a 8 lehetőség mindkét játékosnál. Aztán ki kell választani a maradék 8 helyből mindkét játékos esetén, hogy hova kerülnek a bástyák, ami 8 alatt a 2 lehetőség mindkét esetben. Aztán ki kell választani mondjuk a huszárokat a maradék 6-6 helyből, ami 6 alatt a 2 mindkét játékosnál. Aztán a futókat, ami 4 alatt a 2 mindkét játékosnál. Vegyük észre, hogy a sakkban szokás a mezők színe szerint fehér és fekete futókról is beszélni, de mi itt most ezt a megkülönböztetést nem tesszük meg. Legvégül azt kell eldönteni mindkét játékos bábuinál, hogy a maradék 2 helyből melyiken van a király és melyiken a királynő, ami kétszer két lehetőség összesen. Mindent összetéve és az egyszerűsítéseket elvégezve az alábbi képlet adódik, ami durván 10^43, vagyis az 1-est 43 darab nulla követi. Ez azt jelenti, ha nanoszekundumonként vizsgálnánk meg egy állást, akkor is 10^34 másodpercig, azaz 10^26 évig tartana az összes lehetséges állás végignézése, ami az Univerzum életkorának is rengetegszerese!