Evropský polytechnický institut, s.r.o. Kunovice
Prof. Ing. Vladimír M I K U L A , CSc.
UMĚLÉ NEURONOVÉ SÍTĚ A FUZZY SYSTÉMY Teoretické základy
KUNOVICE 2006
-1-
PŘEDMLUVA
Cílem předmětu Umělé neuronové sítě a fuzzy systémy (FUZ) je naučit studenty principům umělých neuronových sítí a fuzzy logiky a seznámit je s možnostmi jejich využití pro řešení problémů v příslušném oboru metodami umělé inteligence. Studenti se v přednáškách v úvodu seznámí s nejdůležitějšími vlastnostmi umělých neuronových sítí, s jejich porovnáním s konvenčními sekvenčními počítači, s výhodami a nevýhodami UNS a s oblastmi jejich využití. Stručně se seznámí s přehledem historického vývoje poznatků v oblasti umělých neuronových sítí a se současným stavem v této oblasti a s fundamentální literaturou pojednávající o této problematice i o zajímavých informacích publikovaných na Internetu. Pro získání přehledu o motivačních aspektech působících při vývoji umělých neuronových sítí budou uvedeny nejdůležitější poznatky o přirozených neuronových systémech živých organizmů, zejména o lidském mozku Studenti získají přehled o modelování umělých neuronů a neuronových sítí, o nejpoužívanějších paradigmatech UNS: o dopředných sítích ( feed-forward) typu mnohovrstvový perceptron ( MLP) s učením metodou zpětného šíření chybového signálu (BP), dále se seznámí se sítěmi typu samoorganizačních ( Kohonenových) map (SOM) se soutěžním učením a se zpětnovazebními Hopfieldovými sítěmi typu CAM ( content addressable memories) s rekurentním výpočtem průběžných výstupních vzorků.současně obecnějšího problému optimalizace systémů) se studenti seznámí s genetickými algoritmy (GA) obecně a zvlášť pak v souvislosti s UNS. Druhou část předmětu tvoří problematika fuzzy systémů, založených na hodnocení situací a dějů s využitím fuzzy logiky, která je obecnější než klasická, tzv. binární, "ostrá" logika používaná v digitálních systémech, zejména v konvenčních počítačích, a je vhodná zejména v případech, kdy složité systémy nebo aktivity si vyžadují řadu zjednodušení a používání vágních pojmů, s kterými operuje přirozený jazyk a kdy exaktní matematický model systému buď zatím není k dispozici, nebo jeho použití vzhledem ke složitosti by bylo obtížné, těžkopádné, nebo i nesmyslné. Použití fuzzy logiky pro řešení takové problematiky je možné a výhodné, zejména když jsou k dispozici expertní znalosti o dané problematice. Studenti se úvodem seznámí s vývojem poznatků v oblasti fuzzy systémů, s některými stěžejními literárními prameny a taky získají přehled o současném stavu, jak je přinášejí četné novější prameny na Internetu. V teoretických základech fuzzy systémů budu student seznámen s pojmem fuzzy množiny a s dalšími pojmy ( alfa-řez, alfa-hladina, jádro), dále se základními operacemi s fuzzy množinami ( sjednocení, průnik, doplněk, atd.) a s vlastnostmi operací s fuzzy množinami ( s pravidly fuzzy logiky), s fuzzy čísly a s operacemi s nimi na bázi tzv. intervalové aritmetiky, dále s pojmem lingvistické proměnné a se zásadami fuzzifikace proměných. Probrány budou zásady a algoritmy využití teorie fuzzy množin a fuzzy logiky v procesu rozhodování a řízení na základě pravidel typu IF < antecedent > THEN
OR (ELSE), která tvoří banku pravidel FAM. Naučí se vytvářet koncepce fuzzy systémů a algoritmy jejich činnosti:úpravě proměnných, fuzzifikaci vstupních a výstupních proměnných, sestavení banky pravidel (FAM) na základě expertních znalostí řešeného problému, fuzzy inferencím, defuzzifikaci centroidu výstupní veličiny a úpravě výstupních hodnot. Teoretické znalosti si rozšíří o problematiku reprezentace fuzzy množin využitím jejich alfa-řezů a metody hodnocení vzdálenost fuzzy množin a stanovení míry jejich fuzzitivity. V praktické části předmětu se seznámí s metodami a programy pro řešení vybraných úloh z příslušného oboru.
-2-
Prof. Ing. Vladimír Mikula, CSc.
UMĚLÉ NEURONOVÉ SÍTĚ Teoretické základy
OBSAH
strana
PŘEDMLUVA
2
1. ÚVOD
3
2. PŘIROZENÉ NEURONOVÉ SÍTĚ Lidský mozek
7
3. UMĚLÉ NEURONY A UMĚLÉ NEURONOVÉ SÍTĚ Modelování umělých neuronů a umělých neuronových sítí
9
4. PARADIGMATA UMĚLÝCH NEURONOVÝCH SÍTÍ Přehled paradigmat z hlediska topologie a metod učení
12
5. MNOHOVRSTVOVÝ PERCEPTRON ( MLP)
14
6. NEURONOVÉ SÍTĚ SE SOUTĚŽNÍM ( KOMPETITIVNÍM ) UČENÍM (SOM ) 19 Kohonenovy samoorganizační mapy 7. SÍTĚ ZPĚTNOVAZEBNÍ (FEEDBACK) Hopfieldovy sítě CAM – content addressable memories) 8. VYUŽITÍ GENETICKÝCH ALGORITMŮ (GA) PRO OPTIMALIZACI PARAMETRŮ NEURONOVÉ SÍTĚ
23
28
9. REALIZACE UMĚLÝCH NEURONOVÝCH SÍTÍ 9.1 Problematika návrhu UNS 9.2 Příklady koncepce UNS
35
10. SIMULÁTORY UMĚLÝCH NEURONOVÝCH SÍTÍ
40
11. APLIKACE SIMULÁTORŮ UNS (zpracoval Ing. J. Petrucha , PhD ) Simulátor I Simulátor II Simulátor III
43
12. SOUHRNNÝ PŘEHLED LITERATURY
56
-3-
1. ÚVOD Umělé neuronové sítě ( UNS) jsou systémy s masivním paralelním zpracováním signálů ( informací ). Napodobují procesy probíhající v přirozených neuronových systémech vyšších organizmů ( především člověka). Důležitým atributem UNS je schopnost učit se z předloh (učicích vzorů). UNS patří do oblasti tzv.umělé inteligence.Příbuzné obory z nichž UNS čerpají své poznatky jsou: neurobiologie, genetika, výpočetní technika, mikroelektronika, robotika a další obory. Porovnání UNS s konvenčními sekvenčními počítači: Konvenční počítače pracují převážně na bázi postupného vykonávání sekvence příkazů podle programu, tedy sériově. Spolehlivost funkce takového systému (vyjádřená např. pravděpodobností určité doby bezporuchové funkce jednotlivých bloků a také celého systému) je dána přibližně součinem spolehlivostí jednotlivých funkčních bloků, realizujících dílčí programy . Je zřejmé, že porucha, nebo třeba jenom snížená spolehlivost byť i v jediném bloku může znamenat selhání celého systému. Příroda za dlouhý čas vývoje organizmů postupovala cestou paralelizmu a distribuce zpracování informací v relativně nezávisle pracujících blocích. Též paměť je v živých organizmech distribuovaná. Blokové uspořádání paralelně pracujícího systému (např. UNS) ukazuje Obr. 1.
X
B1[1]
složky vstup. signálu x1
x1
x2
x2
xn0
xn0 blok pro distribuci vst. dat
n0 uzlů
B1[l výst]
B2[1]
B2[l výst]
Bn1[1]
Bn výst[lvýst ]
y1 složky výst. signálu Y y2
yn výst
1. skrytá vrstva n1 bloků
další skryté vrstvy
výstupní vrstva n výst bloků
Obr.1. Blokové uspořádání paralelního (distribuovaného) systému , např. UNS typu MLP.
Výhody UNS -
zvýšení spolehlivosti : při poruše v jednom nebo v malém počtu bloků a při schopnosti sítě učit se převezmou ( po dodatečném učicím procesu) ostatní fungující bloky též úlohu poškozených bloků, což má zásadní význam pro přežití systému (např. u přirozené neuronové sítě člověka možnost rekonvalescence po mozkové příhodě a po dodatečném tréninku postižených funkcí).
-4-
-
UNS se s výhodou mohou využívat i tehdy, když není znám analytický ( matematický ) model systému. Znalost o jeho vlastnostech a chování se získá z učicích předloh (vzorů) jimiž se ovlivňuje optimalizace parametrů sítě, např. synaptických váhových koeficientů, - velká rychlost funkce natrénované sítě. Důležitými vlastnostmi UNS jsou: rozlišovací schopnost a schopnost generalizace Nevýhody UNS - Obtíže se zdůvodněním a identifikací procesů probíhajících v UNS - Příliš velký počet stupňů volnosti, závislý na počtu neuronů a synapsí - Velký počet variant uspořádaní UNS pro požadované řešení úloh - Problémy s nalezením optimální varianty paradigmatu sítě - Při použití simulace UNS na sekvenčním počítači ztráta rychlosti a spolehlivosti Oblasti použití UNS
-
Dílčí oblasti umělé inteligence: Rozpoznávání a klasifikace předloh Korekce chybných (narušených) předloh Predikce trendů a časových řad Řízení Rozhodování Zpracování řečových a obrazových signálů Umělé vidění Robotika Expertní systémy a další oblasti.
Přehled historického vývoje poznatků v oblasti umělých neuronových sítí Starověké názory na myšlení jsou uvedeny ve spisech starověkých filozofů. Z novověkých myslitelů se základy teorie myšlení zabýval René Descartes ( asi před 370 lety) Norbert Wiener ( asi před 70 lety) položil základy koncepce kybernetiky a též modelování činnosti mozku. McCulloch a Pitts ve své práci z r. 1943 publikovali model umělého neuronu se sumátorem a s váhovaným vstupem signálu. Newel a Simon položili základy umělé inteligence. D.O. Hebb (1949)- modelování neuronů a pravidla učení (dosud používaný Hebbův algoritmus učení UNS). F. Rosenblatt (1956-59)- perceptron, základy neurodynamiky. B. Widrow a E. Hoff [8] na Stanford University of California prezentovali tzv. ADALINE (Adaptive Linear Element) a vícevrstvový perceptron MADALINE, dále pravidla učení UNS tzv. Delta rule a LMS (least mean square). Minski a Pappert (1959) uveřejnili kritiku perceptronu a dokázali, že jednovrstvová dopředná síť není schopna rozlišit funkce typu EXCLUSIVE-OR nebo její negaci. Jejich kritika působila útlum v bádání o neuronových sítích. Tento nedostatek byl odstraněn zavedením mnohovrstvových sítí (multilayer perceptrons, MLP) s učením se zpětným šířením chybového signálu – back propagation of error signal, BP) pro úpravu váhových koeficientů. Werbos (1974) uveřejnil doktorskou disertaci o zpětném šíření chybového signálu-vý-
-5-
znamný pokrok v teorii UNS. Grossberg, Hinton a další rozpracovali dále metodiku MLP s učením metodou BP. T. Kohonen (1982) z Helsinki University vypracoval UNS se soutěžním (kompetitivním) učením- tzv. Kohonenovy samoorganizační mapy SOM. Hopfield (1982) uvedl zpětnovazební rekurentní asociační sítě (CAM- content addressable memories ) známé jako Hopfieldovy sítě. Sejnowski aj. (1986)- UNS typu NetTalk s aplikací BP. B.Kosko (1987) zavedl tzv. obousměrné asociativní paměti- BAM (bidirectional associative memories ) jako zdokonalení Hopfieldových sítí. Bádal též v oblasti fuzzy systémů a prezentoval sjednocující pohled na neuronové sítě a fuzzy systémy [4]. L.O. Chua a další (1988) uvedli tzv. celulární neuronové sítě CNN. V r. 1990 byl zveřejněn první komerčně dostupný čip pro UNS – Intel i80170. V dalších letech až po současnost bouřlivý rozvoj UNS, vydávání specializovaných časopisů, mnoho vědeckých prací s aplikacemi UNS v různých oborech, mnoho prací též na Internetu (viz Přehled literatury na konci této práce). Klíčová slova : Umělé neuronové sítě (UNS), umělá inteligence, paralelní zpracování informací, učení z předloh, klasifikace předloh, neuron, synapse, umělý neuron, struktura sítě, paradigma neuronové sítě, neuronové vrstvy, distribuční uzel, skrytá vrstva (hidden layer), výstupní vrstva. Shrnuti: Úvodní kapitola obsahuje vysvětlení pojmu umělé neuronové sítě jako části rozsáhlejšího oboru umělé inteligence. Je poukázáno na souvislosti s dalšími obory a uvedeno je stručné porovnání UNS s konvenčními (sekvenčními) počítači. . Uvedeny jsou výhody UNS, především masový paralelizmus zpracování dat a schopnost učit se z předložených vzorů, ale také nevýhody UNS a uvedeny jsou důležité oblasti využití UNS, zejména v rozpoznávání a klasifikaci předloh, v predikci trendů a časových řad, v řízení a rozhodování, atd. Závěrem úvodní kapitoly je uveden stručný přehled historického vývoje poznatků v oblasti umělých neuronových sítí. Otázky a úkoly: 1. Vysvětlete princip umělých neuronových sítí a uveďte jejich srovnání s konvenčními počítači. 2. Uveďte stručný přehled vývoje poznatků v oblasti UNS a uveďte zejména poznatky o současném stavu v této oblasti. Samostatná práce studenta: Využijte Internet pro získání dostupných pramenů o umělých neuronových sítích.
-6-
Doporučená literatura: [1] MIKULA, V.: Umělé neuronové sítě (Teoretické základy).Elektronické učební texty EPI Kunovice, 2003. [2] NOVÁK, M. a kol.: Umělé neuronové sítě - Teorie a aplikace. I. vydání. Nakladatelství C. H. Beck Praha, 1998. [3] HAYKIN, S.: Neural Networks. A Comprehensive Foundation. MacMillan College Publishing Company, New York, 1994. [4] HECHT-NIELSEN, R.: Neurocomputing. Addison-Wesley Publ. Co. 1990. [5] KOSKO, B.: Neural Networks and Fuzzy Systems. Prentice-Hall, 1992 [6] LAWRENCE, J.: Introduction to Neural Networks. California Scient. Software. 3rd Edition, 1991. [7] POKORNÝ, M.: Umělá inteligence v modelování a řízení.. BEN – Technická literatura Praha,1996. [8] ŠNOREK, M.- JIŘINA, M.: Neuronové sítě a neuropočítače. Vydavatelství ČVUT Praha, 1996. 2.PŘIROZENÉ NEURONOVÉ SÍTĚ 2.1 Lidský mozek Je jednou z nejsložitějších známých soustav ve Vesmíru. Schématické znázornění je uvedeno na Obr.2. Podrobnější popis lze najít ve značném počtu literárních pramenů, např. [ 1 ], [ 6 ]. Mozek se skládá z mozkových buněk různého typu a funkce: z neuronů, gliových buněk, atd. Neurony jsou specializované buňky, v nichž probíhá zpracování biosignálů. Uspořádání neuronu ukazuje Obr. 3. Neuronů je v lidském mozku asi 1011 (sto miliard). Neuron mívá až 104 synapsí, které jsou stykovými místy neuronové buňky s jejím okolím. Celková informační mohutnost (zjednodušeně daná součinem počtu neuronů a počtu spojů (synapsí) je tedy asi 1011 x 104 = 1015 (standardní počítače mají informační mohutnost asi 1010 ). Šedá mozková kůra (cortex) má tlouštku asi 3 mm a obsahuje hlavně somata neuronů, bíla vrstva mozku je spletí axonů. Mozkové buňky jsou funkčně uspořádány ve vrstvách (až 6 vrstev) . Bylo pozorováno neobnovitelné odumírání neuronů – denně až 10 000, avšak za 75 let života je to jenom asi (0,2- 0,5)% z celkového počtu neuronů. senzorická část motorická část frontální část temporální část thalamus mozeček
míšní kmem
Obr.2. Schématické znázornění lidského mozku.
-7-
dendrity
synapse synapse na jiném neuronu
jádro (nucleus) soma synapse
myelinový obal
axon Ranvierovy zářezy rozvětvení synapse na jiném dendritu axonu
synapse na konci axonu
Obr.3. Schématické uspořádání neuronu Podněty (biosignály) působí přes synapse, které představují pro neuronové buňky jakousi obdobu interfejsů (stykových prvků), na somata neuronů a excitují je, nebo mají inhibiční, tj. utlumovací účinek. V buňce dochází k sumaci váhovaných vstupních složek elektrických biosignálů . Buněčná membrána je polarizovaná. Rozdíl potenciálů mezi vnějším a vnitřním povrchem dosahuje až 70 mV. Ke změně potenciálů dochází přes tzv. iontové pumpy pro transport iontů Na+ a K+ [1]. Překročí-li úhrn působení vstupních složek jistou prahovou úroveň, dojde k depolarizaci neuronu a po axonu se začnou šířit elektrické impulsy s frekvencí asi 250 až 1250 impulsů za sekundu. Synapse jsou důležité pro paměť neuronového systému. Lashley [1] svým pokusem při hledání sídla paměti dokázal, že paměť je v mozku distribuovaná v jednotlivých neuronech. Paměť má několik stupňů: krátkodobá – uskutečňovaná cirkulací vzruchů po uzavřených neuronových okruzích, střednědobá ( paměťové stopy, vznikající mnohonásobným opakováním průchodů vzruchů synapsemi, přičemž vznikají nové ribonukleinové kyseliny a dlouhodobá paměť- vzniká otiskem těchto kyselin do bílkovinných struktur (velmi stabilní zápis). Klíčová slova: Neurony (neuronové buňky), synapse, jádro neuronu, dendrity, axon, myelinový obal, polarizace buněčné membrány, Ranviérovy zářezy, šíření biosignálu, paměť, Lashleyho pokus, krátkodobá, střednědobá, dlouhodobá paměť. Shrnutí: Obsahem druhé kapitoly je stručný přehled poznatků o přirozené neuronové síti (mozku) vyšších organizmů, zejména člověka. Umělé neuronové sítě ve svých počátcích byly vytvářeny a zkoumány jako systémy napodobující myšlení, alespoň v některých aspektech. V této kapitole jsou uvedeny základní poznatky o neuronech, jejich schématickém uspořádání, o jádru (nucleus) neuronu, dendritech, synapsích, axonu, o excitaci neuronu, o šíření biosignálů podél axonů a o propojení neuronů ve vrstvách do složitých neuronových sítí.
-8-
Otázky a úkoly: 1. Uveďte stručný přehled o struktuře a funkci přirozené neuronové soustavy vyšších živočichů, zejména člověka. 2. Nakreslete schématické uspořádání neuronové buňky (neuronu) a objasněte funkci a význam jádra, dendritů, synapsí, axonu, myelinového obalu a Ranviérových zářezů , princip aktivace neuronu, šíření biosignálu podél axonu, význam synapsí pro paměť. Samostatná práce studenta: Rozšiřte své znalosti o přirozených neuronových sítích z pramenů v dostupné literatuře, zejména [2] a na Internetu. Doporučená literatura: Stejná jako v kapitole1.
3. UMĚLĚ NEURONY A UMĚLÉ NEURONOVÉ SÍTĚ a. Modelování umělých neuronů Funkci přirozených neuronů lze modelovat elektronickými obvody. Jeden z nejstarších, ale dosud používaných modelů publikovali McCulloch a Pitts v práci A Logical Calculus of Ideas Immanent in Nervous Activity. Journal of Math. Biophys., 5 (1943)- Obr.4. x0 x1 X x2
w0
s = Σwi xi
y 1
i=0
su ΣΣ ΣΣ sumátor
w2 xn
n
0
y = f(s) s
nelineární přenosový člen
wn
Obr.4. Model umělého neuronu. Zde x0 je velikost posuvné složky -obvykle volíme x0 = 1, w0 je váhový koeficient prahového vstupu, součin w0 x0 - velikost prahové hodnoty ( někdy se označuje symbolem Θ, nebo T – threshold), která má být při aktivaci překročena x1 až xn jsou složky vstupního signálu ( vstupní předlohy nebo vzoru) X vektor vstupního signálu X = { x1, x2, … xn } Suma váhovaných vstupů n s = Σ wi xi má být větší než 0 (1) i=1
Nelineární přenosový člen má výrazně saturační charakter, tj. pro velké hodnoty
-9-
s>> 0 se y asymptoticky blíží ke konstantě, např. k = 1, zatímco při s záporném, ale | s |>> 1 se y asymptoticky blíží k 0 ( unipolární funkce), nebo k –1 (bipolární funkce). Některé často používané nelineární přenosové funkce jsou znázorněny na Obr. 5. V tzv. dopředních sítích ( feed-forward) se s výhodou používá funkce zvaná sigmoida y = 1/ (1+ e-γs), která je hladká a dobře diferencovatelná. Pro sítě zpracovávající binární vzory (např. Hopfieldovy sítě) je typické použití tvrdě limitujících funkcí s pravoúhlou charakteristikou tvaru y = sgn (s), nebo nebo y = σ (s) (skoková, Heavisideova funkce). Vhodný sigmoidální tvar získáme také transformací funkce y = tgh(γs) na tvar y = 0,5 (1 + tgh (γs)). Konstanta γ určuje strmost funkce při s = 0. V literatuře najdeme popis dalších vhodných modelů umělých neuronů, avšak MCP ( McCullochův- Pittsův) model s nelinearitou typu sigmoida, nebo sgn(s), nebo σ(s) patří mezi nejpoužívanější. y σ(s) 1 ) k 0,5 ( 0 S0 s 0 s y = ks, 0 ≤ s ≤ S0 y = σ(s) y=1 s ≥ S0 y 1
lineární prahová
Heavisideova
y 1 0,5
y sgn(s) 1 γ γ
0
s
0
s y = tgh(γs) -1
1 y= 1 + e –γs sigmoidální
sgn (s) hyperbolický tangens a signum f.
Obr.5. Často používané nelineární přenosové funkce.
b. Modelování umělých neuronových sítí Ve shodě s poznatky o vrstvové struktuře přirozených neuronových sítí byly vytvořeny různé modely vrstvových UNS. Jsou reprezentovány tzv. paradigmaty UNS. Paradigma představuje popis topologické struktury UNS, metodu učení podle předkládaných vstupních předloh (učicích vzorů) a zahrnuje i metodiku postupu využívání natrénované UNS, např. pro rozpoznávání vstupních předloh. Neuronové vrstvy mají různou funkci. Ukažme si to na příkladu uspořádání typické UNS- tzv. mnohovrstvového perceptronu ( Obr.6). směr šíření signálu- dopředu (feed-forward) y1
x1 N1 X
N1
N1
x2
y2 N2
N2
xn0 vrstva rozd. Nn1 uzlů 1. skrytá vrstva neuronů
N2 yn výst
Nn2 Nn výst 2. skrytá vrstva příp. další výstupní vrstva neuronů skryté vrstvy neuronů
Obr. 6. Schématické uspořádání mnohovrstvové UNS typu MLP.
-10-
Y
Dopředné sítě (feed-forward) jsou koncipovány obvykle jako vícevrstvové kvůli možnosti rozlišit i předlohy které jednovrstvová dopředná síť nemůže rozlišit. Některé sítě pracují uspokojivě i jako jednovrstvové, např. Hopfieldova síť, nebo Kohonenova samoorganizační mapa. V síti je vždy na vstupu vrstva tzv. rozdělovacích uzlů (fan-out layer) pro distribuci složek vstupních předloh do vstupů jednotlivých výkonných (výpočetních) neuronů. Tyto rozdělovací uzly však nemají sumační funkci. Další, tzv . skryté vrstvy (hidden layers) zpracovávají v každé buňce svůj díl informací, a to paralelně a výsledky distribuují na příslušné vstupy neuronů v další vrstvě až po tzv. výstupní vrstvu , z níž vycházejí výstupní údaje např. pro řazení předloh do klasifikačních tříd, nebo pro jiné účely, např. pro řízení, atd. UNS tak z obecného hlediska představuje transformační systém, který transformuje množinu vstupních předloh X = { X1, X2, … XL }, kde Xi = { x1i , x2i, … xnvst i }, kde i = 1 až L, L je počet vstupních předloh do množiny výstupních tříd Y = { Y1, Y2, … YM }, kde Yi = { y1i, y2i, … ynvýst i }, i = 1 až M , M je počet výstupních tříd, tedy Y = T { X } kde T je symbol transformace. Počet vrstev a počet neuronů v jednotlivých vrstvách má pro požadovanou transformaci zásadní význam.Tato problematika je jednou z důležitých oblastí problematiky syntézy UNS a byla ji v průběhu vývoje UNS věnována velká pozornost [1], [2]. Souvisí s otázkou separability předloh. Nutno poznamenat, že dosud není známá ucelená teorie pro spolehlivý předběžný návrh optimálního počtu vrstev a počtu neuronů v jednotlvých vrstvách a při navrhování UNS se často postupuje s využitím analogie s nějakými známými koncepcemi UNS pro příbuzné úlohy. Důvodem těchto nesnází je zřejmě příliš velká komplikovanost UNS a velký počet stupňů volnosti ( každá synapse představuje alespoň jeden stupeň volnosti). Jde tedy o multidimenzionální systém, jehož globální funkce není jednoduše průzračná. Základním problémem je dosažení potřebné separability vzorů (předloh). Ukažme si podstatu problému na zjednodušeném případu jednovrstvového perceptronu s jedinou neuronovou buňkou typu MCP podle Obr. 4. Nechť pro jednoduchost vstupní předloha X má jenom dvě složky X = {x1,x2} a nechť proměnné x1 a x2 mohou nabývat jenom hodnotu 0 nebo 1 (binární logické proměnné), pak i výstupní proměnná bude logická funkce těchto dvou logických proměnných. Z teorie logických funkcí je známo, že n logických proměnných může vytvářet k = 2n kombinací a N = 2k různých logických funkcí. V námi uvažovaném případě bude počet kombinací roven k = 22 = 4 a počet možných logických funkcí bude N = 24 = 16 různých logických funkcí. Jejich přehled je uveden v následujíci tabulce (Tab 1).
-11-
.
x0 = 1 w0
x1 w1 f15 f16 0 1 x2 w2 s = w1x1+w2x2+w0 1 0 sumátor 1 0 sep. přímky 0 1 x2 x2 f15=1 XOR NXOR 1 f1=1 1 f1=0 f15=0 Tab. 1. Přehled log. funkcí dvou vstupních proměnných a znázornění jejich separability. 0 1 x1 0 1 x1 AND XOR Uvažujeme lineární percepton ( tj. bez nelineárního výstupního členu). Výstupní hodnota signálu je rovna s = w1x1 + w2x2 + w0 ( při x0 = 1 ). Položíme-li s = 0 a vyjádříme zavislost x2 = f(x1) , dostaneme rovnici separační přímky x2 = (- w1/w2) x1 – ( w0 /w2 ). Zjistíme, že z uvedených 16 možných funkcí dvou vstupních proměnných je 14 lineárně separabilních tj. k oddělení oblasti v níž funkce dosahuje hodnoty 0 od oblasti, kde dosahuje hodnoty 1 stačí jedna separační přímka, zatímco pro funkce f15 ( EXCLUSIVE OR,nebo-li XOR) a f16 ( negace EXCLUSIVE OR, NXOR, ekvivelence) jedna přímka nestačí, pro separaci musí být dvě separační přímky ( viz tabulku) nebo uzavřená separační křivka. U funkcí více vstupních proměnných tento problém vede ke stanovení vícerozměrných separačních ploch. Na řešení separačního problému se narazilo již v počátcích vývoje neuronových sítí (neschopnost separace funkcí XOR a NXOR jednovrstvovou lineární UNS byla předmětem kritiky - Minski a Pappert, 1969) a vedla k rozpracování teorie vícevrstvových perceptronů (Werbos, Hinton ,Grosberg , Widrow a další (1974 a dále). Dospělo se k závěrům , že dopředná síť musí být mnohovrstvová. Na základě výsledků řešení tzv. „třináctého Hilbertova problému“ [1] minimální konfigurace UNS typu MLP musí obsahovat jednu vrstvu rozdělovacích uzlů, jejichž počet n0 se rovná počtu prvků vstupního vektoru X, dále alespoň jednu skrytou vrstvu výpočetních neuronů s počtem neuronů alespoň n1 = 2 n0 +1 a jednu výstupní vrstvu výpočetních neuronů s počtem neuronů nvýst , rovnajícím se počtu výstupních tříd ( v případě UNS typu klasifikátor ). Toto je ovšem minimální koncepce, která nemusí být optimální. V praxi je výhodnější volit několik (např. dvě nebo více) skrytých vrstev neuronů. Hopfieldovy a Kohonenovy sítě v základní verzi obsahují jednu vrstvu rozdělovacích uzlů, dimenzovanou podle dimenze vstupních vektorů a jednu vrstvu výpočetních neuronů dimenzovanou podle počtu vzorů které mají být v síti uloženy. Vztahy pro stanovení počtu těchto neuronů budou uvedeny v příslušné kapitole pojednávající o těchto sítích. x1 0 0 1 1
x2 0 1 0 1
f1 f2 f3 f4 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 0 AND OR NAND NOR
Klíčová slova: Modelování neuronů a neuronových sítí, McCullochův-Pittsův (MCP) model, sumátor, vstupní vektor, prahová hodnota, synaptické váhové koeficienty, nelineární přenosový člen, sigmoida, Heavisideova funkce, signum funkce sgn(s), paradigma UNS, dopředná síť (feed-forward), rozdělovací uzel (fan-out), skrytá vrstva (hidden layer),výstupní vrstva ( output layer), separabilita, klasifikátor, mnohovrstvová síť (multilayer perceptron MLP).
-12-
Shrnutí: Předmětem této kapitoly je problematika modelování umělých neuronů a neuronových sítí. Je uveden jeden z nejpoužívanějších modelů, tzv. McCullochův- Pittsův (MCP) model obsahující n vstupních signálových uzlů pro přivedení n jednotlivých složek vektoru vstupní předlohy, které působí na vstup sumačního členu po ovlivnění synaptickými váhovými koeficienty wi . Suma vážených vstupu wi xi je přenášena nelineárním přenosovým článkem na výstup neuronu. Jsou uvedeny různé typy používaných nelinearit: lineární prahová funkce, Heavisideova (skoková) funkce, sigmoidální funkce, tgh a signum funkce (sgn(s)).Je ukázáno schématické uspořádání mnohovrstvové UNS typu MLP, je popsán význam jednotlivých vrstev a problematika jejich počtu a počtu neuronů v jednotlivých vrstvách. UNS lze obecně pojímat jako transformační systém, který transformuje množinu vstupních předloh do množiny výstupních tříd.
Otázky a úkoly: 1. Vysvětlete princip modelování umělých neuronů a neuronových sítí. 2. Popište strukturu McCullochova- Pittsova modelu umělého neuronu, funkce a požadované vlastnosti jednotlivých funkčních členů tohoto modelu. 3. Uveďte definice a vztahy pro přenosové funkce y = f(s) jednotlivých typů nelineárních přenosových členů a pojednejte o jejich vhodnost v jednotlivých typech UNS. Samostatná práce studenta: Vyhledejte v literatuře a na internetových stránkách další typy modelů umělých neuronů, porovnejte je a pojednejte o jejich vhodnosti pro modelování UNS. Doporučená literatura: Stejná jako v první kapitole.
4. PARADIGMATA UMĚLÝCH NEURONOVÝCH SÍTÍ Jak již bylo zmíněno výše, pod pojmem paradigma UNS se rozumí a) údaje o konfiguraci UNS (topologie), tj. počet vstupních uzlů, počet vrstev výkonných neuronů, počet prvků výstupního vektoru (počet výstupních tříd), počet a vzájemné propojení neuronů v jednotlivých vrstvách, typy přenosových funkcí a jejich parametry ( strmosti aj.), b) použitá metoda učení, buď „ s učitelem“ nebo-li s dohledem (supervised), při níž se s každou předlohou (učicím vzorem) současně dodáva údaj o tom co ten vzor správně představuje ( nápověda, učitel), nebo „bez učitele“ (bez dohledu, unsupervised), nebo-li tzv . soutěžní (kompetitivní) učení, nebo metoda tzv. " hodnoceného " (reinforced) učení, c) způsob využití naučené (natrénované) UNS: způsob testování naučené sítě, kvalita a přesnost klasifikace neznámých, nebo i poškozených předloh. V současné době existuje již velký počet (několik desítek) paradigmat UNS. Mnohé z nich jsou jen zdokonalenými modifikacemi dosud známých principů. V této obla-
-13-
sti probíhá dosti bouřlivý vývoj, vznikají nové typy UNS a nové metody učení se zrychlenými algoritmy a zlepšenou konvergencí.
Přehled paradigmat UNS z hlediska topologie a metod učení: Umělé neuronové sítě a) dopředné (feedforward)- lineární - lineární asociátor ADALINE lineární perceptron - nelineární –s dohledem- mnohovrstvový perceptron s BP Neocognitron 1983 - bez dohledu- Kohonenovy samoorg. mapy SOM Neocognitron 1980 Counterpropagation b) zpětnovazební (feedback)- Hopfieldovy rekurentní sítě- asociativní paměti CAM Travelling salesman problem TSP - Obousměrné asoc. paměti BAM - Adaptivní resonanční teorie ART c) celulární neuronové sítě ( CNN)
V dalším postupu si ukážeme uspořádaní a princip činnosti některých typických UNS, a to mnohovrstvový perceptron MLP se zpětným šířením chybového signálu pro adaptaci synaptických váhových koeficientů (metoda backprop BP), dále Kohonenovy samoorganizační mapy SOM s kompetitivním učením a zpětnovazební Hopfieldovu sít. Jejich pochopení pomůže v orientaci i v dalších paradigmatech UNS. Klíčová slova: Paradigma UNS, konfigurace (topologie) UNS, učení s učitelem, s nápovědou (supervised learning), učení bez učitele (bez nápovědy, unsupervised learning ), soutěžní (kompetitivní) učení), hodnocené (reinforced) učení, konvergence sítě, dopředná ( feed-forward) neuronová síť, lineární asociátor, ADALINE (adaptive linear associative element), mnohovrstvový perceptron (multilayer perceptron, MLP), algoritmus zpětného šíření chybového signálu (backpropagation, BP), samoorganizační mapa (selforganizing map, SOM)- Kohonenova mapa, counterpropagation, zpětnovazební sítě typu asociativní paměť (content addressable memory, CAM), Hopfieldova síť, obousměrná asociativní paměť (bidirectional associative memory, BAM), síť typu Travelling Salesman Problem, TSP, UNS typu ART (adaptive resonance theory), celulární neuronové sítě (cellular neural networks, CNN). Shrnutí: V této kapitole jsou uvedeny poznatky o paradigmatech neuronových sítí. Pod tímto pojmem rozumíme a) údaje o konfiguraci (topologii) sítě, b) použitou metodu učení (trénování) sítě, c) způsob testování a využití natrénované sítě. Je uveden přehled nejpoužívanějších typů paradigmat UNS, a to: dopředné sítě, zpětnovazební sítě a celulární sítě. Je naznačen další směr výkladu látky o UNS s přednostním zaměřením na mnohovrstvové perceptrony s učením metodou zpětného šíření chybového signálu. Je vysvětlen algoritmus korekce (adaptace) parametrů sítě, zejména
-14-
synaptických váhových koeficientů, ale případně i jiných parametrů, např. strmosti sigmoidálních funkcí, s cílem dosáhnout minimalizace odchýlky výstupní odezvy sítě od předkládaných vstupních vzorů. Dále jsou uvedeny principy sítí typu samoorganizačních map se soutěžním učením (Kohonenovy mapy) a pak principy zpětnovazebních neuronových sítí, zejména Hopfieldovy sítě s popisy algoritmů jejich adaptace. Otázky a úkoly: 1. Uveďte přehled paradigmat umělých neuronových sítí, vysvětlete jejich princip a uveďte oblasti jejich využití. 2. Vysvětlete pojem: množina předloh učicích (trénovacích) vzorů a uveďte zásady jejich sestavování 3. Uveďte nejdůležitější metody učení (trénování) umělých neuronových sítí a sestavte jejich algoritmy. Samostatná práce studenta: V literatuře a na Internetu vyhledejte prameny pojednávající o algoritmech učení umělých neuronových sítí a pak vypracujte algoritmus učení neuronové sítě zadaného typu. Doporučená literatura: Stejná jako v první kapitole. 5. MNOHOVRSTVOVÝ PERCEPTRON ( multilayer perceptron – MLP ) Bylo dokázáno, že pro řešení úloh s využitím dopředné neuronové sítě je nutné pro dosažení potřebné separability zvolit koncepci vícevrstvové sítě. Tyto UNS jsou v současné době pro svou univerzálnost a dobrou propacovanost jedny z nejčastěji používaných UNS [1 ]. Proto se tímto typem sítě budeme zabývat poměrně podrobněji. Pro učení MLP se používá metoda zpětného šíření chybového signálu – backprop- BP (back propagation of error signal). Je to metoda učení „ s učitelem“ ( nebo s nápovědou- supervised learning ), při níž se současně s přivedení vstupního učicího vzoru Xp přivádí k výstupním neuronům také údaj dp o želaném (desired) výsledku na každém výstupním neuronu. Uspořádání sítě MLP s vyznačením algoritmu optimalizace váhových koeficientů metodou zpětného šíření chybového signálu je uvedeno na Obr. 7. V tomto schématu použijeme následovné označení: n0 je počet prvků vektoru vstupní předlohy (též počet uzlů rozdělovací vrstvy) n1 je počet výkonných neuronů v 1. skryté vrstvě n2 je počet výkonných neuronů ve 2. skryté vrstvě atd., až nvýst je počet výkonných neuronů ve výstupní vrstvě ( u UNS typu klasifikátor je to počet klasifikačních tříd) [l] W = [ wji ] je vektor váhových koeficientů v l-té vrstvě neuronů l je pořadové číslo vrstvy (layer) l = 1, 2, ….lvýst j, i je označení (index) neuronů v l-té vrstvě nj sj[ l ] = Σ wji[ l ] xi[ l ] je suma vážených vstupů jednotlivých neuronů v l-té vrstvě, i=1 j je 1, 2, …. nl je index neuronu v l-té vrstvě a i je index jeho
-15-
Fj[ l ]
vstupu, počet vstupů j-tého neuronu je nj je obvykle roven počtu výstupů předchozí vrstvy je přenosová funkce j-tého neuronu v l-té vrstvě, např. při sigmoidálním tvaru Fj[ l ] = ( 1/ ( 1+ exp ( -γ sj[ l ] ))).
oj[ l ] je aktuální hodnota výstupního (output) signálu j-tého neuronu v l-té vrstvě půbícího na vstupy neuronů v následující vrstvě oj[ l ] = Fj[ l ] ( sj[ l ] ) Poznámka: Výraz na pravé straně znamená funkci argumentu s a ne součin. V obecném případě může být strmostní koeficient γ u každého neuronu jiný. Pro jednoduchost budeme v dalších úvahach brát tento koeficient pro všechny neurony stejný
Obr. 7. Schématické uspořádání mnohovrstvového perceptronu s vyznačením algoritmu optimalizace váhových koeficientů metodou „backprop“.
Nyní stanovíme vztahy pro aktualizaci váhových koeficientů neuronů v jednotlivých vrstvách. Standardní algoritmus BP v MLP využívá postup zvaný „step descent gradient“ ( krokový sestup proti gradientu) k minimalizaci součtu kvadrátů odchylek ( minimalizace chybové funkce). Zavedeme vztah pro chybu (odchylku) mezi želanou hodnotou d přivedenou na j-tý neuron výstupní vrstvy a aktuální hodnotou y na výstupu tohoto neuronu při předložení p-tého učicího vzoru na vstup sítě ejp = djp – yjp
(2)
-16-
Zaveďme pak polovinu sumy kvadrátů těchto odchylek na j-tém neuronu výstupní vrstvy při předložení L vzorů jako lokální chybovou funkci L
Ejp = 0,5Σ ( djp – yjp )2
(3)
p=1
Pro hodnocení chyby celé sítě přes všechny neurony výstupní vrstvy a všechny učicí vzory zavedeme tzv. globální ( totální ) chybovou funkci nvýst L Et = Σ Ejp = 0,5 Σ Σ (djp – yjp)2 (4) j=1
p=1
která bude sloužit jako kriteriální funkce pro posouzení míry naučení UNS na předkládané učicí vzory. V procesu učení sítě by tato chyba měla postupně klesat až pod jistou dovolenou hodnotu a další pokles by měl být monotonní. V průběhu učení sítě jsou váhy měněny přírůstkově, tj. „nová“ , aktualizovaná váha wjinové = wjistaré + ∆wji ,
(5)
kde ∆wji = (- ∂ Ejp/∂ wji ). η
(6)
Zde 0< η < 1 je učicí konstanta (učicí parametr). Je-li příliš malá hodnota, blízká k 0, bude změna váhových koeficientů při učení sítě probíhat pomalu a doba učení se prodlouží, bude-li příliš velká, blízká k 1, budou změny vah probíhat rychleji, ale síť nemusí konvergovat, případně vykazuje nežádoucí oscilace chybové funkce . Pro aktualizaci váhových koeficientů se také používá značení wji ( t + 1) = wji ( t ) + ∆w, kde čas t +1 je diskrétní čas, v němž nastane změna wji oproti její hodnotě v čase t, Protože ke změnám dochází po předložení nových vzorů, bývá míst diskrétního času uváděn údaj k o pořadí předkládání vzorů, tedy w (k+1) = w (k) + ∆w. Při aktualizaci vah metodou BP postupujeme od výstupní vrstvy zpět k nižším vrstvám až po 1. skrytou vrstvu .Určíme nejdříve opravný vztah (updating formula) pro výstupní vrstvu : Bude platit ∆wji[ l
výst ]
= - η∂ Ejp /∂ wji[ l výst ] = -η ( ∂Ejp / ∂ sj[ l výst ] ) ( ∂ sj[ l výst ] / ∂ wji[ l výst ] ) = = η δj[ l výst ] . oi [
l výst – 1 ]
(7)
kde lokální chyba , zvaná „ delta“ je δj[ l výst ] = ejp .∂ Fj[ l výst ] / ∂ sjp[ l výst ]
(8)
Pro aktualizaci synaptických váh v poslední skryté vrstvě (s indexem l výst – 1 ) bude platit ∆ wji[ l výst – 1 ] = η δj [ l výst – 1 ] oi[ l výst – 2 ]
kde δj
[ l výst – 1 ]
= ( ∂ Fj
[ l výst – 1 ]
/∂
sj[ l výst – 1 ] )
(9) nvýst Σ δi[ l výst ] wij[ l výst ]
( 10 )
i =1
atd . až pro 1. skrytou vrstvu bude ∆ wji[ 1 ] = η δj[ 1 ] o[ 0 ] = η δj[ 1 ] xi[ 1 ]
( 11 ) -17-
kde
n2 δj[ 1 ] = ( ∂ Fj[ 1 ] / ∂ sj[ 1 ] Σ δi[ 2 ] wij[ 2 ] i=1
(12 )
Pro sigmoidální přenosovou funkci typu F ( sj ) = ( 1 + exp (- γsj ))-1 bude ∂Fj / ∂ sj a také vztah pro δ možné vyjádřit pomocí algebraické funkce ∂F(sj )/ ∂ sj = γj yj ( 1 – yj ) = Fj´ ( sj )
( 13 )
δj = ( dj – yj )( 1 – yj ) yj
( 14 )
Pro zmírnění oscilací chybové funkce Et v závislosti na počtu epizod ( tj. na počtu předložení všech učicích předloh se pro aktualizaci vah přidává do výrazu pro ∆ wji tzv. momentový člen, takže ∆ wji[ l ] ( k ) = η δj oj[ l – 1 ] + M ∆ w ji [ l ] ( k – 1 )
( 15 )
kde M je tzv. momentová konstanta ( momentum), pro kterou platí 0< M < 0, obvykle M = 0,7 až 0,9 a
∆ wji[ l ] ( k – 1 ) = wji[ l ] ( k ) – wji ( k – 1) ,
(16 )
tj. rozdíl váhového koeficientu při k-tém předložení učicího vzoru a váhového koeficientu při ( k – 1 ). předložení učicího vzoru. Typický průběh Et v závislosti na počtu předložení všech učicích vzorů (epizod ) ukazuje Obr. 8
Obr. 8. Typické průběhy závislosti Et na počtu epizod
N ( učicí křivky).
Klíčová slova: Separabilita sítě, optimalizace parametrů sítě, učicí vzor, nápověda, zpětné šíření chybového signálu, strmostní koeficient γ, sigmoida, aktuální výstupní signál, chyba (odchýlka e), lokální chybová funkce Ejp, globální (totální) chybová funkce E t, kriteriální funkce, (fittness function),
-18-
korekce synaptických váhových koeficientů, učicí konstanta opravný vztah (updating formula), momentový člen, momentová konstanta M, učicí křivka, epizoda.
Shrnutí: V této kapitole je podrobně popsán princip, funkce a základní vztahy platné pro UNS typu mnohovrstvový perceptron (multilayer perceptron, MLP), což je dopředná (feed-forward) neuronová síť, skládající se ze vstupní vrstvy rozdělovacích uzlů, za níž následuje jedna nebo několik skrytých vrstev (hidden layers) výkonných neuronů ( např. typu MCP), v nichž probíhají paralelně příslušné výpočty odpovídající funkci neuronu (sumace váhovaných vstupů a nelineární přenos). Každý neuron zpracovává svůj díl informací, výsledky jsou pak předávány neuronům následující vrstvy až po výstupní vrstvu. Neuronům výstupní vrstvy se současně s každým předloženým vstupním učicím vzorem dodává údaj o želaném (desired, d) signálu na výstupu ( učitel, nápověda). Je ukázána metoda, jak se z aktuálního výstupního signálu a želaného výstupního signálu získá tzv. chybový signál, ze kterého se vypočítá opravná hodnota přírůstku parametrů sítě, zejména váhových koeficientů pomocí opravných vztahů (updating formula) pro jednotlivé vrstvy. Je ukázán algoritmus zpětného šíření chybového signálu a postupné úpravy parametrů sítě od výstupní vrstvy až po první skrytou vrstvu. Jsou odvozeny příslušné vztahy a ukázána je metoda získání tzv. učicí křivky, názorně demonstrující totální chybu sítě a tím i stav natrénování sítě pro danou množinu trénovacích vzorů. Otázky a úkoly: 1. Uveďte strukturu (topologii) umělých neuronových sítí typu mnohovrstvový perceptron (MLP) a vysvětlete způsob adaptace parametrů sítě, zejména synaptických váhových koeficientů s využitím metody zpětného šíření chybového signálu (BP). 2. Vysvětlete pojmy lokální chybová funkce, globální (totální)chybová funkce a kriteriální funkce, napište jejich definice a popište algoritmus jejich stanovení. 3. Odvoďte, nebo alespoň uveďte opravné vztahy (updating formulae) pro jednotlivé vrstvy neuronů UNS typu MLP s učením typu BP. Samostatná práce studenta: Vytvořte koncepci umělé neuronové sítě typu MLP pro klasifikaci vybraných logických funkcí dvou vstupních proměnných y = f ( x1, x2), nakreslete schématickou strukturu sítě, zvolte úplné propojení neuronů, typ nelinearity přenosových funkcí, způsob adaptace synaptických váhových koeficientů, výběr množiny trénovacích vzorů a způsob testování naučené sítě. Získané poznatky rozšiřte i na syntézu UNS pro větší počet vstupních logických proměnných. Doporučená literatura: Stejná jako v první kapitole.
6. NEURONOVÉ SÍTĚ SE SOUTĚŽNÍM (KOMPETITIVNÍM) UČENÍM (Kohonenovy samoorganizační mapy – SOM ) Tyto umělé neuronové sítě s učením „bez učitele“ (unsupervised learning) jsou založeny na
-19-
hodnocení rozdílu (vzdálenosti) váhového vektoru W neuronové sítě od vektoru vstupního vzoru X a nalezení neuronu, jehož váhové koeficienty mají minimální vzdálenost W od X. Tento neuron jakoby v soutěži mezi neurony sítě zvítězil a má „právo“ si upravit své váhy i váhy neuronů ve svém okolí a také odezvu na předložený učicí vzor na lepší hodnotu. Po předložení dalšího učicího vzoru může zvítězit jiný neuron sítě, pak si i on může upravit svoje váhy i váhy neuronů ve svém okolí a zlepšit odezvu, atd. V síti se pak vytvoří shluky (clusters) neuronů, které v jistých místech sítě optimálně reagují na určité příznaky předkládaných vzorů, a také neznámých předloh. Vznikne tak jakási obdoba „ mapy“ příznaků. Tyto sítě prezentoval v r. 1982 Teuvo Kohonen z Helsinky University a podle něj se nazývají Kohonenovy samoorganizační mapy, SOM (selforganizing maps ). Uspořádání takové sítě ukazuje Obr.9. yN yj wN1
y1
wNn okolí j-tého neuronu
wji w11
w1n wj1
x1p
wjn
x2p xip
xnp
Xp Obr.9. Uspořádání Kohonenovy samoorganizační mapy ( neuronové sítě se soutěžním učením). Síť obsahuje n rozdělovacích uzlů na něž se přivádějí jednotlivé složky vektoru vstupní předlohy Xp = { x1p , x2p, ... xip,.... xnp } a N výkonných neuronů rozmístěných na pomyslné ploše (jednovrstvova síť), např. na rovině ve specifické konfiguraci, např. jako pravoúhlá struktura, kde v jednotlivých překříženích čar pravoúhlé struktury se nacházejí výkonné neurony ( používá se i jiná struktura, složená např. z přilehlých šestiúhelníků). Neurony mají mezi sebou vazby, takže lze definovat okolí každého neuronu.Dále uvažujeme laterální působení neuronů na sousední neurony podle zákonitosti zvané „ mexický klobouk“. V nejbližším okolí dochází k excitačním vazbám, ve větší vzdálenosti k inhibičnímu ( utlumovacímu) působení (Obr. 10). Působení i-té složky xi na j-tý neuron se uskutečňuje s váhovým koeficientem wji (reálná veličina). Váhový vektor j-tého neuronu je Wj = ( wj1 , wj2 , ....wjn)T
-20-
-21-
-22-
Klíčová slova: Soutěžní (kompetitivní) učení, učení „bez učitele“, unsupervised learning, vzdálenost váhového a vstupního vektoru, vítězný neuron, mapa příznaků, Kohonenova samoorganizační mapa (selforganizing map, SOM), laterální vazby mezi neurony, okolí vítězného neuronu, poloměr okolí, euklidovská vzdálenost, sférická vzdálenost, shlukování neuronů (clustering), algoritmus Kohonenovy sítě.
Otázky a úkoly: 1. Uveďte strukturu a vysvětlete funkci umělých neuronových sítí s kompetitivním učením . Kohonenovy samoorganizační mapy (SOM), jejich dimenzování a oblasti použití. 2. Jak se stanoví vzdálenost vektoru vstupní předlohy od váhového vektoru sítě a jak se vybírá vítězný neuron a jeho okolí? 3.
Popište algoritmus učení Kohonenovy neuronové sítě.
Samostatná práce studenta: Vypracujte koncepci Kohonenovy neuronové sítě pro zadanou konkrétní úlohu: formulace úlohy, dimenzování vstupní vrstvy rozdělovacích uzlů, návrh typu neuronů aktivní vrstvy, jejich počet a uspořádání ve vrstvě,vazby mezi neurony, tvar a poloměr okolí vítězného neuronu, způsob adaptace (učení), testování a využití naučené sítě. Doporučená literatura: Stejná jako v první kapitole- prameny [1] až [8] a dále: [9] Proceedings of the IEEE – Special Issue on Neural Networks I, II. Sept. – Oct. 1990. (obsahuje soubor článků o neuronových sítích, m. j. článek Teuvo Kohonena o principu, dimenzování a aplikacích sítí typu SOM, nazvaných po autorovi). [10] CICHOCKI, A. – UNBEHAUEN, R.: Neural Networks for Optimization and Signal Processing. . J.Wiley and Sons, New York, 1993. [11] HOŘEJŠ, J.: A View on Neural Network Paradigm Development.Tutorial. Neural Network World, 1991, č. 1 až 6 na pokračování. [12] CHMÚRNY, J. –ČIŽMÁR, A.: Modely neuronových sietí na spracovanie signálov . Elektrotechnický časopis, 42 (1991), č, 9 – 10, s. 531-542.
-23-
7. SÍTĚ ZPĚTNOVAZEBNÍ ( FEEDBACK ) 7. 1 Hopfieldovy sítě ( CAM- content addressable memories)
-24-
-25-
-26-
-27-
Klíčová slova: Zpětnovazební neuronová síť, asociativní paměť (content addressable memory, CAM), Hopfieldova síť, Hebbův algoritmus učení, matice váhových koeficientů, průběžný výstupní vzorek, rekurentní algoritmus výpočtu průbežných vzorků, iterační proces, ko nečný výstupní vzorek, energetická funkce, harmonie sítě, halucinace sítě, atraktor. Shrnuti: V této kapitole jsou uvedeny principy uspořádání a funkce zpětnovazební rekurentní asociativní neuronové sítě, tzv Hopfieldovy uměle neuronové sítě, která obsahuje vstupní vrstvu rozdělovacích uzlů a jednu vrstvu výkonných neuronů s tvrdě limitující přenosovou funkcí typu y = sgn (s). Je popsán algoritmus konstrukce sítě podle tvaru vstupních předloh a jejich počtu, tj. vytvoření matice váhových koeficientů, která je čtvercová, počet řádků a počet slupců závisí na počtu prvků vstupního vektoru. Je ukázáno, že tato matice je symetrická kolem hlavní diagonály. Je uveden algoritmus výpočtu tzv. průběžných výstupních vzorků , až se získají výstupní vzorky, které se již v dalších krocích iterace nemění a ty se pokládají za konečné výstupní vzorky. Jedefinována tzv. energetická funkce a harmonie sítě a její popis vícerozměrnou plochou vyznačující se existencí energetických jam (vtahovačů, atraktorů), v nichž energetická funkce nabývá minima v místech odpovídajících shodě vstupní předlohy s některým z uložených vzorů. Je ukázán příklad postupného přibližování se průběžných výstupních vzorků k uloženým vzorům. Otázky a úkoly: 1. Uveďte strukturu a vysvětlete funkci zpětnovazební neuronové sítě (Hopfieldovy sítě) a pojednejte o problematice jejího dimenzování. Ukažte na konkrétním příkladu. 2. Ukažte na příkladu princip sestavování matice synaptických váhových koeficientů Hopfieldovy neuronové sítě a princip rekurentního výpočtu průběžných výstupních vzorků až po stanovení konečných výstupních vzorků Samostatná práce studenta: Stanovte koncepci Hopfieldovy zpětnovazební neuronové sítě pro identifikace vybraných znaků složených z binárních (např. černobílých) obrazových pixelů v rastru m × n (např. 5 × 7 bodů. Určete potřebné dimenze sítě, počet neuronů a jejich uspořádání do matice na pomyslné ploše, typ přenosové funkce a vypracujte algoritmus stanovení matice váhových koeficientů a výpočtu průběžných výstupních vzorků. Doporučená literatura: Prameny [1] až [8] uvedené v první kapitole a [9] až [12] uvedené v šesté kapitole.
-28-
8. VYUŽITÍ GENETICKÝCH ALGORITMU (GA) PRO OPTIMALIZACI PARAMETRU NEURONOVÉ SÍTĚ
-29-
-30-
-31-
-32-
-33-
-34-
Klíčová slova: Genetický algoritmus (GA), evoluční zákony, chromozóm, gen, alela, kriteriální funkce fittness function), kódování parametrů, přirozený binární kód ( natural binary code, NBC), digitalizace parametrů, kódové značky, nultá (počáteční) generace chromozómů, vyřazování (discard) nevhodných chromozómů, křížení (mating) ,potomci (ofsprings), dělicí místo (crossing over), dominantní chromozómy, mutace, decimace populace, vývojový diagram (flowchart) genetického algoritmu. Shrnutí: V této kapitole je stručně popsán princip genetického algoritmu optimalizace prvků systému (v tomto případě umělé neuronové sítě) využívající principy známé z oblasti genetiky, tj. evoluční zákony. Jsou uvedeny pojmy chromozóm, gen, alela, je vysvětleno sestavení nulté (počáteční) generace chromozómů, jejich hodnocení podle kriteriální funkce, sestavení pořadí chromozómů podle hodnot kriteriální funkce, vyřazování nevyhovujících chromozómů, výběr tzv. rodičovských chromozómů, sestavování jejich párů, kříženíc hromozómů, vytvo-ření potomků, doplnění populace, mutace, výběr optimální generace a optimálního chromo-zómu, nastavení parametrů systému podle vlastností tohoto chromozómu. Je ukázán přehled-ný vývojový diagram genetického algoritmu. Postup GA lze zobecnit a pro jeho univerzálnost a robustnost využít pro široký okruh optimalizačních problémů nejen v biologii, odkud čerpá svůj původní princip, ale v různých oblastech vědy a techniky. Otázky a úkoly: 1. Vysvětlete princip genetického algoritmu optimalizace parametrů systému, jmenovitě umělých neuronových sítí. 2. Vysvětlete pojmy GA. Chromozóm, gen, alela, kódování genů, počáteční (nultá) generace chromozómů, kriteriální funkce, discard, křížení, mutace. 3. Sestavte vývojový diagram genetického algoritmu. Ukažte to na příkladu chromozómu umělé neuronové sítě typu MLP se strukturou 2-2-1. Samostatná práce studenta: Prostudujte dostupné materiály o genetických algoritmech získané z literatury i z pramenů na Internetu a sestavte přehlednou rešerši o této problematice. Doporučená literatura: Prameny [1] až [12] uvedené v předcházejících kapitolách a dále [13] HAUPT, R.L.: An introduction to Genetic Algorithm for Electromagnetics. IEEE on Antennas and Propagation Magazine 37 (1995),č. 2 (April), 7- 16. [14] WEILE, D.S.- MICHIELSEN, E.: Genetic Algorythm Optimization Applied to Electromagnetics. IEEE Transactions on Antennas and Propagation 45 (1997, č. 3 ( March), s. 343-353. [15] ZELINA, I.: Umělá inteligence I. Neuronové sítě a genetické algoritmy. Nakladatelství VUTIUM, Brno, 1998.
-35-
9. REALIZACE UMĚLÝCH NEURONOVÝCH SÍTÍ 9.1 Problematika návrhu UNS Syntéza UNS, nebo-li navrhování umělých neuronových sítí zahrnuje v sobě velmi komplexní problematiku. Předpokladem je zvládnutí principů a teorie jednotlivých typů těchto systémů, analytického přístupu k úlohám, jejich formulaci, vytyčení důležitých prvků, dílčích problémů a nalezení účinných algoritmů jejich řešení. Cílem syntézy je vytvořit umělou neuronovou síť schopnou bezchybně plnit vytyčenou úlohu za definovaných podmínek. Syntéza sítě zahrnuje rozbor úlohy a úvahy o možnostech řešení, nalezení vhodného paradigmatu sítě, což znamená a) stanovení struktury,nebo-li topologie sítě podle zvoleného typu UNS,což zahrnuje • výběr počtu a charakteru rozdělovacích vstupních uzlů, což závisí na charakteru vstupních vzorů, jejich uspořádání a časové závislosti vstupních signálů, • výběr počtu skrytých vrstev výkonných neuronů ( tato úloha je poměrně obtížná a dosud neexistuje ucelená jednoznačná metoda pro jejich určení), • určení konfigurace výstupní vrstvy neuronů ( tato úloha je poměrně jednoznačná a je determinovaná charakterem a požadovaným tvarem výstupu, • volba typu umělých neuronů, jejich nelineární přenosové funkce, strmostních parametrů, způsobu nastavení pracovních podmínek (např. způsobu nastavení synaptických váhových koeficientů a posuvných, nebo prahových veličin), • volba počtu neuronů v jednotlivých vrstvách a způsob jejich propojení i propojení jednotlivých vrstev ( např. dopředné, nebo i laterální, využití zpětných vazeb, z jiné ho hlediska může jít o úplné propojení, nebo o účelné klestění sítě, tj. o možnost vyřazení neuronů, které se málo účastní procesů aktivity sítě), b) volba algoritmu učení (trénování) sítě podle již uvedených způsobů: • učení s učitelem (s dohledem, s nápovědou, supervised learning), nebo • učení bez učitele (bez dohledu, bez nápovědy, unsupervised learning), nebo • hodnocené učení (reinforced learning), sem patří také problematika volby vhodného souboru trénovacích (učicích ) předloh, jejich složení, počet a rozprostření v jejich definičním prostoru tak, aby jej pokrývaly s patřičnou pravděpodobností výskytu, a také volba strategie předkládání trénovacích předloh., c) volba způsobu testování natrénované sítě, což zahrnuje volbu množiny testovacích předloh, nejčastěji stejného charakteru jako trénovací vzory, případně se už ve stadiu tvoření trénovacích předloh vybere část souboru vzorů pro trénování a část (obyčejně menší) pro testování . Uveďme zde některé důležité poznámky k návrhu neuronových sítí: K bodu a) stanovení struktury sítě: volba závisí na charakteru úlohy, kterou má síť plnit, neboli k čemu má sloužit. Např. má-li síť sloužit pro rozpoznávání předloh a jejich zařazovaní do příslušných klasifikačních tříd, tedy jako klasifikátor (což bývá velmi časté určení umělé neuronové sítě), pak se s oblibou volí konfigurace mnohovrstvové dopředné síte typu MLP- mnohovrstvový perceptron s povinnou vstupní vrstvou rozdělovacích uzlů, jejichž počet závisí na struktuře vstupních předloh. Např. pro rozpoznávání písmen anglické abecedy a decimálních číslic v již zmíněném tvaru -36-
5× 7 = 35 bodů bude mít vektor vstupní předlohy , čili každý vstupní vzor 35 prvků, a pro každou takovou složku musí být příslušný signálový vstup, takže vstupní vrstva rozdělovacích uzlů bude mít n0 = 35 uzlů (vstupních svorek). Za ní následuje tzv. první skrytá vrstva výkonných neuronů jejichž počet n1 se řídí požadavkem na rozlišitelnost vzorů . Stanovení počtu neuronů v první skryté vrstvě je, jak již bylo pojednáno v kapitole třetí o modelování UNS, dosti složitý problém, který byl teoreticky zkoumán řadou autorů, původně jako tzv.„třináctý Hilbertův problém“ [2], např. Kolmogorovem a dalšími autory a jehož minimální řešení vede k počtu neuronů n1 = 2n0 + 1, (v námi uvažovaném příkladu by to mělo být n1 = 2×35 + 1 = 71 neuronů ). Za první skrytou vrstvou neuronů by již mohla následovat povinná výstupní vrstva neuronů . Jejich počet závisí na složení požadovaného výstupního vektoru. Jedná-li se o klasifikátor, pak počet výstupních neuronů nvýst je roven počtu klasifikačních tříd ( např. v uvažovaném příkladu bude nvýst = 26 + 10 = 36 neuronů. Toto je ovšem minimální koncepce, která nemusí být optimální. U některých sítí, např.v síti pro predikci členů časové řady bývá na výstupu jen jeden neuron.V literatuře, např. v [15] jsou uváděny vztahy pro počty neuronů ve vrstvách: pro třívrstvovou síť: ( jedna vstupní, jedna skrytá a jedna výstupní vrstva) počet neuronů ve skryté vrstvě bude n1 = (n0 ∗ nvýst)1⁄ 2, ( v uvažovaném příkladu n1 = (35 ∗36)1/2= 35 neuronů), pro čtyřvrstvovou síť ( dvě skryté vrstvy) bude n1 = nvýst ∗ ( nvst/ nvýst )2/ 3 a n2 = nvýst∗ ( nvst/ nvýst)1/3 . Obecně může neuronová síť obsahovat několik skrytých vrstev neuronů. Platí zhruba , že čím komplikovanější úlohu má neuronová síť řešit, tím komplikovanější musí být ( tj počet skrytých vrstev by měl být větší). Některé typy neuronových sítí však mají jen povinnou vstupní vrstvu rozdělovacích uzlů, o níž platí již výše uvedená pravidla a jenom jednu vrstvu výkonných neuronů např. Kohonenova síť SOM, nebo Hopfieldova síť typu CAM.. Pro počet výkonných neuronů zde platí vztahy uvedené v kapitole páté, resp. šesté . Nutný počet neuronů je vázán na počet předloh, které mají být v síti uloženy, nebo sítí rozlišeny. Platí vztah (L je počet předloh, n je počet neuronů) : Lmax ≤ n / (4 log n) , uvedený v publikaci J. Lawrenceové[6] (bez uvedení o jaký logaritmus se jedná).. Přesnější (a přísnější ) podmínku uvadí S. Haykin v publikaci [3]: Lmax ≤ n / (4 ln n ). Volba typu umělých neuronů: pro dopředné sítě typ MLP se používají mnohovstupové modely publikované McCullochem a Pittsem ( MCP) se synaptickými váhovými vstupy působícími na sumátor, za nímž následuje nelineární přenosový člen s přenosovou funkcí sigmoidálního tvaru, která je dobře diferencovatelná, což je nutné při použití algoritmu backprop pro adaptaci váhových koeficientů při trénování sítě. V UNS Hopfieldova typu jsou nutné neurony s tvrdou nelinearitou typu sgn(s), proto se tyto sítě koncipují zejména pro zpracování binárních předloh. Volba typu učení podle již zmíněných zásad je přímo spjata s typem neuronové sítě: U dopředných sítí MLP je většinou používán způsob učení s učitelem (nápovědou) a s adaptací váhových koeficientů metodou zpětného šíření chybového signálu. Metoda soutěžního učení je využívána u Kohonenových sítí a metoda rekurentního výpočtu průběžných vzorků je typická u tzv. konstruovaných sítí Hopfieldova typu, u kterých se vstupní vzory uloží do matice synaptických váhových koeficientů. Uveďme zde pro ilustraci několik známých koncepcí umělých neuronových sítí:
-37-
9.2 Příklady koncepce umělých neuronových sítí
P1. UNS pro klasifikaci základních logických funkcí V teorii digitálních obvodů je odvozen vztah pro počet logických funkcí, které je možné sestavit pro n vstupních proměnných. Je to N = 2k , kde k = 2n je počet možných kombinací vstupních proměnných. Uvažujme pro jednoduchost případ se dvěma vstupními proměnnými: x1 a x2 , tedy n = 2. Počet jejich kombinací je k = 22 = 4 a počet možných funkcí N = 24 = 16, z nichž 14 je lineárně separabilních, tj. k jejich rozlišení by stačila jednovrstvová UNS . Jsou to funkce AND, OR, NAND, NOR a další, s výjimkou funkcí EXCLUSIVE OR ( XOR ) a její negace NXOR, Snaha o jejich separaci jednovrstvovou sítí v počátcích rozvoje teorie umělých neuronových sítí byla cílem kritiky (Minski a Pappert) a vedla k vytvoření mnohovrstvových perceptronů MLP. Aby síť byla schopna rozlišit kteroukoliv ze zmíněných 16 funkcí , zvolíme koncepci UNS typu feedforward, MLP, s učením s nápovědou a s optimalizací synaptických váhových koeficientů metodou zpětného šíření chybového signálu (BP). Počet učicích vzorů L = 4 .Topologie sítě: vstupní vrstva s n0 = 2 rozdělovacími uzly, jedna skrytá vrstva výkonných neuronů , jejichž počet n1 se stanoví podle výše uvedených pravidel: n1 = 2n0 + 1 = 2.2 + 1 = 5 neuronů a jedna výstupní vrstva výkonných neuronů, jejichž počet n2 je roven žádanému počtu klasifikačních tříd. Schématicky se uvedená struktura uvádí ve tvaru n0 – n1 – n2 , Budeme-li potřebovat indikaci kterékoliv ze zmíněných 16 funkcí, pak by výstupní vrstva měla mít 16 neuronů a struktura sítě by byla 2 - 5 - 16. Často bývá volen jenom jeden výstupní neuron pro řešení úlohy zda předkládané předlohy patří do zkoumané funkce nebo ne, tedy topologie 2-5-1. Uspořádání UNS v uvedených případech odpovídá konkrétnímu schématu sestavenému podle Obr.7. Experimenty s UNS tohoto typu ukázaly, že potřebné separační vlastnosti jedné z uvedené řady 16 možných logických funkcí dvou vstupních proměnných ( včetně funkcí XOR a NXOR ) byly dosaženy při použití topologie 2-2-1, jak ukazuje Obr. 21. x01 w01 F1(s1) w11 s1 y1(s1) x1 ΣΣ x0 w12 Σ w0 F(s) w1 s y(s) x02 w21 w02 F2(s2) w2 Σ x2 w22 s2 y2(s2) chyba ep = dp – yp(s) + dp Σ
Σ
Obr.21.Uspořádání neuronové sítě pro rozpoznávání logické funkce dvou vstupních proměnných.. Zde znamená:
-38-
s1 = w11 x1 + w12 x2 + w01 x01 s2 = w21x1 + w22 x2 + w02 x02 s = w1 y1 + w2 y2 + w0 x0
y1(s1) = F1(s1) = 1 / ( 1 + exp ( - γ1s1)) y2(s2) = F2(s2) = 1 / ( 1 + exp ( - γ2s2)) y(s) = F (s) = 1 / ( 1 + exp ( - γs)).
Vstupní předloha Xp = x1p, x2p a nápověda dp Např. pro identifikaci logické funkce y(x1, x2) = x1⊕ x2 , což je funkce XOR (EXCLUSIVE OR) budou 4 učicí vzory (předlohy), a to: X1=(0, 0), d1 = 0, X2 = ( 0, 1 ), d2 = 1, X3 = (1. 0) , d3 = 1, X4 = (1, 1), d4 = 0. Na tyto vzory se síť natrénuje metodou zpětného šíření chybového signálu ( viz např. kapitolu 11 Aplikace simulátorů UNS, v tomto učebním textu). P2 . Koncepce UNS pro rozpoznávání znaků v rastru s× ×r pixelů Počet znaků, které je možné vytvořit pomocí zobrazovače, složeného z binárních (tedy např. černobílých) pixelů , uspořádaných v rastru s×r (s je počet sloupců a r je počet řádků) je Z = 2s×r. V obvyklém případě rastru 5×7 = 35 pixelů bude počet možných znaků Z = 235 ≈ 2,436. 1010, z nichž uvažujme jenom znaky používané v rámci alfanumerického kódu ASCII, tj. 256 znaků. To je také počet možných předloh na které bychom měli neuronovou síť natrénovat, aby je pak mohla rozpoznávat, případně korigovat poškozené symboly. Je možné zvolit osvědčenou koncepci dopředné sítě typu MLP ve struktuře: vstupní vrstva rozdělovacích uzlů , minimálně jedna skrytá vrstva výkonných neuronů a výstupní vrstva neuronů. Dimenzování vrstev: počet prvků vektoru vstupních předloh a tedy i počet rozdělovacích uzlů n0 = 35, počet neuronů skryté vrstvy n1 = 2 .35+1= 71 neuronů, počet neuronů ve výstupní vrstvě n2 = 256. Kdybychom použili koncepci UNS typu Hopfieldova zpětnovazební neuronová síť, která je pro rozpoznávání binárních předloh vhodná, musela by být dimenzována podle zásad uvedených v kapitole 7. Pro maximální počet předloh Lmax které je možné uložit do matice váhových koeficientů neuronové sítě s n neurony platí vztah : Lmax ≤ N/ ( 4 ln N ). Uveďme přehlednou tabulku: Počet neuronů sítě N 10 100 500 1000 5000 9000 9400 10000 Max. počet vzorů Lmax 1,08 5,43 20,11 36,19 146,76 247,11 256,8 271,43 Z toho určíme nutný počet neuronů N ≥ 9400 neuronů. Kdybychom je uspořádali do čtverce, byla by to matice 97×97 neuronů. Pro spolehlivější splnění uvedené podmínky bychom asi zvolili matici 100 × 100 neuronů. V pramenu [17], který publikoval K. Kutza na internetu, je uveden program pro UNS, řešící jednodušší úlohu rozlišení číslic dekadické soustavy, tedy 0 až 9 v rastru 5×7 pixelů. Ukažme algoritmus Hopfieldovy sítě na velmi zjednodušeném případu sítě pro rozpoznávání binárních předloh . Nechť vzory na které budeme Hopfieldovu síť konstruovat mají tvar Xvz 1 = Xvz 2 =
1 -1 -1 -1 1 1 1 -1
-1 1 1 -1
nebo rozvinuto do řetezce
1 x1
rozvinuto do řetězce
(1)
-1
-1
1
(1)
(1)
(1)
(1)
x2
x3
x4
x5
1 x6(1)
1 -1 1 -1 1 -1 (2) (2) (2) x1 x2 x3 x4(2) x5(2) x(2)
tedy dva vzory, L = 2. Sestavme příslušnou neuronovou síť.
-39-
-1
1.krok: Sestavení (konstrukce) sítě: Topologie sítě závisí na typu a počtu vzorů. Uvažujme uspořádaní podle Obr.11, s neurony s nelineární přenosovou funkcí typu y = sgn(s-Tj ) kde Tj je prahová hodnota j-tého neuronu . Počet neuronů by měl vyhovovat již uváděné podmínce Lmax ≤ N/ (4 ln N). Z tohoto vztahu bychom vypočítali N ≥ 27 neuronů . Jiný přibližný vztah pro dimenzování Hopfieldovy UNS uvádí pramen [12] : Lmax ≤ 0,15 N. Podle tohoto vztahu by síť měla mít N ≥ L / 0,15, tj, více než 2/ 0,15 = 13,3 neuronů. Zvolme pro příklad poněkud poddimenzovanou síť v rastru stejném jako předkládané vzory, tj . 6 neuronů v rastru 2 řádky po třech neuronech. 2.krok:Vytvoření váhové matice W. Ta bude obsahovat uvedené vzory zapamatované v hodnotách váhových koeficientů L wji = ∑ xi(k) . xj(k) , kde i = 1 až N a j = 1 až N, přičemž plati, že wii = wjj = 0 a wij = wji. k=1 Matice váhových koeficientů je tedy čtvercová a symetrická kolem hlavní diagonály. Stanovíme její prvky: w11 = 0, w 12 = w21 = x1(1) . x2(1) + x1(2) x2(2) = 1.(-1)+ 1.(-1) = -2, w13 = w31 = x1(1) x3(1) + x1(2) x3(2) = 1.(-1) + 1.1 = 0, atd. až w16 = w61 = x1(1) x6(1) + x1(2) x6(2) = 1.1 + 1.(-1) = 0, atd až po w66 = 0. Matici W se stanovenými váhovými koeficienty ukazuje tabulka:
W řádek č.
sloupec č. 1 2 3 1 0 -2 0 2 -2 0 0 3 0 0 0 4 -2 2 0 5 2 -2 0 6 0 0 -2
4 -2 2 0 0 -2 0
5 2 -2 0 -2 0 0
6 0 0 -2 0 0 0
Tím je síť zkonstruována, včetně uložených (zapamatovaných) vzorů Xvz 1 a Xvz 2, tj. je na ně naučena. 3.krok (testování sítě): Síti přivedeme na její signálové vstupy č. 1 až 6 neznámou předlohu, která by měla mít stejnou strukturu jako uložené vzory, obsažené ve váhové matici W. Např. neznámá předloha má tvar Xnezn 1 = 1 1 -1 -1 1 1 , nebo
1 1 -1 -1 1 1 Vypočítáme průběžný výstupní vzorek odpovídající neznámé přivedené předloze a matici vah, při výpočtu postupujeme iteračním algoritmem N pj (t +1) = F(s) = F[ Σ wji pi(t) ] , kde j = 1 až N je číslo neuronu v síti a pj(t) je hodnota j=1 průběžného výstupu z j-tého neuronu v čase t, F(s) = sgn (s), nebo obecněji F(s) = sgn(s-Tj ) = +1 , když s ≥ Tj, a = -1, když s < Tj ( prahová úroveň). Tento proces probíhá dotehdy, až se neznámá předloha co nejvíce podobá některému z uložených vzorků. V uvažovaném případě: počáteční průběžný výstup pj(t = 0) = Xnezn 1 = 1 1 -1 -1 1 1. Prvky vektoru průběžného výstupu určíme ze vztahu
-40-
p(t) = W * XvstT = W 1 2 3 4 1 0 –2 0 –2 2 -2 0 0 2 3 0 0 0 0 4 -2 2 0 0 5 2 -2 0 -2 6 0 0 -2 0
W• 5 2 -2 0 -2 0 0
xvst 1 xvst 2 xvst 3 xvst 4 xvst 5 xvst 6 6 0 0 -2 0 0 0
•
1 1 -1 -1 1 1 XvstT
v čase t = t1
Realizace naznačených operací. 1. sloupec matice W 0 -2 0 P1(1)= - 2 2 0
= p11 p21 p31 p41 p51 p61
2. sl. mat. W
-2 0 vst. vektor 0 • 1 1 -1 -1 1 1 = 2 p2(1) = 2 -2 0.1+(-2).1+ 0.(-1)+(-2).(-1)+2.1+0.1 0
• 1 1 -1 -1 1 1 = -6
Podobně určíme ostatní složky vektoru průběžných vzorků, takže průběžný výstup p(1) = 2 -6 -2 -2 2 2 . Tento průběžný výstup upravíme při všech prahových úrovních . (zvolme jednotně Tj = 0), tak, že je-li pj(1)≤ 0 bude pj Tj(1) = -1 a je-li pj (1) > 0 bude pjTj = +1. Pak pTj = 1 -1 -1 -1 1 1, což je shodné se vzorem Xvz 1, takže UNS vyhodnotila Xnezn jako nejvíce podobný vzoru Xvz 1. Uvažujme Hopfieldovu neuronovou síť s topologií jako v předcházejícím případě. Nechť i uložené vzory jsou stejné, tj. Xvz 1 a Xvz 2 a tudíž stejná je i matice váhových koeficientů W. Neznámá vstupní předloha nechť má v tomto případě tvar Xnezn 2 = -1 -1 -1 , nebo ve tvaru řetězce = -1 -1 -1 1 1 1 1 1 1 Aplikujeme-li tuto předlohu na vstup sítě dostaneme na výstupu první průběžný výstupní vzorek vypočítaný stejným algoritmem jako v předchozím případu: p(t1) = 2 2 -2 -2 -2 2 Po průchodu nelineárními přenosovými články stejného typu a se stejnými prahovými úrovněmi dostaneme průběžný výstupní vzor ve tvaru p(t1)v = 1 1 –1 –1 –1 1, aneb vyjádřeno jako binární obrázek 1 1 -1 , což se nepodobá žádnému uloženému vzoru. Aplikujme -1 -1 1 tento průběžný výstupní vzorek na vstup sítě. Dostaneme nový průběžný výstupní vzorek. Po průchodu limitéry bude jeho tvar p(t2)v = -1 -1 -1 1 1 1 , což je totožné s Xnezn 2 . To znamená , že iterační algoritmus uvízl v neznámé předloze a v dalším výpočtu nemá smysl pokračovat. Síť je zřejmě poddimenzovaná , takže některé předlohy není schopna rozpoznat. P3. Koncepce UNS pro predikci členů časové řady Časová řada představuje uspořádanou množinu hodnot x(t) charakterizujících nějaký jev (přírodní nebo společenský) který se v čase mění ( Obr. 22). Jedná se o posloupnost hodnot veličiny x v diskrétních časových okamžicích ti. Významnou operací nad touto množinou
-41-
x
0
ti-3 ti-2
ti-1 ti ti+1 ti+2
t
Obr.22. Znázornění časové řady. hodnot x(ti) je předpověď (predikce) budoucích hodnot x(ti +1), x(ti +2) , ... na základě znalosti hodnot posloupnosti v současnosti , tedy v čase ti a v předchozích časových okamžicích, tedy v časech t i -1, ti – 2 , ... . Je- li v uvažovaném systému nějaká ( byť i neznámá) zákonitost, pak je možné využít UNS pro predikci hodnot x v budoucích časových okamžicích, nebo-li k predikci členů časové řady. S tím souvisí i možnost určení trendu vývoje sledované veličin v čase. Tato možnost je velmi významná pro mnoho oblastí lidské aktivity, např. v průmyslu pro predikci vývoje výroby, v ekonomice a ve finanční oblasti ( predikce vývoje kursů světových měn na základě dosavadního známého průběhu jejich vývoje. Problematice teorie časových řad je věnována v literatuře řada prací, např.[23] , [2] . Pro predikci členů časové řady se používají nejčastěji UNS typu mnohovrstvový percep tron s učením s nápovědou a s aktualizací váhových koeficientů metodou zpětného šíření chybového signálu BP, která je v této práci podrobněji popsána. Jako učicí vzory se berou hodnoty x(t) ve zvoleném časovém okénku o šířce To a jako nápověda je síti do výstupního neuronu dodáván údaj o hodnotě nejbližšího členu řady mimo uvažované okénko . Učicí vzor má strukturu Xp = { x1p , x2p, ... xn0 p} a s tím asociovaná nápověda dp. Jednotlivé učicí vzory se získají klouzáním ( posuvem) okna podél časové řady, čím se získají nové hodnoty prvků Xp i požadované výstupní hodnoty dp (Obr. 23). vzorek Xb nápověda db x posuv okna
0
t čas. okno
vzorek Xa
nápověda da
Obr. 23.Vytváření množiny trénovacích vzorů . Struktura použité sítě: MLP s jednou ( nebo více) skrytými vrstvami neuronů. Počet rozdělovacích uzlů n0 je dán počtem prvků trénovacího vzoru, tedy i šířkou okna T0 = n0. Počet neuronů v první skryté vrstvě volíme podle zásad uvedených na počátku této kapitoly. Výstupní vrstva výkonných neuronů bude obsahovat jen jeden neuron v případě když chceme predikovat jen jeden nejbližší budoucí člen časové řady. Má-li síť predikovat i další členy, musí mít na výstupu další neurony. Výsledky pokusů s predikcí členů časové řady jsou uvedeny v kap. 11. Byly použity různé topologie UNS , např. n0 = 11, n1 = 40, nvýst = 1, nebo zkráceně 11 - 40 – 1 , a také 20 – 40 – 1.
-42-
Klíčová slova: Návrh koncepce UNS, volba paradigmatu, volba typu umělých neuronů, volba přenosové funkce a jejich parametrů, volba počtu neuronových vrstev a počtu neuronů v jednotlivých vrstvách , volba souboru učicích vzorů, taktika jejich předkládání síti. Shrnutí: Tato kapitola pojednává o problematice návrhu neuronové sítě pro řešení určité definované úlohy. Je poukázáno na složitost a mnohostrannost tohoto problému a na fakt, že nelze stanovit jednoduchý a jednoznačný algoritmus pro nalezení optimální koncepce UNS, s výjimkou velmi jednoduchých případů. Postup záleží na zkušenosti a na dostatku již vyřešených podobných případů, které by bylo možné využít. Návrh UNS lze stručně shrnout do těchto okruhů: a) rozbor úlohy (zadání) a úvahy o možnostech řešení. b) hledání vhodného paradigmatu, což zahrnuje - stanovení struktury (topologie) sítě - počet a typ vrstev a počet neuronů v jednotlivých vrstvách - struktura vrstvy rozdělovacích uzlů, skrytých vrstev a výstupní vrstvy, - způsob propojení neuronů (úplné propojení, nebo využití klestění sítě), dopředná síť, nebo zpětnovazební, či celulární síť, c) algoritmus učení sítě (učení s učitelem, bez učitele (soutěžní), nebo jiné (např . hodnocené) d) problematika výběru vhodné trénovací množiny a taktiky jejího předkládání síti, e) způsob testování natrénované síte, f) způsob využití sítě. Jsou uvedeny typické příklady realizace UNS pro určité typy úloh. Otázky a úkoly: 1. Pojednejte o problematice návrhu umělých neuronových sítí pro definované typy úloh. a) UNS jako klasifikátory předloh, b) UNS pro predikci členů časové řady a trendu, c) UNS pro rozhodování a řízení . 2. Navrhněte kompletní řešení UNS pro klasifikaci (identifikaci) všech 16 logických funkcí dvou vstupních proměnných. Samostatná práce studenta: Navrhněte neuronovou síť pro rozpoznávání písmen anglické abecedy a decimálních číslic v rastru 5×7 bodů. Stanovte strukturu trénovacích vzorů a způsob jejich předkládání síti, způsob trénovaní sítě, testování natrénované sítě a jejího využití. Doporučená literatura: Prameny [1] až [15] uvedené v předcházejících kapitolách
-43-
10. SIMULÁTORY UMĚLÝCH NEURONOVÝCH SÍTÍ Simulátory umělých neuronových sítí jsou programy pro sekvenční počítače, které slouží k softvérové realizaci UNS. Je zřejmé, že se přitom ztrácí jedna z podstatných a již dříve proklamovaných výhod UNS, a sice paralelizmus zpracování informací, avšak je zde jedna zřejmá okolnost, že lze využít nespornou možnost realizace UNS pomocí univerzálního a flexibilního prostředku jakým současný sekvenční počítač je. Jinou alternativní možností by bylo použití multiprocesorových počítačů které by umožnily masový paralelizmus zpracování informací, ale za cenu nesporných komplikací. Zkušenosti s využitím současných velmi rychlých sekvenčních počítačů typu PC však ukazují, že pro většinu běžných úloh simulátory na nich realizované vyhovují. Simulátory mohou být specializovány na jeden typ úlohy, např. jako klasifikátory předloh určitého typu . V této práci byla již diskutována úloha rozpoznávání písmen a číslic sestavených ze zobrazovacích bodů (pixelů) v rastru m×n, např. 5×7 bodů, jak je to běžně využíváno v displejích počítačů nebo v kalkulačkách. Nebo může být UNS určena pro identifikaci logických funkci několika vstupních logických proměnných. Složitější simulátory jsou určeny např. pro rozpoznávání složitějších obrazců, např. pro rozpoznávání osob podle jejich digitalizovaných portrétů. Avšak i tyto složité úlohy zvládají simulátory na univerzálních počítačích, jak ukazuje např. publikace [ ] SHANG HUNG LINSUN- YUAN KUNG – LONG –JI - LIN : Face Recognition (Detection) by Probabilistic Decision- Based Neural Networks. IEEE Transaction on Neural Networks, 8 (1997),č. 1 (Jan.), s 114 – 132. Velmi podrobný přehled simulátorů UNS vyráběných a dodávaných profesionálními firmami uvádí M. Novák v knize Umělé neuronové sítě ( pramen [2], s. 277280. Za zmínku stojí simulátory BrainMaker, vyvinuté v několika verzích a dodávané firmou California Scientific Software. Verze 3.1 má 512 vstupních neuronů, 32767 propojení, 6 skrytých vrstev a 5 typů neuronů, konfigurace pro PC, Mac, Windows, cena asi 195 USD, verze BrainMaker Pro CNAPS Accelerator umožňuje až 1000-násobné urychlení , 64 nebo 128 procesorů, konfigurace Windows a cena asi 8 000 USD. Jedna z verzí simulátoru BrainMaker byla využívána na strojní fakultě VUT v Brně. • Zajímavé a dostupné simulátory UNS může zájemce najít v publikaci MATLAB Neural Network Toolbox [16] . Tyto simulátory se využívají na řadě pracovišť i našich vysokých škol. Vytváření a využívání simulátorů na bázi PC je dosti oblíbenou a frekventovanou aktivitou na vysokoškolskýc a výzkumných pracovištích u nás i v zahraničí. Známý je např. simulátor Stuttgart Neural Network a spousta dalších. Téměř každá větší vysoká škola je uvádí ve svém programu. Pro skromnější účely, spíše pro seznámení se s problematikou UNS a jejich jednodušší aplikací lze uvést např. • simulátor UNS tyu MLP s učením BP, vytvořený Petrem Božovským z UIVT AV ČR Praha, publikovaný v Neural Network World (1991), č.8, s. 189-190. Je tam uveden listing programu v jazyce Pascal. Má strukturu až 5 vrstev, maximálně 15 neuronů ve vrstvě, maximálně 50 vstupních vzorů. • Na Ústavu automatizace a měřicí techniky elektrotechnické fakulty VUT v Brně byl vyvinut a používal se ve výuce i ve výzkumu simulátor BPSIM autorů P. Kašíka a V. Jirsíka . Koncepce: až 6 vrstev ,až 64 neuronů ve vrstvě, nastavení konstant učení, znázornění učicí křivky. V pozdějších verzích umožňoval rozšíření konfigurace. • V příloze knihy M. Nováka [2] je uveden simulátor NESP, vypracovaný E. Pelikánem z UIVT AV ČR Praha. Je typu MLP s učením BP, určen pro PC. Vyžaduje paměť 640 kB, program je psán v Turbo C 2.0 a je určen pro MS DOS, lze jej modifikovat pro prá-44-
ci pod jinými operačními systémy. • Na katedře informatiky EPI Kunovice byl vyvinut simulátor typu MLP s učením BP ( autor J. Petrucha). Je používán pro výuku a pro výzkum, zejména v oblasti využití UNS pro predikci členů časových řad a trendů. • Velký počet simulátorů UNS lze najít na Internetu. Volně použitelné jsou např. simulátory které vyvinul a publikoval Karsten Kutza v pramenu [17 ] KUTZA, K.: Neural Networks at Your Fingertips. http:// www.geocities.com/ CapeCanaveral/1624/. Obsahuje 8 typů simulátorů: 1) ADALINE (Adaline Network) pro rozpoznávání vzorů (pattern recognition), klasifikace decimálních číslic 0 až 9. 2) BPN ( Backpropagation Network) pro predikci časových řad (Time-Series Forecasting), program implementuje klasickou mnohovrstvovou síť MLP s učením typu BP. Program demonstruje predikci členů časové řady na bázi historického souboru dat o výskytu slunečních skvrn za dobu tři století. Program je však aplikovatelný po adaptaci i na jiné úlohy predikce členů časové řady a trendů. 3) HOPFIELD (Hopfield Model) autoasociativní paměť (Autoassociative Memory) pro asociativní vyvolávání obrazců. Hopfieldův model UNS je použitý jako autoasociativní paměť pro uložení a znovuvolávání souboru bitmapových obrazů. Obrazy jsou ukládány výpočtem odpovídajících prvků váhové matice. Síť využívá vyhodnocování Hammingovy vzdálenosti mezi předkládanými vstupními vzory a maticí váhových koeficientů a umožňuje identifikovat předlohy nebo korigovat jejich porušené verze. 4) BAM ( Bidirectional Associative Memory), heteroasociativní paměť (Heteroassociative Memory), síť představuje generalizaci Hopfieldova modelu UNS. Je demonstrována na příkladu asociací mezi jmény a příslušnými telefonními čísly. 5) BOLTZMAN ( Boltzmann Machine ), ukazuje řešení optimalizační úlohy (Optimization) na bázi UNS typu TSP (Traveling Salesman Problem).Je to stochastická verze Hopfieldovy UNS. Je ukázáno řešení s hledáním globálního minima energetické funkce. 6) CPN (Counterpropagation Network) demonstruje UNS pro problematiku vidění (Vision) s určením úhlu rotace (Determination of the Angle of Rotation) . Tato UNS je kompetitivní síť určená k funkci samoprogramovatelné náhledové tabulky s dodatečnou schopností interpolace mezi vstupy. Aplikace je v určení uhlové rotace objektu raketového tvaru, jehož obrazy jsou prezentovány jako bitmapové vzory. Výkonnost sítě je poněkud limitována v důsledku snížené rozlišovací schopnosti bitmapy. 7) SOM (Self-Organizing Map) určená pro řízení (Control) , demonstruje řešení problematiky balancování točny. SOM je UNS s kompetitivním učením se schopností formovat topologii uchovávající mapování mezi jejím vstupním a výstupním prostorem. V tomto programu UNS se učí balancovat plošinu s využitím sil na bázi plošiny. Chování plošiny je simulováno numerickou integrací diferenciálních rovnic pro zákonitosti jejího pohybu s použitím Eulerovy metody. Úlohou UNS je stanovit mapování mezi stavovými proměnnými plošiny a optimální silou k udržení jejího balancování. To je dáno použitím hodnoceného (reinforced) učení: pro každý daný stav plošiny síť se snaží o jemnou variaci mapované síly.Jestliže nové výsledky síly mají za následek lepší řízení , mapa je modifikována s využitím průběžné stavové proměnné a nové síly jako trénovacího vektoru. 8) ART1 ( Adaptive Resonance Theory),určení pro modelování mozku (Brain Mode-
-45-
ling), demonstrace stability- plasticity ( Stability- Plasticity Demonstration). Tento program je zejména pro demonstraci základních vlastností UNS typu adaptivní rezonanční teorie, jmenovitě schopnosti plasticky se adaptovat,když se prezentuje nový vstupní vzorek (předloha) zatímco zůstavala stabilní při předchozí vstupní předloze. Tyto simulátory využívají C zdroje, MS Visual C++ 4.0 soubor. Na Internetu je možno najít, samozřejmě celou řadu dalších typů simulátorů a mnoho materiálů o umělých neuronových sítích a jejich aplikacích v různých oborech.
Klíčová slova: Simulátor UNS, sekvenční počítač, struktura UNS, softvérová realizace UNS, klasifikátor předloh, identifikátor logických funkcí, rozpoznávání obrazů, simulátor BRAINMAKER, simulátory v MATLABu, simulátor BPSIM, simulátor NESP, simulátory EPI, simulátory KUTZA. Shrnutí: Tato kapitola pojednává o softvérových realizacích UNS, o tzv. simulátorech UNS. Jde o programy pro sekvenční počítače. Je poukázáno na nedostatky této realizace UNS, zejména ztrátu masového paralelizmu zpracování informací, ale i na výhody v možnosti použít dobře propracované a pružné univerzální sekvenční počítače pro tyto účely. Je uvedena řada osvědčených typů univerzálních víceúčelových simulátorů, vytvořených profesionálními firmami i v rámci aktivity vysokých škol a výzkumných institucí a na simulátory uváděné v materiálech na stránkách Internetu. Otázky a úkoly: 1. Co jsou to simulátory UNS a jaké jsou na ně kladené požadavky. Výhody a nevýhody realizace UNS pomocí sekvenčních počítačů, např. PC. 2. Připravte vhodnou demonstrační úlohu pro prokázání vaší schopnosti využít simulátor UNS pro řešení technického, nebo ekonomického problému. Samostatná práce studenta: Seznamte se se současnými dostupnými simulátory UNS a s možnostmi jejich aplikace pro vybrané typy úloh v rámci vámi studovaného oboru. Doporučená literatura: Prameny [1] až [15] uvedené v předcházejících kapitolách a navíc prameny pojednávající o simulátorech UNS:
[16] DEMUTH, H. – BEALE, M.: Neural Network Toolbox For Use with MATLAB, User´s Guide Version 3. The Math Works, Inc. 1992- 1998.
-46-
11. APLIKACE SIMULÁTORŮ UMĚLÝCH NEURONOVÝCH SÍTÍ (zpracoval Ing. Jindřich Petrucha, PhD) 11.1.Simulátor a příprava dat pro modelování Od nejjednodušší analýzy až po složitější modely je kvalita vstupních dat klíčem k úspěchu. Schopnost modelu produkovat kvalitní výsledky závisí na kvalitních datech stejně jako na výběru určité metody. Než zahájíme proces modelování potřebujeme porozumět tomu jak jsou data klasifikována a různým cestám jimž jsou přenášena. Získání dat v použitelném formátu je prvním krokem v procesu přípravy na kvalitní model. Při práci s daty z externích zdrojů budeme požívat nejčastěji ASCII soubor (textový soubor). Jednotlivá data budou sloužit v první fázi pro zjištění zda simulátory jsou schopny realizovat lineární separabilitu pomocí logických funkcí a dále se bude prověřovat schopnost predikce na připravené časové řadě. 11.1.2 Popis jednotlivých simulátorů Uváděné simulátory vznikly v průběhu posledních několika let a postupně byly vylepšovány jejich funkce pro zobrazení výsledků a metody učení neuronové sítě. Tyto simulátory mohou pracovat zcela samostatně a jsou zaměřeny převážně na možnosti zpracování časové řady, dovolují však také provádět klasifikaci vzorů ze vstupní vrstvy na výstupní vrstvu podle navržené architektury sítě. Simulátor I Základní charakteristika Tento simulátor vychází částečně z programu, který byl navržen pro předpovídání slunečních skvrn na slunci a postupně byl upravován pro zpracování časovou řadu uloženou v textovém souboru. Důležitá část, která byla do simulátoru dopracována je učení sítě s využitím metody nejmenších čtverců, která je realizována ze vstupních dat přivedených na vstupní vrstvu neuronové sítě. Požadovaná hodnota je pak vypočítána s koeficientů přímky a z této hodnoty je pak počítána chyba MSE, která slouží pro úpravu vah v jednotlivých vrstvách neuronové sítě. Jako metoda učení neuronové sítě je použita metoda backpropagation. Při této metodě je použit momentový člen, který zlepšuje průběh učení a zabraňuje prudkým oscilacím při výpočtu celkové chyby přes všechny vzory neuronové sítě. Programovací jazyk simulátoru a jeho architektura Program použitý pro realizaci simulátoru je napsán v programovacím jazyce C a dovoluje být kompilován různými kompilátory. V našem případě byl použit kompilátor firmy Borland C. Program pracuje rychle, protože neobsahuje žádné grafické výstupy a pouze zobrazuje hodnotu chyby v textové formě. Data jsou uložena v paměti počítače ve vícerozměrných polích a jednotlivé konstanty pro architekturu neuronové sítě a učení jsou uloženy přímo ve zdrojovém textu. Tento systém je jednoúčelově zaměřen na testování vstupních a sledování potřebné predikce. Výstupní hodnoty jsou uloženy do textového souboru.
-47-
Testování simulátoru Simulátor byl testován na časovou řad, která byla vybrána z finanční oblasti, kdy často potřebujeme v rozhodovacích procesech předpovědět přibližné chování určitého systému. Použitá data představují časový průběh úrokových sazeb USA za jednotlivé období od roku 1940 – 1999. Data jsou normována na interval 0-1 a tyto hodnoty jsou použity pro učení a testování NN Výsledná data jsou zpětně „odnormována“ na původní interval a zapsána do souboru výsledných dat
Obr.21 Vstupní data s popisem oblastí
Trénovací data
Testovací data
Sledovaná predikce
Rozsah trénovacích a testovacích dat může být různý a závisí na charakteru zkoumané časové řady. Důležité pro generalizaci sítě je aby tento rozsah nebyl stejný a částečně se překrýval.
Při učení neuronové sítě dochází ke změnám střední kvadratické chyby pro oblast trénovacích a testovacích dat.
-48-
Obr. 22 Průběh střední kvadratické chyby při učení neuronové sítě varianty b/ 10-20-1
Výsledky experimentálního modelu pro obě varianty neuronové sítě Výsledky ze souborů byly uloženy do souboru excelu a zobrazen grafický průběh jednotlivých predikcí v čase. Učení sítě zabralo nejvíce času (v průměru 1 hod), a dále v průběhu testování byly vyzkoušeny i jiné varianty architektur. Jako nejvhodnější byly vybrány právě ty architektury, které jsou zobrazeny v grafech a jejichž výsledky jsou v závěrečné tabulce č.1.
zdrojová data
Predikce neuronové sítě s využitím regrese
Predikce neuronové sítě
Obr. 23 Průběh predikovaných dat s použitím architektury varianty a/ 20-40-1 • •
Z obrázku je zřejmá setrvačnost při predikci pomocí regrese, protože regresní přímka způsobuje vyhlazení a zpomalení změny. Vstupní vektor je poměrně veliký a to není vhodné pro zachycení prudké změny v průběhu dat. Velmi dobré výsledky je naopak vidět bez použití regresního modelu kdy síť je schopna předpovídat data ze vstupního vektoru mnohem lépe.
zdrojová data
-49-
Predikce neuronové sítě s využitím regrese
Obr. 24 Průběh predikovaných dat s použitím architektury varianty b/ 10-20-1
Na obrázku je zřejmá kratší vlna v oblasti zlomu predikovaných dat s využitím regresní přímky tato varianta je vhodná pokud zlom v datech je rozložen na delší časové období . Jednotlivé výsledky dosažené pomocí tohoto experimentálního modelu neuronové sítě můžeme shrnout do následující tabulky. Pro hodnocení jednotlivých architektur z hlediska přesnosti předpovědi byl použit Theilův koeficient nesouladu. Jeho stonásobek můžeme interpretovat jako bezrozměrnou, procentní chybu předpovědi.
m . s2∆ T2 =
m
∑ y2 t+i i=1
Tabulka Hodnoty Theilova koeficientu pro jednotlivé architektury neuronové sítě Th koeficient Architektura 20 – 40 -1 Architektura 10 – 20 -1 Predikce v rozsahu všech dat 0.016508 0.020479 Predikce posledních 5 dat 0.014358 0.044194 S využitím regrese Architektura 20 – 40 -1 Architektura 10 – 20 -1 Predikce v rozsahu všechvšech dat 0.048881 0.031219 Predikce posledních 5 dat 0.016731 0.039644
Zhodnocení výsledků ze simulátoru I Z tabulky 1 je zřejmé , že nejlepších výsledků dosahuje architektura varianty A/ 20-40-1 bez použití regrese. Tato architektura je schopna reagovat na změny velmi pružně a predikovat budoucí hodnoty. Za velmi dobrou variantu lze považovat také architekturu varianty B/ 10-20-1, kterou doporučuji použít při datech s určitým trendem a predikci delšího časového období. Tato varianta využívá regresní analýzu na 1/6 rozsahu což se ukazuje jako dobrý poměr mezi celkovým rozsahem dat a vstupním vektorem sítě na kterém se provádí regrese.
Simulátor II Základní charakteristika Simulátor je navržen pro obecnější použití v oblasti klasifikace vzorů s možností ověření správnosti učební metody. Je ověřena lineární separabilita sítě pomocí logických funkcí. Jeho návrh vychází s principů třívrstvé architektury, tak aby bylo možné měnit počet neuronů ve vstupní a výstupní vrstvě neuronové sítě. Tento simulátor je navržen pro operační systém WINDOWS s využitím grafických komponent. Jako metoda učení neuronové sítě je opět použita metoda backpropagation s momentovým členem jako v předchozím simulátoru I. Tento simulátor slouží jako základ pro další simulátor, který bude zaměřen na časovou řadu. Programovací jazyk simulátoru a jeho architektura Zdrojový text simulátoru byl napsán v programovacím jazyce PASCAL DELPHI s využitím objektů a grafických komponent.. Grafická komponenta dovoluje sledování průběhu chyby MSE v průběhu učení neuronové sítě a uživatel může posoudit zda tato hodnota klesá v průběhu učení.
-50-
V případě tohoto simulátoru pracujícím jako klasifikátor použijeme textový soubor, který v první části má hlavičku popisující jednotlivé parametry neuronové sítě a v druhé části jsou hodnoty vstupního vektoru za kterými následují požadované hodnoty výstupního vektoru. Tento způsob dovoluje různě měnit počty neuronů nejen ve vstupní a výstupní vrstvě ale také ve skryté vrstvě což může ovlivnit rychlost učení neuronové sítě. V následující tabulce je ukázka dat logické funkce, která jsou načtena do vnitřní paměti a zobrazena v tabulkách komponent a uživatel je může v průběhu testování.
Neuron sit - logicka funkce AND 2 -pocet vstupu 1 -pocet vystupu 4 -pocet vzoru 2 -pocet neuronu ve skryte vrstve
Hlavička popisující jednotlivé parametry
*** 1 1 *** 1 0 *** 0 1 *** 0 0
Jednotlivá data vstupního vektoru oddělena textovým řetězcem
*** 1 ** 0 ** 0 ** 0
Požadované hodnoty výstupního vektoru
Tab. Popis parametrů vstupního textového souboru pro logickou funkci AND Následující obrázek ukazuje základní okno simulátoru s jednotlivými ovládacími prvky.
-51-
Obr. 24 Základní obrazovka simulátoru II
Testování simulátoru Simulátor byl testován na časovou řad, která byla vybrána z finanční oblasti, kdy často Pro ověření funkčnosti simulátoru použijeme data logických funkcí uložených v textových souborech AND.TXT, OR.TXT, NAND.TXT, XOR.TXT.
Pro ověření klasifikační funkce použijeme data v textovém formátu představující binární kódování jednotlivých vzorů. Jako příklad lze použít rozpoznávání jednotlivých písmen, které budou znázorněna v matici bodů 4 x 4. Jednotlivá písmena budou představovat vstupní vzory, vstupní vektor bude mít 16 hodnot a na výstupu bude vektor např 4 hodnot představující 4 písmena, která budeme rozpoznávat. Počet hodnot vstupního vektoru závisí na způsobu kódování vstupního vzoru a počet hodnot výstupního vektoru je závislá na počtu vzorů které chceme rozpoznávat. Ukázka vzoru písmena ´A´ a jeho binárního kódování.
-52-
0 1 1 1
1 0 1 0
1 0 1 0
0 1 1 1
Neuron sit – rozpoznání 4 písmen 16 -pocet vstupu 4 -pocet vystupu 4 -pocet vzoru 8 -pocet neuronu ve skryte vrstve
Hlavička popisující jednotlivé parametry
*** 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 ***
Kódování písmena A – 16 binárních hodnot po jednotlivých řádcích. Jednotlivá data vstupního vektoru oddělena textovým řetězcem
….. ….. *** 1 0 0 0 ** ….. ….. ** …..
Požadované hodnoty výstupního vektoru pro písmeno A
Tab : Popis parametrů vstupního textového souboru pro rozpoznání vzorů Tímto způsobem bude v ukázce binárně zakódováno písmeno A, D, C, O. Simulátor bude schopen rozpoznávat tyto 4 písmena. Vstupní soubor je popsán v příloze práce.
Pro časovou řadu by bylo složité určit jednotlivé vzory, které představují vstupní vektor, protože tyto vzory jsou částmi časové řady získanými náhodným vzorkováním podle velikosti vstupního vektoru. Zhodnocení výsledků ze simulátoru II Simulátor je vhodný pro realizaci výstupů, které představují rozhodování mezi několika variantami tedy klasifikaci vzorů. Během testování nevznikly problémy s klasifikací, které je pevně dána ve vstupních vzorech. Pokud jde o neúplné vzory nebo poškozené vzory mohou výsledky lišit podle stupně poškození vzoru.
-53-
Simulátor III Základní charakteristika Cílem tohoto simulátoru je využít principy učení a nastavování vah z předchozího simulátoru pro aplikaci na časovou řadu. Grafické komponenty dovolují zobrazit průběh časové řady a sledovat průběh predikce. Metoda učení je opět backpropagation. Uživatel určuje rozsah trénovacích a testovaných dat s možností upravovat přesnost v procentech. Pracuje opět s textovým souborem ve kterém jsou zabudovány jednotlivé parametry potřebné pro architekturu a učení neuronové sítě. Při učení jsou postupně přiváděna data na vstupní vrstvu neuronové sítě náhodným vzorkováním . Po nastavení vah je proveden výpočet chyby MSE ,která se graficky znázorňuje na obrazovce. Výpočet chyby se provádí z oblasti testovacích dat, kterou určuje uživatel.
Programovací jazyk simulátoru a jeho architektura Zdrojový text simulátoru byl napsán v programovacím jazyce PASCAL DELPHI s využitím objektů a grafických komponent.. Grafická komponenta dovoluje sledování průběhu chyby MSE v průběhu učení neuronové sítě a uživatel může posoudit zda tato hodnota klesá v průběhu učení. V případě tohoto simulátoru se využívají části kódu z předešlého simulátoru. Po ukončení fáze učení je možné uložit výsledky nastavení vah do binárního souboru, který je možné načíst do programu a pokračovat v určité fázi učení nebo pokračovat v testovací fázi neuronové sítě.
Obr.25 Základní okno pro sledování dat simulátoru III
-54-
Obr.26 Základní okno simulátoru III Grafický průběh zadaných dat a hodnot předikovaných neuronovou síti
-55-
Grafické znázornění učící křivky neuoronové sítě
Testování simulátoru Simulátor byl testován pomocí několika časových řad. První časová řada představuje matematickou funkci sinus a na obrázcích je vidět postupné vylepšení napodobení funkce, která je předkládána jako vzor.
Obr.27 Testování funkce sinus
Simulátor se v první fázi pouze přiblíží k průběhu funkce sinus a teprve při větším počtu učících cyklů je výsledek takový že chyba odpovídá asi 5% chybě. Tato situace je znázorněna na dalším obrázku. Na obrázku je vidět i průběh celkové chyby při učení, která plynule klesá.
-56-
Obr.28 Testování funkce sinus pro větší počet cyklů učení
Obr.27 Testování složitější funkce
-57-
Zhodnocení výsledků ze simulátoru III Simulátor pracuje podobnou metodou jako simulátor číslo I ale má mnohem lepší uživatelské rozhranní. Jeho výsledky jsou velmi dobré pokud v datech nejsou prudké výkyvy v jednotlivých testovacích nebo učících datech. Tento simulátor je vodný pro delší časová období při učení a pro kratší období pro predikci dat. Vhodné období je na 3 až 5 kroků vpřed. Je vhodné provést učení pro větší počet cyklů a při nových datech provést další učení umělé neuronové sítě. Doporučená architektura je třívrstvá ( 6-10-1).
-58-
12. SOUHRNNÝ PŘEHLED LITERATURY
[1]
MIKULA, V.: Umělé neuronové sítě (Teoretické základy). Elektronické učební texty EPI, Kunovice, 2003. [2] NOVÁK, M. a kol.: Umělé neuronové sítě – Teorie a aplikace. 1. vydání. Nakladatelství C.H.Beck, Praha,1998. [3] HAYKIN, S.: Neural Networks. A Comprehensive Foundation. MacMillan College Publishing Company, New York,1994. [4] HECHT-NIELSEN,R.: Neurocomputing.Addison-Wesley Publ. Co., 1990. [5] KOSKO, B.: Neural Networks and Fuzzy Systems. Prentice Hall, 1992 [6] LAWRENCE, J.: Introduction to Neural Networks. California Scient.Software. 3rd Edition,1991. [7] POKORNÝ, M.: Umělá inteligence v modelování a řízení. BEN-Technická literatura, Praha, 1996. [8] ŠNOREK, M.-JIŘINA, M.: Neuronové sítě a neuropočítače. Vydavatelství ČVUT Praha,1996. [9] Proceedings of the IEEE- Special Issue on Neural Networks I, II , Sept.- Oct. 1990. ( obsahuje soubor článků o neuronových sítích, mj. článek Teuvo Kohonena o principu, dimenzování a aplikacích UNS typu SOM, nazvaných po autorovi). [10] CICHOCKI, A.-UNBEHAUEN, R.: Neural Networks for Optimization and Signal processing. J. Wiley and Sons, New York,1993. [11] HOŘEJŠ, J.: A View on Neural Networks Paradigm Development. Tutorial. Neural Network World, 1991, č. 1 až 6 na pokračování. [12] CHMÚRNY, J.-ČIŽMÁR, A. : Modely neuronových sietí na spracovanie signálov. Elektrotechnický časopis, 42,(1991), č.9- 10, s. 531-542. [13] HAUPT, R.L.: An Introduction to Genetic Algorithm for Electromagnetics. IEEE Transactions on Antennas and Propagation Magazine , 37 (1995), č. 2 (April), s. 7-16. [14] WEILE-D.S.-MICHIELSEN, E.:Genetic Algorithm Optimization Applied to Electromagnetics.IEEE Transactions on Antennas and Propagation, 45 (1997), č.3 (March), s. 343-353. [15] ZELINA, I.: Umělá inteligence I.Neuronové sítě a genetické algoritmy. Nakladatelství VUTIUM, Brno, 1998. [16] DEMUTH, H.- BEALE, M.: Neural Network Toolbox For Use with MATLAB, User´s Guide Version 3. The Math Works, Inc. 1992-1998. [17] KUTZA, K.: Neural Networks at Your Fingertips. Simulátory UNS: ADALINE, BPN, HOPFIELD Model, BAM, BOLTZMAN Machine, CPN, SOM, ART 1. http://www.geocities.com/CapeCanaveral/ 1624/ [18] KAŠÍK, P.- JIRSÍK,V.: BPSIM- Simulátor UNS typu MLP s učením BP. Katedra automatizace a měřicí techniky , FE VUT v Brně, l990. [19] BOŽOVSKÝ, P.: A Pascal Program for BP. Simulátor UNS. In: Hořejš, P.: Neural Networks Paradigms Development. Neural Network World č.3 (1991),str.188-190. [20] PELIKÁN, E.: Program NESP (simulátor UNS typu MLP s BP). Příloha knihy Novák, M. a kol.: Umělé neuronové sítě- teorie a aplikace Nakl.. C.H. Beck, Praha 1998. ISBN – 80-7179-132-6
-59-
[21] PETRUCHA, J. : Simulátor umělé neuronové sítě. EPI Kunovice 2003 [22] DOSTÁL, P.-RAIS, K.- SOJKA, Z.: Pokročilé metody manažérského rozhodování. Grada Publishing,a.s. Praha, 2005. ISBN 80-247-1338-1. [23] ZAPLETAL, J.: Úvod do analýzy ekonomických časových řad.Vysoké učení technické v Brně, Ústav matematiky FEI , Brno 2000, ISBN 8O-214-1719-6. [24] TRIPPI, R.R.: Neural Networks in Finance and Investigating. McGraw-Hill Co. 1995. [25] SUNG-BAE CHO: Neural Network Classifier for Recognizing Totally Unconstrained Handwritten Numerals. IEEE Transactions on Neural Nerworks 8 (1997) ,č. 1 (Jan.) s 43-53. [26] SHANG- HUNG-LIN- SUN- YUAN KUNG- LONG -JI LIN: Face Recognition ( Detecting by Probability Decision- Based Neural Nrtworks, 8 (1997, č. 1, (Jan.), s 114 – 132.
Poznámka: Rozsáhlý soubor důležitých pramenů o umělých neuronových sítích uvádějí prameny [2] a [3] (35 stran pramenů) , dále [9] a jiné. Bohaté soubory článků jsou v časopisech Proceedings of the IEEE, IEEE Transactions on Neural Networks, IEEE Transactions on Circuits Theory a Neural Network World.
-60-