6.2.1 Neuronové sítě

6.2.1.1 Úvod do neuronových sítí

V následujících kapitolách popíši několik neuronových sítí. Proto považuji za rozumné v této části uvést alespoň základní vlastnosti neuronových sítí.

Myšlenka umělých neuronových sítí vznikla na podkladě výzkumu mozku, kde nejdříve pomocí umělých neuronových sítí se vědci snažili modelovat procesy, které probíhají v našem mozku. Posléze se neuronové sítě rozšířily do mnoha oborů technické praxe. Základním prvkem mozku je neuron, do něhož vstupuje velký počet vstupů-dendritů a vystupuje pouze jeden výstup - axon, který se ovšem může dále rozvětvovat do tzv. terminálů. Ty se připojují na dendrity pomocí synapsí. Na základě tohoto biologického popisu byl definován tzv. formální neuron, který tvoří výkonný prvek umělé neuronové sítě. Obecně neuron můžeme popsat podle tohoto vztahu :

 

 

kde,

- výstup neuronu

Vztah ( 2 ) můžeme graficky zobrazit - Obr. 15. Jedná se o základní model jednoduchého neuronu: McCulloch-Pittsův neuron .

 

Výraz v závorce vztahu ( 2 ) někdy označujeme jako vnitřní potenciál neuronu. Váhy wi u každého neuronu představují jeho lokální paměť a tedy spojením všech neuronů dostáváme celkovou paměť sítě. Učení sítě se provádí změnou těchto vah, ale také tvarováním přenosové funkce, a dále počtu neuronů v síti, popřípadě i topologickým uspořádáním sítě.

 

 

 

 

 

 

Obr. 17 Přenosová funkce typu "logsis"

 

Na Obr. 16Obr. 18 vidíme tři přenosové nelineární funkce, které jsem použil při návrhu neuronových sítí. Přenosová funkce S, někdy též označovaná jako aktivační funkce, převádí vnitřní potenciál neuronu do definovaného oboru výstupních hodnot y. Nejčastěji je obor výstupních hodnot omezen intervalem [0,1] nebo [-1,1].

 

 

6.2.2 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. Jak jsme již řekli, je paměť nejčastěji reprezentována hodnotami váhových koeficientů jednotlivých vstupů neuronů.

6.2.2.1 Učení

Při učení v neuronové síti dochází ke změnám, sítˇse adaptuje na řešení daného problému. V praxi se vahám přisoudí počáteční hodnoty, které jsou nejčastěji náhodně zvolené. Pak se přivede na vstup sítě trénovací množina, kterou jsme například získali měřením-kapitola 5. Sít´ poskytne výstup,odezvu. Jsou dva typy učení: s učitelem a bez učitele.

Učení s učitelem

Pří učení s učitelem existuje vnější kritérium určující, který vstup je správný a v síti se nastavují zpětné vazby podle toho, jak blízko (pro měření “blízkosti” můžeme použít např. ( 3 ) - Hammingovu vzdálenost) je výstup kritériu. Často je kritérium definováno jako rozdíl mezi žádaným a skutečným výstupem. Váhy se nastavují podle daného algoritmu, který zabezpečuje snižování chyby mezi skutečným a žádaným výstupem. Velikost změn vah je obvykle malá. Pak se síti předloží nový výstup (“učitel”) a celý proces se opakuje.

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 vlastnosti. Učení bez učitele se také říká samoorganizace.

6.2.2.2 Vybavování

Aktivní fáze následuje za fází adaptivní a zpracovávají se v ní vstupní data. Na základě vstupu dat vznikne ve vstupní vrstvě nerovnovážný stav. Výstupy neuronů ve všech vrstvách se začnou působením ostatních neuronů měnit podle jistého algoritmu a mění se tak, dokud opět nenastane stabilní rovnovážný stav. Na jejich výstupech je požadovaná odezva sítě na tento vstup.

6.2.3 Navržené modely stresu

6.2.3.1 Trénovací množina

Jak jsme se dověděli z předchozí kapitoly, pro naučení umělé neuronové sítě potřebujeme vhodnou trénovací množinu. V našem případě ji nemám ještě k dispozici, protože v tomto semestru proběhlo pouze přípravné měření, a to na šesti studentech. Vzhledem k tak malému počtu změřených jedinců a vzhledem k tomu, že výsledky měření nebyly podrobeny zevrubné analýze, nelze vyvozovat žádné vztahy mezi pěti změřenými fyziologickými veličinami (konečné měření proběhne až v příštím semestru). Z tohoto důvodu jsem trénovací množinu sestavil sám, abych alespoň mohl ověřit funkčnost neuronové sítě.

