Neoronové sítě

Download Report

Transcript Neoronové sítě

Umělé neuronové sítě

Funkci umělé neuronové sítě můžeme chápat
jako transformaci T vstupního signálu X na
výstupní signál
Umělé neuronové sítě

Za umělou neuronovou síť se obecně považuje taková
struktura pro distribuované paralelní zpracování dat, která se
skládá z jistého, obvykle velmi vysokého, počtu vzájemně
propojených výkonných prvků. Každý z nich může současně
přijímat libovolný konečný počet různých vstupních dat. Na
další výkonné prvky může předávat libovolný konečný počet
shodných informací o stavu svého jediného, avšak velmi
rozvětveného výstupu. Každý výkonný prvek transformuje
vstupní data na výstupní podle jisté přenosové funkce. Přitom
se též může uplatnit obsah jeho lokální paměti.
Umělé neuronové sítě


Úvahy o tom, jaké transformace je možno pomocí neuronových sítí
realizovat, jsou předmětem zájmu již od počátku rozvoje jejich poznání.
Poznatky o míře obecnosti transformačních funkcí, uskutečňovaných tím
či oním druhem neuronové sítě, byly však chybně přenášeny i na jejich
další typy. To vedlo k řadě omylů a nedorozumění.
Snad nejzávažnější byl ten, který se váže k dnes již proslulé práci M.
Minského a S. Paperta věnované perceptronům. Oba autoři matematicky
dokázali, že se tato neuronová síť nehodí pro implementaci jednoduché
logické funkce typu XOR. Oba však svůj správný poznatek neoprávněně
zobecnili na neuronové sítě vůbec. Jak se dnes s odstupem let často
konstatuje, nesou díky tomu vinu za pozdržení vývoje, které nastalo od
konce šedesátých až do poloviny let osmdesátých.
Umělé neuronové sítě

Matematický důkaz o vlastnostech transformační funkce T obecněji
uspořádané neuronové sítě nebyl však dlouhá léta k dispozici. Teprve R.
Hecht-Nielsen a K. Horník ukázali cestu k obecnějšímu poznání. Ta vede ke
Kolmogorově teorému o řešení tzv. třináctého Hilbertova problému.
Třináctý Hilbertův problém se týká možnosti reprezentace spojitých funkcí
n proměnných pomocí konečného součtu a superpozice spojitých funkcí
jedné proměnné. Hilbert vyslovil domněnku, že kořeny rovnice

nelze vyjádřit jako funkce koeficientů a, b, c konečnými součty spojitých
funkcí pouze dvou proměnných. Teprve po 57 létech dokázal Kolmogorov,
že tato domněnka nebyla správná.
Kolmogorovův teorém

Každou reálnou spojitou funkci f mající n
proměnných definovanou v n-rozměrné krychli o
hranách (0,1) lze vyjádřit jako

kde Ψi a Φi jsou spojité funkce jedné proměnné a
p = 1, ... ,n a q =1, ... ,(2n+1)
Kolmogorovův teorém




Přitom pro danou funkci f jsou specifické pouze funkce Ψi, zatímco
funkce Φi jsou pro dané n a f nezávislé. Hecht-Nielsen ukázal, že
tuto univerzální vlastnost funkcí Φpg lze využít též pro reprezentaci
funkcí s hodnotami v prostoru vyšších rozměrů.
Kolmogorovův teorém doplňovali v pozdějších letech někteří další
autoři, např. Lorenz, který dokázal, že je možno vystačit pouze s
jedinou funkcí Ψ a D.A. Sprecher, který našel podmínky pro to, aby
funkce Ψq měly tvar λpΦp, kde λp jsou konstanty.
Aplikace Kolmogorovova teorému na problematiku neuronových sítí
vede k poznatku, že k tomu, aby bylo transformační funkcí T
neuronové sítě možno aproximovat libovolnou funkci f postačí, aby
příslušná neuronová síť měla alespoň tři vrstvy o odpovídajících
počtech neuronů (výkonných prvků) v jednotlivých vrstvách.
Funkci T lze tedy implementovat jako transformační funkci
neuronové sítě, která má nejméně tři vrstvy s dopřednou vzájemnou
vazbou, nepočítaje v to vstupní, distribuční vrstvu.
Perceptron



