Neuronhálók újratöltve: A mátrix memória

2023. november 21. kedd

Az örvényféregnél megtanultuk, hogyan képes egy egyszerű hálózat a szinaptikus súlyokban (táblázat=súlymátrix) hordozott memóriája segítségével dönteni. A kutyánál, majd a tengeri nyúlnál és a csikóhalnál megtanultuk hogyan tanulnak az idegsejtek. Most úgy csinálunk, mint a barkácsoló evolúció és megtöltjük az idegsejt hálózatokat tanulós szinapszisokkal, majd megnézzük mi történik.

Teuvo KohonenEzt játszotta el a szigorú tekintetű Teuvo Kohonen a nyolcvanas években a Helsinki Technikai Egyetemen matematikai idegsejtekkel, és egy könnyen befogadható leírását adta, hogyan lehet egy hálózatban információt tárolni. Ráadásul oly módon, hogy a választ ne kelljen keresgélni, hanem a beküldött mintázat (kérdés) gyorsan, magától előhívja azt, amit korábban hozzá párosítottak (válasz). Asszociatív, elosztott mátrix memóriának hívják az eljárást, mely nemcsak a mesterséges idegsejthálózatok fejlődéséhez, de az idegrendszer megértéséhez is jelentősen hozzájárultak. A ChatGPT és egyéb Nagy Nyelvi Modellek (LLM) praktikusan ilyen hatalmas táblázatokból keresik meg a hosszú mintázat vektorokban feltett kérdésekre a választ.


Miért hívják ezt a táblázatot asszociatív, elosztott mátrix memóriának? A matematikában a táblázatokat mátrixoknak, a sorba vagy oszlopba rendezett számokat pedig vektoroknak hívják. A táblázat egy-egy eleme egy kapcsolatnak felel meg a beleírt szám pedig a sorok és oszlopok közötti kapcsolat erősségének fele meg.
És mitől elosztott? Attól, hogy az információ a kapcsolati súlyokban van szétszórva, nem köthető pontosan egyetlen táblázat elemhez sem a tárolás. Hasonlít egy hologramra, ahol a 3Ds kép egy 2Ds fotólemez teljes felszínén elkenve tárolódik. A hologram sem romlik el, ha a lemez sérül, hanem a sérülés mértékével arányosan csökken a visszanyert kép (információ) élessége. Hasonló történik a mátrix memória esetében, ahogy egyre több hiba halmozódik úgy romlik lassan az előhívás pontossága.
A kiinduló, üres mátrix

 

A következőképpen működik. Vegyünk egy táblázatot, melynek sorai és oszlopai vannak (jó, ha ugyanannyi sor, mint oszlop, de nem kötelező). A táblázatot kezdetben töltsük fel 0-kkal.

Vegyünk ezek után két 0-t és 1-et tartalmazó számsort. Ez lesz a két minta, amit egymáshoz akarunk párosítani.
A táblázat mellé egy oszlopba írjuk be az egyik mintát, fölé egy sorba a másikat. Ezek után menjünk végig a táblázat összes elemén és ahol a sor és az oszlopvég is 1-et mutat ott a 0-át írjuk át 1-re, vagy ha már 1 van akkor hagyjuk ott.

Az aktív sorok és oszlopok metszéspontjában a mátrix értéke 1-re vált
Idegsejtes megvalósítás: Az aktív keresztező axonok és denritek metszéspontjában található szinapszisok a Hebb szabály alapján megerősödnek. De mi köze mindennek az agyhoz? Az örvényféregnél ugye már használtunk hasonló táblázatot. Itt a függőlegesen álló dendritű idegsejtek dendritjeire merőlegesen futó axonok alkotnak egy szinapszis rácsot, táblázatot, mátrixot. Az is ismerős lehet, hogy az az elem fordul 0-ból 1-be, ahol az axon és a dendrit is aktív, ez az az asszociatív Hebb szabály. Ha hálózatként képzeljük el a Kohonen mátrixot, a sejtek két helyről kapnak inputokat az oszlopok mentén (X) minden egyes sejt egy erős (detonátor, a sejtet mindenképpen kisütő) szinapszistól, illetve a bemeneti axonoktól, melyek a sorok mentén futnak (Y). Egy adott a sorokra és oszlopokra érkező bemeneti mintázat esetében azok a szinapszisok kapcsolnak 0-ról 1-re (a Hebb szabály szerint), amelyeknél a sejt és rá érkező axon is aktív.
 
