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.
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.
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.
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.
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.
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).
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.
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?
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.
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.
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).
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 CVUTUmele neuronove site a jejich vyznam pro psychologii
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