Výkonným prvkem umělé neuronové
sítě perceptronovského typuje
formální neuron. Ten zpracovává
vstupní údaje podle vztahu vpravo.
Na obrázku - základní model
jednoduchého neuronu tj.
McCulloch-Pittsův perceptron
Perceptron – jeden výstup, pouze v
jedné vrstvě můžeme nastavovat
váhy – zde nejjednodušší perceptron
Perceptron




Výraz v závorce někdy označujeme termínem vnitřní potenciál neuronu.
Podle povahy vstupních dat rozlišujeme neurony binární zpracovávající data
dvouhodnotová a neurony vicehodnotové, kterým budeme říkat spojité. Ty si poradí i
s daty nesoucími vícebitovou informaci o hodnotě, například o amplitudě výstupního
signálu nějakého čidla. To, že o nich mluvíme jako o neuronech spojitých, nemá
žádnou souvislost s vlastním způsobem jejich činnosti, s jejich implementací. Ta bývá
nejčastěji digitální v podobě programu nějakého procesoru, nebo jako speciální VLSI
obvod. Jiná, hlavně v dřívější době používaná, je implementace analogová tvořená
operačními zesilovači a proměnnými odpory. V poslední době vzrůstá význam
implementací optických.
Poznámka. Problémům s formální nesymetrií vztahu definujícího aktivitu McCullochPittsova neuronu se můžeme vyhnout změnou dolní meze sčítacího indexu (rovnice
nahoře).
Na dalších přednáškách se seznámíme i s neurony jinými. Neperceptronovskou
neuronovou sítí je například síť Kohonenova, ART i Neocognitron. Měli byste být
schopni říci, jak se od McCulloch-Pittsova perceptronu liší perceptron Rosenblattův a v
čem jsou jiné neurony Hopfieldovy sítě a sítě Back-propagation.
Pracovní fáze umělé neuronové sítě
 Umělá
neuronová síť pracuje v zásadě ve dvou
fázích - adaptivní a aktivní. V adaptivní fázi se
síť učí, v aktivní vykonává naučenou činnost,
vybavuje. Paměť je nejčastěji reprezentována
hodnotami synaptických vah na jednotlivých
vstupech neuronů.
Učení, resp. trénování a jeho typy


Při učení dochází v neuronové síti ke změnám, kterými se síť
adaptuje na řešení daného problému. Učení se v umělé
neuronové síti realizuje nastavováním synaptických vah a
prahů. Až na jeden případ (síť GMDH) nedochází při učení ke
změnám v jejich topologii (propojení, počtu vrstev, apod.).
V praxi se před učením váhám přisoudí počáteční hodnoty,
které mohou být buďto náhodně zvolené, nebo vybrané
podle nějakého podobného případu. Pak se do sítě přivede
trénovací vstup. Síť poskytne výstup, odezvu.
Jsou dva typy učení: s učitelem a bez učitele.
Učení s učitelem



Při učení s učitelem existuje nějaké vnější kritérium určující, který výstup
je správný a v síti se nastavují váhy pomocí zpětné vazby podle toho, jak
blízko je výstup kritériu. Vypočítává se rozdíl mezi žádaným a skutečným
výstupem. Váhy se modifikují podle nějakého algoritmu, který
zabezpečuje snižování chyby mezi skutečným a žádaným výstupem.
Velikost změn vah v jednom kroku učení je obvykle malá. Pak se síti
předloží nový vstup a celý proces se zopakuje. Po provedení velkého počtu
pokusů se síť naučí vydávat stabilní výstup jako reakci na vstupy, které
přijímá. Odvozena a dokázána byla celá řada teorémů o konvergenci a
stabilitě učících algoritmů. Bez nich by totiž učení nemělo žádný smysl.
Při učení s učitelem se umělá neuronová síť učí srovnáváním aktuálního
výstupu s výstupem požadovaným a přestavováním synaptických vah tak,
aby se propříště snížil rozdíl mezi skutečným a žádaným výstupem.
Metodika snižování rozdílu je určena učicím algoritmem.
Mezi metody učení s učitelem patří například: posilované učení,
stochastické učení a zpětné šíření chyby (Back-propagation).
Učení bez učitele
Učení bez učitele nemá žádné vnější kritérium
správnosti. Algoritmus učení je navržen tak, že
hledá ve vstupních datech určité vzorky se
společnými vlastnostmi. Učení bez učitele je
samoorganizací.
 Do učení bez učitele není zapojen žádný vnější