A sorokba érkező értékek a mátrix alapján összegődnek az oszlopok alján (világos szürke), majd osztás után előállnak a helyes 0/1 értékek (sötétebb szürke). De mire jó ez? Nézzük meg mi történik, ha a sorok mentén beérkezik az eredeti vektor-pár egyike (Y1). Az ingerek beterjednek és összeadódnak. A gyengén szürkített dobozokban az egyes oszlopokban keletkezett serkentések értéke látható. Ebből egy kimenetet kell előállítani, ami 0/1 lehet. Kohonen azt találta, ki, hogy ezt az összeget (sejtre érkező serkentésnek felel meg) el kell osztani az aktív bemenetek számával, jelenleg 2, és azokban az oszlopokban lesz a kimenet 1, akiknél ez az érték nagyobb vagy egyenlő, mint 1.
 
Ha ezt lefuttatjuk a táblázaton akkor az Y1 bementre megjelenő mintázat (a sötétszürke dobozokban) az X1 vektor lesz. Szuper, helyesen előhívtunk!

 

Próbáljunk meg egy másik mintázat vektor párt tanítani: X2 és Y2. Ezzel újabb szinapszisok billennek át 0-ból 1-be (vastagon szedett 1-esek).

A második vektorpár eltárolása

Ha beadjuk aY1 vagy Y2 vektort a hálózat helyesen hívja elő a hozzá tartozó X1 vagy X2 vektort. Itt látszik, hogy a helyes előhíváshoz szükség van az osztásra (gátlásra), hiszen 0, 1 és 2 kettő is előfordul oszlopösszegenként (serkentésként).

Y1 és Y2 bemenet helyesen hívja elő az X1 és X2 kimenetet

És itt látszik mire való az osztás hókuszpókusz: hogy helyesen tudjunk előhívni akkor is, amikor már több vektorpárt megtanult a mátrixunk. Az idegsejtes megközelítésben a beérkező serkentéssel arányos gátlásnak kell érkeznie a sejttestre, így csak az a sejt sül csak ki, akire megfelelően erős serkentés érkezett. Az örvényféreg döntése esetében a sejtek kimenetével arányos visszacsatot gátlást adott egy gátlósejt, hogy csak egy kimeneti sejt lehessen aktív. Itt egy másik gátlósejt elrendezésre van szükség, az előrecsatolt gátlósejtre, aki a serkentő bemenetekkel arányos gátlást küld vissza a kimenő sejtekre és ezáltal biztosítja a helyes előhívást.

Gátlástípusok. Baloldalt a visszacsatolt gátlás. Ez biztosította az örvényféreg döntése esetében, hogy egyetlen kimenet legyen aktív. A körel jelölt gátlósejt az összes serkentősejttől megkapja a kimenetüket és mindegyik sejtet gátolja. Csak a legerősebben serkentett marad aktív. Jobboldalt az előrecsatolt gátlás, mely biztosítja hogy a helyes kimeneti mintázat jelenjen meg több tanulási ciklus után is. A kerek gátlósejt minden bemenetet megkap és ezzel arányos mértékben gátolja a serkentő sejteket.

Ezt a tanítást addig lehet folytatni, amíg a mátrixnak túl sok eleme nem lesz aktív.

A harmadik vektorpár (X3-Y3) eltárolása után az előhívás még helyes

Egy idő után még ennek a fenti ravasz (osztás / előrecsatolt gátlás) megoldásnak ellenére sem lehet a tanítást tovább folytatni. Ugyanis a memória telítődik, bármely bemenet túl sok kimenetet fog aktiválni, azaz hibás vektorok jelennek meg a kimeneten.

A negyedik vektorpár (X4-Y4) még helyesen hívódik elő, de egy már egy korábbi vektor (X3) hibás előhívását okozza.

Azt, hogy hány mintázat (vektor)-párt tudunk társítani függ attól, hogy a vektorok elemei közül mennyi aktív. Minél kevesebb elem 1-es, minél ritkásabb, kevésbé telített a bemeneti vektor, annál több párt tudunk társítani. Azaz, ha egy idegsejt háló jól akar tanulni akkor a mintázatok kódolására egy ritka (angolul sparse) kódolást kell használnia. Mint azt majd később bemutatjuk az agykéreg asszociációs területei ilyen kódolást használnak (az egyidőben aktív idegsejtek aránya jóval 10% alatt van).


A MM-ek további ügyes dolgairól a következő bejegyzésben.

 

Szerző: Gulyás Attila

Korábbi hozzászólások
Még nincsenek hozzászólások
Új hozzászólás
A hozzászólások moderáltak, csak az Admin jóváhagyása után jelennek meg!