Referat z predmetu specialni architektury 1996/1997
Vladimir Myslik 1996
Zde je česká verze v mezinárodním kódování ISO8859-2

Neuronove site


Uvod


Abych Vas zavedl trochu do problematiky neuronovych siti, zacneme zjednodusenim. Neuron je elementarni jednotka pro zpracovani informace, podobne jako hradlo v integrovanych obvodech (tento text je urcen mentalne narusenym posluchacum CVUT FEL). Neuronova sit jsou propojene neurony (podle nejakeho schematu, podobne napr. Xilinxum pokud to snese srovnani). Neuronovou sit vymyslela matka priroda. Je to sice devka, ale programovat umi dobre a efektivne. Neuronove site se osvedcily v tech nejslozitejsich biologickych systemech urcenych k preziti v jejich rizeni. Neuronove site jsou obecne vzato cerne krabice, do kterych se pousti data a na vystupu/ech vychazeji data zpracovana, nejak zavisla na datech vstupnich. Neuronovou sit si lze predstavit jako asynchronni nestavovy ci stavovy (vnitrni zpetne vazby) automat s tim, ze data probihajici skrzeva draty (v provedeni matky prirody nervy) jsou analogova.

Jak to zaonacila matka priroda (to neni pro elektrikare az zase tak nezajimave)


Priroda majic k dispozici elektrochemicke vodice informace (nervy ala sbernice) pripojila na konce nervu neuronovou sit, ktera zpetne ridi chovani organismu. Neuronove site jsou slozeny z jednotlivych neuronu, z nichz kazdy neuron ma hodne vstupu a jeden vystup. V tomto smeru je velice podobny hradlu, nebot i jeho vystup je zavisly asynchronne na vstupu s urcitym zpozdenim a nejakou prevodni funkci. Tyto vstupy se nazyvaji dendrity a jsou pripojeny na vystupy (axony) jinych neuronu. Jeden neuron ma v lidskem mozku spojeni v prumeru asi s 10000-100000 spoju s jinymi neurony. Zajimavosti je to, ze pokud vypadnou nektere z neuronu dodavajicich informace, tak se vysledne chovani neuronove site nezmeni (tedy pokud nezlikvidujete velky pocet dendritu treba nadmernym pozivanim alkoholu :)

To ze se dovedou zive organismy vybavene neuronovou siti chovat adaptivne je dano tim, ze neuronova sit je schopna ucit se. Uceni se znamena delat zavery ze zkusenosti. Pokud treba nekdy reknete fotrovi ze je vul a on vam rozseka zadek rakoskou, tak pokud nejste totalni idioti tak si to propriste rozmyslite, ze. Schopnosti adaptovat se prostredi timto mechanismem se rika inteligence.

Jak funguje jeden neuron


Neuron reaguje na velikost podrazdeni na svych vstupech (tedy presne receno, na velikost souctu podrazdeni od vsech dendritu dohromady). Telo neuronu ma urcitou prahovou hodnotu, pod kterou ma na svem vystupu rekneme logickou nulu a nad tuto uroven logickou jednicku. Stejne jako v elektronice existuji obvody s ruznou prevodni charakteristikou, maji je i vystupy neuronu. Nejde tedy ciste o binarni obvod, spise o jakysi komparator s nelinearni prevodni chrakteristikou a sumatorem na vstupu.


Pokud nekde vznikne potreba negovat ci zeslabovat signal, deje se tak na prechodu mezi axonem (vystup) a dendritem (vstup dalsiho) neuronu. Tomuto spojeni se rika synapse.

Co z toho plyne? Studenti kteri vedi alespon co je to klopny obvod uz jiste tusi, ze timto mechanismem pujde delat zpetne vazby. Zpetna vazba spolecne s klopnym obvodem realizuje pamet. Pokud si rikate, dobre, tak na prednasce jsem slysel slovo ******** (cenzura), copak je mozne ze ho energeticky omezena neuronova bunka pameti udrzi spravne az do zkousky? Neni. Pamet realizovana timto principem je kratkodoba. Jako kdyz si pet i mene minut pred zkouskou prectete tahak s vzorecky a hned jak uderi gong po zacatku pisemky je zacnete z pameti zurive opisovat do pisemky (vetsinou blbe). Naproti tomu existuje pamet dlouhodoba, ktera je nositelem vetsiny informaci. Stari lide jsou si schopni vzpomenout na detaily pitek probehnuvsich pred dvaceti lety, ale kdyz si nekam polozi bryle, tak uz za chvili zapomenou kde jsou.

Dlouhodoba pamet