arbitr a celé učení je založeno pouze na
informacích, které samotná síť během celého
procesu učení získala.
 Mezi metody učení bez učitele patří: Hebbovské
učení a kompetice.

Učící proces
 Učící proces
probíhá většinou v živých
organismech opakovaně, než se dosáhne
požadovaného stavu. Existuje ale také učení
jednorázové, při němž síť si hned napoprvé
předložený vzor zapamatuje. Takovou
schopnost mají ale jen některé umělé
neuronové sítě, např. Hopfieldova síť a jedna
varianta Neocognitronu.
Vybavování
Vybavování je aktivní fází umělé neuronové sítě.
Následuje za fází adaptivní a zpracovávají se v ní
vstupní data.
 Naší každodenní zkušeností jsou, aniž si to často
uvědomujeme, asociace. Většina lidí je okamžitě
schopna ke známým tvářím přiřazovat jména,
poznávat lidi ze svého okolí, atd. Vytváříme si spojení
mezi lidmi, událostmi a místy, mezi tvary a objekty.
To nám dává schopnost vytvářet si naši vlastní
reprezentaci vnějšího světa.

Vybavování




Vstupy našich smyslů spouštějí kaskádu asociací, každá
vyvolává následující. Z uvedeného je vidět, že lidské myšlení
pracuje asociativním způsobem. Obecněji můžeme výše
řečené formulovat takto: asociativní paměť je takový systém,
který ke vstupu vyvolává asociovanou odezvu.
Umělá neuronová síť je ve skutečnosti právě takovou
asociativní pamětí, ve které jsou uloženy různé vzory a která si
tyto vzory vybavuje. Možné jsou prostorové (jednoduché
statické) vzory a časoprostorové (posloupnosti statických
obrazů) vzory. I vybavování může mít jednu ze dvou variant:
autoasociativní
heteroasociativní
Autoasociativní vybavováni
Při autoasociativním vybavováni se z paměti čtou
vektory Xx ,...,Xm
 Na první pohled snad může vzniknout pochybnost o
tom, je-li autoasociativní neuronová síť vůbec
využitelná. Vstup a výstup systému s tímto chováním
je totiž stejný. Význam autoasociace však okamžitě
vysvitne v případě, kdy není vstupní vektor
kompletní (viz následující obrázek)

Autoasociativní vybavováni
Heteroasociativní vybavování
 Umělá
neuronová síť je heteroasociativní,
pokud jsou v ní uloženy páry vzor-obraz
(X1,Y1),..., (Xm,Ym)
 Podle konkrétní úlohy ještě rozlišujeme, zda
má heteroasociativní síť odpovídat vybavením
nejbližšího souseda, nebo zda má interpolovat
Heteroasociativní vybavování
Vybavení nejbližšího souseda
 Sledujme
síť, která umí vybavit tři nálady z
výrazu tváře. Při vybavení nejbližšího souseda
poskytne neuronová síť ten ze všech
uložených obrazů, který je vstupnímu vzoru
nejblíže
Heteroasociativní vybavování
Vybavení nejbližšího souseda
Heteroasociativní vybavování
Interpolace

Při interpolaci vybavuje neuronová síť interpolovaný
výstupní obraz z těch, které jsou v ní uloženy, což je v
našem případě neexistující nálada
Metody vyhodnocování podobnosti
dvou vektorů



Jak uvidíme při studiu tohoto předmětu dále,
často budeme potřebovat vyhodnotit
vzdálenost, nebo řekněme míru podobnosti,
mezi dvěma či více vektory, nebo mezi
předloženým vzorem a neurony, které
například představují jisté třídy vektorů
podobných. Na jejím základě bude totiž naše
umělá neuronová síť rozhodovat, kam právě
předkládaný vzor patří. Všechny metody, které
dále popíšeme, vycházejí z geometrické
představy.
Často se používá metoda určení podobnosti na
základě Eukleidovské vzdálenosti. V N rozměrném kartézském souřadném systému
RN můžeme každý vektor Xi zapsat takto
přičemž horní index T znamená maticovou
transpozici (v tomto případě sloupcový
vektor). Eukleidovskou vzdálenost dvojice
vektorů z tohoto prostoru určíme ze vztahu
Metody vyhodnocování podobnosti dvou vektorů





