Ha nem ismerjük eléggé az agyunkat,akkor hogy tudunk pl. mesterséges neurális hálózatot csinálni?
Mert annyira azért ismerjük, hogy valami hasonlót össze tudunk dobni.
Na, azért a teljesítménye pár nagyságrenddel alatta marad.
Azért azt tudjuk, hogy mondjuk az ember szemében vannak receptorok, mikor ránéz a papírlapra, amin egy 5-ös szám látható, akkor a receptorok ingerei befutnak az agyba, ott a neuronok komplex hálózatán „átfutva” aztán valahol megjelenik az, a gondolat, hogy „5”. Azt is tudjuk, hogy az agy működése során a neuronok hálózata nem egy fix valami, bizonyos neuronok között megerősödnek, bizonyos neuronok között meg elhalnak kapcsolatok.
És ennyi már elé is volt, hogy csináljuk valami hasonlót. Egyszerűsítsük le a dolgot rétegekre. Egy-egy rétegben van valamennyi „neuron”, amit összekötünk az előző és következő réteg neuronjaival. A bemenő neuronréteg a kép pixelei lesznek. A kimenő neuronréteg meg 10 neuronból áll, ami 0-tól 9-ig reprezentálja számjegyeket. Aztán kezdjünk el belapátolni képeket és hozzá tartozó számjegyeket. Ez alapján a neuronok közötti kapcsolatot erősítsük, vagy gyengítsük az alapján, hogy a megfelelő kimenet felé vezetnek-e. Ha nagyon leegyszerűsítjük a dolgot, akkor azt várjuk, hogy az első réteg neuronjai olyan részleteket fognak reprezentálni, mint egy kis függőleges vonal, egy negyedkörív, stb… A következő réteg neuronjai ezekből építkezve olyan dolgokat fog reprezentálni, mint félkör, két volna metszése, stb… A végén ezekből szépen eljutunk a számjegyekig.
Egy hagyományos programnál a programozónak kellett megmondani, hogy milyen algoritmus alapján jusson el a pixelekből a program a számjegyig, mint kimenetig. Egy ilyen program annyira jó, amilyen kreatív volt a programozó, illetve akárhányszor is ismertetsz fel vele számjegyeket, a program megbízhatósága ugyanolyan marad, ugyanarra a bemenetre ugyanazt a kimenetet fogja adni. A neurális hálózat esetén viszont az „algoritmus” is tulajdonképpen adat, a programozónak nem kell kitalálnia, hogy hogyan lesznek pixelekből számjegyek, majd a neurális hálózat megtanulja ennek a módját. Minél több adattal tanítják be, annál megbízhatóbban fog számjegyeket felismerni.
Ez csak nagyon nagyon vázlatosan és leegyszerűsítve hasonlít az emberi agy működésére, kb. annyira, mint az ember arc a :-) karaktersorozatra. Nyilván vannak aztán ennél komplexebb felépítésű neurális hálózatok is, de ezek fejlesztése már kevésbé az agy működéséből fakad, hanem más, matematikai természetű megfontolásokból. Ezek is csak annyiban hasonlítanak az agyra, hogy az információt nem egy lineáris, fix algoritmus dolgozza fel, nem is valamiféle statisztika, hanem egy önmagát a tanulással folyamatosan finomhangoló hálózat.
A bonyolultabb neurális szimulációk már kezdik szimulálni a neuronhálózat biológiai "extráit" is.
Például azt, hogy nem tisztán digitális a rendszer, azt, hogy egyes neuronok nem triggerelhetőek egymás után akárhányszor, azt, hogy működésükre kémiai hatások is befolyással vannak stb.
Szóval a különböző módokon bevitt "káosztényezők" hatásait is próbálják szimulálni. Ennek megfelelően ugyanazon inputokra nem feltétlenül mindig tök ugyanaz az output.
Persze ez még borzalmasan messze van az emberi agy komplex működésétől. De épen az a lényeg, hogy kisebb egységei felől közelíti azt.
Az agy megismerése segíti ezt a neuronhálózati tervezést, sőt, ez a tervezés segíti az agyműködés megértését. Szóval kölcsönösen fejlesztik egymást.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!