je realizovana "zapojenim obvodu", tedy tim, jak jsou propojeny jednotlive neurony mezi sebou a jak jsou nastaveny synapse. Pokud se dlouho ucime to same (zkusenost), tak se vzdy ve stavu uceni aktivuji nektere neurony proste proto, ze jsou v ceste informace. Pokud se nekde objevi korelace mezi urcitymi vystupy neuronu a nejakou akci, tak lze vzit vystupy techto neuronu jako indikator teto akce. V mozku se vytvori a naslednym uzivanim udrzi cesta (dendriticke spojeni) mezi axony takovychto generujicich neuronu a neurony ridicimi nejakou akci, kterou ma neuronova sit realizovat. Prikladem budiz napriklad prudke osvetleni do oci, kdy oci zavreme. Zde je inhibicnim signalem vystup ze sitnice zpracovany dalsi neuronovou siti, ktera na svem vystupu dava signal odpovidajici rozsahu tma-svetlo-prudke osvetleni. Dejme tomu ze nekde mezi svetlem a prudkym osvetlenim je prahova uroven neuronu ridiciho zavreni oci.

V tomto u nekterych zivocichu nesla priroda dal a neumoznila jim adaptivne se ucit. Tito maji napevno zadratovane chovani v neuronove siti bez zpetne vazby. Neco ve stylu "Je signal od prazdneho zaludku?" -> sezrat nejblizsiho ziveho tvora. Tyto nepodminene reflexy se vyvinuly slechtenim skrzeva genetiku.

Matematicky zaklad a vysvetleni principu chovani neuronovych siti


Protoze silu signalu lze reprezentovat realnymi cisly, lze popsat neuronovou sit matematicky. Chovani samotneho neuronu v matematicke oblasti lze psat jako nasobeni vektoru (vystupy odebirane neuronem z jinych neuronu jsou dejme tomu vektor X). Zeslabeni ci inverze signalu probihajici na synapsich jsou druhym vektorem W. Pokud vynasobime tyto dva vektory a odecteme od nich prahovou uroven neuronu, dostaneme nejake realne cislo, ktere jeste musime zohlednit nejakou prevodni charakteristikou (limit signalu, do nekonecnych napeti ci vybuzeni jit nelze, to by vam mohla bouchnout hlava *).

n-pocet vstupnich dendritu
X=(x1,x2,x3,....xn)
W=(w1,w2,w3,....wn)
y=f(X*W-prah)

kde

X*W=x1*w1+x2*w2+x3*w3+.........

Jednourovnova sit ma pak zase vstupni budici vektor X, ale ma vice (m) neuronu, z nichz kazdy si muze odebirat ze vstupniho vektoru ktery chce signal a pripadne si ho zeslabit ci negovat = vyjadreno v matici W, ktera je nyni m* sirsi nez puvodni vektor pro 1 neuron. Vystupem je zde ovsem vektor siroky m (pro kazdy neuron 1 hodnota).

Podarilo se dokazat, ze sit, ktera je tvorena nejmene tremi vrstvami formalnich neuronu, je schopna aproximovat libovolnou matematickou funkci, pricemz presnost teto aproximace je tim vetsi, cim vice neuronu sit obsahuje. Takze zapojenim dalsich neuronu do site se muzete treba dobre naucit nadhazovat micek v baseballu (treningem).

Zde je postulat, ktery dokazal Kolmogorov: ze totiz kazdou realnou spojitou funkci f, majici n promennych definovanou v n-rozmerne krychli o hranach (0,1) lze vyjadrit jako (viz vyse)


Tedy jako sumu nejakych soucinu sum (fuj) spojitych funkci jedne promenne a pres ~n^2 kroku. No a protoze funkce jedne promenne lze realizovat jedinym neuronem s hodne vstupy (zalezi na presnosti) a sumy lze take realizovat jako neurony vhodne nekam pripojene, lze jiz ve vzorecku videt zakladni princip dukazu triurovnove site. Je to trochu jako fourierova transformace do koeficientu a nasledna regenerace signalu podle techto koeficientu. Tento dukaz je pro nas zajimavy a zde se dostavame k implementacim umelych neuronovych siti.

Predchozi popisny matematicky aparat je formalita, nicmene uz ukazuje, ze se bude moci dat dobre reprezentovat na pocitacich pri simulaci siti.

Viceurovnove site


Site, kde kazda vrstva neuronu si bere do vstupu vystup z predchozi vrstvy se nazyva sit s doprednym sirenim (feedforward neural network). Takove site maji konecnou delku odezvy na jim predlozena data. Takova sit je hloupa, neumi se ucit (podobnost s romy).

sit s doprednym sirenim

U site se zpetnou vazbou (feedback networks) se muze stat, ze se vzruch muze sirit porad dokola, pripadne zvetsovat amplitudu a divergovat tak. Tyto site jsou vsak jiz kontextove zavisle=zpetna vazba do nich prinasi pamet.