6.2.3.1.1 Navržená trénovací množina pro učení s učitelem

Vstupem do neuronové sítě jsou tři fyziologické parametry, které podle [2] věrohodně odráží míru stresu. Výstupem neuronové sítě je stupeň stresu, který nabývá tří hodnot - viz. Tab. 3 a Obr. 19, kde O znamená žádný stres, * střední stres a + vysoký stres.

 

 

Tab. 3 Trénovací množina

 

Míra stresu

Parametr

0-žádný

0-žádný

0,5-střední

0,5-střední

1-vysoký

1-vysoký

Diastolický krevní tlak (mm/Hg)

70

80

90

95

100

110

Tepová frekvence (min-1)

60

80

90

100

110

120

Kožní odpor (%, max.=30 kW )

10

20

30

40

50

60

 

 

 

 

 

Obr. 20 Rozšířená data na základě Tab. 3

 

6.2.3.1.2 Navržená trénovací množina pro učení bez učitele

V tomto případě bude trénovací množina obsahovat mnohem více hodnot, aby navržená sít´mohla pokrýt celý vstupní prostor. Tyto hodnoty jsem náhodně vygeneroval na základě předchozí tabulky, kde vstupní data tvoří shluky kolem hodnot, kdy míra stresu je stejná-Obr. 20 (vidíme tři shluky + ). Dále * jsou hodnoty mezi jednotlivými stupni stresu1 a nakonec O jsou nestandardní hodnoty - v dolní části jde o sportovce flegmatiky, nahoře jsou neurotické osobnosti typu A.

Vidíme, že vzdálenost mezi zvolenými daty je “poměrně veliká”. Můžeme říci, že data mají mezi sebou velkou Hammingovu vzdálenost, která je definována :

pro vektory , v našem případě N=3.

6.2.3.2 Model č.1 - Back-propagation

V českém překladu termín Back-propagation znamená zpětné šíření. Tento název se používá jak pro neuronovou sít´ tak i pro algoritmus vícevrstvých dopředných (nerekurentních, anglicky feed-forward) neuronových sítí, při němž se chyba výstupní vrstvy zpětně přepočítává do předchozích vrstev (zpětně se šíří) a podle její hodnoty se upravují váhy. Back-propagation je tedy vícevrstvá sít´ s učitelem.

Na začátku této kapitoly byl uveden vzorec ( 1 ) neboli : ,který popisuje funkci neuronové sítě. Pro realizaci obecné transformační funkce T je třeba použít sít´, která má alespoň tři vrstvy s dopředními vazbami. První z nich je vstupní (distribuční) vrstva s n prvky, která uskutečňuje pouze rozdělení vstupních signálů na všechny prvky druhé vrstvy. Tato vrstva (vnitřní, skrytá) má 2n+1 výkonných prvků. Třetí (výstupní ) má m prvků.

Proto také navržená sít´ je třívrstvá, kde vstupní vrstva obsahuje tři neurony s přenosovou funkcí tansig (máme tři vstupy - viz. Tab. 3) , skrytá vrstva má 2*3+1 neuronů s přenosovou funkcí tansig, výstupní obsahuje 1 neuron s funkcí purelin. Jak již bylo řečeno, algoritmus zpětného šíření šíří odchylku od vrstvy výstupní až k vrstvě vstupní. Algoritmus zpětného šíření se snaží minimalizovat energii neuronové sítě. Energie je mírou naučenosti, tedy odchylky mezi skutečnými a požadovanými hodnotami výstupů neuronové sítě pro danou trénovací množinu, můžeme ji vyjádřit pomocí energetické funkce.

Energetická funkce je definována následovně :

kde,

požadovaný výstup.

 

