Hierarchikus Temporális Memóriák
∗
Tartalomjegyzék 1. Bevezető
2
2. A HTM modell kiinduló feltételezései
3
3. A HTM hálózat matematikai modellje
5
4. Tanulás HTM hálózatokban 4.1. A HTM csomópontok szerkezete . . . . . . . . . . . . . . . . . . 4.2. Tanulás elsőrendű Markov láncok használata esetén . . . . . . . 4.2.1. Kvantálási pontok átmeneteinek mintájának megtanulása 4.2.2. Időbeni csoportok kialakítása . . . . . . . . . . . . . . . 4.3. Tanulás magasabb rendű Markov láncok használata esetén . . . 4.3.1. Biológiai következmények . . . . . . . . . . . . . . . . . . 4.3.2. Az állapot-felbontó algoritmus (state-splitting algorithm) 5. Következtetés HTM-hálózatokban 5.1. A következtetés egyenletei . . . . . . . . . . . . . . . . . . . 5.1.1. Következtetés statikus esetben . . . . . . . . . . . . . Jelölések . . . . . . . . . . . . . . . . . . . . . . . . . A csomópont memóriájának tartalma. . . . . . . . . A következtetésben végrehajtott számítások . . . . . Felfele irányba mutató üzenetek számítása . . . . . . Lefele irányba mutató üzenetek számítása . . . . . . 5.1.2. Következtetés dinamikus esetben . . . . . . . . . . . Jelölések . . . . . . . . . . . . . . . . . . . . . . . . . Koincidencia-minták és Markov láncok . . . . . . . . A következtetés során végrehajtott számítások . . . . 5.2. Neurális implementáció . . . . . . . . . . . . . . . . . . . . . 5.2.1. Koincidencia-minták valószínűségének megállapítása . 5.2.2. Saját Markov láncok valószínűségének meghatározása 5.2.3. Koincidencia-minták eloszlásának meghatározása . . ∗
A jegyzet az [1], [2] és [3] hivatkozások alapján készült.
1
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . .
. . . . . . .
7 7 7 7 8 9 9 12
. . . . . . . . . . . . . . .
13 15 15 15 16 17 17 18 19 19 20 20 22 23 23 24
5.2.4. Gyermek-csomópontoknak küldött üzenetek meghatározása . . . 5.2.5. Időzítéssel kapcsolatos tényezők figyelembe vétele . . . . . . . .
25 26
1. Bevezető A korábbiak alapján láttuk, hogy már a 70-es években jelentős eredményeket értek el az emberi látás kutatásában és számítógépes modellezésében. Van azonban néhány alapvető kérdés, amelyekre ezek a korai kutatások nem válaszolnak, és megközelítésük okán nem is válaszolhatnak. A problémát leginkább a számítógépes tanulás egyik legújabb eredményén az ún. no-free-lunch tételeken keresztül lehet bemutatni [4]. Intuitív módon megfogalmazva, a no-free-lunch tételek azt mondják ki, hogy nem létezik olyan tanuló algoritmus, amely minden problémára egyaránt jól működne. Fordítva, ha egy tanuló algoritmus adott probléma-területen jól teljesít, akkor az azért van, mert működésében olyan alapfeltevéseket használ fel, amelyek jól illeszkednek az adott feladathoz. Fenti eredményeket összevetve azzal a ténnyel, hogy az emberi agy egyaránt képes vizuális, auditív, tapintási, motorikus, stb. információkat megtanulni és következtetni, illetve azzal a ténnyel, hogy az emberi agykéreg olyan problémák/feladatok megoldására is képes, amelyek biológiai kialakulásakor még nem léteztek, látható, hogy valami egészen általános feltételezésről lehet szó, amit az agy ezekre a legkülönbözőbb féle feladatokra képes kihasználni. Külön érdekesség, hogy V. Mountcastle már a 70-es években megfigyelte, hogy a különböző emlősökben a különböző új-agykérgi területek (továbbiakban: a neocortex1 területei) meglehetősen uniform szerkezetet mutatnak, tehát hogy a különböző érzékszervi modalitásokért felelős agykérgi területek egymáshoz nagyon hasonló szerkezetet mutatnak [5]. Mountcastle megfigyeléseit empirikusan megerősítik a szenzorikus felcserélésre vonatkozó sikeres kísérletek, melyek során kiderült hogy hatékonyan lehet látást nyomásérzékeléssel, erővisszacsatolást hallás útján, stb. helyettesíteni. A hierarchikus temporális memóriák (HTM) elmélete ezen kiindulópontok alapján hoz létre egy olyan tanulási struktúrát, amely általánosított módon kezeli az emberi agykéreg által megtanult információkat. Látni fogjuk, hogy a HTM modell működésének megértése után másodlagos kérdés lesz, hogy pontosan milyen információkat közvetítsünk pl. a látott képről az agykéregnek. Bizonyos szempontból másodlagos kérdés, hogy a retinán pontosan milyen szűrők működnek, és pláne hogy hogyan különítjük el a fényvisszaverődésből, megvilágításból, tárgykontúrokból származó intenzitás-változásokat. Természetesen ezek fontos kérdések, ugyanakkor ha azt vesszük hogy az agykéreg más érzékszervi modalitásokból származó információk értelmezésére is képes, akkor látszik, hogy inkább a bejövő információ jellegéről, mint pontos szerkezetéről fontos beszélnünk. A neocortex az emlősök törzsfejlődése során a "régi" agykéreg köré épült, 2 − 4 mm vastag külső réteg, amelynek számos magasabb funkció – így az érzékelés bonyolultabb funkciói, a beszéd és a logikai érvelés képessége – köszönhető. 1
2
2. A HTM modell kiinduló feltételezései A korábbiakban szó volt arról, hogy minden tanulóalgoritmus csak akkor tud hatékonyan működni, ha a problémára jellemző hasznos kiinduló-feltételezéseket használ ki. Mivel az agykéregnek meglehetősen általános probléma-osztályra kell működnie, ezért inkább az "univerzális feltételezések elméletét" kell kidolgozni, mint az "univerzális tanulás elméletét". Azokat a feltételezéseket, amelyeket egy tanulóalgoritmus a korábban soha nem látott minták osztályozásakor felhasznál, induktív befolyásoltságnak (inductive bias) nevezzük. Minél több feltételezést használunk ki, annál könnyebb lesz a tanulás, viszont annál merevebb is lesz a következtésre (vagyis: általánosításra) alkalmas problématér. Ezért a lehető legalapvetőbb és legegyszerűbb feltételezésből kiindulva célszerű a neocortex területinek tanulását megfogalmazni. Jeff Hawkins kiindulópontjai a következők: 1. Az agykéreg az érzékelt térbeli és időbeli mintázatokról konstruál modellt. 2. Az agykéreg egy alapvető komputációs egység az ún. kanonikus kortikális áramkör sokszorosan replikált előfordulásából épül fel. Komputációs szemszögből ezt a kanonikus áramkört tekinthetjük egyetlen számítási egységnek (a továbbiakban: csomópontnak), amely sokszorosítva jelenik meg az agykéregben. 3. Az agykéreg felépítése hierarchikus, vagyis a kanonikus áramkörök fa-struktúrájú összeköttetésben állnak egymással. 4. Az agykéreg feladata az érzékelt világ modellezése. A modell egy térben és időben is hierarchikus struktúrát követ oly módon, hogy a hierarchia minden szintjén mintázatokat, illetve mintázat-szekvenciákat tárol el és hív elő. Ezt követően a tanult modellt felhasználva az agykéreg predikciókat fogalmaz meg az érzékelt bemenő információk alapján. 5. Az agykéreg nem felügyelt módon építi fel saját modelljét. 6. A hierarchiában minden számítási egység nagy számú mintázatot és ezekből alkotott sorozatot tárol el. A nagy memóriakapacitásnak kulcsfontosságú szerepe van a tanulásban. 7. Minden csomópont kimenete az eltárolt mintázat-sorozatokról ad valamilyen információt. 8. A hierarchiában felfele és lefele folyik az információ, melynek segítségével felismerhetővé és egyértelműen meghatározhatóvá válik a jelenlegi, és megjósolható a következő bemenet. A kiinduló feltételezéseket legegyszerűbben egy példán keresztül fogalmazhatjuk meg. Ez a példa most az invariáns tárgyfelismerés lesz, amely kérdés mindmáig megoldatlan. A feladat, tömören megfogalmazva, hogy a látott kép alapján felismerjük, hogy a képen milyen tárgyak szerepelnek, függetlenül attól, hogy milyen nézőszögből, milyen 3
irányból, és milyen megvilágításban (és milyen zajviszonyok között) látjuk a tárgyat. A korábbiakban legtöbbször osztályozási feladatként írták le ezt a feladatot: adott volt egy adag felcímkézett minta, és ezeknek a címkéi és vizuális jellemzői alapján próbálták meg az új bemeneteket osztályozni. Általában a tanítóhalmazban több változata szerepelt ugyanannak a tárgynak, különböző nyújtások és egyéb deformációk révén kapott változatokkal. Ennek ellenére ezek a korábbi próbálkozások legfeljebb a tanulóhalmaz biztonságos megtanulására voltak képesek, általánosításra azonban kevéssé. De mi lehet az oka, hogy az efféle próbálkozások nem hozták meg a kívánt sikert? Hawkins szerint a kudarc oka abban keresendő pl., hogy ezek a korai kutatások nem vették figyelembe az idő fontosságát. Ez érthető is, lévén hogy egy hirtelen felvillanó képben is képesek vagyunk felismerni a tárgyakat. Az viszont nem elhanyagolandó tény, hogy tanuláskor ugyanazon tárgyról alkotott képek időbeni sorozatával találkozunk, és ebből az időbeni lefolyásból elképzelhető, hogy számos, általánosításra alkalmas segédinformációt gyűjt be az agyunk. Egy másik fontos jellemzője az emberi tanulásnak a tanulás nem felügyelt volta. Az ember nem felcímkézett adatokból tanul meg látni. Noha az idő szerepe és a tanulás nem felügyelt volta egymástól független tényezőknek tűnnek, valójában ugyanazon érem két oldalát jelentik. Ennek megértéséhez vegyük azt a példát, amikor egy macska sétálva közeledik a tejesedényhez. Minden egyes lépés során a tejesedény egy más képe vetül a macska retinájára. Két, időben szomszédos kép közötti euklideszi távolság meglehetősen nagy is lehet, de a macska mégis tudja, hogy ugyanazt a tejesedényt figyeli. Ez még akkor is igaz, ha nem képes arra, hogy megnevezze, hogy "ez az én tejesedényem". Senki nem veszi fel a macskát, hogy beleordítsa a fülébe, hogy "tejesedény!". A macska tehát teljesen nem felügyelt módon tanulja meg, hogy mit lát. Ha a macska retináján N darab receptor található, akkor egy N -dimenziós vektorként jellemezhető minden egyes kép. Egy adott tárgyhoz ebben az N -dimenziós vektortérben végtelen sok pont tartozhat (az, hogy melyiket látja éppen a macska, függ a fényviszonyoktól, a tárgy forgatásától, nagyításától, stb.). A látás feladata tehát ezeknek a pontoknak az összekötése egyetlen klaszterbe. A probléma az, hogy az N -dimenziós térben két különböző tárgyat jellemző vektor meglehetősen közel is lehet egymáshoz, így a klaszterek keresztezhetik is egymást. Ezért fontos az idő szerepe, ami ezt a klaszterezési problémát jelentősen leegyszerűsíti: a macskának elég megszoknia, hogy két kép, amely időben közel esik egymáshoz, nagyobb valószínűséggel mutatja ugyanazt a tárgyat, mint két olyan kép, amely időben távol esik egymástól. Implicit módon tehát az idő felügyelőként működik, és lehetővé teszi a nem felügyelt tanulást. A második fontos feltételezés a hierarchia szerepe. A fizikai világ tárgyai általában részekből épülnek fel hierarchikus módon. Tegyük fel, hogy látórendszerünk képes ezeknek az alapelemeknek a pozíció-, nagyítás- és forgatás-invariáns megtanulására. Ezt követően tegyük fel, hogy a rendszer képes a nagyobb elemek megtanulására oly módon, hogy a nagyobb elemeket ezekből az alapelemekből építi fel. Ekkor a rendszerünk képes arra, hogy egész tárgyakat ugyanazon alapelemek különböző konfigurációjaként tanuljon meg. Egy tárgy megtanulásakor tehát ingyen megtanulunk egy csomó olyan alapelemet olyan építőköveket amelyek további tárgyak megtanulásához is alkalmasak. 4
Az eddigi tanulságokat két pontban foglalhatjuk össze: • A temporális információ segítséget nyújt abban, hogy eldönthetővé váljon, hogy két kép ugyanahhoz a tárgyhoz tartozik-e, vagy sem. • Az invariáns tanulást hierarchiában végezve elérhető, hogy előbb a tárgyak alap komponenseit, majd nagyobb részeit, végül magukat a tárgyakat tanuljuk meg, és így elérhető hogy a tárgyak komponenseit újra felhasználhassuk korábban nem látott tárgyak megtanulására. Egy harmadik tényező, amit általában nagyvonalúan elhanyagolnak a látás kutatásában, hogy a látásnak jelentős érzékelő-motorikus tényezői is vannak. Az emlősök látásában ugyanis jelentős szerepe van a cselekvésnek. A macska tejesedényről alkotott mentális modellje például nemcsak a magát a képet tartalmazza, hanem azt az információt is, hogy a macska tapasztalata szerint milyen motorikus akció milyen képváltozást fog okozni. Az efféle kérdésekkel az ún. active vision kutatási irányzat foglalkozik. Ez egy nagyon fontos kutatási terület, de a továbbiakban ezzel nem foglalkozunk, mert nem tartozik a HTM-elmélet elemei közé.
3. A HTM hálózat matematikai modellje A HTM hálózat egy generatív modell segítségével matematikailag leírható. Az 1 ábrán egy leegyszerűsített, kétszintes generatív modell látható. A hálózat hierarchiájában minden csomópont tartalmaz egy koincidencia-mintákból álló halmazt: c1 , c2 , ..., c(|C|) , és egy Markov láncokból álló halmazt: g1 , g2 , ..., g(|G|) . Mindegyik Markov lánc a koincidencia-minták halmaza felett értelmezett állapottérrel rendelkezik. Egy csomópont egy adott koincidencia-mintája a gyermek-csomópontok egy-egy Markov láncának együttes aktivitását jelzi. Egy felsőbb szintű csomópontban mintavételezett Markov lánc eredményeként kapott koincidencia-minta azonnal aktiválja az eggyel alacsonyabb szinten elhelyezkedő gyermek-csomópontokban a koincidencia-minták részét képező megfelelő Markov láncokat. Ezt követően a gyermek csomópontok Markov láncait rekurzív módon mintavételezve folytatódik a generatív folyamat. A legalacsonyabb szintű csomópontok Markov láncainak kimenetei a generatív folyamat kimeneteként jelennek meg. Fontos tulajdonsága még a a generatív modellnek, hogy a legnagyobb állapot-időállandóval a legfelsőbb szintű csomópontok rendelkeznek, és az időállandók a hierarchiában lefelé lépkedve csökkennek. így például a legmagasabb csomópont N időegység alatt tartja állapotát, míg a legalsóbb szintű a kimenetet szolgáló csomópontok pl. minden időegységben változtatják állapotukat, és így kimenetüket. Az így kapott HTM-modell által generált térbeni és időbeni jellegzetességekkel rendelkező adatok megtanulása egyenértékű azzal, hogy minden egyes csomópont megtanulja a benne található Markov láncok struktúráját, és azok állapotterének alfabétáját adó koincidencia-mintákat. Bár számos típusú és bonyolultságú algoritmus elképzelhető ezen információk megtanulására, alapvetően mégis két lépésben képzelhetjük el a tanulást: 5
1. ábra. A HTM elmélet generatív modellje 1. a koincidencia-minták memorizálása 2. a koincidencia-minták tere fölött értelmezett néhány Markov lánc megtanulása Egyszerűsített generatív modell esetén a HTM csomópont megjegyezheti az összes feléje érkező koincidencia-mintát. A valóságban korlátozható a megjegyezhető minták száma, feltéve, ha következtetéskor egyszerre több koincidencia-minta együttes aktivitását is megengedjük. A következőkben az egyszerűség kedvéért csak azokat az eseteket tekintjük, amikor egy adott időpillanatban kizárólag egy koincidencia-minta lehet érvényes. A csomópontokban elhelyezkedő Markov láncok olyan koincidencia-mintákat tartalmaznak, amelyek nagy valószínűséggel egymás után szerepelhetnek a fizikai világgal való interakció során. Ez az elv megfeleltethető az ún. temporális lassúság elvének (temporal slowness principle), amely bizonyítottan fontos szerepet játszik az invariáns tanulásban [hivatk.]. A temporális lassúság elve nagymértékben megkönnyíti a Markov láncok tanulásának folyamatát. A szerzők a gyakorlati alkalmazásokban használható megoldásnak találják, hogy egy nagy tranzíciós mátrixot konstruálnak, majd bizonyos feltételezéseket figyelembe véve partícionálják azt. A továbbiakban áttekintjük a Markov láncok megtanulását segítő módszereket, azt követően pedig a HTM hálózatok következtetési mechanizmusait mutatjuk be, illetve azoknak a leképeződését a valós, agykérgi biológiára.
6
4. Tanulás HTM hálózatokban 4.1. A HTM csomópontok szerkezete Minden csomópont a HTM hálózatban (vagyis minden kortikális áramkör) két funkcionális egységből áll: egy térbeli és egy időbeni gyűjtőből. Ezek funkciója nagyjából megegyezik a térbeli és az időbeli változások kezelésével. A térbeli gyűjtő pixel szerinti hasonlóság szerint kategorizálja a bemeneteket. Ez fontos szerepet játszhat zajok szűrésében, azonban temporális tulajdonságokat nem tud figyelembe venni. A térbeli gyűjtőt elképzelhetjük úgy, mint egy bemeneteket kvantáló egységet, amely potenciálisan végtelen számú elemet leképez egy véges elemű alfabétába. Az időbeni gyűjtő a bemenetek időbeni közelségét felhasználva alakít ki ún. temporális csoportokat. Ha pl. egy A mintát gyakran követ egy B minta, akkor a temporális gyűjtő könnyen elhelyezheti őket egy csoportba. A temporális gyűjtő mechanizmus azért nagyon erős, mert olyan bemeneteket is képes egy csoportba sorolni, amelyek pixel-távolságban mérve nagyon különbözőek. A temporális gyűjtő invarianciák szélesebb körét tudja megtanulni, de nem képes végtelen számú bemeneten operálni, úgy mint a térbeli gyűjtő. Ezért van, hogy a térbeli gyűjtés megelőzi a temporális gyűjtést.
4.2. Tanulás elsőrendű Markov láncok használata esetén Elsőrendű Markov láncoknak nevezzük azokat a sztochasztikus folyamatokat, amikor a mindenkori állapot kizárólag az előző állapottól függ. Magasabb rendű Markov folyamatoknál a távolabbi múlt is befolyásolhatja a jelent. Először az egyszerűbb esetet vesszük. A temporális gyűjtő működése az egyszerűbb esetben három részre osztható. Először a térbeli gyűjtő kimenetéről érkező kvantálási pontok közötti átmenetek mintáját tanulja meg. Ezt követően, az időbeni közelség alapján csoportokat alkot a kvantálási pontokból. Végül a temporális gyűjtő a megtanult időbeni csoportokra vonatkozó információkat ad a kimenetén (vagyis megmondja, hogy melyik milyen valószínűséggel aktív). 4.2.1. Kvantálási pontok átmeneteinek mintájának megtanulása A temporális átmenetek mintáját a csomópont egyszerű esetben a következőképpen tanulhatja meg. Legyen a t időpont bemenete y(t). Ez lehet egy N -hosszú vektor, amely a bemenetre érkező kvantálási pontok feletti valószínűség-eloszlásként értelmezhető. Legyen
c(t) = arg max y(t)
(1)
vagyis c(t) legyen a t időpont legaktívabb kvantálási pontjának azonosítója, c(t − 1) pedig a (t − 1)-edik időpillanat legaktívabb kvantálási pontjának azonosítója. Az elsőrendű összefüggések megtanulásához a csomópont egy négyzetes átmenet-mátrixot hoz 7
létre, melynek sorai a (t−1)-edik időpillanatoknak, oszlopai pedig a t-edik időpillanatoknak felel meg. Minden időpillanatban, ha az x-edik kvantálási pontot az y-adik kvantálási pont követte, akkor a mátrix x-edik sorának y-adik oszlopát eggyel növeli a csomópont. Jelöljük ezt a mátrixot T-vel. Ekkor tehát minden időpillanatban a csomópont a következő műveletet hajtja végre: T(c(t − 1), c(t)) = T(c(t − 1), c(t)) + 1
(2)
Közben a csomópont időszakosan normalizálja a T mátrix értékeit. A tanulási folyamat akkor fejeződik be, amikor kellően stabil a mátrix. 4.2.2. Időbeni csoportok kialakítása A következő feladat a T mátrix sorainak és oszlopainak időbeni csoportokba történő partícionálása. A cél temporálisan koherens csoportok létrehozása. A feladat megoldására sokféle algoritmus kidolgozható, ezek közül tekintsünk most egyet! Először is definiáljuk, hogy mit értünk "jó csoport" alatt. Legyen D1 , , D(Ng ) a kvantálási pontok diszjunkt partícionálása. Legyen az i-edik partíció jósági jellemzője:
ti =
1 ∑ ∑ T(k, m) n2i k∈D m∈D
(3)
i
i
ahol ni az i-edik partíció elemeinek száma. Erre a számra úgy is gondolhatunk, mint az i-edik partíció kvantálási pontjainak átlag-hasonlóságára, temporális értelemben. Ez alapján definiálhatunk egy globális célfüggvényt, úgy mint: 1∑ J= ni ti 2 i=1 Ng
(4)
Ideálisan azt a Di(i=1..n) partíció-halmazt keressük, amely maximalizálja ezt a célfüggvényt. Kimerítő keresést azonban a lehetséges partíció-halmazok nagy száma miatt nem érdemes végezni. Ezzel szemben jó megközelítést adó mohó-algoritmusokat érdemes használni. A következőkben egy gyors és egyben nagyon egyszerű algoritmust mutatunk be, amely addig működik amíg az összes kvantálási pont bele nem kerül valamelyik partícióba: 1. Válasszuk ki a legnagyobb összeköttetésben álló kvantálási pontot (ezt a pontot úgy definiáljuk, mint a T mátrix legnagyobb sor-összegével rendelkező sorhoz tartozó pontot). 2. Válasszuk ki azt az Ntop darab kvantálási pontot, amelyik a leginkább összefügg ezzel a kvantálási ponttal. Ezeket a pontokat amennyiben még egyetlen partícióban sem szerepelnek hozzáadjuk az eredeti kvantálási pont partíciójához. 8
3. A 2-es pontot rekurzív módon megismételjük az újonnan hozzáadott pontokra. A gyakorlatban ez a folyamat egy idő után leáll, mert az X-edik kvantálási pontot követő pontokat követő pontok között az X kvantálási pont is általában megtalálható. Ha azonban mégsem állna le a folyamat, egy idő után automatikusan leállítjuk (ha a partíció elemszáma elért egy maximumot). 4. Az így kapott ponthalmaz egyetlen partícióba kerül. Ha még marad osztályozatlan kvantálási pont, az algoritmus az 1-es ponttal folytatódik.
4.3. Tanulás magasabb rendű Markov láncok használata esetén A gyakorlatban fontos, hogy olyan memória-modellt készítsünk, amely változó-rendű Markov láncok használatát teszi lehetővé. A változó-rendűségen azért van a hangsúly, mert a megnövelt számítási igény miatt nem szeretnénk automatikusan magasabb rendű Markov láncokat szükségtelenül alkalmazni. J. Hawkins memória modellje alapjában véve egy Rodriguez és társai által megadott modellre épít. Biológiai szempontból arra a régóta közismert megfigyelésre épít, miszerint a neocortex sejtjei oszlopokba rendeződnek, és egy adott oszlopban található sejtek ugyanabból a receptív mezőből kapnak bemenetet. Egy adott oszlopban több-tíz olyan sejt helyezkedik el, amelyek hasonló vagy azonos receptív mező tulajdonságokkal bírnak. Noha ezek a sejtek hasonló kimenetet adnak a felfelé érkező (szenzorikus) bemenetre, a modellben a gyakorlatban előforduló sorozatok függvényében egymástól eltérően viselkednek a sejtek. Egy adott bemenet-sorozat előfordulása esetén csak néhány sejt lesz aktív, a többi nem. A modell lényege, hogy a tanulás során az oszlopokban található sejtek laterális kapcsolatokat is kiépítenek más, olyan közeli oszlopokban elhelyezkedő sejtekkel, amelyek nem sokkal korábban aktívak voltak. Ezek a laterális kapcsolatok adják a szekvenciamemória alapját. Amikor egy sejt aktívvá válik köszönhetően egy laterális kapcsolatnak még azelőtt, hogy bemenetet kapott volna, gátlások révén elnyomja a saját oszlopában található többi sejtet, és így garantálja hogy a korábban megtanult szekvencia kontextusában egyedi reprezentáció jöjjön létre. Mielőtt a modellt bővebben kifejtjük, röviden bemutatjuk a modell által figyelembe vett biológiai sajátosságokat. 4.3.1. Biológiai következmények A javasolt modell egyrészt elméleti alapot ad a neocortex oszlopozott szerkezetének és a neocortexben megfigyelt, teljesen általános laterális kapcsolatoknak, másrészt pedig egy olyan mechanizmust javasol, amely egy teljesen általános igényt elégít ki arra, hogy a hierarchikus modellek része legyen a predikció és a tanulás. A modell biológiai szempontból spekulatív, és számos feltételt kell kielégítenie ahhoz, hogy biológiailag alátámasztottnak tekinthessük. Az alábbiakban áttekintünk néhány következményt, amelyeket a modell implikál, és amelyeket a szerzők részben vagy teljes egészében bizonyítottnak is látnak a szakirodalomban. 1. A válasz ritkasága a javasolt modell egyik következménye, hogy a neocortexben a sejtek működése ritkább kell hogy legyen akkor, amikor a bemenetként kapott jel9
szorozatok a fizikailag természetes sorrendben jelennek meg, mint akkor, amikor nem. Specifikusabban: az azonos oszlopban elhelyezkedő sejteknek közel azonos viselkedést kell mutatniuk egy akármilyen kontextustól izolált bemenet esetén, és ritka viselkedést kell mutatniuk akkor, ha a bemenetek egy adott kontextusban érkeznek. Számos kutatásban megfigyeltek a leírtakhoz hasonló viselkedést. Yen és társai megmutatták, hogy a macska agykérgében a köztudottan oszlopokra és különböző térfrekvenciákra érzékeny sejtek amelyek a korábbiakhoz híven oszlopos elrendezésben helyezkednek el lényegesen ritkább aktivitást mutatnak, amikor komplex idősorokban kapnak bemenetet. Hasonló eredményekről számolt be Vinje és Galland a makákó V1 agyterületének vizsgálata után. Machens a patkány hallásért felelős agykérgi részeket vizsgálva jutott arra a kijelentésre, hogy összetett, ámde természetes hangok felcsendülésekor ritkább aktivitást mutattak a sejtoszlopokban található sejtek – és ilyenkor a sejtek aktivitása csak 11%-ban volt a klasszikus receptív mezőkből származó bemeneteknek tulajdonítható, és a maradék aktivitást a frekvenciák kölcsönös összjátéka és a neurális kódolás időbeni tulajdonságai okozták. 2. Gátlásokra vonatkozó következmények Egy sajátos gátló hatás kell hogy létezzen a neocortexben ahhoz, hogy a modellt validáltnak tekinthessük. A laterális gátló mechanizmusnak erősebbnek kell lennie, mint a bemenettől aktív, előrefele mutató információ-folyamnak. 3. Elosztott reprezentációk a modell következményeként megállapíthatjuk, hogy két szempontból használ a neocortex elosztott reprezentációkat. Elsőként azt mondhatjuk, hogy egy-egy sejt önmagában nem képes semmit sem reprezentálni. Noha az eddigiek során úgy fogalmaztunk, hogy egyedi sejtek önmagukban jelölnek mintákat a bemeneti sorozatokban, ezt csak a kényelmes tárgyalhatóság érdekében tettük. Feltételezzük, hogy szinten minden esetben több sejt aktív egyszerre, annak ellenére hogy az aktivációs minták mindig ritkák. Másrészt a reprezentációk abból a szempontból is elosztottak, hogy a HTM modell hasonlóan a Bayes hálókhoz feltételezi, hogy az aktivitás elosztott módon jelenik meg. A számítási egységek hierarchiájában minden potenciálisan aktív idősorozatról tájékoztatást adnak az egységek a szülők felé. Igy lehetővé válik, hogy probabilisztikus bemenetek segítségével probabilisztikus predikciókat lehessen létrehozni. 4. Hatékony számíthatóság a memória modell kihasználja a korábbi bemeneteket a következtetések generálásához, és mint a bemeneti jelek története, mind pedig a predikciók sok állapot feletti valószínűség-eloszlásként értelmezhetőek. A számítások nyers erővel történő elvégzése nem mondható biológiai rendszerre jellemző módszernek. A szerzők modellje ezért dinamikus programozási modellt alkalmaz, amelyet a későbbiek során mutatunk be.
10
5. Kortikális rétegek feltételezzük, hogy a leírt modell a neocortex egy adott rétegének sejtcsoportjai között működik, és a laterális összeköttetések is ugyanazon rétegen belül jelennek meg. A szerzők már korábban adtak egy lehetséges magyarázatot arra, hogy a neocortex különböző sejtrétegei miért létezhetnek. A 2-6 rétegek között jellemzően laterális összeköttetések jönnek létre, de a szerzők valószínűsítik, hogy ezek másfajta szekvenciák megtanulására alkalmasak. A hierarchikus memória modellek ugyanis meg kell, hogy különböztessék a hierarchiában felfelé folyó információt a hierarchiában lefele folyó információtól. A Bayes hálók elméletének tanúsága szerint ezt a két információfolyamot elkülönülten érdemes kezelni, ugyanakkor minden szinten kombinálni kell őket, hogy valamilyen állítást lehessen megfogalmazni arról, hogy mennyire bizonytalan a csomópont az által reprezentált információban. Mivel a szekvencia-memóriára szükség van mint az előrecsatolt irányban, mind a visszacsatolt irányban, ezért a szerzők véleménye szerint a 4-es és 3-as réteg előrecsatolt szekvenciákat, a 2-es és a 6-os réteg pedig visszacsatolt szekvenciákat jegyez meg. Az 5-ös rétegben pedig az információk összegzésére kerül sor. 6. Időzítés amikor megtanulunk egy dallamot énekelni, a dallam részben hanghosszúságinformációkból áll, és ez az információ hangonként változó. Hasonlóan, amikor egy verset, vagy tánclépést megtanulunk, a szekvencia minden elemének hosszára emlékezünk. Az előidézett szekvenciákat gyorsíthatjuk és lassíthatjuk, de a szekvenciaelemek abszolút hossza is eltárolásra kerül és felidézhető. A korábbiakban leírt memória modell nem teszi lehetővé a szekvencia elemek hosszának ilyen módon történő tárolását, és nem képes a felidézés sebességének változtatására. Ezért szükség van egy olyan általános mechanizmusra, amely a neocortex minden régiójában képes lehet a szekvencia-elemek hosszának kódolására. J. Hawkins On Intelligence c. könyvében vázlatosan javasolt egy lehetséges megoldást, amely arra épít, hogy az 5. réteg piramidális sejtjei a nem specifikus thalamus magvak felé adnak információt, amely magvak a neocortex első rétegének nyújtanak bemenetet, amelyek szinapszisokat hoznak létre a 2-es, 3-as és 5-ös réteg piramidális sejtjeivel. A valóságban létezik felső korlát arra vonatkozóan, hogy milyen hosszú hangokat tudunk sejtszinten megjegyezni. Ez a felső korlát kb. 1 másodperc. Ezért van, hogy a zenészeknek e fölött számolniuk kell. A Hawkins által kidolgozott modell lehetőséget nyújt egy ilyen felső korlát bevezetésére, ahogy a későbbiekben látni fogjuk. 7. Memória kapacitás a javasolt biológiai modell a szekvencia-memória kapacitásról is mond valamit. Vegyünk egy zenéhez kapcsolódó példát! Tegyük fel, hogy van 12 oszlop, és mindegyik áll 50 sejtből, és minden oszlop a nyugati zenében használt 12 hang egyikét tartalmazza. Egy ilyen memória képes lehet dallamok, vagy dallamfrázisok megtanulására, azonban létezik egy korlát a megtanult szekvenciák számára és hosszára vonatkozóan. Az egyik véglet, hogy 600 hangból álló dallamot tanulunk meg, amely dallamban 50-szer szólal meg mind a 12 hang. Ha kizárólag ebből az információból indulunk ki, akkor elmondhatjuk, 11
2. ábra. (a) - példa bemenet; (b) - két ismétlődő sorozat különböző kontextusokban; (c) - a b részábrán mutatott sorozatok megjegyzésének javasolt módja; (d)(e) - az állapotfelbontó algoritmus működés közben hogy a rendszer egyetlen dallamot tudott megjegyezni, de azt viszont autoasszociatív módon vagyis képes részeket is belőle felidézni, akár torzított formában is felismeri a részeit, és meg is tudja jósolni a soron következő hangokat. A másik véglet, hogy 100, darabonként 6 hangból álló szekvenciát tanul meg a rendszer. A lényeg, hogy a modellt így elképzelve korlátolt számú dallam megtanulására nyílik lehetőség. gy tűnhet, hogy a korábbiakban leírt memória modell nem lehet alkalmas mindezen információ tárolására. Azonban George [hivatk.] megmutatta, hogy a HTM ereje nem az egyes csomópontok szekvencia-memória kapacitásának, hanem a hierarchikus elrendezésnek köszönhető, hiszen az lehetővé teszi, hogy ugyanazon építőkövet sokféleképpen, más és más kombinációban fel tudjuk használni. 4.3.2. Az állapot-felbontó algoritmus (state-splitting algorithm) Az állapot-felbontó algoritmust a fentebb leírt kezdetleges modell inspirálta, és megfeleltethető annak. Sok egyéb módszerhez hasonlóan az állapot-felbontó algoritmus változó rendű Markov modellek generálására képes, amelyek sorozatokon belüli komplex 12
függőségeket képesek reprezentálni. Ezzel együtt az állapot-felbontó algoritmus az egyetlen ismert módszer, amely eleget tesz a felsorolt biológiai követelményeknek, és jól hozzáilleszthető a neokortikális anatómiához. További előnye, hogy kifejezetten egyszerűen megvalósítható. A módszert először Cormack és Horspool írták le 1987-ben, azonban ők adattömörítésre, és nem biológiai algoritmusok modellezésére használták. Az állapot-felbontás eltér a korábban leírt biológiai szekvencia-memóriától annyiban, hogy míg a biológiai modellben egy sejtoszlopból indultunk ki, amelyben a sejtek egy specifikus sorozathoz tartoztak, addig az állapot-felbontó modellben egyetlen állapotból indulunk ki, amelyet a szekvenciák tanulása közben felbontunk több állapotra. Az állapot-felbontás ugyanazt a célt éri el, mint a biológiai modell, de ezt úgy teszi, hogy csak a szükséges számú állapotot foglalja le, nem többet, nem kevesebbet. Az algoritmus bemeneti mintaként egyetlen állapottal indul el. Tanulás közben megfigyeli az állapotok aktivációját, és megszámolja az i-edik és j-edik bemenet közötti olyan összefüggéseket, amikor a j-edik bemenet közvetlenül az i-edik után aktív. A módszer akkor is működik, ha egy időpillanatban több bemenet is aktív. Az aktivációk sorozatát egy T Markov lánc tárolja amelyet egy T[i, j] mátrix reprezentál (ez megfelel a korábban leírt átmenet-mátrixnak). Az algoritmus folyamatosan megvizsgálja a T mátrixot, hogy azonosítsa azokat az állapotokat, amelyek több szekvenciának is részei. Minden ilyen állapotot felbont több állapotra annak érdekében, hogy mindegyik példány csak egyetlen szekvenciához tartozzon. Annak eldöntésére, hogy egy állapot több szekvenciához tartozik-e, az algoritmus azt vizsgálja meg, hogy több olyan állapot is létezik-e, amelyeket egy adott állapot gyakran követ. Cormack-tól és Horspooltól az algoritmus két paramétert vesz át: min_cnt1-et és min_cnt2-t. A t állapotot akkor bontja fel két új állapotra, ha létezik olyan s állapot, melyre fennáll a következő két feltétel:
∑
T[s, t] ≥ min_cnt1 T[i, t] ≥ min_cnt2
(5)
i,i̸=s
A felbontást követően úgy tekintjük, hogy a rendszer új t állapotban van, amikor korábban az s állapot volt aktív, egyébként pedig az eredeti t állapotot használjuk. Ezt követően, noha a rendszert még mindig elsőrendűként kezeljük, valójában implicit módon magasabb rendű. A 2 ábra az egész memória-modellről mutat példát.
5. Következtetés HTM-hálózatokban Általában véve, egy adott HTM csomópontba a gyermekcsomópontok felől érkező üzenetek arról adnak információt, hogy az adott gyermekcsomópont mennyire hisz abban, hogy a látott sorozatok egy adott Markov-lánc állapotai. A csomópont ezeknek az üzenetek hatására eldönti a benne található összes Markov láncról, hogy mennyire 13
3. ábra. A HTM-hálózat egy referencia-csomópontja szempontjából kicserélt üzenetek sorrendje, iránya és jelölése
4. ábra. A C koincidencia-mátrix és a segítségével felépített Markov láncok. tartja valószínűnek hogy éppen az a Markov lánc írja le a bejövő mintasorozatokat. Ezt az információt a csomópont felküldi saját szülőcsomópontjának, majd később kap egy olyan válaszüzenetet, amelyben a szülőcsomópont leírja, hogy ő mennyire hisz az adott csomópont Markov láncainak előfordulásában. Ebből az információból a csomópont visszafejti, hogy a gyermek-csomópontok Markov láncaiban mennyire hisz, ezt az információt pedig lefele irányban tovább küldi a gyermekcsomópontok felé. Az üzenetek sorrendjét, irányát, és továbbiakban használt jelölését a 3 ábra mutatja. A csomópont néhány belső állapotváltozója a 4 ábrán látható. A következőkben először analtikusan levezetjük a következtetés egyenleteit, majd áttekintjük a J. Hawkins által javasolt neurális megvalósítást, illetve annak biológiai valóságalapját.
14
5.1. A következtetés egyenletei A szakaszban a HTM-hálózatokra megvalósított bayesi következtetést írjuk le. A HTMhálózatok által megvalósított egyenletek Judea Pearl korábbi elméletének módosításával állnak elő. Ahogy a Bayes-hálók, úgy a HTM-hálózatok is elképzelhetők úgy, mint véletlen változók közötti kapcsolatokat tároló hálózatok. A HTM-hálózatok esetén ezek a véletlen változók a hálózat különböző szintjein megtanult koincidencia-mintákból és Markov láncokból állnak. A hálózatra adott bemenetet általában evidenciának nevezzük (ez lehet pl. egy új kép amit a látórendszer lát, vagy egy hallásért felelős HTM-re adott hang). A hálózat ezek után ezt az evidenciát terjeszti tovább, és idővel minden egyes csomópontban kialakul egy olyan – saját belső állapotok feletti eloszlás – amely realisztikus módon tükrözi, hogy az egyes csomópontok mennyire biztosak abban, hogy az evidenciák amiket látnak, az adott modell következményeként állnak elő. A következtetés egyenleteit két esetre mutatjuk be. Az első esetben (statikus eset) minden evidencia kizárólag a jelenlegi időpillanatból származhat, és a múlt nincs befolyással a következtetésre. A második esetben (dinamikus eset) az evidenciák teljes története befolyással van a következtetésre. 5.1.1. Következtetés statikus esetben Jelölések A levezetések során az alábbi jelöléseket használjuk: • C k – A k-adik csomópont koincidencia-mintáinak random változója. Kontextustól függően jelölheti a k-adik csomópont által eltárolt koincidencia-mintákat is • cki – A k-adik csomópont i-edik koincidenciája • Gk – A k-adik csomópont Markov láncai felett értelmezett random változó. Kontextustól függően a k-adik csomópont által megtanult Markov láncok halmazát is jelölheti • gik – A k-adik csomópont i-edik Markov lánca • e− és − e – Az csomópont felé alulról érkező evidenciák. Az evidencia részét képezi a csomópont leszármazottai által látott összes evidencia. • e+ és + e – A csomópont felé felülről érkező evidenciák. Az evidencia részét képezi az összes olyan csomópont által látott evidencia, amely nem leszármazottja ennek a csomópontnak. • P (e− |Gk ) – Az alulról érkező evidenciáknak a k-adik csomópontban eltárolt Markov láncoktól függő feltételes valószínűsége. Ez egy vektor, melynek hossza megegyezik a csomópontban eltárolt Markov láncok számával. • P (e− |gik ) – Az elulról érkező evidenciának a k-adik csomópontban eltárolt i-edik Markov lánctól függő feltételes valószínűsége. A valószínűség értéke skalár. 15
5. ábra. A HTM-hálózat egy szegmense. • P (e− |C k ) – Az alulról érkező evidenciának a k-adik csomópontban eltárolt koincidenciamintáktól függő feltételes valószínűsége. Ez egy vektor, melynek hossza megyegyezik a csomópontban eltárolt koincidencia-minták számával. • P (e− |cki ) – Az alulról érkező evidenciának a k-adik csomópontban eltárolt i-edik koincidencia-mintától függő feltételes valószínűsége. A valószínűség értéke skalár. • P (C k |Gk ) – Mátrix, melynek sorai megegyeznek a k-adik csomópontban eltárolt Markov láncokkal, és oszlopai megegyeznek a k-adik csomópontban eltárolt koincidenciamintákkal. A mátrix i-edik sorának j-edik oszlopa a P (cj |gi ) valószínűséget tartalmazza, amely azt a valószínűséget adja meg, hogy a cj koincidencia-minta jelenik meg a bemeneten, amikor a gj Markov lánc modellezi a beérkező koincidenciaszekvenciáit. • λk – A k-adik csomópont által a szülőcsomópontja felé elküldött üzenet. Az üzenet egy vektor, amely arányos a P (e− |Gk ) valószínűségekkel. λk (r) a vektor r-edik komponense, amely komponens arányos a P (e− |grk ) valószínűséggel. Az összes leírt változó-jelölésben a felső index a csomópontot jelöli. A későbbiekben a felsőindexek használatától eltekintünk, amennyiben egyértelmű, hogy melyik csomópontról van szó. A csomópont memóriájának tartalma. Minden egyes csomópont memóriája a megtanult koincidencia-mintákból és a megtanult Markov láncokból áll. A ci koincidencia-minta a gyermek-csomópontok Markov láncainak valamilyen együttes aktiválását jelöli. A koincidencia-minta elképzelhető úgy, mint egy [rim1 , ..., rimM ] vektor, ha M darab gyermeke van az adott csomópontnak. A statikus esetben a következtető algoritmusnak szüksége van a P (C|G) mátrixra, melyet a csomópont úgy számít ki, hogy normalizálja minden egyes sorban az adott Markov lánchoz tartozó koincidencia-minták előfordulásának számát.
16
6. ábra. Az üzenetek kiszámításának blokk-diagrammja statikus esetben. A következtetésben végrehajtott számítások A 5 ábrában egy 3 csomópontból álló HTM-hálózat-szegmens látható. Az ábrán látható k csomópont szemszögéből írjuk le a számításokat. A csomópontnak két gyermekcsomópontja van: m1 és m2 . Az általánosság érdekében azonban feltételezzük, hogy összesen M gyermeke van: m1 , m2 , ..., mM . A csomópont tehát M darab üzenetet kap a különböző gyermekeitől. Az mi -edik csomóponttól kapott üzenetet λmi -vel jelöljük, ahol: λmi ∝ P (e− |Gmi )
(6)
A hálózatban felfele illetve lefele irányba küldött üzenetek kiszámításának blokkdiagrammja a 6 ábrán látható. A következőkben az ábrában szereplő blokkokat tekintjük át. Felfele irányba mutató üzenetek számítása A kapott λ üzenetek segítségével a csomópont először kiszámítja, mennyire biztos saját koincidencia-mintáiban. Ez az y-nal jelölt érték arányos a P (e− |C) valószínűséggel. Az y vektor i-edik komponense a ci koincidencia-mintának felel meg. Általában véve ezt a koincidencia-mintát egy M -hosszú vektorként képzelhetjük el. Ekkor:
y(i) = α1
M ∏
m
λmj (ri j )
(7)
j=1
ahol α1 egy tetszőleges skálázást jelent, melynek értékét általában a számítási platformból eredő kényszerek határozzák meg (pl. lebegőpontos számábrázolás alulcsordulása). 17
A fenti számításban feltételezzük, hogy a gyermekektől származó evidenciák egymástól függetlenül összevonhatók, ha adva vannak a csomópont koincidencia-mintái. Mivel ∏M − − mi P (e |ci ) = j=1 P (e |grmi ) és mivel λmi arányosak a P (e− |Gmi )-vel minden egyes i értékre, ezért y biztosan arányos P (e− |C) valószínűséggel. A csomópont ezek után kiszámítja felfelé küldött üzenetének értékét. A kimenő λ üzenet értéke arányos kell, hogy legyen a P (e− |G) valószínűséggel, ezért egy Ng -hosszú vektorként képzelhető el, ahol Ng a csomópont által eltárolt Markov láncok száma. A vektor i-edik komponense a következőképpen számítható: k
λ (i) = Mivel P (e− |gi ) =
∑Nc j=1
Nc ∑
P (cj |gi )y(j)
(8)
j=1
P (cj |gi )P (e− |cj ), ezért λk biztosan arányos P (e− |Gk )-val.
Lefele irányba mutató üzenetek számítása A visszacsatolási számítások bemenete a felülről érkező π k üzenet. A lefelé küldendő üzenet kiszámítása közben a csomópont kiszámítja a saját magára érvényesnek tartott valószínűség-eloszlást (ez az ún. belief ), úgy mint a koincidenciák felett értelmezett felfelé jövő eloszlás, és lefelé érkező eloszlás szorzatát. ′ A csomópont először kiszámítja a π értékét: π k (i) λk (i) Ebből pedig kiszámítja a lefele érkező valószínűségeloszlást: ′
π k (i) =
z(i) =
∑
(9)
′
P (ci |gj )π (j)
gj ∈G
(10)
Ezt követően, a csomópont ci koincidencia-mintába vetett hite: Bel(ci ) = y(i) × z(i)
(11)
A gyermekek felé küldött π üzeneteket ebből az eloszlásból, illetve a koincidenciaminták leírásából lehet számítani: gyermek π gyermek (gm )=
∑
I(ci )Bel(ci )
ci ∈C
(12)
ahol { gyermek komponense ci -nek 1 ha gm I(ci ) = 0 különben
(13)
A számítások leegyszerűsítése érdekében a 8, 10 és a 12 egyenletekben összegzés helyett használhatunk maximálást. 18
7. ábra. Az üzenetek kiszámításának blokk-diagrammja dinamikus esetben. 5.1.2. Következtetés dinamikus esetben A következőkben áttekintjük a következtetést dinamikus esetre is, amikor a látott evidenciák teljes története kihatással van a következtetésre. Természetesen a teljes múlt figyelembe vétele nagymértékben megnöveli a számítási igényt, ezért néhány egyszerűsítő feltételezése mellett egy dinamikus programozás nevű technikát fogunk alkalmazni annak érdekében, hogy a múlt hatása egyetlen – ciklikusan frissített – változó értékében tükröződjön. A dinamikus esetben elvégzett műveletek blokk-diagrammja a 7 ábrán látható. Jelölések A levezetések során az alábbi jelöléseket használjuk (csak azokat a jelöléseket soroljuk fel, amelyek eltérnek a korábbiaktól): • et0 ,− et0 ,+ et0 – az adott változó összes lehetséges szekvencia-kombinációja a 0. és t. időpillanatok között • αt , Belt , yt , βt – a belső változók értéke időpillanatoként változik, ezért indexeljük őket. Az α és β változók a dinamikus programozáshoz használatos változók lesznek. • c(t) – A t-edik időpillanatban potenciálisan előforduló összes lehetséges koincidenciaminta. Hasonló jelölést használunk a Markov láncokra (csak ott g-t használunk). • ci (t) – Az i-edik koincidencia-mint a t-edik időpillanatban. k , Gkt−1 ) – A csomópont összes Markov láncán belüli összes átmenetet • P (Ctk |Ct−1 leíró valószínűség.
19
8. ábra. Az üzenetek küldésének és érkezésének időzítése a k-adik csomópont szempontjából Koincidencia-minták és Markov láncok A dinamikus eset koincidencia-mintái szemantikájukban és szintaktikájukban megegyeznek a statikus esetben használt koincidenciamintákkal. Azonban, míg statikus esetben nullarendű Markov láncokat használtunk, addig a dinamikus esetben elsőrendű Markov láncokat használunk a világ modellezésére. A korábbiak során tárgyalt állapotfelbontó algoritmus használata azt eredményezi, hogy elsőrendű Markov láncokkal tetszőleges rendű Markov láncot tudunk implicit módon reprezentálni. A Markov láncok átmeneteit – a statikus eset P (C|G) mátrixa helyett – most egy, k a P (Ctk |Ct−1 , Gkt−1 ) valószínűségeket tartalmazó adatstruktúrában tároljuk. A következtetés során végrehajtott számítások A következtetési egyenletek levezetésekor néhány egyszerűsítő feltételezéssel élünk, elsősorban az üzenetek időzítését illetően. A 8 ábrán a k-adik csomópont szempontjából láthatjuk az üzenetek időzítését. Feltételezzük, hogy a HTM modellnek megfelelően alulról minden időpillanatban, míg felülről csak minden τk -adik időpillanatban érkeznek üzenetek, ahol τk a csomópont időállandója. Az alulról jövő üzenetekről feltételezzük, hogy noha minden időpillanatban új üzenet áll rendelkezésre, valójában egyszerre érkezik meg τk darab üzenet, minden τk -adik időpillanatban. Tegyük fel, hogy a t = 0 időpillanatban jön egy üzenet felülről, és ugyanekkor az összes gyermektől is érkezik felfele jövő üzenet. A következőkben levezetjük a t = 0-tól t = τk időpillanatig a belső állapotok értékét, illetve a csomópont kimeneteit a maradék – alulról érkező üzenetek – függvényében.
20
Belt (ci ) = P (ci (t)|− et0 ,+ e0 ) ∑ ∑ 1 = P (− et0 |ct0 , gr ,+ e0 )P (ct0 , gr |+ e0 ) t + t − P ( e0 | e0 ) k t−1 gr ∈G c0
∑ ∑ 1 + P (g | e ) P (− et0 |ct0 , gr ,+ e0 )P (ct0 , gr |+ e0 ) r 0 t t P (− e0 |+ e0 ) gr ∈Gk c0t−1 ∑ P (gr |+ e0 )βt (ci , gr ) ∝
=
(14)
gr ∈Gk
ahol a βt dinamikus programozási változót a következőképpen definiáljuk: βt (ci , gr ) =
∑
P (− et0 |ct0 , gr ,+ e0 )P (ct0 , gr |+ e0 )
ct−1 0
(15)
Ekkor a frissítési képlet a következő: βt (ci , gr ) = P (− et |ci (t))
∑
P (ci (t)|cj (t − 1), gr )βt−1 (cj , gr )
(16)
cj (t−1) inC k
A kezdőállapot β0 (ci , g : r) = P (−e0 |ci (t = 0))P (ci (t = 0)|gr ,+ e0 ). A kezdőállapotot felfoghatjuk az egyes Markov láncok kezdeti eloszlásaként. A lefelé küldendő üzenetek kiszámításának menete ezek után, a korábbiak felhasználásával: gyermek π gyermek (gm )=
∑
I(ci )Bel(ci )
ci ∈C
(17)
ahol { gyermek komponense ci -nek 1 ha gm I(ci ) = 0 különben A felfelé küldendő üzenetek kiszámításának menete a következő:
21
(18)
P (− et0 |gr (t)) =
∑
P (− et0 , ct0 |gr )
ct0
=
∑
P (− et0 |ct0 )P (ct0 |gr )
ct0
=
∑
t−1 − t−1 P (− et−1 0 |c0 )P ( et |ct )P (c0 , ct |gr )
ct0
=
∑
t−1 t−1 P (− et |ct )P (ct |ct−1 , gr )P (−et−1 0 |c0 )P (c0 |gr )
ct0
=
∑
t−1 t−1 P (− et−1 0 |c0 )P (c0 |gr )
c0t−2
=
∑
ci
P (ci (t)|cj (t − 1), gr )
cj ∈C k
ci ∈C k
∑
∑
P (− et |ci (t))
(19)
∑
P (− et |ci (t))
∈C k
cj
P (ci (t)|cj (t − 1), gr )αt−1 (ci , gr )
∈C k
Az α dinamikus programozási változót a következő képlettel számíthatjuk ki: ∑
αt (ci , gr ) = P (−et |ci (t)) cj
P (ci (t)|cj (t − 1), gr )αt−1 (cj , gr )
(20)
(t−1)∈C k
és a kezdeti érték: α0 (ci , gr ) = P (−e0 |ci (t = 0))P (ci (t = 0)|gr )
(21)
A felfele küldött üzenet kiszámítása a következő képlet szerint történik: λ(gr ) = P (− et0 |gr (t)) ∝
∑
αt (ci , gr )
(22)
ci (t)∈C k
5.2. Neurális implementáció Az alfejezetben bemutatott neurális implementáció egy képzeletbeli megvalósítás, amely figyelembe vesz néhány alapvető biológiai kényszert, ezért biológiailag realisztikusnak mondható. A későbbiek során külön tárgyaljuk, hogy hogyan illeszkednek ezek a modell-megvalósítások a neocortex valódi anatómiájához. Az implementációt a 3 és 4 ábrákon látható referencia-csomópont szempontjából írjuk le.
22
5.2.1. Koincidencia-minták valószínűségének megállapítása A HTM csomópont felé alulról érkező üzenet a gyermek-csomópontok Markov láncai fölötti valószínűség-eloszlásként értelmezendőek. Egy adott gyermek felől érkező vektor hossza a gyermekben levő Markov láncok számával egyezik meg. A 4 ábrán látható C mátrix minden sora egy lehetséges koincidencia-minta. Az első sor például azt az esetet mutatja be, amikor az egyik gyerekben az első, a másik gyerekben pedig a harmadik Markov lánc aktív. Természetesen a gyermek csomópontok felől érkező információ zajos és bizonytalan, ezért a csomópont a saját koincidencia-mintáinak aktivitásáról is csak bizonytalan döntést hozhat. Ezt a döntést a t időpillanatban az alábbi egyenlet alapján hozza meg:
9. ábra. Koincidencia-minták valószínűségének megállapításához használt neurális implementáció.
5.2.2. Saját Markov láncok valószínűségének meghatározása A következő lépésben a cél annak a kiszámítása, hogy a csomópont mennyire hisz abban, hogy az egyes Markov láncai modellezik a bejövő evidenciákat. Kiszámítandó tehát a P (− e0 ,− e1 , ...,− et |gi ) eloszlás minden egyes gi Markov láncra. Ennek az eloszlásnak a pontos kiszámításához az idő elteltével exponenciálisan növekvő számítási kapacitásra lenne szükség, ezért inkább egy dinamikus programozáson alapuló közelítő módszert célszerű alkalmazni. A korábbiak alapján a kiszámítandó dinamikus változó értéke a következő: αt (ci , gr ) = P (−et |ci (t))
∑
P (ci (t)|cj (t − 1), gr )αt−1 (cj , gr )
(23)
cj (t−1)∈C k
Ez az érték pedig viszonylag egyszerűen meghatározató a 10 ábrán látható neurális implementáció segítségével. Az ábrán szereplő köralakú neuronok a Markov láncok szekvencia-memóriáját valósítják meg. A köralakú neuronok kimenetei egy időegységnyi késleltetéssel jelennek meg a hozzájuk kapcsolódó neuronok bemenetén (az idő finomabb felbontású ábrázolásáról a későbbiek során lesz szó). 23
10. ábra. Neurális megvalósítása a Markov láncok valószínűségeinek, az evidenciák teljes múltja alapján történő kiszámításának. Egy adott oszlopban elhelyezkedő köralakú neuronokat ugyanaz az alulró érkező evidencia "hajtja meg" (ezeket az evidenciákat a rombusz-alakú sejtek jelölik). Magyarán: minden oszlop egy adott koincidencia-mintát reprezentál. Az alulról érkező bemeneteken kívül laterális bemenetek is érkeznek a sejtoszlopokban elhelyezkedő sejtekhez. Ezek olyan neuronok felől érkeznek, amelyek ugyanazon Markov lánchoz tartoznak. Ezek a laterális kötések tehát az adott neuronnak egy szekvencián belüli helyét jelölik ki. A ci gi -vel jelölt köralakú neuron a gi Markov lánc kontextusán belül a ci koincidencia-mintát jelöli. A hálózat köralakú neuronjai mind ugyanazt a számítást végzik: az alulról érkező bemenetet a laterális bementek súlyozott összegével megszorozzák. Ezért a ci és gi által jellemzett neuron kimenete a következő: αt (ci , gr ) = y(i)
∑
w(i, j)αt−1 (cj , gr )
(24)
j
Ez az egyenlet egy-az-egyben megfeleltethető a 23 egyetlettel. A folyamat végén a téglalap-alakú neuronok összegzik a bementükre érkezett jeleket (az összes, az adott Markov lánchoz tartozó köralakú neuron kimenetének összegét számítja ki). 5.2.3. Koincidencia-minták eloszlásának meghatározása A HTM csomópontok az alulról illetve felülről érkező üzenetek, valamint a sorrendiség segítségével állapítják meg, mennyire hisznek az alulról jövő evidenciák zajmentességében. A csomóponthoz felülről érkező vektor hossza azonos a csomópontban tárolt Markov láncok számával. A β dinamikus programozási változó számításának módja hasonló az α változóéhoz. Az egyetlen különbség a kettő használatában egy szorzótényező – a P (gk |+ e0 ) tényező 24
11. ábra. Neurális kiszámításához.
megvalósítás
a
koincidenciák
utólagos
valószínűségének
– ezért a neurális megvalósítás is nagyon hasonló. A megvalósítás a 11 ábrán látható. Vegyük észre, hogy a köralakú neuronoknak most egy felülről érkező szorzótényezőt is fel kell dolgozniuk – ez megfelel a P (gk |+ e0 ) valószínűségnek. Az ábrán levő ötszög-alakú neuronok az ún. vélekedési (belief) neuronok. A neuronok feladata, hogy összegezzék mindazon sejtek kimenetét, amelyek ugyanazon oszlopban, más és más Markov lánchoz tartoznak. Ez megfelel a β változók összegzésének. Fontos megjegyezni, hogy a 10 ábrán épp ellenkezőleg, az azonos Markov láncokhoz tartozó sejtek kimenetei kerültek összegzésre. 5.2.4. Gyermek-csomópontoknak küldött üzenetek meghatározása Az utolsó lépés a vélekedési üzeneteknek a gyermekenek küldendő üzenetekre történő fordítása. Az üzenet számítását a 17 képlet írja le. A művelet bemenetét egy vélekedési vektor alkotja, kimenetét pedig egy-egy π üzenet, melyek mindegyike egy adott gyermekcsomópont felé terjed tovább. Az üzenetek azt mondják meg a gyermek csomópontok számára, hogy az adott csomópont miként vélekedik az ő Markov láncairól. A számításhoz használt neurális megvalósítás a 12 ábrán látható. A bemeneti vélekedési vektort a hatszög-alakú sejtek kapják meg. Az ábrán – lévén hogy a csomópontnak két gyermeke van – két hatszög-alakú sejtekből álló csoport látható. Egy hatszögalakú sejthez egy Markov lánc tartozik a gyermekcsomópontban, és fordítva. A bemenet oly módon van összekötve a hatszög-alakú sejtekkel, hogy csak azon Markov láncokhoz tartozó hatszög-alakú sejtek kapják meg a bementek, amely Markov láncok szerepelnek az adott koincidencia-mintában.
25
12. ábra. A lefelé továbbterjesztett üzenetek kiszámításához használt neurális megvalósítás 5.2.5. Időzítéssel kapcsolatos tényezők figyelembe vétele Ahogy korábban említettük, a Markov láncok minden egyes időpillanatban állapotot változtatnak, ezért csak diszkrét és fix-sebességű idő modellezésére képesek. Ennek legfőbb garanciája, hogy a 10 ábrán a laterális kötéseken mindig egy időegységnyi késést szenvednek a kimenetek, és így pont akkor jelennek meg a fogadó sejtek bemenetén, amikor az alulról érkező evidenciák is megérkeznek. Ha feltesszük, hogy a laterális kötéseket fogadó sejtek hosszabb ideig megtartják az onnan érkező bemeneteket, akkor belátható, hogy az alulról érkező evidenciák ennek a tartási időnek megfelelő késleltetést szenvedhetnek. Egy ilyen struktúrával pont azt lehetne elérni, hogy elfogadhatóvá váljon az alulról érkező bemenet, ha egy adott időablakon belül érkezik meg. Ennek eléréséhez csupán azt kell megvizsgálni, hogy a dinamikus programozáshoz használt egyenletek ne időegységekben, hanem eseményvezérelt módon fejezzék ki a következő állapotokat. A korábban bemutatott neurális hálózatokat pedig annyiban kéne csak megváltoztatni, hogy legyen beléjük építve egy olyan mechanizmus, amely képes fenntartani adott ideig a laterális bementeket, és az eseményérzékeléshez képes megállapítani, hogy mikor érkezik meg a bementére újabb evidencia. Egy kicsit más kérdés a konkrét időhosszaknak a modellezése. Ha csak a korábban említett zenei példára gondolunk, látszik, hogy nem feltétlenül az időablakos modellnek kell rendelkezésre állnia, hanem konkrét időhosszak modellezésére is szükség lehet. Számos módszer létezik arra, hogy Markov láncokban létezzen fizikai idő. Ezek a módszerek azonban azért problematikusak, mert hurkokat visznek a Markov láncokba, amely hurkok miatt nagyon nehéz kezelhető eloszlás-függvényt megfogalmazni (az exponenciális időbeni eloszlás alkalmazása ugyanis nehézkes fizikai jelek modellezése esetén). Ezért Hawkins feltételezi, hogy egy külső időzítőegység jelzi az egyes csomópontok felé az idő telését valamilyen rendszerszintű időérzékelés alapján. Ezek alapján az állapotváltozásokhoz tartozó számítások két részből kell, hogy álljanak: az egyik a korábbiakban tárgyalt eloszlásokkal foglalkozik, időtől függetlenül; a másik pedig azt határozza meg, hogy mikor lesz aktív a következő vélekedés-eloszlás.
26
Hivatkozások [1] D. George. How the brain might work: A hierarchical and temporal model for learning and recognition. PhD thesis, Stanford University, 2008. [2] D. George and J. Hawkins. Towards a mathematical theory of cortical microcircuits. PLoS Computational Biology, 5(10), 2009. [3] J. Hawkins, D. George, and J. Niemasik. Sequence memory for prediction, inference and behavior. Philosophical Transactions B of the Royal Society, 364(1521):1203– 1209, 2009. [4] Y.C Ho and D.L. Pepyne. Simple explanation of the no-free-lunch theorem and its implications. Journal of Optimization Theory and its Applications, 115(3):549–570, 2002. [5] V.B. Mountcastle. An organizing principle for the cerebral function: the unit module and the distributed system. In The Mindful Brain. MIT Press, 1978.
27