Umele neuronove site


Principem vystupni funkce neuronove site tedy je aproximovat nejakou funkci podle vstupnich vektoru. Klicem k spravne aproximaci zde ovsem je znat spravne koeficienty, jez jsou vyjadreny v matici a biologicky vlastne znamenaji hodnoty propustnosti synapsi. Zde se objevuje faze uceni. Neuronovou sit lze naucit reagovat spravne na vstupy. Jenze jak ony koeficienty zjistit?

Uceni neuronove site s ucitelem


Pri uceni s ucitelem se umela neuronova sit uci tak, ze srovnava svuj vystup s vystupem sveho ucitele nastavovanim vah synapsi (hodnoty v matici) tak, aby se snizil rozdil mezi skutecnym a pozadovanym vystupem. Protoze jiz pri malem poctu vstupu je prostor definovany koeficienty v matici obrovsky, je nutno pouzit nejaky ucici algoritmus, efektivne hledajici spravne hodnoty koeficientu. Prikladem budiz hledani reseni ve smeru nejvetsiho gradientu. Pokusim se zmenit nekterou vahu a zjistim, jestli to na vystupu zpresnilo nebo rozhodilo aproximaci. Logicky pak jdu smerem opacnym. Pozn. Kdyz se tento algoritmus zasekne na nejakem lokalnim minimu tak se do toho kopne a rozhodi se trochu koeficienty. Treba si to pak najde "lepsi" cestu.

Uceni bez ucitele


nema zadny srovnavaci signal k urceni spravnosti. Algoritmus je navrzen tak, ze hleda ve vstupnich datech vzorky s urcitymi vlastnostmi tedy podle zavislosti, korelace. Tak je treba mozno analyzovat jaky vliv ma rocni obdobi na burzu, pocet mysi na urodu apod.

Vybavovani


V aktivni vybavovaci fazi se jiz neupravuji koeficienty. Na vstup site se privedou data a pak se (v matematicke umele reprezentaci) pocita odezva site na vystupu. Pokud ma sit zpetne vazby, musi se pocitat tak dlouho, dokud se signal na vystupu neustali (zkonverguje). V praxi tomu odpovida iterativni pocitani matic s tim, ze kdyz se na vystupu detekuje po kazdem kroku jiz mala zmena signalu, tak se prohlasi ze tato sit dala svuj spravny vystup (jako odezvu na vstupni data). Muze se stat, ze vlivem zpetne vazby dojde k oscilacim. Dokonce muze dojit k tomu, ze se signal z vystupu dostane jako aktivujici s velkym zesilenim do vstupni vrstvy a vystup zacne divergovat k velkym hodnotam (jiste si vsichni pamatuji diferencialni rovnice a jejich reseni - zjednodusene harmonicke, exponencialni a polynomialni reseni). Pak se vypocet odezvy site na vstupni data neda spocitat. Je to jako kdyz se zeptate nerozhodneho cloveka jestli si da rohlik nebo housku. Pokud se toto stane v mozku ziveho tvora v ramci vice urovni site, dojde k tomu, ze stale se zvysujici amplitudou signalu se zacnou vycerpavat energeticke zasoby bunek (glukozy a kysliku), signal se muze rozsirit do cele neuronove site, kde ji nasaturuje dokud cele siti nedojde stavex (epilepticky zachvat).

Aplikace v elektronice


Neuronove site lze realizovat softwarove, obvodove neboli hardwarove jako


Pokud se tyce vyuziti, lze vyuzit dalsi vlastnosti a to jest schopnosti ucit se aniz by sit ztracela predchozi informace (dovednosti). Pokud je k dispozici dostatek neuronu, tak lze jiz naucene informace nadale upresnovat dalsim ucenim - tim se vlastne "doladuji" koeficienty neuronove site. Toho lze vyuzit k rozpoznavani pisma, predpovidani zemetreseni, rozpoznavani hlasu, filtrace, optimalizace, komprimace-dekomprimace (napr. jpeg) signalu ad.



* Poznamka - Viz zahady sveta A.C.Clarka
-Cenzorovane slovo bylo Integral. Omlouvam se.
-ROM = Read Only Memory

Materialy:

NEURONOVE SITE A NEUROPOCITACE
Doc. Ing. Miroslav Snorek, CSc.
Ing. Marcel jirina, DrSc.
Vydavatelstvi CVUT 
Umele neuronove site a jejich vyznam pro psychologii
Zdenek Fencl
http://www.cuni.cz/propsy/fencl.htm

Simulacni software umelych neuronovych siti pro Linux a UNIX xnn

Par odkazu do Internetu:
http://www.genetics.gla.ac.uk/neil/index.html
http://www.hds.univ-compiegne.fr/~scanu/ww-sites.html