Tuto funkci si lze po úpravě (která zde není podstatná) představit jako plochu v prostoru připomínající pohoří. Okamžitá hodnota vah a prahů je pak bodem na této ploše. Z tohoto bodu se snažíme dosáhnout minima energie. Tuto situaci můžeme připodobnit chůzi po horském masívu, kdy vidíme jen několik metrů před sebe. Když budeme chtít dojít do údolí (minimum energie, tedy minimální odchylka skutečných dat od požadovaných dat), půjdeme tedy logicky s kopce, směrem největšího spádu. Stejným způsobem tento problém řeší i metoda zpětného šíření, která vypočte gradient energetické funkce. V algoritmu se objevují ještě dva další parametry (viz. příloha D) - rychlost učení (může být i adaptivní), podle naší analogie je to koeficient, který určuje délku kroku turisty a tzv. setrvačnost, která nám říká, jak dlouho se budeme držet určitého směru, než zabočíme podle nové změny gradientu.

Po aplikaci trénovací množinou, vhodnou volbou předchozích dvou koeficientům jsem došel k  výsledkům Obr. 21 a Obr. 22 pří volbě kvadratické chyby SSE=0.001-viz. výraz ( 4 ).

Vidíme, že učení sítě skončilo po 5668 krocích, kdy bylo dosaženo kvadratické chyby menší nežli 0,001. V simulaci, kdy na vstup byly přivedeny hodnoty z Tab. 3, se skutečné hodnoty nacházejí kolem požadovaných: např. po přivedení hodnot, které odpovídají střední míře stresu (požadovaná hodnota výstupu sítě je 0.5), byl skutečný výstup sítě y1= 0.4915 a y2 = 0.5029 - Obr. 22. Výstup této sítě je spojitý díky přenosové funkci purelin ve výstupní vrstvě. Pokud´ přivedeme na vstup hodnoty, které jsou blízké hodnotám v Tab. 3 (trenovací množině), dochází k interpolaci-viz. kapitola 6.2.4.

 

 

Obr. 22 Výsledek simulace

 

 

6.2.3.3 Model č.2 - Kohonenova samoorganizující se sít´

Jde o typy sítí, které při učení nepotřebují učitele. Jsou založeny na algoritmu shlukové analýzy, tj. schopnost algoritmu, sítě, nalézt určité vlastnosti v závislosti přímo v překládaných trénovacích datech bez přítomnosti nějaké vnější informace.

Kohenova sít´ má pouze dvě vrstvy. Počet vstupů je roven dimenzi vstupního prostoru, v našem případě tři (první vrstva obsahuje pouze tři neurony). Druhou vrstvu v případě dvou vstupů si můžeme představit jako rovinu, kde spoje mezi neurony v síti vedou pouze mezi sousedními neurony. Počet vstupů, které přicházejí do neuronů je roven počtu vstupů do sítě. V našem případě tří vstupů se již nebude jednat o rovinu, ale o ² krychli ² . Vlastní přenosovou funkci neurony nemají. Jedinou operaci, kterou každý neuron v síti provádí, je výpočet vzdálenosti (odchylky) předloženého vzoru od vzoru zakódovaného ve vahách daného neuronu podle vztahu

kde,

 

Výstup u Kohenovy sítě de facto neexistuje. Každý neuron ve výstupní vrstvě (v našem případě krychli) je přímo výstupem. Počet výstupů je tedy roven počtu neuronů. Učení v Kohenovy síti probíhá tak, že se učící algoritmus snaží uspořádat neurony v mřížce do určitých oblastí tak, aby byly schopny klasifikovat předložená vstupní data. Toto organizování neuronů si můžeme představit jako rozprostírání původně zmačkaného kapesníku do prostoru tak, aby pokryl celý vstupní prostor. V našem případě je vstupní prostor “třírozměrná nudle” - viz.. Obr. 23 a Obr. 24. Proces učení je autonomní tj. bez přítomnosti nějaké vnější informace a probíhá iterativně, tj. v každém kroku učení dochází k adaptaci vah.

 

 

 

 

Pozice neuronů

Číslo neuronů

Míra stresu

1,2

2,4

žádná

3,4

3,6

střední

5,6

8,10

vysoká

Na Obr. 23 vidíme sít´ v začátku trénování po 20. krocích, Obr. 24 ukazuje konečný stav po 2500 cyklech. Pokrytí vstupního prostoru není úplné, což je v praxi přirozené, kde zůstane nepokryto 20% vstupního prostotu. Kolečka jsou neurony ve výstupní vrstvě. Vidíme, že zaujaly pozice podle algoritmu shlukové analýzy kolem shluků vstupního prostoru a tvoří výstupy sítě. Z obrázků je patrné, že v tomto případě můžeme rozlišit pět stupňů stresu - Tab. 4.