Geometrický význam Eukleidovské vzdálenosti i způsob jejího výpočtu je jistě
každému dostatečně zřejmý. Podobností dvojice vektorů se obvykle míní
převrácená hodnota Eukleidovské vzdálenosti.
Jiným měřítkem podobnosti je tzv. vnitřní součin (inner product). I tento pojem
jsme si vypůjčili z maticové algebry a tam se definuje takto: jsou-li dány dva vektory
(s indexy i a j), pak jejich vnitřní součin určíme vyčíslením vztahu (dole)
Vydělíme-li takto vypočtenou hodnotu číslem vzniklým násobením velikostí vektorů
Xi a Xj, (|Xi |. |Xj|) dostaneme kosinus úhlu, který spolu oba vektory svírají. Dva
vektory, které spolu svírají malý úhel, jsou si podobné. Tentokrát jde o podobnost
směrovou.
Při studiu předmětu dále uvidíme, že perceptrony vyhodnocují podobnost na
základě vnitřního součinu, zatímco ART, RBF a Kohonenovy neurony používají
Eukleidovskou vzdálenost.
Některé jiné neurony pracují se vzdáleností Hammingovou (součet absolutních
hodnot rozdílů sobě odpovídajících vektorových souřadnic), s blokovou vzdáleností
(obdoba Euklidovské vzdálenosti, avšak bez umocňování a odmocňování),
popřípadě se vzdáleností definovanou jinak.
Učící, resp. trénovací množina


Všechny platné vstupní vektory, které síti předkládáme, tvoří vstupní
množinu. Ta je v některých případech malá, nebo alespoň spočetná, jindy
může dokonce mít nekonečný počet prvků. Pro proces učení má,
pochopitelně, velikost vstupní množiny rozhodující význam. Nelze-li síti
předložit vstupní množinu celou musíme z ní vybrat takovou podmnožinu,
která reprezentativním způsobem prostor vstupních dat vystihuje. Té
obvykle říkáme učicí nebo trénovací množina. Požadavek na to, aby učicí
množina vystihovala množinu vstupní reprezentativním způsobem, je
jedním z největších oříšků, se kterým se v aplikaci neuronových sítí
setkáme.
Výběr vzorů u učicí množiny nemusí být jen sekvenční. Často se používá i
náhodný výběr. Strategie učení patří do kategorie „umění učit" neuronové
sítě. Některé vzory se mohou síti předkládat častěji než jiné, atd.
Časovému intervalu, během kterého síti předložíme každý vzor učicí
množiny alespoň jednou, říkáme epocha. K. naučení sítě obvykle
potřebujeme stovky až tisíce epoch. Vhodnou strategií můžeme rychlost a
úspěšnost učení ovlivnit.
Kdy je síť naučena?



Síť je naučená, je-li splněna předem zadaná podmínka. Tou může být například dosažení
předepsaného počtu trénavacích epoch. Mnohem lepší podmínkou samozřejmě je
dosažení velké shody chování sítě s nějakým exaktně zadaným kritériem, kterým může
například být pokles globální chyby pod předem stanovenou mez.
Velmi zajímavou informaci o stavu naučenosti sítě poskytuje časový průběh globální
chyby. Nezávisle proměnnou v něm může být, namísto času, i počet epoch učení sítě.
Obvyklý je průběh, v němž okamžitá hodnota globální chyby klesá. Pokles však nebývá s
konstantní strmostí. Často jsou v jeho průběhu prodlevy, během nichž se globální chyba
poměrně dlouho nemění. Odpovídá to oblastem, ve kterých se neuronová síť nachází
poblíž lokálních minim. Z nich někdy není úniku a pak prodlužování učení nemá smysl.
Pomůže jedině aplikace některé z technik odstranění takového uváznutí („natřásání"
sítě, simulované žíhání, atp.). Z průběhu globální sítě v čase můžete zjistit přeučení sítě.
To se projeví trvalým zvyšováním hodnoty globální chyby následujícím za jejím
počátečním poklesem. V takovém případě je třeba učení ukončit a, lze-li, vrátit se k
minulým hodnotám parametrů sítě, k těm, které dávaly nejlepší výsledky (nejmenší
globální chybu).
V případě, že jsme nemohli při učení využít celou množinu vstupních vektorů a museli
jsme ji nahradit podmnožinou učicí, kontrolujeme kvalitu naučení testem na množině
testovací. Pro výběr vektorů do této množiny platí totéž, co bylo řečeno výše: musí být
reprezentativní. Pro počet jejích prvků není žádný kvantitativní předpis. Bývá jich ale
několikrát méně, něž prvků množiny učicí.
Základní aplikační oblasti neuronových sítí