6.2.3.3 Model č. 3 - metoda LVQ

Víme, že Kohonenova sít´ je v principu samoorganizující se neuronová sít´, která nepotřebuje ke své funkci přítomnost učitele. Kohonen dále svoji sít´ rozpracoval tak, aby byla schopna pracovat i s pomocí  učitele. Takto modifikovaná sít´ se nazývá Learning Vector Quantization ( LVQ ). Tím, že sít´ bude nyní znát k trenovacím vzorům i jejich správné třídy, bude moci klasifikovat i neznámé vzory do odpovídajících tříd. Kromě toho na základě informace o správnosti hodnocení budeme moci zlepšit chování sítě.

U metody LVQ nejprve použijeme na trénovací vzory klasickou Kohonenovu sít´, ale zatím bez informace o příslušnosti ke třídám. Tím dosáhneme hrubého nastavení vektorů pravděpodobných budoucích poloh. Tímto krokem jsme sít´pouze připravili pro další práci. Nyní musíme přiřadit všem vektorům sítě třídy, které reprezentují. To provedeme tak, že opět předložíme trénovací vzory, ale tentokrát již včetně informace o jejich příslušnosti ke třídám. Zjistíme frekvenci, s jakou je každý vektor sítě nejblíže k trénovacím vzorům každé třídy a přiřadíme mu tu třídu, která se vyskytovala nejčastěji. Nyní jsou již všechny vektory oklasifikovány podle trénovacích vzorů, můžeme přistoupit k hlavnímu cílu metody LVQ, a to nalezení nejlepší hranice mezi třídami.

 

 

 

 

 

 

 

 

 

Na Obr. 26 vidíme stav sítě po 100 krocích. Sít´ ještě není stále naučená, protože kolečka, která reprezentují jednotlivé váhy neuronů, nejsou identická s křížky, které představují požadované výstupní hodnoty. Na Obr. 25 je již sít´po 500 krocích téměř naučená, na Obr. 27 vidíme stav sítě po ukončení simulace, kdy je již sít naučená. Výstup této sítě je diskrétní a je 1,2,3-viz. definice požadovaného vektoru (příloha D).

 

 

6.2.4 Ověření funkčnosti modelů

Předchozí modely reprezentují tří různé oblasti zpracování trénovací množiny vzhledem k jejich výstupu. Výsledkem prvního modelu, Back-propagation, po přivedení vstupních vzorů, je interpolace výstupu v rozmezí [0,1], kde nula označuje žádnou míru stresu, jednička reprezentuje maximální stupeň stresu. V druhém případě samoorganizující se sítě, je výstup představován přímo neurony ve výstupní vrstvě (reaguje pouze jeden s hodnotou 1) a jeho sousedy (ty jsou většinou tří až čtyři s hodnotou 0.5). Vstupní vektor je oklasifikován jedním neuronem, míru stresu vyhodnotíme pomocí uvažované Tab. 4. V posledním případě LVQ metody dostáváme na výstupu pouze tři diskrétní hodnoty :1,2,3 kde 1 označuje žádný stres, 2 střední míru stresu a 3 velkou míru stresu.

Pro porovnání přesnosti jednotlivých sítí byl na jejich vstup přiveden vzor, který nepatří do trénovací množiny (Obr. 28Obr. 30 a Tab. 3). Výsledek výstupu je zobrazen na Obr. 31.

 

 

 

 

 

Po přivedení vstupního vektoru na vstup všech tří sítí očekáváme podle trénovací množiny střední míru stresu. Výsledky všech neuronových sítí jsou uvedeny na Obr. 31. Kolečko značí výstup ze sítě Back-propagation, která výstup interpolovala : 0.38. Pro další dvě sítě dostáváme shodné výsledky. V případě Kohonenovy sítě byl výstup přidělen podle Tab. 4 (reagoval neuron 3, tedy střední míra stresu-0.5), v případě LVQ metody bylo jednoduchou transformací určena míra stresu, která je 0.5 (výstup měl hodnotu 2, což odpovídá střední míře stresu). Vidíme, že všechny sítě dávají poměrně přesné výsledky, jsou dobře naučeny.

 

Realizace předchozích tří sítí a jejich ověření je uvedeno v příloze D, a také v  souboru model.m pod adresářem Matlab na přiložené disketě.