Umělé neuronové sítě mají některé výhodné vlastnosti. Jsou
schopné realizovat nad vstupními daty libovolnou transformaci,
jsou tedy univerzální. Neuropočítač postavený na bázi neuronové
sítě tedy není zapotřebí programovat, protože se správnému
chování naučí pomocí předkládaných příkladů. Neuronové sítě jsou
díky velkému množství neuronů a spojů (synapsí) a díky tomu, že
informace je v celé síti rozprostřena, robustní. Poruchy neuronů
vedou jen k postupné degradaci sítě. Mají schopnost zobecnění
(generalizace), schopnost abstrakce, tj. schopnost stejně reagovat
na jistou množinu vstupních dat, nikoli jen na prvky z této množiny.
Počet neuronů v sítích pro praktické aplikace nebo pro modelování
funkcí nervové soustavy čítá řádově stovky až tisíce. Sítě
navrhované pro studium umělé inteligence, tedy pro perspektivní
oblast, do které se vkládá mnoho nadějí, by měly mít řádově 106
neuronů. I tento počet je však ve srovnání s počtem neuronů a
synapsí v lidském mozku nepatrný.
Základní aplikační oblasti neuronových sítí









Predikce
Rozpoznávání (klasifikace),
Aproximace
Asociace
Filtrace
Shlukové analýzy
Optimalizace
Komprese dat
popřípadě další
Predikce

Predikce znamená předpovídání výstupní hodnoty jisté
veličiny na základě jejího průběhu v minulosti. Při predikci jde
o to, abychom v průběhu nějaké známé číselné řady, jejíž
hodnoty se mění v závislosti na některém nezávisle
proměnném parametru sledovaného jevu (tím může být
kterákoliv fyzikální veličina, ale i čas) nalezli co
nejpravděpodobnější průběh nezávislé proměnné. Predikce je
vlastně speciálním případem extrapolace; tou se rozumí
způsob odvození, nebo závěr plynoucí z chování funkce uvnitř
známého oboru pro její chování mimo tento obor.
Aproximace
 Aproximace spočívá
v přibližném určení
hodnoty, kterou není možné nebo výhodné
určit, přesným způsobem
Klasifikace
 Rozpoznávání
je rozhodováním na základě
vstupního vektoru o tom, do které třídy
(kategorie) předmět, daným vektorem
popsaný, zařadit. Někdy se místo o
rozpoznávání mluví o klasifikaci.
Filtrace

Filtrace vyhlazuje průběh vstupního signálu.
Podstatou filtrace je získání úplného, šumem
nezatíženého (nezkresleného) výstupního signálu ze
signálu vstupního. Ten produkují vstupní senzory,
čidla. Jejich technické řešení a funkce závisí na
konkrétní aplikaci, pro kterou jsou určeny. Mohou to
být například optické snímače (při zpracování
obrazové informace) nebo ultrazvukové detektory
(ve zpracování dat ze sonaru).
Asociace (přesněji autoasociace)
 Asociace (přesněji autoasociace)
je filtraci
hodně podobná. Umělá neuronová síť se ale v
tomto případě učí na bezchybných datech a
zpracovává data poškozená. Asociací
(tentokrát heteroasociací) se ale také může
mít na mysli klasifikace.
Optimalizace
 Optimalizace slouží
k určení optimální
hodnoty nějaké proměnné, např. k
minimalizaci délky cesty.