ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE
Technická fakulta
Katedra technologických zařízení staveb
Využití neuronových sítí pro integraci PZTS do inteligentních budov diplomová práce
Vedoucí práce: Ing. Zdeněk Votruba Autor práce: Bc. Ondřej Škvor
PRAHA 2014
Prohlášení Prohlašuji, že jsem tuto diplomovou práci vypracoval samostatně pod vedením Ing. Zdeňka Votruby a uvedl jsem veškeré literární prameny a publikace, ze kterých jsem čerpal.
…………………………… Podpis autora
Poděkování Děkuji vedoucímu práce Ing. Zdeňku Votrubovi za cenné rady a připomínky při zpracování této diplomové práce. Dále děkuji svým rodičům a všem, kteří mi jakkoliv pomohli při studiu.
…………………………… Podpis autora
Abstrakt: Cílem této diplomové práce je posouzení možností využití neuronových sítí jako nástroje pro integraci bezpečnostních systému v rámci koncepce inteligentních budov. Na základě literárního rozboru jednotlivých typů sítí je dále v práci vybrán konkrétní typ neuronových sítí, na kterém jsou demonstrovány možnosti užití neuronových sítí v dané problematice. První kapitola „Historie neuronových sítí“ popisuje vznik a postupné rozšíření neuronových sítí v oblasti výpočetní techniky. V následující kapitole „Aktuální situace neuronových sítí“ je přiblížen aktuální stav využití tohoto aparátu. Kapitola „Model neuronu“ slouží k bližšímu seznámení základní myšlenky neuronových sítí v oblasti biologické i matematické. V následující stěžejní kapitole „Neuronové sítě“ jsou detailně popsány základní typy neuronových sítí včetně jejich učících algoritmů a nejčastějších způsobů využití. Zbytek práce je poté zaměřen na praktické řešení neuronové sítě a její simulace v součinnosti se systémem Digiplex Evo 192 společnosti Paradox. Na závěr práce jsou zhodnoceny možnosti reálného využití neuronových sítí v rámci integrace do inteligentních budov. Klíčová slova: bezpečnost, zabezpečovací systémy, integrace, neuronové sítě, PZTS
The use of neural network for integration I&HAS in smart building
Summary: The aim of this Diploma Thesis is to assess the possibility of using neural networks as a tool for integrating security system within the concept of intelligent buildings. On the basis of literary analysis of each type of network is also at work chosen a specific type of neural networks, which are demonstrated the possibility of using neural networks in this field. The first chapter, "History of Neural Networks" describes the emergence and gradual expansion of neural networks in the field of computer technology. In the next chapter, "The current situation neural networks" is written actual stage of using neural networks. Chapter "Model neuron" serve to familiar basic ideas of neural networks in biological and mathematical field. In the next crucial chapter "Neural Networks" are described basic types of neural networks and their learning algorithms and the most common uses. The rest of the thesis is then focused on practical solutions to the neural network and its simulation in conjunction with the system Digiplex Evo 192 from Paradox company. At the end of the thesis is the evaluation of the real application of neural networks in the concept of integration in intelligent buildings. Key words: safety, security systems, integration, neural network, I&HAS
1
Úvod _______________________________________________________________ 1
2
Historie neuronových sítí ______________________________________________ 3
3
Aktuální situace neuronových sítí________________________________________ 7
4
Model neuronu ______________________________________________________ 9
5
4.1
Biologický model neuronu _______________________________________________ 9
4.2
Matematický model neuronu ____________________________________________ 11
Neuronové sítě _____________________________________________________ 17 5.1
Úlohy neuronových sítí _________________________________________________ 17
5.2
Typy neuronových sítí dle způsobu učení __________________________________ 18
5.2.1 5.2.2 5.2.3
5.3 5.3.1 5.3.2
5.4 5.4.1 5.4.2 5.4.3
5.5 5.5.1 5.5.2 5.5.3
5.6 5.6.1 5.6.2 5.6.3
Učení s učitelem_____________________________________________________________ 18 Posilující učení ______________________________________________________________ 18 Učení bez učitele ____________________________________________________________ 19
Typy neuronových sítí z hlediska průchodu informací ________________________ 19 Dopředné sítě ______________________________________________________________ 19 Rekurentní sítě ______________________________________________________________ 20
Typy neuronových sítí dle počtu vrstev ____________________________________ 21 S jednou vrstvou neuronů _____________________________________________________ 21 Vícevrstvé neuronové sítě _____________________________________________________ 21 Algoritmus učení Back-propagation vícevrstvých neuronových sítí ____________________ 22
Základní modely neuronových sítí ________________________________________ 26 Perceptron _________________________________________________________________ 26 Adaline ____________________________________________________________________ 27 Madaline __________________________________________________________________ 29
Dělení sítí ____________________________________________________________ 31 Sítě s pevnými vahami ________________________________________________________ 31 Sítě s učením s učitelem ______________________________________________________ 40 Sítě s učením bez učitele ______________________________________________________ 42
6
Vyhodnocení možností použití _________________________________________ 50
7
Praktické řešení _____________________________________________________ 51 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5
7.2 7.2.1 7.2.2
Měřící sestava ________________________________________________________ 51 Sběrnicová zabezpečovací ústředna Digiplex Evo 192 _______________________________ 51 Klávesnice K-641 ____________________________________________________________ 52 Pohybový PIR detektor DM50 __________________________________________________ 52 Tiskový modul PRT3 __________________________________________________________ 52 Stolní počítač _______________________________________________________________ 54
Popis řešení - MATLAB _________________________________________________ 54 Příprava pracovního prostředí__________________________________________________ 55 Vytvoření neuronové sítě _____________________________________________________ 57
7.2.3 7.2.4
7.3
Simulace neuronové sítě ______________________________________________________ 60 Návrh optimalizace sítě _______________________________________________________ 61
Popis řešení – C# ______________________________________________________ 63
8
Závěr a shrnutí______________________________________________________ 64
9
Seznam použité literatury _____________________________________________ 65
10 Seznam obrázků ____________________________________________________ 69 11 Seznam tabulek _____________________________________________________ 70 12 Seznam vzorců ______________________________________________________ 71 13 Seznam odborných výrazů a zkratek ____________________________________ 72
1 Úvod V současné době, kdy drtivá většina budov disponuje některým ze systémů, jako jsou například bezpečností, kamerové, docházkové, je kladen požadavek na možnou integraci těchto funkčně odlišných systémů do jednoho hlavního. Pomocí tohoto centrálního prvku je poté možné jednotlivé systémy ovládat a navíc sdílet mezi sebou informace, se kterými lze následně pracovat. Tato koncepce je nazývána termínem „Inteligentní budovy“. Pojem je v dnešním světě již dostatečně otřelý a mnoho výrobců již poskytuje centralizované systémy, pomocí kterých lze jednotlivé prvky propojit. Nyní se ale stále ve větší míře objevují ukázky modelů principiálně fungujících na bázi neuronových sítí. Pomocí tohoto aparátu je možné systém použít jako prvek „schopný přemýšlet“. V podstatě se jedná o prostředek, jehož prostřednictvím lze jednotlivé systémy propojit do jednotného celku a zajistit tak jejich vzájemnou spolupráci. Diplomová práce přibližuje možnosti využití právě neuronových sítí v oblasti konceptu Inteligentních budov, konkrétně zabezpečovacích systémů (PZTS). Cílem práce je návrh konkrétní neuronové sítě, pomocí které lze využít model k dalšímu zapojení mezi ostatními systémy. Diplomová práce volně navazuje na autorovu bakalářskou práci Stavy a události na ústřednách EZS, která slouží jak zdroj vstupních informací v praktické části této práce. V práci je nejdříve popsána historie vzniku neuronových sítí. V této části je rozebráno postupné objevování jednotlivých typů sítí. Následující kapitola již přibližuje současné využití toho aparátu v praxi. Jedná se o popis možné aplikace neuronových sítí v různých oblastech vědy a techniky. Další část práce obsahuje popis modelu neuronu ze dvou hledisek, a to biologického a matematického. Následuje jedna z hlavních částí práce. Jedná se o rozsáhlejší kapitolu, kde jsou popsány jednotlivé typy sítí z hlediska způsobu učení, průtoku informací a topologie. Kapitola obsahuje popisy nejzákladnějších druhů sítí, kde je popsána zejména topologie sítí, možné algoritmy učení sítí a jejich obvyklé použití v praxi. Další kapitola je jakýmsi shrnutím, kde je rozebrána možnost použití neuronových sítí v systémech PZTS na základě předchozího rozboru.
1
Druhá polovina práce je pak zaměřena na konkrétní praktické řešení. Jedná se o modelování neuronové sítě pomocí softwaru Matlab, kdy je síť učena na konečný počet stavů. Vzniklý model je dále upraven za účelem minimalizace chybové funkce a zvýšení možností použití modelu v praxi. Pro úplnost je ještě popsáno řešení tvorby neuronové sítě prostřednictvím programovacího jazyka C#, kdy je demonstrován model jednoho perceptronu. Závěr práce obsahuje důležité shrnutí poznatků získaných při zpracování a vyhodnocení možností využití neuronových sítí v koncepci inteligentních budov. Toto shrnutí obsahuje i hodnocení z hlediska aktuální legislativy použití neuronových sítí.
2
2 Historie neuronových sítí [1] Z historického hlediska není naprosto jasné, kdy lze datovat vznik oboru, který se výpočty pomocí neuronových sítí zabývá, avšak za počátek lze považovat rok 1943 a práci Warrena McCullocha a Waltera Pittse. Tito dva vědci totiž jako první položili základ teorii neuronových sítí a to vysvětlením velice jednoduchého matematického neuronu, pracujícího na principu buňky nervové soustavy člověka. V tomto modelu byly výpočty soustřeďovány na hodnoty parametrů spíše bipolární (tj. z množiny {-1, 0, 1}). Již tehdy oni vědci poukázali na možnosti těch nejjednodušších typů neuronových sítí, kdy dokázali, že pomocí nich lze počítat libovolnou aritmetickou a logickou funkci. Přestože nepočítali s bezprostředním praktickým využitím jejich vědeckých výsledků, jejich článek dal základy práce a inspiraci ostatním vědcům. Mezi nejvýznamnější patřil například zakladatel kybernetiky Norbert Wiener, který se inspiroval při studiu podobnosti činnosti systémů výpočetní techniky a lidské nervové soustavy. Dalším, známějším vědcem, byl autor projektu elektronických počítačů John von Neumann, který na základě těchto poznatků napsal práce, kde zdůrazňoval možnost inspirace činností lidského mozku při návrhu počítačů. Tyto návrhy, ačkoliv byly hojně citovány, z počátku nepřinesly požadované výsledky. Dalším důležitým milníkem byl rok 1949, kdy vyšla kniha s titulem The Organization of Behavior, ve které autor Donald Hebb navrhl učící pravidlo pro mezineuronové spojení neuronů (synapse). Vznik tomuto pravidlu dalo pozorování živočichů a konečný závěr, že jejich podmíněné reflexy jsou již vlastností jednotlivých neuronů, šlo tedy spíše o vysvětlení experimentálních výsledků z psychologie, o kterou se autor také velmi vášnivě zajímal. Stejně jako práce prvních vědců a zájemců o tento obor i tato publikace se stala inspirací pro ostatní badatele, avšak ani v průběhu několika dalších let se výzkum počítačů inspirovaných nervovou soustavou člověka nijak závratně nevyvíjel. V tomto období se v oblasti výzkumu objevovaly pokusy podobné konstrukci prvního neuropočítače zvaného Snark, jehož autorem byl Marvin Minsky. Ačkoliv byl tento koncept na vysoké technické úrovni, kdy dokázal automaticky měnit míru synaptické propustnosti (váhy), ve skutečnosti se jeho reálné využití na větších výpočtech neuskutečnilo.
3
Až v roce 1957 přišel Frank Rosenblatt s konceptem perceptronu, což je zobecnění matematického modelu oněch zakladatelů McCullocha a Pittse pro reálný číselný obor parametrů. Tento vědec je také autorem jedné z prvních publikací týkajících se neurovýpočtů Principles of Neurodynamics. Pro model perceptronu navrh algoritmus učení, na kterém dokázal, že je schopen pro konkrétní tréninková data nalézt po konečném počtu kroků nezávisle na počátečním nastavení modelu odpovídající váhový vektor (míry synaptické propustnosti pro jednotlivé vstupní vektory), pokud však existuje. Na základě těchto pokusů a výpočtů společně s dalšími vědci jako byl Charles Wightman, sestrojil první úspěšný počítač založený na neuronových sítích, zvaný Mark I Perceptron. Rosenblatt byl původně zaměřen na rozpoznávání obrazců, proto i tento koncept byl určen tomuto oboru. Principiálně se jednalo o promítání znaků na světelnou tabuli, kde byly snímání polem 20×20 fotovodičů. Intenzita všech obrazových bodů pak byla vstupními daty do neuronové sítě perceptronů, jejímž úkolem bylo rozpoznávat jednotlivé znaky abecedy. Tento koncept měl dále 512 adaptovatelných váhových parametrů, které byly realizovány polem 8×8×8 potenciometrů. Hodnoty potenciometrů byly nastavovány automaticky motorem, který byl řízen analogovým obvodem. Tento obvod představoval právě učící perceptronový algoritmus. V tu chvíli nejzajímavější částí bylo však náhodné propojení vstupů a perceptronů. Právě tato široká škála možnosti vlastního propojení demonstrovala schopnost sítě vlastního učení na základě různého zapojení a velkou odlišnost od klasických programovatelných počítačů. Díky velkým možnostem tohoto modelu je dodnes některými odborníky za zakladatele tohoto oboru označován právě Rosenblatt. Za krátkou dobu je objeven další typ neuronového výpočetního prvku, zvaný ADALINE (adaptive linear element). Tento prvek objevil Bernard Widrow se svými studenty a je vybaven výkonnějším učícím pravidlem, díky němuž je používán doposud. Opět i na tomto modelu byly demonstrovány nejrůznější příklady, aby byla dokázána jeho funkčnost. Začátkem 60. let dochází k rozvoji neurovýpočtů zejména díky objevování nových modelů neuronových sítí a jejich implementací. Nejznámějšími jmény jsou potom Karl Steinbuch, autor modelu binární asociativní sítě, Roger Barron a Lewey Gilstrap, kteří založili první společnost, která se zaměřovala výhradně na aplikaci neurovýpočtů.
4
Za zmínku jistě stojí fakt, že v tomto oboru panovaly i jisté problémy. Díky povaze oboru, který umělá inteligence beze sporu má, se rychle roznesl názor, že brzy bude vyvinut umělý mozek, což zdiskreditovalo neuronové sítě v očích odborníků a mnozí se začali zajímat o jiné oblasti umělé inteligence, čímž tento obor přišel o skutečně důležité vědce. Dalším problémem byl fakt, že většina vědců se do výzkumů pouštěla spíše formou pokusů, kdy pouze zkoušely, co vše je možné s neuronovými sítě provést a jejich přístup už nebyl ani vědecký. Výzkum tedy začal vyžadovat jiné způsoby myšlení a různé úhly pohledu na danou věc. V oblasti výzkumu neuronových sítí z těchto výše uvedených důvodů nastalo období, kdy společnost a vědci tímto oborem spíše opovrhovali. Vinu na všem měla publikace zvaná Perceptrons, díky které Marvin Minsky a Seymour Papert diskreditovali obor neuronových sítí natolik, že výzkum přestal být pro ostatní zajímavý a ani dotování výzkumů nebylo žádoucí. Podařilo se jim to v podstatě pouze zpochybněním modelu perceptronu, pomocí kterého nelze vyřešit logickou funkci XOR (vylučovací disjunkci). Tento problém lze řešit prostřednictvím dvouvrstvé sítě se třemi neurony, ale pro vícevrstvý perceptron nebyl v té době znám učící algoritmus. Autoři tak vyslovili závěr, že nalezení takového algoritmu pro řešení tak složité funkce není možný a tento názor byl přijat, čímž byl další výzkum neuronových sítí pro ostatní neperspektivní. Vášniví badatelé však své výzkumy nezastavily a pod hlavičkou jiných názvů dále šířily výsledky svých výzkumů. Jedním z nejdůležitějších vědců byl John Hopfield, který díky svým výsledkům testů a pokusů dokázal přesvědčit ty nejdůležitější vědce, matematiky a technology, a získal tak nejen podporu vědeckou ale zejména finanční. Dalším velice důležitým rokem byl rok 1986, kdy vyšel článek, za kterým stáli David Rumelhart, Geoffrey Hinton a Ronald Williams. V tomto článku byl popsán algoritmus zpětného šíření chyby (back propagation of error), pomocí kterého byl vyřešen problém realizace logické funkce XOR, což vyvrátilo dřívější tvrzení, kvůli kterému byl další vývoj a výzkum neuronových sítí téměř zastaven. Za zmínku jistě stojí, že tento algoritmus je doposud jedním z nejpoužívanějších vůbec. Pomocí tohoto algoritmu byl později sestaven systém, který byl schopen transformovat anglicky psaný text na mluvený záznam, což se stalo jedním z důležitých milníků pro všechny lingvisty zainteresované do tohoto oboru.
5
V roce 1987 se v San Diegu konala první konference, která byla zaměřena výhradně na neuronové sítě, a právě zde byla založena mezinárodní společnost pro výzkum neuronových sítí
INNS (International Neural Network Society). Prostřednictvím této
společnosti byly později vydávány různé odborné časopisy a jiné publikace. Od tohoto roku bylo založeno velké množství výzkumných ústavů ať už samostatných nebo zaštítěných univerzitami.
6
3 Aktuální situace neuronových sítí V současně dobře se na téma neuronových sítí mluví zejména v oblasti rozpoznávání audio záznamů a hlasu obecně. Již byly sestaveny softwarové komponenty pro převod mluveného slova na psanou podobu. Hlavním problémem v tomto případě je ale možná změna intonace mluvčího, různá zkreslování slov a v neposlední řadě „přeřeky“ a takzvané „váhací zvuky“. Vznikly ovšem už i programy, které na základě mluveného slova rozeznávají autora či pohlaví mluvčího. V dalších funkcích lze využít aplikace jako hodnotící nástroj pro call-centra, kdy lze monitorovat přístup pracovníka k zákazníkovi a tak podobně. Velkým podílem se na vývoji účastnila společnost IBM, která již v padesátých letech zkoumala počítačovou simulaci neuronových synapsí, načež byl představen počítač Watson, který je schopen paralelních výpočtů a učí se četbou textu v přirozeném lidském jazyce. V roce 2011 přestavila tato společnost počítač, který „umí programovat sám sebe“. Jeho úspěšné odzkoušení bylo provedeno na detekci rukou psaných znaků, konkrétně číslic, či při naučení pohybů při primitivní hře Ping-Pong. Do budoucna chystá IBM ambicióznější projekty, vytvořit systém s deseti miliardami neuronů, stovkami biliony synapsí, který přitom potřebuje jen jeden kilowatt elektrické energie. Výzkumníci však uvedli, že oproti budoucnosti má tento kognitivní čip stále své nedostatky. Ačkoliv se dokáže dynamicky přizpůsobit aktuálním podmínkám a automaticky se rekonfigurovat podle interakce s okolím, stále je jeho funkce založena na člověkem vytvořených algoritmech. Uplatnění takových čipů je zejména v oblastech, kde je systému předáváno velké množství vstupních dat a je vyžadováno zpracování v reálném čase. Mezi takové oblasti patří například předpovědi počasí, detekce zemětřesení, sledování bezpečnosti na silnicích, lékařská analýza či například sledování finanční kriminality.[2] Vývojová divize společnosti Microsoft zase odhalila svůj projekt, kde prezentovala systém na převod mluveného slova do jiného jazyka. Konkrétně se jednalo o převod osmi anglických vět do čínštiny. Systém nebyl nijak dokonalý, avšak myšlenka sklidila velký úspěch a dále se pracuje na zdokonalení. Imitace hlasu v tomto případě byla založena na modelu, který se na základě zpětné vazby postupně učí napodobit řečníkův hlas. Jistě je to dobrý start pro následnou aplikaci a v budoucnu může mít tento systém široké uplatnění. [3]
7
Jak už bylo zmíněno, neuronové sítě jsou kvalitním nástrojem pro zpracování velkých množství dat při požadavku zpracování v reálném čase. Jako příklady z praxe lze uvést systémy pro analýzu zákazníků při koupi knih na portále www.amazon.com. Systém vyhodnocuje data podle skupin zákazníků (které knihy si kdo koupí), a následně je podle těchto informací tvořen takzvaný cílený marketing. Dalším příkladem je vyhledávač Google, který zaznamenává překlepy a následné opravy uživatelů při vyhledávání různých výrazů. Na základě záznamu těchto překlepů je poté tvořena databáze nejčastějších překlepů, čímž se vylepšuje celkové porozumění hledanému textu. Další aplikací neuronových sítí do praxe je projekt pro rozpoznávání signálů pomocí neuronových sítí a jejich využití pro potlačení vlivu rušení.
8
4 Model neuronu 4.1 Biologický model neuronu Samotný koncept neuronových sítí je poněkud odlišný od zažitých paradigmat, podle nichž pracují dnešní výpočetní modely počítačů. Neuronová síť je inspirována lidským mozkem, který se skládá z velkého množství nervových buněk, neuronů. Přibližně se jejich počet pohybuje kolem 1010 neuronů. Tyto buňky jsou vzájemně propojeny řádově ještě vyšším počtem spojením.
Obrázek 1 Biologické neuron - fotografie [Zdroj: 4]
Obrázek
2
znázorňuje typickou
sktrukturu
biologického
neuronu.
Mezi
nejzákladnější jeho části patří vlastní tělo neuronu, ze kterého vystupují krátké výběžky zvané dendrity. Takovýchto výběžku mohou být stovky až tisíce a reprezentují vstupy do těla buňky. Z těla navíc vybíhá jeden delší výběžek, axon. Touto částí je přenášen signál do dalších neuronů. V případě porovnání těchto částí neuronu se jedná o velikosti několik mikrometrů v případě těla neuronu, dendrity jsou velké několik milimetrů a axon může dosahovat velikosti až desítek centimetrů, v extrémním případě i jednoho metru. Spojení mezi neurony je tvořeno takzvanou synapsí, což je zakončení jednotlivého axonu neuronu. Prostřednictvím těchto synapsí jsou přenášeny vzruchy a lze je chápat jako výstupní prvky neuronu.
9
Principiálně se jedná o chemické reakce v místech, kde jsou jednotlivé neurony mezi sebou spojeny. Jde o změnu propustnosti buněčné membrány neuronu, čímž se mění koncentrace iontů vně i uvnitř neuronu. Synapse lze hrubě dělit na dva různé typy dle membránového potenciálu. Prvním typem je excitační charakter vazby, kdy je zvyšován membránový potenciál, opačným charakterem je potom inhibiční, jedná se tedy o snížení membránového potenciálu. Působením na synaptické vazby neuronů se tyto účinky hromadí a ve chvíli, kdy potenciál přesáhne danou mez (práh neuronu), dochází k aktivaci neuronu a jeho působení na další v síti zapojené neuronové buňky.
Obrázek 2 Biologický neuron - detail [Zdroj: 1]
10
4.2 Matematický model neuronu Výše uvedenou biologickou strukturu je možné pro lepší pochopení vyjádřit například pomocí schematického modelu na Obrázku 3, kde: xi, j, k – výstupní signál neuronů i, j, k wi, j, k – synaptické váhy neuronů i, j, k y – výstupní signál neuronu n.
Obrázek 3 Schematický model neuronu [Zdroj: vlastní]
Výše uvedený model je zobecněním biologické neuronové buňky. Z tohoto konceptu již vychází konečný model, pomocí něhož lze matematicky zapsat závislost výstupu neuronové buňky na jeho vstupu a nastavení váhového vektoru pro tyto jednotlivé vstupy. Jedná se tedy o jakýsi matematický předpis umělého neuronu, pomocí něhož lze transformovat vstupní informace na výstup. Vstupní informace jsou obecně uspořádány do vnitřního potenciálu neuronu, který je vyjádřen jakou suma, tedy součet vážených vstupních signálů. Vnitřní potenciál lze tedy vyjádřit vztahem:
=
×
11
1
Kde N znázorňuje celkový počet neuronů, xi je i-tý vstup a wi je i-tá synaptická vazba (váha). V tomto případě se tedy jedná o základ matematického modelu neuronových sítí nazvaný formální neuron. Struktura tohoto modelu je znázorněna na Obrázku 4.
Obrázek 4 Formální neuron [Zdroj: 1]
Tento neuron má n vstupů (x1, x2, …, xn), které jsou ohodnoceny synaptickými váhami (w1, w2, …, wn) určující jejich propustnost. Tyto váhy mohou být kladné či záporné v závislosti na inhibičním nebo excitačním charakteru vazby mezi neurony. Hodnota vnitřního potenciálu ξ indikuje po dosažení prahové hodnoty výstupní stav neuronu y, který modeluje elektrický impuls axonu. [1] Výstupní hodnota y = δ(ξ) má nelineární růst právě při dosažení prahové hodnoty h. Tento růst je dán aktivační funkcí neuronu, která může mít více podob. Jednou z nejzákladnějších aktivačních funkcí je takzvaná ostrá nelinearita. Tato funkce nabývá dvou hodnot 1 a 0. Hodnoty 1 má funkce právě tehdy, kdy hodnota vnitřního potenciálu je větší nebo rovna prahové hodnotě. Naopak hodnoty 0 funkce nabyde v případě, kdy vnitřní potenciál je menší než prahová hodnota. Matematicky lze tuto závislost napsat následovně:
12
δ(ξ) = 1
ξ >= h
δ(ξ) = 0
ξ
Pro kompaktnější zápis lze použít modifikaci, kdy je vstup x0 = 1 a jeho váha takzvaný bias w0 = -h. Po tomto kroku je tedy výpočet upraven o část x0×w0, kdy výsledkem je, že hodnota h je odečtena a konečný tvar vzorce pro výpočet je následující: y = δ(ξ) = 1
ξ >=0
y = δ(ξ) = 0
ξ <0
kde
=∑
×
.
Prostřednictvím tohoto modelu neuronu lze pro představu rozdělit rovinu přímkou na dvě dílčí roviny. Následující obrázek přibližuje dvě množiny bodů, pomocí kterých lze rozdělit vstupní hodnoty do dvou skupin, X+ a X-.
Obrázek 5 Geometrická interpretace funkce neuronu [ Zdroj: 1]
13
Jako příklad dobře slouží aplikace funkcí Booleovy algebry prostřednictvím tohoto typu neuronu. Výstup neuronu nabývá hodnot 0 a 1, stejně jako možné hodnoty této algebry.
Obrázek 6 Grafická interpretace logické funkce AND [Zdroj: Vlastní]
Jak lze z výše uvedeného grafického zobrazení logické funkce AND zjistit, výstup funkce nabývá hodnoty 1 pouze v kombinaci vstupů x1 = 1 a x2 = 1 (bod červeně kroužkovaný). Následující tabulka zobrazuje závislost výstupní hodnoty na vstupních hodnotách.
Tabulka 1 Logická funkce AND [Zdroj: Vlastní]
x1
x2
y
0
0
0
0
1
0
1
0
0
1
1
1
14
Jednotlivé body lze tedy rozdělit přímkou na dvě dílčí roviny. Výstupní hodnoty neuronu jsou lineárně separabilní. Pro body z jedné dílčí roviny je výstup y = 1 a z druhé roviny y = 0. Následujícím způsobem lze realizovat celkem čtrnáct funkcí Booleovy algebry. Jsou pouze dvě funkce, které nelze vytvořit pomocí neuronu, funkce XOR a „ekvivalence“. Pro ilustraci je na níže uvedeném obrázku zobrazena logická funkce XOR v rovině.
Obrázek 7 Grafická interpretace logické funkce XOR [Zdroj: Vlastní]
15
Jak je z obrázku zřejmé, výstupní hodnoty y = 1 a y = 0 od sebe přímkou oddělit nelze. Pro klasifikaci neuronu se využívá i dalších aktivačních funkcí. Mezi nejznámější patří tyto: 1. Funkce Signum • • 2. Funkce Identita • •
=
= 1 pro x >=0
= −1 pro x<0
Výsledkem je vstupní hodnota
3. Funkce Sigmoidní •
Funkce, které jsou spojité, rostoucí a mají 1. a 2. derivaci
Obrázek 8 Grafy sigmoidních funkcí [Zdroj: 1]
16
5 Neuronové sítě Z výše uvedených příkladů realizace logických funkcí neuronem je zřejmé, že pro řešení složitějších příkladů se pouze jeden neuron nehodí. Pro takto složité příklady je třeba jednotlivé neurony mezi sebou propojit stejně jako je tomu v lidském mozku.
5.1 Úlohy neuronových sítí Díky svému vnitřnímu propojení neuronových sítí umožňující takzvané učení sítě jsou možnosti aplikace velmi široké, zejména v oblasti analýzy dat. Učení sítě je definováno jako schopnost sítě, kde je hlavním úkolem zapamatovat si kombinace vstupních hodnot. Na základě těchto „zkušeností“ se vstupními hodnotami může síť sama odhadovat nové hodnoty výsledků při změně vstupních veličin. S nástupem neuronových sítí lze řešit i silně nelineární úlohy, kde například regrese selhává. Mezi nejznámější oblasti nasazení neuronových sítí patří tyto: •
Odhady dynamické stability u energetických systémů
•
Rozpoznání poruch strojů a elektroniky
•
Lékařství – detekce EKG signálů a následné hodnocení nemocí
•
Dopravní signalizace
•
Rozpoznání kvality výrobků
•
Předpovědi finančních časových řad (burzy, akcie, směnné kurzy)
•
Samoobslužné mechanismy (inteligentní budovy)
•
Optické rozpoznávání textů, obrázků apod.
•
Převod mluvené řeči do textové podoby
•
Detekování úvěrového rizika
•
Marketingové predikce
Ačkoliv jsou možnosti neuronových sítí skutečně široké, lze jejich uplatnění rozdělit do následujících skupin[5]: 1. Regrese – předpověď spojité proměnné na základě vstupů. 2. Klasifikace – označováno jako zařazování do tříd. Vstupní data, které jsou nějakým způsobem sobě podobná, jsou shlukována do stejné skupiny.
17
3. Časové řady (regrese) – k modelování proměnných, které se v průběhu času mění. V této situaci lze vybrat buď pouze jedinou závislou proměnnou, kde model bude vycházet ze zpožděných hodnot této časové řady, nebo lze zvolit další proměnné, které budou tuto řadu vysvětlovat. 4. Časové řady (klasifikace) – v případě, že proměnná je kategorické povahy a v závislosti na čase je měnná. 5. Shluková analýza – zde není použita závislá proměnná. Jedná se o kategorické rozdělování do shluků. Jde o takzvanou Kohonenovu síť, která bude popsána později v samostatné podkapitole.
5.2 Typy neuronových sítí dle způsobu učení Neuronové sítě lze rozdělit dle způsobu učení. Toto učení, jak je poznamenáno v podkapitole výše, je v podstatě schopnost sítě zapamatovat si předchozí stavy a z nich predikovat stavy následující. Jedná se o vhodné nastavení váhového vektoru, kdy při průchodu dat sítí jsou váhy upravovány tak, aby funkce sítě co nejvíce odpovídala požadovaným vlastnostem. V souvislosti s učením sítě se uvádí parametr zvaný koeficient učení. Tento parametr udává, jak rychle je síť schopna naučit se vzorům z trénovacího souboru. Neuronové sítě lze dělit dle způsobu učení na tyto tři typy [6]: 5.2.1 Učení s učitelem Při tomto typu učení neuronových sítí je síti předložena trénovací množina prvků, pomocí které lze určit funkční závislost posuzovaného systému. Úkolem sítě je poté vypočítání zbylých hodnot mimo trénovací množinu. Určením odchylek od skutečného modelu jsou následně nastavovány váhy jednotlivých neuronů. Cílem je stav, kdy síť je schopna po naučení přijímat i úplně nové vstupy a jim dodávat přijatelný výsledek, tedy generalizovat. Jako nejznámější příklad těchto sítí je backpropagation. 5.2.2 Posilující učení V tomto případě vždy pro průchodu vstupní informace vyjádřena pravdivostní hodnota, jestli jde o správný či nesprávný výsledek. Jedná se o jakýsi způsob, jak se lze 18
přiblížit k metodě učení s učitelem, avšak zůstat u biologického konceptu. Tento princip učení neuronových sítí se v současnosti nachází pouze na teoretické úrovni a není v rámci sítí používán prakticky. 5.2.3 Učení bez učitele Při tomto typu učení jsou síti předkládány pouze vzorové hodnoty. Síť se následně pokouší určit obdržené vstupy a správně je zařadit do podobných skupin. Jedná se v podstatě o analogický postup učení lidského mozku, kdy až na základě souvislostí již dříve přijatých informací je vyhodnocována situace. Typickým představitelem tohoto typu sítě je Kohonenova samo-organizující mapa. Ve většině literatur je možné se spíše setkat s dělení pouze dvojím a to s učitelem a bez učitele. Takzvané posilující učení je pouze jakýmsi doplněním a vytvořením hladšího přechodu dvou základních typů učení.
5.3 Typy neuronových sítí z hlediska průchodu informací [7] Pro úplnost je třeba uvést dělení neuronových sítí z hlediska průchodu informací těmito sítěmi. V podstatě se jedná i o vlastní propojení vrstev neuronů mezi sebou. 5.3.1 Dopředné sítě Tento ty sítí označovaný jako „feed forward“ sítě se vyznačuje tím, že tok informací prochází od vstupu přímo na výstup. U tohoto typu sítí je tedy jednoznačně definován informační tok. V tomto případě neexistuje spoje mezi neurony mezi neurony z vyšších vrstev zpět do vrstev nižších ani spoje mezi neurony ve stejné vrstvě, viz Obrázek 9.
Obrázek 9 Dopředná neuronová síť
19
[Zdroj: Vlastní]
5.3.2 Rekurentní sítě Druhým typem jsou sítě rekurentní, kde odezva sítě není dána pouze vstupními hodnotami. Ve vnitřním zapojení sítě se mohou vyskytovat zpětné vazby mezi vrstvami sítě. A analogicky od sítí dopředných, zde se mohou vyskytovat i spojení mezi jednotlivými neutrony v rámci jedné neuronové vrstvy. Do sítě se takto implementuje i časový kontext při průchodu informací sítí. Ukázku vnitřního zapojení neuronů přibližuje Obrázek 10.
Obrázek 10 Rekurentní neuronová síť [Zdroj: Vlastní]
20
5.4 Typy neuronových sítí dle počtu vrstev V současnosti je k dispozici velké množství modelů neuronových sítí, které se liší jak vnitřním zapojením, čili topologií, a tak vlastním principem funkce. Další možností, jak neuronové sítě dělit, je podle počtu vrstev. Vrstvy v rámci neuronových sítí dělíme na tři různé druhy: 1. Vstupní V této vrstvě se nachází vstupní neurony neboli receptory. Vrstva je někdy nazývána jako rozdělovací, jelikož neurony jsou lineární a vstupní hodnota je tedy shodná s hodnotou na výstupu těchto neuronů. Tyto neurony nemají své vstupy ohodnoceny váhami. Při určování počtu vrstev sítě tato vrstva není započítávána. 2. Skrytá Počet těchto vrstev může být libovolný. Vlastní aktivační funkce neuronů v této vrstvě může být libovolná, ne však lineární. Skrytá vrstva se někdy je někdy označována jako „hidden“ vrstva. 3. Výstupní Poslední vrstvou neuronových sítí je vrstva výstupní. Neurony v rámci této vrstvy mohou mít libovolnou aktivační funkci včetně lineární. 5.4.1 S jednou vrstvou neuronů Tento typ neuronových sítí se skládá pouze ze dvou vrstev neuronů, ze vstupní a výstupní. Jelikož neurony ve vstupní vrstvě mají pouze funkci přenosu informace dále do sítě, vliv na funkci sítě má pouze vrstva výstupní. Jak již bylo popsáno v kapitole Historie neuronových sítí, první úspěšným modelem a reprezentantem této skupiny neuronových sítí byla síť Perceptronů. Algoritmus zpracování informací této sítě a bližší popis je popsán v kapitole 4.5.1 Perceptron. 5.4.2 Vícevrstvé neuronové sítě V případě vrstvených neuronových sítí se neurony organizují do jednotlivých vrstev. Tento typ sítí může obsahovat libovolný počet skrytých vrstev neuronů. Následující obrázek demonstruje vícevrstvou neuronovou síť.
21
Obrázek 11 Vícevrstvá neuronová síť [Zdroj: 35]
5.4.3 Algoritmus učení Back-propagation vícevrstvých neuronových sítí Ve spojitosti s vícevrstvými neuronovými sítěmi je nutné zmínit i nejčastěji používaný algoritmus učení v tomto typu sítí. Jeho zastoupení je odhadováno na 80% všech aplikací neuronových sítí. Jak je z původního názvu algoritmu Back-propagation of error zřejmé, jedná se o algoritmus, kdy je chyba na výstupu zpětně šířena do skrytých vrstev neuronů a podle ní jsou upravovány hodnoty váhových propojení jednotlivých neuronů. Tento učící algoritmus lze obecně shrnout do tří základních kroků: •
Dopředné šíření signálu
•
Zpětné šíření chyby
•
Aktualizace váhových spojení
V první fázi je šířen vstupní signál z tréninkové množiny skrze neurony xk vstupní vrstvy do sítě. Za tuto trénovací množinu lze považovat vzory, které jsou definovány jako dvojice následujícím způsobem [1]: =
,
|
ϵ 0,1 , ϵ 0,1 , ! = 1, … #
22
2
Kde: •
q
počet vzorů v trénovací množině,
•
xk
vektor excitací vstupní vrstvy tvořené n neurony,
•
yk
vektor excitací výstupní vrstvy tvořené m neurony.
Následně každý neuron vypočítá svou aktivaci dle vlastní aktivační funkce. Poté jsou srovnávány takto vypočítané hodnoty s definovanými hodnotami výstupu neuronů ym pro každý vzor z trénovací množiny. Na základě tohoto porovnání vzniká chyba sítě E(w), kterou lze definovat následujícím vzorcem: $
=
&
%
%$3
Jedná se tedy o součet jednotlivých chyb vzhledem ke vzorům v trénovací množině. Tyto jednotlivé chyby lze vypočítat pomocí vzorce:
%$=
1 2
*+
( −
)
4
Je to v podstatě součet druhých mocnin odchylek výstupu sítě skutečných a požadovaných hodnot pro l-trénovací vzor. Závislost celkové chyby na počtu cyklů sítě popisuje chybová funkce. Jelikož je cílem minimalizovat tuto chybu, je tedy hledáno globální minimum v této chybové funkci. Pro nalezení tohoto minima lze použít vícero postupů a způsobů. Nejčastěji je používána nejjednodušší varianta gradientní metody, která vyžaduje odlišnost chybové funkce.
23
Obrázek 12 Gradientní metoda [Zdroj: Vlastní]
V grafickém vyjádření na Obrázku 12, je schematicky znázorněna chybová funkce E v závislosti na mnohorozměrném váhovém vektoru w. Při adaptaci je v podstatě sestrojen tečný vektor (gradient) ,. / ,-
0
1 v bodě w(0) ke grafu chybové funkce. Následně
dojde k posunutí ve směru tohoto vektoru do nižších hodnot chybové funkce o předem
definovanou dostatečně malou hodnotu ε. V tu chvíli je získána nová konfigurace sítě =
0
−∆
, kdy je chybová funkce E menší než pro původní konfiguraci. Tento
proces je v podstatě opakován, až je limitně získáno lokální minimum chybové funkce. [8] Největším problémem této metody však je chvíle, kdy je nalezeno minimum, ale ve skutečnosti se jedná pouze o lokální, nikoli globální. Následující tabulka popisuje obecný postup algoritmu Back-propagation of error s implementací Gradientní metody.[9] Tabulka 2 Back-propagation [Zdroj: vlastní]
Krok 1
Krok 2
Krok 3
Krok 4
Nastavení váhového vektoru a biasu náhodnými malými hodnotami. Přiřazení hodnoty koeficientu učení α z intervalu (0,1). Dokud není splněna podmínka výpočtu opakovat kroky 4-14. Pro každý vzor z trénovacího souboru opakovat kroky 5-13.
24
=
Předložení vzoru trénovacího souboru na vstup sítě.
Krok 5
Vypočítání vstupní hodnoty vnitřních neuronů.
3_
Krok 6
5
Stanovení výstupních hodnot vnitřních neuronů.
Krok 7
Stanovení skutečných výstupních hodnot signálu
Krok 8
neuronové sítě
( =
= 605 +
35 = /3_ 8
+
0
9
5
65
51
35
5
:
Přiřazení očekávané hodnoty vzoru z trénovacího souboru každému neuronu výstupní vrstvy. Vypočtení části chyby ; , která je součástí
Krok 9
váhové korekce ∆ ∆
0
= <;
5
; =
= <; 35 a korekce biasu
Přiřazení sumace delta vstupů (tj. z neuronů, které se
Krok 11 váhové korekce ∆6 5 = <;5 ∆605 = <;5
Krok 12
=
;
5
;_
5
=
;
5
5
>
=
Krok 13
65
>
která je součástí a korekce biasu
Aktualizace váhových hodnot a biasů každého neuronu výstupní vrstvy. Aktualizace váhových hodnot a biasů každého neuronu vnitřních vrstev. Podmínka ukončení: Pokud už nenastávají změny
3_
5
vnitřní vrstvy.
5,
=
;_
Krok 10 nacházejí v následující vrstvě) každému neuronu Vypočtení části chyby ;_
−(
∆
5
5
?@A + ∆
= <; 35
5
= 6 5 ?@A + ∆6 5
∆6 5 = <;5
Krok 14 váhových hodnot nebo bylo vykonáno maximálně definované množství váhových změn.
Pro lepší názornost lze výše uvedené kroky výpočtu rozdělit do již zmíněných třech fází. •
Dopředné šíření signálu (kroky 5 – 8)
•
Zpětné šíření chyby (kroky 9 – 11)
•
Aktualizace váhových spojení (kroky 12, 13)
25
Pro úplnost ještě nutno dodat, že tato metoda učení vícevrstvých neuronových sítí se vyskytuje často i v jiné modifikaci. Důvodem je řešení problému určení optimální velikosti koeficientu učení. Pokud bude hodnota této proměnné malá, bude učení trvat příliš dlouho. V případě, že hodnota bude velká, síť bude nestabilní a může se stát, že bude oscilovat okolo lokálního minima. [10] V tomto případě je do výpočtu zahrnut i tzv. moment µ. Tato hodnota je volena v intervalu (0,1) a v podstatě zohledňuje při výpočtu nejen změnu vah ve směru gradientu chybové funkce, ale také předešlou změnu vah. Vzorec pro výpočet váhových přírůstků spojení mezi vnitřní a výstupní vrstvou sítě by potom vypadal následovně: ∆
+ 1 = <; 35 + B∆
5
5
5
Obdobnou změnou by prošel i vzorec pro výpočet váhových přírůstků spojení mezi vstupní a vnitřní vrstvou neuronů: ∆6 5
+ 1 = <;5
+ B∆6 5
6
5.5 Základní modely neuronových sítí 5.5.1 Perceptron Jedná se o nejjednodušší síť s učitelem, autorem je Frank Rosenblatt a jak už bylo dříve popsáno, vznikla v roce 1975. Jako nejběžnější reprezentaci sítě perceptron lze považovat síť vstupních neuronů, které jsou spojeny s jedním pracovním neuronem (tedy výstupním) a jednotlivá spojení jsou ohodnoceny vahami. Jako každý výstupní, tak i zmíněný pracovní neuron má svou aktivační funkci.
Výstup perceptronu je pak dán vztahem y = C
. Aktivační funkce má tvar ostré
nelinearity a může nabývat těchto hodnot: C
,kde
0, =D 1,
<0 ≥0
je vnitřní postsynaptický potenciál perceptronu.
26
7
Hodnoty synaptických vah jsou nastavovány tak, aby rozdíl mezi výstupem aktuálním a výstupem požadovaným byl minimální. Perceptronový algoritmus učení se skládá z těchto kroků: [11]
Tabulka 3 Perceptronový algoritmus [Zdroj: vlastní]
Krok 1
Nastavení váhového vektoru w, prahu G
náhodnými malými hodnotami a koeficientu učení α z intervalu (0,1>.
Krok 2
Krok 3
Krok 4
Krok 5
Krok 6
Pro každý vzor z trénovacího souboru opakovat kroky 3-5. =
Předložení vzoru trénovacího souboru na vstup sítě. (=
Stanovení skutečné výstupní hodnoty perceptronu.
=
Adaptace vah pro n-tý krok.
Podmínka ukončení: Pokud již nenastává
=
=
J
J
H J
− GI
⇔ ∈ MN ∧
+ < ⇔ ∈ MN ∧
≥0
− < ⇔ ∈ MJ ∧
<0 ≥0
žádná změna váhových hodnot.
Z výše uvedeného popisu Perceptronového algoritmu lze vyvodit závěr, že jeho použití se nachází v klasifikačních úlohách, pouze ale do dvou skupin a lineárně separatibilních prvků.
5.5.2 Adaline Mezi základní modely neuronových sítí patří také model Adaline (Adaptive Linear Neuron). Jedná se o jednoduchý neuron s jedním bipolárním výstupem. Vstupy mohou být také bipolární, binární či reálné. Následující obrázek přibližuje logiku tohoto modelu.
27
Obrázek 13 Adaline model [Zdroj: 12]
Hlavním rozdílem oproti Perceptronu je učící algoritmus. Do učícího bloku vstupuje už vnitřní potenciál neuronu (u Perceptronu je sledován až dvouhodnotový výstup). Učící algoritmus tak reaguje s vyšší citlivostí. Učící algoritmus minimalizuje tzv. Euklidovu vzdálenost požadované odezvy sítě a vnitřního potenciálu neuronu, tedy střední kvadratickou odchylku žádaného a dosaženého stavu. Jedná se tedy o gradientní metodu výpočtu. Tento model lze využít pro případy, kdy prvky na vstupu nelze oddělit přímkou, jsou tedy lineálně neseparabilní, jak tomu je u Perceptronu. Využítí modelu Adaline lze najít jak u úloh regrese, tak klasifikace.[12] Následující tabulka popisuje postup při učení tohoto typu neuronové sítě. Tabulka 4 Adaline učení [Zdroj: vlastní]
Krok 1
Nastavení váhového vektoru w, prahu G
náhodnými malými hodnotami a koeficientu učení α z intervalu (0,1>.
Krok 2
Pro každý vzor z trénovacího souboru opakovat kroky 3-6.
28
Předložení vstupního vektoru X z trénovacího Krok 3
M = P ,…
souboru na vstup sítě a určení požadované odezvy d.
Krok 4
Výpočet vnitřního potenciálu perceptronu.
Krok 5
Výpočet chyby perceptronu.
Krok 6
Adaptace vah.
$
Podmínka ukončení: Pokud není změna Krok 7
R
= =R
+1 =
Q − G
−A
−$
<
váhových hodnot menší, než je požadovaná přesnost.
5.5.3 Madaline Třetím základním modelem neuronových sítí je model Madaline (Multiple Adaline). Síť je také velmi podobná modelu Perceptronu, odlišná je ale v tom, že ve skryté vrstvě se vyskytují neurony typu Adaline. Výstupy sítě tedy mohou být reálné a jednotlivé neurony Adaline realizují lineární funkci. [13] Strukturu sítě přibližuje Obrázek 14.
Obrázek 14 Madaline model [Zdroj: 1]
29
Výstupem sítě je poté neuron s funkcí majority. Jedná se o výpočet, kdy výsledkem je většinová hodnota vstupů do výstupního elementu. Postup učení sítě popisuje následující algoritmus. Tabulka 5 Madaline učení [Zdroj: vlastní]
Nastavení váhového vektoru Krok 1
…
,
prahu G náhodnými bipolárními malými
hodnotami a koeficientu učení α
k…počet Adaline jednotek n…počet vstupů do každé Adaline jednotky
z intervalu (0,1>. Krok 2
Pro každý vzor z trénovacího souboru opakovat kroky 3-6. Předložení vstupního vektoru X z
Krok 3
M = P ,…
trénovacího souboru na vstup sítě a určení požadované odezvy d.
Krok 4
Výpočet výstupu k-té jednotky Adaline.
Krok 5
Výpočet výstupu sítě.
Krok 6
Adaptace vah.
(
^
= ST U
0
−1, ST > = W 1, Z
+1 =
^
Q
>≤0 >>0
= Z[\?] (/( + < UA
−
^
1
V
V
Podmínka ukončení: Pokud na všechny Krok 7
vzory z trénovacího souboru má síť požadovaný výstup.
V kroku 6 výše uvedeného algoritmu je váha upravena pouze u jednoho ze všech neuronů skryté vrstvy. Tímto neuronem se stává ten, jehož výstup se liší od požadovaného a vnitřní potenciál je nejblíže nule. [14]
30
5.6 Dělení sítí Jednotlivá dělení neuronových sítí, která byla popsána, se vzájemně prolínají. Následující obrázek znázorňuje komplexnější rozčlenění typů nejpoužívanějších sítí. Tyto jednotlivé typy budou popsány z hlediska topologie, budou také popsány algoritmy zpracování informací uvnitř sítí.
Obrázek 15 Dělení sítí [Zdroj: Vlastní]
5.6.1 Sítě s pevnými vahami Tento typ sítí se vyznačuje tím, že v průběhu učení sítě se hodnoty synaptických spojení nemění. Tyto hodnoty jsou dány již před začátkem trénování sítě vzory z trénovací množiny.
5.6.1.1 LAM (Linear Associative Memory) Tento typ neuronových sítí zvaný Lineární asociativní paměť je využíván jako asociativní paměť. Tato paměť je odlišná od většiny typů dnešních pamětí. Hledání v asociativní paměti spočívá v částečné znalosti hledané informace. Tento způsob je podstatně bližší lidské paměti než hledání záznamu pomocí adresy. V zásadě lze rozdělit asociativní paměti na dva různé druhy, auto-asociativní a heteroasociativní. V případě auto-asociativní paměti jde pouze o upřesnění vstupní informace, kdy například podle odstínu šedi lze určit barevné odstíny obrazu. U heteroasociativní dochází k vybavení
31
určité sdružené informace na základě vstupní asociace. Určení informace tedy má odlišný charakter než vstupní hodnoty. [13]
Obrázek 16 Struktura sítě LAM [Zdroj: 36]
LAM je téměř identický s modelem Madaline. Jediným rozdíl je, že v případě Lineární asociativní sítě je počítána pouze lineární kombinace vstupů. Chybí tedy biasy a formální jednotkový vstup. Formálně lze tedy funkci pro j-tý neuron zapsat pomocí následujícího vzorce: (5 =
5
8
Jedním z možných způsobů učení sítě je prostřednictvím Hebbova učení. Toto učení je založeno na myšlence, že změna synaptického spojení dvou navzájem spojených neuronů je přímo úměrné jejich souhlasné aktivitě, tj. součinu jejich stavů. Autor Donald Hebb tímto objasňoval vznik podmíněných reflexů. [16]
32
Hebbovo adaptační pravidlo popisuje následující tabulka: Tabulka 6 Hebbovo pravidlo [Zdroj: vlastní]
Nastavení váhového vektoru
Krok 1
…
= 0.
Pro každý vzor d z trénovacího souboru
Krok 2
opakovat kroky 3-5. Předložení vstupního vektoru X z trénovacího souboru na vstup sítě a
Krok 3
určení požadované odezvy d. Krok 4
Výpočet výstupu sítě.
Krok 5
Adaptace vah.
M = P ,…
Q
+1 =
+
(=A
Váhový přírůstek je tedy definován jakou součin ∆
(
= (.
Výše uvedený algoritmus je pouze jedním ze způsobů implementací Hebbova pravidla učení. Tento algoritmus vyžaduje pouze jeden průchod tréninkovou množinou. Existují však i jiné ekvivalentní metody nalezení vhodných váhových hodnot. Pro heteroasociativní síť by vypadal tedy algoritmus následovně: [16] Tabulka 7 Hebbovo pravidlo - heteroasociativní síť [Zdroj: vlastní]
Inicializace všech váhových hodnot Krok 1
5 (i=1,…,
n; j=1,…, m) podle
Hebbova pravidla pro asociativní sítě. Krok 2
Krok 3
Krok 4
Krok 5a
Krok 5b
Pro vstupní vektor x = (x1, …, xn) opakovat kroky 2-5. Inicializace vrstvy X daným vstupním vektorem.
(_
Výpočet potenciálu výstupních neuronů. Výpočet aktivace výstupních neuronů pro bipolární reprezentaci. Výpočet aktivace výstupních neuronů pro binární reprezentaci.
33
5
=
5
\ = 1, … , _
1, (_ (5 = ` 0, (_ −1, (_ (5 = a
1, 0,
(_ (_
>0 5 =0 5 <0 5
>0 \ ≤0 \
Dopředné
autoasociativní
neuronové
sítě
jsou
speciálním
případem
heteroasociativních sítí. Pro autoasociativní sítě jsou oba tréninkové vektory (tj. vstupní vektor b a výstupní vektor s) identické. Každou asociaci proto tvoří pár vektorů s(p):s(p),
kde b = 1, … , c. Každý vektor s(p) obsahuje n komponent. Váhové hodnoty na
příslušných spojích jsou rovněž nastaveny Hebbovým adaptačním pravidlem pro asociativní neuronové sítě (při řešení úloh jsou dosahovány lepší výsledky s vektory pracující s bipolární reprezentací než s vektory s binární reprezentací). Pro úplnost lze ještě dodat, že je možné se setkat s takzvanou iterativní autoasociativní sítí. Síť v tomto případě nereaguje přímo na vstupní signál. Využití má tento typ sítě v momentě, kdy se vstupní signál liší od naučených vzorů pouze hodnotou, tj. že místo 1 nebo -1 obsahuje 0. Potom lze výstupní hodnoty sítě považovat za vstupní signál. Požadovaný výstupní signál je tedy získán až po několika iteracích. [8]
5.6.1.2 Hopfieldova síť Tento model neuronových sítí je jednou z autoasociativních pamětí, které je možné použít. V současnosti existuje mnoho teoretických výsledků a variant uvedeného modelu. V této kapitole však bude popis omezen pouze na základní model Hopfieldovy sítě. [1] Síť je cyklická a skládá se z n neuronů, které jsou tedy navzájem spojeny „každý s každým“. Každý neuron má tedy jako své vstupy všechny výstupy neuronů ostatních. Architektura Hopfieldovy sítě přibližuje následující obrázek.
Obrázek 17 Hopfieldova síť [Zdroj: 1]
34
Každý neuron v této síti je zároveň vstupním i výstupním a mění svůj stav v diskrétních časových okamžicích (t=1,2, …, n). Učení sítě je řízeno dříve uvedeným Hebbovým zákonem. Požadovanou funkci specifikuje trénovací množina vzorů p. Každý z nich je zadán vektorem n bipolárních stavů vstupních, respektive výstupních neuronů, které v případě autoasociativní paměti splývají. [1] d=e
f
=/
,…,
1g −1,1 , ! = 1, … , bh
9
Učení tedy probíhá v p krocích, kdy jsou sítí předkládány jednotlivé vzory trénovacího souboru, podle nichž jsou adaptovány synaptické váhy. Výslednou konfiguraci sítě lze zapsat pomocí následujícího vzorce: 5
=
9
5
1 ≤ \ ≠ ≤
Z výše uvedeného vzorce je zřejmé, že platí
5
=
10
5,
jelikož postavení neuronů i
a j je symetrické. Z tohoto důvodu se Hopfieldovy síti někdy říká symetrická sít, v níž dva opačně orientované spoje mezi dvěma neurony lze chápat jako jeden orientovaný spoj. [1] V případě Hopfieldovy sítě je výpočet výstupu realizován pomocí postsynaptického potenciálu jednotlivých neuronů: ℎ
=
11
Výsledná hodnota výstupu jednotlivých neuronů je poté určena podle následujícího pravidla: (
+1 =D
ℎ (
35
, ,
ℎ ℎ
≠0 =0
12
Pro přehlednější zápis váhového vektoru je možně se setkat s maticovým zápisem: 0 k=U ⋮
⋯ ⋱ ⋯
⋮ V 0
13
Výpočet sítě může probíhat dvěma způsoby, synchronně či asynchronně: [17] •
Synchronní výpočet
Tabulka 8 Hopfield – synchronní [Zdroj: vlastní]
Krok 1
Přiřazení bipolárních hodnot {-1,1} výstupům všech neuronů, vah a času t=0.
Krok 2
Dokud se mění výstup alespoň jednoho neuronu, opakování kroků 3 a 4.
Krok 3
Určení postsynaptického potenciálu každého neuronu.
Krok 4
Změna t=t+1 a určení výstupů neuronů dle postsynaptického potenciálu.
•
Asynchronní vypočet
Tabulka 9 Hopfield – asynchronní [Zdroj: vlastní]
Krok 1
Přiřazení bipolárních hodnot {-1,1} výstupům všech neuronů, vah a času t=0.
Krok 2
Náhodný výběr neuronu a určení postsynaptického potenciálu v čase t. Pokud hodnoty postsynaptického potenciálu a výstupu v čase t vybraného neuronu a)
změna a dojde i ke změně času t=t+1.
Krok 3 b)
Krok 4
jsou takové, že dojde ke změně výstupu neuronu v čase t+1, je provedena tato
Pokud nedojde ke změně, je vybrán jiný neuro a krok 2 se opakuje. Výpočet končí v případě, že již nelze najít v síti neuron, který v následujícím čase mění svůj čas.
Pro lepší pochopení učení Hopfieldovy sítě byla definována takzvaná energetická funkce E sítě. Tato funkce přiřazuje ke každému stavu sítě jeho potenciální energii. Jedná 36
se tedy o funkci, která je zdola ohraničená a pro daný stav systému je nerostoucí. Stavem systému se rozumí množina aktivací všech neuronů. Funkce je dána následujícím vztahem: $
=−
1 2
5(
5
(5
14
Z výše uvedené definice vyplývá, že stavy sítě s nízkou energií mají největší stabilitu. [8] Nejčastější aplikace tohoto typu neuronových sítí je při rozpoznávání obrazů. V tomto případě je počet neuronů v síti roven pixelů obrázku.
5.6.1.3 BAM (Bidirectional Associative Memory) Síť BAM je bidirektivní heteroasociativní
paměť, pracující synchronně
s obousměrnými synapsemi. Následující obrázek popisuje topologii tohoto modelu sítě. [18]
Obrázek 18 Síť BAM [Zdroj: Vlastní]
Jedná se o síť, která se skládá ze dvou vrstev neuronů, mezi kterými je rekurzivně posílána informace. Ze vstupní vrstvy je informace zasílána vrstvě výstupní, prostřednictvím nastavení váhového vektoru sítě. Výstupní vrstva poté vrací výsledky svých výpočtů zpět na vrstvu vstupní, prostřednictvím stejných váhových synapsí. Jedná se tedy o takzvanou rezonanční síť, kdy informace rezonuje mezi dvěma vrstvami a je
37
kódována pomocí bipolárních hodnot. Aktivační (přenosovou) funkcí je v tomto případě funkce signum. [19] U tohoto typu sítě lze určit takzvanou Kapacitu sítě, která udává maximální počet uchovaných vzorů. Pokud je M a N jsou počty neuronů v první a druhé vrstvě a P je maximální počet asociací, tak hrubým odhadem lze určit počet n takto: c≤ ;
=_
Z, p
15
Přesnější odhad lze určit tak, že je uvažováno L vektorů následovně: 0,68 ) q< Plog ) 4 + 4Q) A poté má každý vektor 4 + log )
16
prvků rovných 1 a zbytek 0. Pak lze vytvořit
BAM model, pro který je 98% stabilních stavů. Algoritmus učení sítě tohoto typu nejlépe shrnuje následující tabulka: Tabulka 10 BAM učení [Zdroj: Vlastní]
Inicializace váhových hodnot
5
a prahové hodnoty Θ k=y
1. vrstva
Θ= =
Krok 1
5
1 2
1 Θ = 2 ==
2. vrstva
5z
=
~
5 ~
}
{
2[ { − 1 /2|5{ − 11 5 ;
= 1, … , p
5 ; \
= 1, … , p
k•
– váha mezi i-tým vstupním a j-tým výstupním neuronem
[ { , |5{ – i-té prvky s-tých vektorů asociačního seznamu c – počet prvků asociačního seznamu
38
Θ= Θ== - vektory prahových hodnot neuronů první a druhé vrstvy Krok 2
Opakování kroků 3 a 4 pro každý vstupní vektor.
Krok 3
Předložení neznámého vstupního vektoru € = P| , … , | Q• , €g 0,1 Iterativní opakování, dokud se mění výstup první, popř. druhé vrstvy mění. Výpočet hodnoty R5=
1. vrstva
+ 1 paralelně pro = 1, … , Z
R5=
Výpočet výstupní hodnoty [5
[5
Krok 4
Výpočet hodnoty R==
==
R5= + 1 > 0 R5= + 1 < 0 , R5= + 1 = 0
+ 1 paralelně pro \ = 1, … , p +1 =
Výpočet výstupní hodnoty [5
|
− Θ5=
+ 1 pro \ = 1, … , Z
1, + 1 = ` 0, [5
R
2. vrstva
5|
+1 =
~
5
5 |5
− Θ==
+ 1 pro \ = 1, … , p
1, + 1 = ` 0, [5
R== + 1 > 0 R== + 1 < 0 , R== + 1 = 0
Po ukončení kroku iterací odpovídá vstup první vrstvy BAM vzorovému vektoru z asociačního seznamu, který se nejvíce podobá neznámému vektoru předloženému na vstup. Výstup pak odpovídá asociaci uložené v BAM během trénování. [20] Využití tohoto typu sítě má největší zastoupení v případech, kdy je třeba rekonstrukce původních informací. Praktické využití je tedy při rekonstrukcích neúplných či šumem poškozených obrazů.
39
5.6.2 Sítě s učením s učitelem Jak již bylo dříve vysvětleno, učení s učitelem znamená, že síť se učí porovnáním aktuálního výstupu s výstupem požadovaným. Následně jsou hodnoty vah synaptických spojení upraveny tak, aby rozdíl mezi akruálním a požadovaným výstupem byl co nejmenší. 5.6.2.1 Perceptron Model perceptronu byl již popsán v kapitole 4.5.1 Perceptron, kdy byly popisovány základní modely neuronových sítí. Díky tomu, že se jedná o jeden z vůbec prvních objevených prvků, byl dále zkoumán a zdokonalován, takže jeho použití je velmi časté. Je používán ať už jako jednoduchý prvek sítě, či jako součást složitějších sítí. 5.6.2.2 MLP (Multilayer Perceptron) Jedná se o vícevrstvé sítě, kde jednotlivé neurony jsou představovány právě perceptrony. Spojením perceptronů do rozsáhlejších sítí je dosaženo vyšší výpočetní síly. Právě tento typ sítí je jeden z nejpoužívanějších, zejména pro svou acyklickou topologii, kdy jsou neurony orientovány do jednotlivých vrstev. [21] Pro učení této sítě je nejčastěji využit algoritmus Backpropagation, čili zpětné šíření chyby, který je popsán v kapitole 4.4.3. Topologie sítě je popsána v kapitole 4.4.2, kde byly popisovány sítě z pohledu počtu vrstev a jako příklad zde byl uveden právě model MLP, proto v této kapitole už znovu popisován nebude. 5.6.2.3 TDNN (Time-Delay Neural Networks) Jak je z názvu zřejmé, tato síť simuluje zpoždění mezi neurony. Tento typ vícevrstvé dopředné neuronové sítě je někdy označován též jako frontální síť. Vyjímečnost této neuronové sítě je zejména díky tomu, že dokáže využívat časové zpoždění při zpracování dat. Při práci je využíváno takzvaných filtrů, které používají krátkodobou paměť. Platí, že čím jsou filtry hlubší, tím více informací o minulých stavech jsou schopny pojmout. Paměť je situována na začátku neuronové sítě jako představa, která pracuje právě s časem. K učení tohoto typu neuronové sítě lze využít již výše uvedené učící algoritmy pro dopředné sítě jako je například Back-propagation. [22] Následující obrázek blíže popisuje topologii sítě TDNN.
40
Obrázek 19 Síť TDNN [Zdroj: 22 ]
Výstup sítě TDNN, kde všechny filtry jsou lineární, mají stejnou hloubku paměti a výstupní neuron je též lineární, lze poté vyjádřit následujícím vzorcem. [23] •=
†
< ×A8
… 5
‚5 ×
„
ƒ5 ×M5 :
Kde: Y je výstup neuronové sítě α je vektor vah synapsí mezi neurony ve skryté vrstvě a výstupním neuronem β je vektor vah synapsí mezi filtry a neurony ve skryté vrstvě χ je vektor vah synapsí uvnitř filtru k je index neuronu ve skryté vrstvě K je počet neuronů ve skryté vrstvě d je aktivační funkce j je index filtru
41
17
J je počet filtrů na jeden neuron ve skryté vrstvě i je index vstupu filtru I je počet vstupů filtru b je hloubka krátkodobé paměti X je vstupní vektor neuronové sítě Filtr sítě lze popsat pomocí níže uvedeného obrázku.
Obrázek 20 Filtr TDNN [Zdroj: 22 ]
Kde: x(t) je hodnota vstupu filtru v čase t b je hloubka paměti filtru χ jsou váhy synapsí v rámci filtru z-1 je operátor časového zpoždění xf(t) představuje výstup filtru pro hodnotu vstupu v čase t Tento typ neuronových sítí je používán zejména pro predikci. [24] 5.6.3 Sítě s učením bez učitele Při učení bez učitele je síť učena tak, aby sít poskytovala stejnou odezvu při stejných, respektive podobných vstupních signálech.
42
5.6.3.1 ART (Adaptive Resonance Theory) Většinou je velmi složité, aby se síť naučila novou informaci, aby nebyla poškozena ta již dříve nauřená. Způsobují to změny hodnot synaptických spojení při učení sítě. Při učení je vždy nutný návrat znovu na začátek, aby byla síť schopna naučit se novým vzorům. To je ale velice časově náročné. Model neuronových sítí ART pracuje na principu adaptivní resonanční teorie. Prakticky jde o proces, kdy při přivedení vzoru na vstup dochází k dopřednému i zpětnímu šíření signálu. Tyto sítě jsou tedy paralelní a vyniká jejich schopnost eliminace zašuměných vstupních vzorů. K dispozici je více druhů ART sítí, jako jsou ART1, ART2, ART3, AERMAP a další, pracující například v rámci fuzzy množin a podobně. ART2 vznikla modifikací základní sítě ART1. ART2 pracuje s reálními hodnotami ve vstupním vektoru. První dva typy sítě ART se používají na rozpoznání obrazců a řeči. ART3 se velice podobá ART2, ale předpokládá se, že vstupy do sítě budou spojité a spojitě v čase se takké budou měnit. ARTMAP má velkou výhodu v tom, že může vstupy dělit do nekonečného množství kategorii. Tyto sítě se používají ve spoustě odvětvích, jako je rozpoznávání obrazců, řečové syntéze a shlukování. Síť ART se skládá ze dvou vrstev. První vrstva je porovnávací a druhá rozpoznávací. Obě tyto vrstvy jsou propojeny oboustranně vahami. Porovnávací vrstva má za úkol srovnávat předkládané vzory s již dřívě čtenými. Podle výsledku tohoto porovnávání nastavuje dopředné hodnoty váhového spojení. Počet neuronů je dán velikostí vstupního vektoru X, je tedy stejný jako počet vstupních složek. Rozpoznávací vrstva pak rozděluje vstupní vrstvy do kategorií a porovnává vnitřní podobnosti, které mezi nimi mohou být. Nastavuje také zpětné váhy spojení, ve kterých jsou zakódovány právě tyto podobnosti, podle kterých pak síť rozpoznává. Tyto sítě používají zpětného šíření signálu. V síti je oproti ostatním vyskytuje navíc řídící prvek, který řídí tok sítí (G1 pro porovnávací vrstuvu a G2 pro rozpoznávací vrstvu). Ten udává jakési měřítko, jak hodně si musí být jednotlivé vzory podobné, aby spadaly do stejné kategorie. Na každou vrstvu jsou napojeny logické řídící signály, které také ovlivňují tok informací během práce sítě. Síť obsaguje ještě jeden prvek, takzvaný resetovací člen R. Jeho funkce spočívá v rozhodování, zda pro daný vzor má být vytvořena zcela nová kategorie, či spadá do některé z již vytvořených. [25]
43
Obrázek 21 Síť ART [Zdroj: 26]
Řídící signály jsou nastaveny následovně: Tabulka 11 Řídící signály – ART [Zdroj: Vlastní]
G2=1 G1=1
Je-li alespoň jeden prvek vstupního vektoru xi=1. Je-li alespoň jeden prvek vstupního vektrou xi=1. Pokud je ale zároveň jeden prvek ri=1, je G1=0.
Reset je nastaven dle podobnosti mezi vektorem C a X, když je podobnost menší než předem zvolená hodnota. Vrstvy lze popsat takto: [26] •
Porovnávací vrstva Každý neuron v této vrstvě přijímá tři binární signály: 1. Složky
vstupního vektoru M = P , … ,
Q•
2. Zpětnovazební signál b5 , který je vytvořen jako vážený součet výstupů neuronů z rozpoznávací vrstvy
3. Signál G1 Výstup neuronů ‡ je roven jedné, pokud jsou nejméně dva ze tří signálů rovny jedné.
44
Na počátku jsou všechny složky vektoru R a signál G1 nastaveny na hodnotu 0 (C=X).
Obrázek 22 Porovnávací vrstva ART [Zdroj: 26]
•
Rozpoznávací vrstva Tato vrstva se skládá z M vektorů, které reprezentují M klasifikačních tříd. Vstupy neuronů jsou spojeny s výstupy porovnávací vrstvy. Spojením jsou
přiřazeny vektory váhových koeficientů €5 /|5 g ˆ1. Po předložení vstupního
vektoru je v rozpoznávací vrstvě aktivován pouze neuron s vektorem váhových koeficientů nejvíce podobným vstupu. Ostatní neurony mají výstup nulový.
45
Obrázek 23 Rozpoznávací vrstva ART [Zdroj: 26]
Z důvodu složitosti jednotlivých učících algoritmů bude pro přiblížení problematiky popsán pouze algoritmus typu sítě ART1, který lze shrnout do následujících kroků: [27] Tabulka 12 ART1 učení [Zdroj: Vlastní]
Inicializace všech váhových hodnot 5 a
Krok 1
5
| 5 a nastavení prahu podobnosti ‰.
– zpětná váha z i-tého vstupu na j-tý výstup
| 5 – dopředná váha z i-tého v stupu na j-tý výstup
5
0 =1
|5 0 =
1 1+p
0≤‰≤1
‰ – práh podobnosti
p – počet neuronů v porovnávací vrstvě
Z – počet neuronů v rozpoznávací vrstvě
Krok 2
Krok 3 Krok 4
Přivedení vektoru M = vstup sítě.
,…,
na
(5 =
Výpočet odezvy pro každý neuron v rozpoznávací vrstvě.
|5
( = _[ /(5 1
Výběr neuronu s největší odezvou.
46
Krok 5
Výpočet podobnosti B.
μ=
Je-li B ≥ ‰, přeskočit krok 6.
∑ní=1 t ik xi ∑ni=1
Zablokování neuronu s největší odezvou a opakování od kroku 3. Vstup k-tého neuronu bude dočasně nastaven na nulu a neuron nebude testován při dalším výběru Krok 6
maxima v kroku 4. Pokud ještě není vyčerpán počet možných neuronů ve výstupní vrstvě, pokračovat krokem 4. V opačném případě, je-li dostatek výstupních neuronů, přiřadit vstup k některému z volných neuronů a vytvořit tak novou třídu.
Krok 7
Krok 8
Adaptace vah u neuronu s největší
|
odezvou.
+1 =
+1 =
0,5 + ∑
Odblokování neuronů zablokovaných v kroku 6 a pokračování od kroku 2.
V kroku 1 lze použít i jiný vzorec pro výpočet dopředných vah: |5 0 =
1
1 H1 + p ’1 + \ “Z”•I
18
V tomto případě se dopředné váhy s rostoucí hodnotou j snižují, čímž dochází k zapamatování vzorů od nejnižších neuronů a ne náhodně jak tomu v případě, když jsou dopředné váhy nastaveny shodně pro všechny neurony. Velice častým použitím tohoto typu sítě shlukování či rozpoznávání znaků a řečových segmentů. [26] 5.6.3.2 Kohonenova síť Kohonenova síť, která se někdy označuje jako Kohonenova samoorganizující se mapa, je řazena do skupiny samoorganizujících neuronových sítí, které ke svému učení neužívají žádný trénovací soubor. Následující obrázek demonstruje topologii tohoto typu sítě.
47
Obrázek 24 Kohonenova síť [Zdroj: 1]
Z obrázku je zřejmé, že se jedná o jednovrstvou síť, kdy neurony vstupní vrstvy jsou propojeny se všemi neurony vrstvy výstupní. Uložení neuronů ve výstupní kompetiční vrstvě má svá pravidla. Neurony jsou organizovány do dvojrozměrné struktury buď obdélníkové, nebo hexagonální. Neurony jsou umístěny do řad. Počet těchto řad definuje takzvané okolí neuronu R. Na tuto hodnotu má vliv právě organizace výstupních neuronů. Polohu neuronu v prostoru tedy definují jeho váhy. Funkce jednotlivých neuronů je výpočet vstupního vektoru od vzoru, který je uložen ve vahách neuronu. Učení Kohonenovy sítě je založeno na uspořádání neuronů výstupní kompetiční vrstvy do oblastí, které mohou klasifikovat předložená data na vstup. Hodnoty váhových spojení jsou upravovány iterativně. Při učení jsou vstupní vzory porovnávány s vektory, které jsou již v neuronech uloženy. Pokud je v kompetiční vrstvě nalezen neuron, který nejlépe odpovídá vstupnímu vzoru, jsou jeho váhové hodnoty synaptických spojení upraveny. [28]
48
Učení Kohonenovy sítě se skládá z následujících kroků: [29] Tabulka 13 Kohonenovo učení [Zdroj: Vlastní]
Nastavení vah w—˜ pro všechny spoje
0≤ ≤p−1
z N vstupů do M výstupních
Krok 1
0≤\ ≤Z−1
neuronů na malé náhodné počáteční hodnoty. Nastavení parametru učení α na hodnotu blížící se nule.
Krok 2
M
Předložení nového vstupního vzoru. Výpočet vzdálenosti vzorů mezi
Krok 3
A5 =
předloženým vzorem a všemi výstupními neurony j.
Krok 4
Krok 5
Výběr nejpodobnějšího neuronu \ ∗
0
J 0
Změna vah pro neuron \ ∗ a jeho
5
.
+1 =
5
,…,
“
J 5
A5 ∗= _
kompetiční vrstvy. okolí p5 ∗
=
)
”
5 /A5 1
+<
y
−
5
z
Obecně lze samotnou adaptaci váhových hodnot rozdělit na 2 částí, kdy při první dochází k velkým změnám těchto hodnot. V té druhé dochází k jemným úpravám váhových hodnot vítězného neuronu a jeho blízkého okolí. Tento iterativní proces se samozřejmě opakuje, dokud se mění hodnoty vah jednotlivých synaptických spojení neuronů ve výstupní kompetiční vrstvě. Aplikace tohoto typu sítí je zřejmá. Používají se zejména pro shlukování, analytické práce s daty a vytváření sémantických map.
49
6 Vyhodnocení možností použití Podle uvedeného teoretického rozboru lze říci, že obecné použití neuronových sítí je vcelku všestranné. Pomocí tohoto aparátu lze zpracovávat velké množství a různé typy dat. Jako nejpravděpodobnější se jeví použití dopředné vícevrstvé neuronové sítě. Prvek, který by pracoval na základě funkce tohoto modelu, by mohl sloužit jako jakýsi mezičlánek mezi zabezpečovacím a jiným systémem, do kterého bude možnost systém PZTS integrovat. Tímto způsobem by bylo možné transformovat data v požadovaný formát a následně je poskytovat k dalšímu zpracování. Další neuronovou sítí, kterou lze použít pro práci s PZTS, je například Kohonenova síť. Jedná se spíše o teoretický způsob použití, pomocí tohoto typu sítí lze analyzovat data. Pokud jsou data se stejným charakterem podobné hodnoty, lze jednotlivé stavy rozčlenit do předem definovaného počtu skupin. Následně by bylo možné se vzniklými skupinami pracovat. Jako další prvek při integraci systémů lze využít bidirektivní heteroasociativní paměť. Funkce tohoto typu sítě by spočívala v rekonstrukci případně poškozených signálů a šumů. Jedná se tedy spíše o doplňující funkci pro další zpracování dat.
50
7 Praktické řešení 7.1 Měřící sestava Pro praktickou ukázku využití neuronových sítí v rámci zabezpečovací techniky potažmo inteligentních budov bylo využito sběrnicové ústředny Digiplex Evo 192 kanadského výrobce Paradox. Schéma zapojení měřící sestavy přibližuje následující obrázek.
Obrázek 25 Měřící soustava [Zdroj: Vlastní]
7.1.1 Sběrnicová zabezpečovací ústředna Digiplex Evo 192 •
tento typ zabezpečovacích ústředen je určen pro střední a velké aplikace
Tabulka 14 Technické parametry Digiplex [Zdroj: 30]
Dělení na podsystémy
8
Max. počet zón v systému
192
Max. počet modulů v systému
254
PGM výstupy na ústředně
4 × opto-relé 50mA, 1 × relé 5A
Počet uživatelských kódů
999
Historie událostí
2048
51
7.1.2 Klávesnice K-641 •
LCD klávesnice s dvouřádkovým modrým displejem
Tabulka 15 Technické parametry K-641 [Zdroj: 31]
32 řádků, podsvícený
Displej Klávesová zóna
1
Indikace připraveno/zapnutí
zelená/červená LED dioda
Indikace napájení AC
žlutá LED dioda
Jedno-klávesové povely
14 druhů
7.1.3 Pohybový PIR detektor DM50 •
sběrnicový infra-pasivní detektor s plně digitálním zpracováním signálu
Tabulka 16 Technické parametry DM50 [Zdroj: 32]
Senzor
duální
Dosah
12 m
Detekční rychlost
0,2 až 3,5 m/s
Optická indikace
červená LED dioda
7.1.4 Tiskový modul PRT3 •
integrační a tiskový modul
Tabulka 17 Technické parametry PRT3 [Zdroj: 33]
Datový výstup / vstup
ASCI / E-BUS
Paralelní port
1
Sériový port
1
USB port
1
Rychlost sériového portu Paměť událostí
2.400, 9.600, 19.200, 57.600 b/s 2048
Komponentu PRT3 je možné použít pro tisk prostřednictvím tiskárny připojené na paralelní port modulu. Dále je možné pomocí sériového portu či portu USB připojit modul na PC a sledovat stavy a události, které vznikají na celém systému. Mimo samotné načítání
52
těchto informací lze ale prostřednictvím modulu i systém ovládat. Slouží k tomu příkazy, pomocí nichž je možné systém uvést do střežení a následně zase vypnout. Dále je k dispozici příkaz, který na ústředně vyvolá Panik poplach, a nakonec dotazy, pomocí nichž lze získat aktuální informace o dění na konkrétní zóně či podsystému. Tabulka 18 a Tabulka 19 popisují posloupnosti znaků u vybraných dotazů a příkazů, jimiž lze ústřednu ovládat, a možné odezvy přijímané zpět z ústředny. [33]
Tabulka 18 Dotaz na stav zóny [Zdroj: 34]
Dotaz na stav zóny byte
1
2
3
4
5
6
R
Z
0
X
X
6
7
8
9
10
11
7
8
9
10
11
Obdržená informace byte
1
2
3
4
5
R
Z
0
X
X
byte 6
byte 7
C-zavřena
byte 6 byte 7 byte 8 byte 9
byte 8
F-požár
A-v poplachu
byte 9
byte 10
S-porucha
L-slabá
dohledu
baterie
O-otevřena
byte 10
pozn. X = číslo zóny
T-tamper O-OK F-porucha
O-OK
O-OK
O-OK
Tabulka 19 Příkaz pro zapnutí podsystému kódem [Zdroj: 34]
byte
1
A
byte 6
2
A
3
0
byte 7
4
0
5
X
byte 8
6
7
8
9
byte
byte
byte
byte
6
7
8
9
byte 9
53
byte 10
10
11
12
byte byte byte 12 10 11
byte 11
13
byte 12
A-běžné F-force S-stay I-stay bez
uživatelský uživatelský uživatelský
uživatelský
uživatelský
uživatelský
kód číslo 1 kód číslo 2
kód číslo 4
kód číslo 5
kód číslo 6
kód číslo 3
zp. pozn. X = číslo podsystému V případě, že je na ústředně nastaven pouze čtyřmístný kód, jsou poslední dvě pozice příkazu vynechány. Díky těmto funkcím modulu je možné integrovat ústřednu do jiných nadstavbových systémů. Například je možné spolupracovat s docházkovými systémy, kamerovými systémy či elektrickou požární signalizací, a i přesto zůstává integrita systému EZS jako celku. 7.1.5 Stolní počítač Vzhledem k povaze měření není podstatné rozvádět vlastnosti a konfigurační nastavení stolního počítače. Důležitým aspektem ovšem je, aby hardwarové vybavení počítače obsahovalo sériovou sběrnici (USB či RS232) a dále program HyperTerminal nebo jeho obdobu pro monitorování sběrnice.
7.2 Popis řešení - MATLAB Pomocí výše uvedené měřící sestavy bylo možné simulovat různé situace, které na systému mohou nastat a pomocí tiskového modulu odečítat sekvence ASCII kódů. Pro aplikaci a simulace stavů v rámci neuronových sítí bylo ale zapotřebí, aby neuronová síť byla schopna pracovat se všemi možnými stavy, které se mohou na systému vyskytnout. Proto byly stavy vybrány přímo z manuálu výrobce, kde jsou obsaženy veškeré možné kombinace stavů. Tyto stavy jsou zachyceny v přílohách. (viz. Příloha č. 1) Nicméně zapojená sestava byla později využita pro získání jednotlivých sekvencí při ověřování funkčnosti neuronové sítě.
54
7.2.1 Příprava pracovního prostředí Celkový počet všech možných stavů, které se mohou objevit na výstupu tiskového modulu, je 22 564. Tyto stavy jsou však reprezentovány sekvencí ASCII kódu ve formátu uvedeném v následující tabulce. Tabulka 20 Formát dat na sběrnici [Zdroj: 34]
Událost Byte
1
2
3
4
5
6
7
8
9
10
11
12
Data
G
x
x
x
N
y
y
y
A
z
Z
z
V této posloupnosti platí: •
xxx – skupina událostí
•
yyy – událost
•
zzz – číslo (vyplývá z charakteru událostí – číslo zóny, uživatele atd.)
Pro simulaci neuronových sítí bylo využito prostředí Matlab 6.5 vyvíjen společností MathWorks. Program disponuje mnoha funkcemi a výpočty jsou založeny na práci s maticemi. Tento konkrétní software byl vybrán zejména z důvodu velké podpory a možnosti využití toolboxu „NNTOOL“, který byl vyvinut přímo pro práci s neuronovými sítěmi. Data, se kterými je možné dále pracovat, byla ve výše uvedeném formátu a v textové podobě v souboru stavy_ASCII.txt. Jelikož se ale formát dat získaný ze zabezpečovací ústředny přímo nehodí pro zpracování neuronovou sítí, byla data upravena pomocí následujícího skriptu, kde ze sekvencí byla odebrána písmena. m=1; n=m+11; x=[]; y=[]; h = fopen('stavy_ASCI.txt','r'); A = fscanf(h,'%c'); while krok<315895 a=A(m:n); a1=a(2:4); a2=a(6:8); a3=a(10:12); b=strcat(a1,a2,a3); for i=1:9 s=str2num(b(i));
//deklarace proměnných
//vytvoření linku pro čtení textového souboru //přečtení textového souboru jako text //vyjmutí jedné sekvence //výběr řetězce „skupiny událostí“ //výběr řetězce „událost“ //výběr řetězce „číslo“ //spojení v jeden řetězec //konverze textového znaku na číslo
55
13
x(i)=s; end y=[y;x]; m=m+14; n=m+11; krok=krok+1; end
//uložení do matice //spojení matic
Skript pracuje tak, že jsou cyklicky vybírány jednotlivé sekvence, které mají velikost 12 znaků. Z tohoto řetězce jsou dále vybrány podřetězce po třech znacích mezi písmeny. Následně jsou podřetězce spojeny zpět v jeden řetězec a nakonec jednotlivé textové znaky převedeny na číslo a uloženy do řádku jedné matice. Jak bylo popsáno v teoretické části práce, je nejlepším vstupním formátem dat neuronových sítí binární kód. Z tohoto důvodu byla data převedena do dvojkové soustavy. Samotná konverze byla provedena dalším skriptem, níže uvedeným. for e=1:22564 for i=1:9 p=y(e,1:9); q=str2num(dec2bin(p(i))); q=num2str(q); x=length(q); c=4; while x>0 z=str2num(q(x)); w(e,(i-1)*4+c)=z; c=c-1; x=x-1; end end end
//převod čísla na binární a zpět na číslo //převod čísla na textový řetězec //zjištění délky
//převod textového řetězce na číslo //výpočet pozice umístění čísla v matici
Ze skriptu je vidět, že jsou cyklicky vybírány hodnoty z dříve vytvořené matice. Jednotlivé prvky matice jsou poté převáděny do binárního kódu, a jelikož každé číslo je v binárním kódu poté jinak dlouhé, z důvodu přesného umístění čísla do matice je poté proveden výpočet pomocí zjištění délky konkrétní hodnoty. Jediným problémem se při výpočtu jevil fakt, že po konverzi čísla na binární hodnotu je takto hodnota v textové podobě, proto je nutné hodnota znovu převést na číslo. Po zpracování vstupních dat těmito dvěma skripty jsou data připravena ve formátu, který je plně odpovídající neuronové síti. Za účelem minimalizace dat lze navíc odstranit hodnoty „0“ z prvních buněk řádků, jelikož zbytečně zabírají místo a hodnoty v rámci sítě
56
už nepředstavují konkrétní číslo, ale individuální stavy. Tento krok je proveden následujícím skriptem. w2=[]; for i=1:22564 r=w(i,6:36); w2=[w2;r]; end w=w2;
V posledním kroku je nutné matici vstupních dat transponovat, jelikož neuronová síť bere na vstup data ve formě sloupcového vektoru a v současné matici jednotlivé stavy reprezentují řádky. w=w‘
V tuto chvíli jsou data připravena ve formátu plně vyhovujícím a umístěna v matici w. 7.2.2 Vytvoření neuronové sítě V rámci programu Matlab je práce s neuronovými sítěmi skutečně jednoduchá. Jednoduchost je ale vykoupena poměrně velkou časovou náročností jednotlivých výpočtů. V tomto případě se jedná o poměrně objemná data, kdy je vstupní matice o rozměrech 31×22 564, takže s časovou náročností je nutné počítat. V prostředí Matlab je neuron reprezentován následujícím obrázkem.
Obrázek 26 Model neuronu - MATLAB [Zdroj: MATLAB]
57
Vstupní vektor je tvořen množinou prvků p1 až pR. Jednotlivé vstupy jsou ohodnoceny vahami, respektive váhovým vektorem w1,1 až w1,R. Bias b je od matice vah oddělený a tvoří ho samostatný vektor pro každou vrstvu sítě, v průběhu trénování se oba vektory mění. Výstupem je poté hodnota a. Výchozí neuronovou sítí je zvolena dopředná vícevrstvá síť s algoritmem učení zvaným Back-propagation. Pro neuronovou síť je nutné nastavit několik potřebných parametrů. V Matlabu je možné definovat několik typu přenosových funkcí, navíc lze definovat i funkci vlastní. Přenosové funkce na výběr jsou následující: •
hardlim – prahová funkce (tvrdá limita)
•
purelin – lineární funkce
•
tansig – sigmoidní funkce
•
logsig – logická sigmoida Při vytváření sítě lze pro každou vrstvu definovat vlastní přenosovou funkci.
V tomto případě byla zvolena logická sigmoida, jelikož je třeba pracovat s logickými hodnotami. Dalším parametrem pro vytvoření sítě je počet neuronů v jednotlivých vrstvách. Jednotlivé počty byly navrženy v rámci optimalizace, aby síť nebyla zbytečně rozsáhlá, ale aby byla schopna naučit se všech 22 564 stavů s maximální požadovanou chybou 1%. Vstupní vrstva obsahuje 31 neuronů. Tento počet vychází z počtu prvků řádku matice pro jednotlivý reprezentovaný stav. Skryté vrstvy jsou celkem tři a každá obsahuje 180 neuronů. Výstupní vrstva poté čítá 15 neuronů. Tento počet je určen množstvím stavů, aby bylo možné všechny reprezentovat binární hodnotou (215=32 768). Pro trénování sítě byl vybrán algoritmus Back-propagation. Použití tohoto algoritmu je poměrně široké a prostředí Matlab nabízí několik variant jeho provedení. Varianty se liší v rychlosti, složitostí a stabilitou. Nabízenými typy jsou: •
traingd – Batch Gradient Descent
•
traingdm – Batch Gradient Descent with Momentum
•
traingdx – Gradient Descent with Variable Learning Rate
58
Jako nejrychlejším a nestabilnějším typem algoritmu se jeví traingdx, z toho důvodu byl zvolen pro další zpracování dat. Největší výhodou tohoto algoritmu je variabilní rychlost učení. Posledním parametrem pro vytvoření sítě je rozsah hodnot, se kterými má síť pracovat. Tento krok je proveden pomocí příkazu minmax(). Samotné vytvoření neuronové sítě se provádí pomocí příkazu newff. net=newff(minmax(w),[31,180,180,180,15],{‘logsig‘‚‘logsig‘‚‘logsig‘,‘logsig‘,‘logsig‘},‘traingdx‘)
K vytvořené síti lze poté přistupovat jako k objektu a jeho vlastnostem. Mezi nejzákladnější vlastnosti sítě patří tyto: •
epochs – maximální počet cyklů učení (poté se učení zastaví)
•
goal – požadovaná maximální kvadratická chyba
•
time – maximální čas trénování v sekundách
•
show – počet epoch, po kterých je cyklicky vykreslován graf
•
min_grad – minimální velikost gradientu (poté se učení zastaví)
•
lr – rychlost učení
V případě simulace sítě v této práci jsou hodnoty nastaveny následovně. net.trainParam.epochs=3000 net.trainParam.goal=1e-2 Následující příkaz slouží k naučení sítě na konkrétní vzory. Těmito vzory je myšlena matice obsahující čísla 1–22 564 v binárním kódu. Tyto hodnoty jsou voleny z důvodu jednoduchosti. V případě konkrétní aplikace a zapojení výstupů sítě do dalších systémů by bylo možné samozřejmě hodnoty změnit a přizpůsobit tak chování sítě v dané situaci. [net]=train(net,w,vzory) Jak lze vidět z níže uvedeného obrázku, požadované chybovosti 1% nebylo dosaženo. Minimální hodnota chybové funkce dosáhla hodnoty zhruba 12% při počtu 2 400 učících epoch. Je to zapříčiněno zejména velkým objemem dat, pomocí kterých je celá síť učena.
59
Obrázek 27 Učení sítě č. 1 [Zdroj: MATLAB]
7.2.3 Simulace neuronové sítě Pro simulování konkrétních stavů byly odečteny hodnoty ze sběrnice pomocí výše uvedené soustavy. Jako příkladně stavy byly vybrány tyto: •
Poplach zóny č. 8
•
Poplach do vypnutí kódem
•
Narušen tamper zóny č. 8
•
Zóna č. 8 v klidu
•
Vypnuto po poplachu uživatelem 521-767
Výsledky simulace stavů
jsou
uvedeny přehledně v tabulce v přílohách
(Příloha č. 2) Jak lze z tabulky vypozorovat, chybovost sítě je skutečně vyšší než 1%.
60
7.2.4 Návrh optimalizace sítě V případě integrace systémů PZTS v rámci inteligentních budov zřejmě nebude vyžadováno, aby byly přenášeny veškeré možné stavy. Systém pro tuto situaci zasílá i vcelku nepotřebné informace, jako například čas a podobně. V rámci optimalizace modelu neuronové sítě a práce s ní, byly vybrány ty nejzákladnější stavy, které jsou v rámci sběrnice systému PZTS posílány. Jedná se o velice hrubé zjednodušení, kdy neuronová síť rozpozná tyto situace: • • •
Zóna v klidu Zóna narušena Sabotáž zóny Jedná se o nejzákladnější stavy systému a po této redukci tak jejich počet klesá na
hodnotu 576. (stavy obsahují informace o zónách, na kterých situace vznikla) Postup pro vytvoření sítě je obdobný jako v předešlém případě, liší se pouze vstupními hodnotami, velikostí a parametry sítě. net=newff(minmax(w),[14,100,100,10],{‘logsig‘‚‘logsig‘,‘logsig‘,‘logsig‘},‘traingdx‘) net.trainParam.epochs=2000 net.trainParam.goal=1e-2 [net]=train(net,w,vzory) stav=(20,1:14)‘ sim (net,stav) V tomto případě již není žádný problém síť dostatečně adaptovat a vzhledem k nižšímu objemu dat je pro chybovou funkci 1% časová náročnost výpočtu zanedbatelná. Na následujícím obrázku je pak zobrazen průběh učení této sítě.
61
Obrázek 28 Učení sítě č. 2 [Zdroj: MATLAB]
Jak je vidět, síť se pro hodnotu chybové funkce 1% naučila data po 1 248 učících epochách. Správnost naučení neuronové sítě lze opět provést pomocí simulace některého stavu. Níže uvedená tabulka obsahuje data při simulaci vytvořené redukované neuronové sítě. Tabulka 21 Simulace optimalizované sítě [Zdroj: vlastní]
20
pořadové číslo stavu výstup sítě požadovaná hodnota
0.0000 0.0061 0.0113 0.0174 0.0842 0.9870 0.0594 0.8667 0.0011 0.0636 0
0
0
0
0
pořadové číslo stavu výstup sítě požadovaná hodnota
požadovaná hodnota
0
0
1
0
0
požadovaná hodnota
1
0
0
1
0
1
1
0
333 0.0000 0.9742 0.0370 0.9501 0.1922 0.0431 0.7785 0.8982 0.0852 0.9624 0
1
0
1
0
0
1
1
0
1
560
pořadové číslo stavu výstup sítě
0
0.0170 0.0010 0.9089 0.0581 0.0273 0.9844 0.1981 0.8841 0.8204 0.0083
pořadové číslo stavu výstup sítě
1 150
0.9275 0.0463 0.2272 0.2043 0.8923 0.8180 0.2719 0.1776 0.0807 0.0022 1
0
0
0
62
1
1
0
0
0
0
Z tabulky lze vidět, že neuronová síť je schopna se stavy naučit s minimální chybovostí a je tak možné tento model použít k dalšímu zpracování.
7.3 Popis řešení – C# Pro bližší seznámení s neuronovou sítí a postupem zpracování dat byl vytvořen model perceptronu v prostředí Visual Studio a programovacím jazyce C#. Jedná se pouze o ukázku možnosti. Složitost práce oproti toolboxu v Matlabu je mnohem vyšší, jelikož zde se jedná pouze o jediný prvek sítě, který je nutné dále spojit ve vrstvy a dále v konečnou síť.
Obrázek 29 Konzolová aplikace v C# [Zdroj: Visual Studio]
V podstatě se jedná o primitivní konzolovou aplikaci, kde je perceptron naučen reprezentovat logickou funkci AND. Pro vstupy { { 1, 1 }, { 1, 0 }, { 0, 1 }, { 0, 0 } } je předložen trénovací soubor { 1, 0, 0, 0 }. Následně po předložení vstupu { { 0, 0 }, { 0, 1 }, { 1, 1 }, { 1, 0 } } vypočítá a zobrazí
výstupní hodnoty (viz obrázek). Zdrojový kód aplikace je obsažena v přílohách (Příloha č. 2).
63
8 Závěr a shrnutí Cílem práce bylo prakticky ověřit možnosti použití neuronových sítí jako prvku sloužícího k integraci systémů PZTS do dalších systémů v rámci inteligentních budov. V první části práce je popsána historie vzniku neuronových sítí a dále popsány druhy aktuálního stavu využití tohoto aparátu. Následují kapitoly, kde jsou detailně rozebrány jednotlivé typy neuronových sítí a jejich učící algoritmy dle různých hledisek dělení. V druhé části práce je uvedeno praktické řešení, kdy je vytvořen model neuronové sítě, který je dále adaptován na všechny stavy, které mohou nastat na sběrnicovém vedení zabezpečovacích systémů společnosti Paradox. Jako hlavní požadavek testování byla stanovena maximální hodnota chybové funkce na 1%. V případě učení sítě na celkový možný počet stavů této hodnoty nebylo dosaženo a síť byla schopna rozeznávat stavy s chybovostí zhruba 12%. Následovala tedy redukce počtu stavů, jelikož celkový počet obsahoval i stavy, které pro smysl integrace nebyly podstatné. Zmenšený model neuronové sítě již odpovídal požadavku chybovosti a je tak možné s tímto modelem dále pracovat v rámci integrace systému PZTS do inteligentních budov. Jako nejlepší pro použití se tedy jeví konkrétně dopředná vícevrstvá perceptronová neuronová síť. Prostřednictvím této sítě lze model adaptovat na konečný počet stavů a tuto síť tedy pak použít jako jakýsi mezičlánek v rámci integrace mezi odlišnými systémy. Při tvorbě sítě, respektive tvorbě trénovacího souboru, je nutné již předem znát účel dané neuronové sítě a přizpůsobit tak budoucí výstupní hodnoty. V případě testování v rámci této práce byly hodnoty voleny pouze jako pořadová čísla jednotlivých stavů. Pro definování spolehlivosti práce s neuronovou sítí slouží právě chybová funkce. Jelikož bylo dosaženo hranice 1%, je pro práci tato neuronová sít vyhovující. Z hlediska finanční náročnosti není jasné, do jaké výše by se cena takového propojujícího modulu vyšplhala. V současnosti se již na trhu vyskytují různé produkty principiálně pracující na bázi neuronových sítí. Jejich ceny se pohybují v řádech desítek tisíc korun. Z hlediska legislativy je nutné, aby daný integrovaný systém splňoval normu ČSN CLC/TS 50 398:2009. Tato norma definuje tři základní skupiny integrovaných systémů dle jejich vzájemného ovlivňování a samostatnosti, a to do skupin 1, 2A a 2B. Díky samostatnosti navrženého modelu neuronové sítě lze navržený prvek zařadit do skupin 2A či 2B, čímž je legislativní požadavek splněn.
64
9 Seznam použité literatury [1] ŠÍMA, J., NERUDA, R. Teoretické otázky neuronových sítí. Praha: Matlfyzpress, 1996. 390 s. ISBN 80-85863-18-9. [2] KASÍK, P. Umělý mozek: IBM vytvořila počítač, který umí „programovat“ sám sebe. In: Technet [online]. Publikováno 2011-08-23 [cit. 2014-02-25]. Dostupné z: < http://technet.idnes.cz/umely-mozek-ibm-vytvorila-pocitac-ktery-umiprogramovat-sam-sebe-py9-/tec_technika.aspx?c=A110819_111241_tec_technika_pka> [3] LÁŽŇOVSKÝ, M. Počítače nám vzaly i řeč. Umí mluvit čínsky naším hlasem. In: Technet [online]. Publikováno 2012-11-20 [cit. 2014-02-02]. Dostupné z: [4] Neuron. In: Eternityandfingerprints [online]. 2011 Eternityandfingerprints. [cit. 201401-22]. Dostupné z: [5] NERAD, P. Úvod do neuronových sítí. In: Statsoft [online]. Publikováno 2013-02-05 [cit. 2014-01-22]. Dostupné z: [6] KRIESEL, D. Ein kleiner Überblick über Neuronale Nerze. Bonn: Rheinische Friedrich-Wilhelms-Universität, 2007. 219s. Elektronický text. Dostupné z: [7] SCHEJBAL, C., Homola, V., Staněk, F. Geoinformatika. Košice: Pont, 2004. 229s. ISBN 80 967611-8-8. Elektronický text. Dostupné z: < http://geologie.vsb.cz/geoinformatika/kap07.htm> [8] VOLNÁ E. Neuronové sítě I., Ostrava: Ostravská univerzita, 2008. 86s. Elektronický text. Dostupné z: < http://files.klaska.net/cvut/ns2/volna.pdf> [9] FAUSETT, L. V. Fundamentals of Neural Networks. Prentice-Hall, Inc., Englewood Cliffs, New Jersey 1994. ISBN 0133341860. [10] OSIČKA, P. Umělé neuronové sítě. Univerzita Palackého v Olomouci, 2010. 29s. Elektronický text. Dostupné z: < http://phoenix.inf.upol.cz/~osicka/courses/uns/lecture4.pdf>
65
[11] VESELOVSKÝ, M. Neuronové sítě. Západočeská univerzita v Plzni, 2013. 83s. Elektronický text. Dostupné z: < http://avari.cz/uir/index.php?pg=perceptron> [12] BRUDNIK, P. Úvod do teorie neuropočítačů. Jihočeská univerzita, 2010. 5s. Elektronický text. Dostupné z: < http://skola.brundik.net/szz-vt/materialy/neu/neu-04__charakteristika_jednotlivych_typu_neuronovych_siti.doc> [13] ROKŮSEK, Z. Teoretické základy neuronových sítí. České Budějovice, 2007. Bakalářská práce. Jihočeská univerzita v Českých Budějovicích, Pedagogická fakulta, Katedra fyziky. [14] KLINKHACHORN, P. Adaline/Madaline. West Virginia University, 2000. 38s. Elektronický text. Dostupné z: [15] ŠNOREK, M. Neuronové sítě a neuropočítače. Praha: Vydavatelství ČVUT, 2002. ISBN 80-01-02549-7. [16] FAUSETT, L. V.: Fundamentals of Neural Networks. Prentice-Hall, Inc.,Englewood Cliffs, New Jersey 1994. [17] [4] VESELÝ, A. Úvod do umělé inteligence, přednáška. Praha: Česká zemědělská univerzita v Praze, 2012 [18] MRÁZOVÁ, I. Asociativní paměti, přednáška. Praha: Karlova univerzita, 2008. 79s. Elektronický text. Dostupné z: [19] MRÁZ, F., MRÁZOVÁ, I. Neuronové sítě, přednáška. Praha: Karlova univerzita, 2007. 44s. Elektronický text. Dostupné z: < http://ksvi.mff.cuni.cz/~mraz/nn/slides/asoc.pdf> [20] VALENTA, O., MATOUŠEK, V. Umělé neuronové sítě, přednáška. Plzeň: Západočeská univerzita, 2014. 61s. Elektronický text. Dostupné z: [21] ZÁLESKÁ, K. Predikce délky přežití onkologických pacientů pomocí umělých neuronových sítí. Brno, 2013. Diplomová práce. Masarykova univerzita. Přírodovědná fakulta, Institut biostatistiky a analýz. [22] OLEJ, V. Modelovanie ekonomických procesov na báze výpočtovej inteligencie. Česká republika: Hradec Králové, 2003. 160 s. ISBN 80-90324-9-1.
66
[23] BURIÁNKOVÁ, V. Modelování predikce časové řady návštěvnosti web domény pomocí dopředných neuronových sítí. Pradubice, 2011. Diplomová práce. Univerzita Pardubice. Fakulta ekonomicko-správní, Ústav systémového inženýrství a informatiky. [24] HASSOUN, M. Fundaments of artifical neural networks. Cambrige: MIT Press, 1995. 544s. ISBN 0-262-08239-X. [25] HRBÁČEK, J. Využití neuronových sítí v diagnostice. Brno, 2009. Bakalářská práce. Vysoké učení technické v Brně. Fakulta strojního inženýrství. Ústav výrobních strojů, systémů a robotiky. [26] VESELOVSKÝ, M. ART (Adaptive Resonance Theory). Západočeská univerzita v Plzni, 2013. 83s. Elektronický text. Dostupné z: < http://avari.cz/uir/index.php?pg=art> [27] LOCHMAN, R. Implementace neuronové sítě ART. Praha, 2006. Diplomová práce. České vysoké učení technické v Praze. Fakulta Elektrotechnická, Katedra počítačů. [28] KAŇA, M. Kohonenova síť. Brno, 2011. Bakalářská práce. Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. Ústav automatizace a měřící techniky. [29] JIRSÍK, V., HRÁČER, P. Neuronové sítě, expertní systémy a rozpoznávání řeči. Brno, 2002. Vysoké učení technické v Brně, 2002. 107 s. [30] EUROSAT [online]. 2012 [cit. 2014-2-25]. Instalační návod Digiplex EVO 48/192. Dostupné z: [31] EUROSAT [online]. 2012 [cit. 2014-2-25]. Programovací návod modulů. Dostupné z: [32] VARIANT [online]. 2012 [cit. 2014-2-25]. Sběrnicový detektor DM50. Dostupné z: [33] EUROSAT [online]. 2012 [cit. 2014-2-25]. Instalační návod PRT3. Dostupné z: [34] EUROSAT [online]. 2012 [cit. 2014-2-25]. Příkazy v ASCII pro modul PRT3. Dostupné z: < http://www.eurosat.cz/698/1684-prikazy-v-ascii-pro-modul-prt3.html>
67
[35] Vrstvová struktura umělé neuronové sítě. In: Elektrorevue [online]. 2010 Karol Molnár. [cit. 2013-11-20]. Dostupné z: [36] VESELOVSKÝ, M. Lineární asociativní paměť (ART) Západočeská univerzita v Plzni, 2013. 12s. Elektronický text. Dostupné z:
68
10 Seznam obrázků OBRÁZEK 1 BIOLOGICKÉ NEURON - FOTOGRAFIE.............................................................................................. 9 OBRÁZEK 2 BIOLOGICKÝ NEURON - DETAIL ..................................................................................................... 10 OBRÁZEK 3 SCHEMATICKÝ MODEL NEURONU ................................................................................................ 11 OBRÁZEK 4 FORMÁLNÍ NEURON ..................................................................................................................... 12 OBRÁZEK 5 GEOMETRICKÁ INTERPRETACE FUNKCE NEURONU...................................................................... 13 OBRÁZEK 6 GRAFICKÁ INTERPRETACE LOGICKÉ FUNKCE AND ........................................................................ 14 OBRÁZEK 7 GRAFICKÁ INTERPRETACE LOGICKÉ FUNKCE XOR......................................................................... 15 OBRÁZEK 8 GRAFY SIGMOIDNÍCH FUNKCÍ ....................................................................................................... 16 OBRÁZEK 9 DOPŘEDNÁ NEURONOVÁ SÍŤ ........................................................................................................ 19 OBRÁZEK 10 REKURENTNÍ NEURONOVÁ SÍŤ ................................................................................................... 20 OBRÁZEK 11 VÍCEVRSTVÁ NEURONOVÁ SÍŤ .................................................................................................... 22 OBRÁZEK 12 GRADIENTNÍ METODA ................................................................................................................ 24 OBRÁZEK 13 ADALINE MODEL ......................................................................................................................... 28 OBRÁZEK 14 MADALINE MODEL ...................................................................................................................... 29 OBRÁZEK 15 DĚLENÍ SÍTÍ .................................................................................................................................. 31 OBRÁZEK 16 STRUKTURA SÍTĚ LAM ................................................................................................................. 32 OBRÁZEK 17 HOPFIELDOVA SÍŤ ....................................................................................................................... 34 OBRÁZEK 18 SÍŤ BAM ....................................................................................................................................... 37 OBRÁZEK 19 SÍŤ TDNN ..................................................................................................................................... 41 OBRÁZEK 20 FILTR TDNN ................................................................................................................................. 42 OBRÁZEK 21 SÍŤ ART ........................................................................................................................................ 44 OBRÁZEK 22 POROVNÁVACÍ VRSTVA ART ....................................................................................................... 45 OBRÁZEK 23 ROZPOZNÁVACÍ VRSTVA ART ...................................................................................................... 46 OBRÁZEK 24 KOHONENOVA SÍŤ....................................................................................................................... 48 OBRÁZEK 25 MĚŘÍCÍ SOUSTAVA ...................................................................................................................... 51 OBRÁZEK 26 MODEL NEURONU - MATLAB...................................................................................................... 57 OBRÁZEK 27 UČENÍ SÍTĚ Č. 1............................................................................................................................ 60 OBRÁZEK 28 UČENÍ SÍTĚ Č. 2............................................................................................................................ 62 OBRÁZEK 29 KONZOLOVÁ APLIKACE V C# ....................................................................................................... 63
69
11 Seznam tabulek TABULKA 1 LOGICKÁ FUNKCE AND .................................................................................................................. 14 TABULKA 2 BACK-PROPAGATION .................................................................................................................... 24 TABULKA 3 PERCEPTRONOVÝ ALGORITMUS ................................................................................................... 27 TABULKA 4 ADALINE UČENÍ ............................................................................................................................. 28 TABULKA 5 MADALINE UČENÍ .......................................................................................................................... 30 TABULKA 6 HEBBOVO PRAVIDLO ..................................................................................................................... 33 TABULKA 7 HEBBOVO PRAVIDLO - HETEROASOCIATIVNÍ SÍŤ .......................................................................... 33 TABULKA 8 HOPFIELD – SYNCHRONNÍ ............................................................................................................. 36 TABULKA 9 HOPFIELD – ASYNCHRONNÍ .......................................................................................................... 36 TABULKA 10 BAM UČENÍ ................................................................................................................................. 38 TABULKA 11 ŘÍDÍCÍ SIGNÁLY – ART .................................................................................................................. 44 TABULKA 12 ART1 UČENÍ ................................................................................................................................. 46 TABULKA 13 KOHONENOVO UČENÍ ................................................................................................................. 49 TABULKA 14 TECHNICKÉ PARAMETRY DIGIPLEX .............................................................................................. 51 TABULKA 15 TECHNICKÉ PARAMETRY K-641 ................................................................................................... 52 TABULKA 16 TECHNICKÉ PARAMETRY DM50 .................................................................................................. 52 TABULKA 17 TECHNICKÉ PARAMETRY PRT3 .................................................................................................... 52 TABULKA 18 DOTAZ NA STAV ZÓNY ................................................................................................................ 53 TABULKA 19 PŘÍKAZ PRO ZAPNUTÍ PODSYSTÉMU KÓDEM ............................................................................. 53 TABULKA 20 FORMÁT DAT NA SBĚRNICI ......................................................................................................... 55 TABULKA 21 SIMULACE OPTIMALIZOVANÉ SÍTĚ .............................................................................................. 62
70
12 Seznam vzorců 1 VNITŘNÍ POTENCIÁL NEURONU .................................................................................................................... 11 2 DEFINICE TRÉNOVACÍ MNOŽINY ................................................................................................................... 22 3 CHYBOVÁ FUNKCE SÍTĚ ................................................................................................................................. 23 4 ELEMENTÁRNÍ CHYBOVÁ FUNKCE SÍTĚ......................................................................................................... 23 5 VÝPOČET VÁHOVÝCH PŘÍRŮSTKŮ VNITŘNÍ – VÝSTUPNÍ NEURON ............................................................... 26 6 VÝPOČET VÁHOVÝCH PŘÍRŮSTKŮ VSTUPNÍ – VNITŘNÍ NEURON ................................................................. 26 7 AKTIVAČNÍ FUNKCE OSTRÁ NELINEARITA ..................................................................................................... 26 8 VÝPOČET VÝSTUPU SÍTĚ LAM........................................................................................................................ 32 9 HEBBŮV ZÁKON ............................................................................................................................................ 35 10 HEBBOVO UČENÍ ......................................................................................................................................... 35 11 POSTSYNAPTICKÝ POTENCIÁL HOPFIELDOVY SÍTĚ ...................................................................................... 35 12 VÝSTUPNÍ HODNOTA HOPFIELDOVY SÍTĚ ................................................................................................... 35 13 VÁHOVÝ VEKTOR HOPFIELDOVY SÍTĚ ......................................................................................................... 36 14 ENERGETICKÁ FUNKCE HOPFIELDOVY SÍTĚ................................................................................................. 37 15 KAPACITA SÍTĚ BAM .................................................................................................................................... 38 16 ODHAD KAPACITY SÍTĚ BAM ....................................................................................................................... 38 17 VÝSTUP SÍTĚ TDNN ...................................................................................................................................... 41 18 VÝPOČET DOPŘEDNÝCH VAH SÍTĚ ART1 ..................................................................................................... 47
71
13 Seznam odborných výrazů a zkratek Adaline ART axon BAM bias dendrit excitace gradient inhibice LAM Madaline majorita MLP receptor separabilní synapse TDNN
Adaptive Linear Neuron - typ neuronové sítě Adaptive Resonance Theory - typ neurnové sítě Hlavní výběžek těla buňky biologického neuronu Bidirectional Associative Memory - typ neuronové sítě Váhové ohodnocení vstupu x0=1 Vedlejší výběžky těla buňky biologického neuronu Vybuzení - přechod energetického stavu atomu, molekuly či iontu na vyšší energetickou hladinu Obecný název pro směr růstu Snížení aktivity vlivem vazby určité látky Linear Associative Memory - typ neuronové sítě Multiple adaptive linear element - typ neuronové sítě Většina Multilayer Perceptron - typ neuronové sítě Vstupní neurony sítě Oddělitelný Spojení dvou neuronů sloužící k předávání vzruchů Time-Delay Neural Networks - typ neuronové sítě
72
14 Přílohy Příloha 1
Popis událostí skupina událostí číslo popis 000 zóna v klidu 001 zóna narušena 002 tamper narušen tamper požární 003 zóny
004
nepřenášené události na PCO
událost číslo
popis
000
zóny dle výběru
255
jakákoliv zóna
000
porucha linky reset požárních detektorů zapnuto bez času na příchod zapnuto STAY zapnuto FORCE plné zapnutí při stavu STAY ovládáno telefonním modulem ovládáno bezdrátem porucha komunikace na PC půlnoc WinLoad/NEWare - ON WinLOad/NEWare OFF uživatel inicioval tel. volání ruční odpověď Winloadu (kl.[ARM]) ruční položení kom. (kl.[DISARM]) reset na tovární hodnoty AUX aktivován tlačítkem AUX odpojen tlačítkem chyba v hlasovém přenosu VDMP3 obnova komunikace ovládáno VDMP3, IP100, NeWare, WinLoad
1
začátek konec číslo číslo 001-192 001-192 001-192 001-192 001-192 001-192 001-192 001-192 000
000
001
001
002
002
003 004
003 004
005
005
006
006
007
007
008
008
009 010
009 010
011
011
012
012
013
013
014
014
015
015
016
016
017
017
018
018
019
019
020
020
000
000
000 001 002 003 255 000
Jakákoliv nepřenášená událost uživatelský kód 001-255 uživatelský kód 256-511 uživatelský kód 512-767 uživatelský kód 768-999 jakýkoliv uživatelský kód číslo dveří jakékoliv dveře jednoklávesové programování BYPASSu uživatel 001-255 uživatel 256-511 uživatel 512-767 uživatel 768-999 jakýkoliv uživatel číslo zóny
001-255 001-255 001-255 001-231 001-192
001-255 001-255 001-255 001-231 001-192
255
jakákoliv zóna
-
-
000 001 002 003 255 000 001 002 003 255 000 255
uživatel 001-255 uživatel 256-511 uživatel 512-767 uživatel 768-999 jakýkoliv uživatel uživatel 001-255 uživatel 256-511 uživatel 512-767 uživatel 768-999 jakýkoliv uživatel číslo KEYSWITCH jakýkoliv KEYSWITCH auto zapnutí zapnuto z Winloadu auto zapnutí dle času auto zapnutí dle klidu částečné zapnutí jednoklávesové zapnutí zapnuto z telefonního modulu nepoužíváno jakékoliv speciální zapnutí uživatel 001-255 uživatel 256-511 uživatel 512-767
001-255 001-255 001-255 001-231 001-255 001-255 001-255 001-231 001-032 000 001 002 003 004 005 006 007
001-255 001-255 001-255 001-231 001-255 001-255 001-255 001-231 001-032 000 001 002 003 004 005 006 007
008
008
009
009
-
-
255
005
uživatelský kód byl zadán na klávesnici
000 001 002 003 255
006
otevřené dveře
000 255 000
007
programování BYPASS
008
zpoždění přenosu na PCO před poplachem
009
zapnuto Master kódem
010
zapnul uživatel
011
zapnul KEYSWITCH
012
speciální zapnutí
000
255 013
vypnuto Master kódem
000 001 002
2
-
-
000-255 000-255 000-255 000-231
000-255 000-255 000-255 000-231
-
-
001-032 001-032 -
001-255 001-255 001-255 001-255 001-255 001-255
014
vypnul uživatel
015
vypnut KEYSWITCH
016
vypnuto po poplachu Master kódem
017
vypnuto po poplachu uživatelem
018
vypnuto po poplachu KEYSWITCH
019
vypnut poplach Master kódem
020
vypnut poplach uživatelem
021
vypnut poplach KEYSWITCH
003 255 000 001 002 003 255 000 255 000 001 002 003 255 000 001 002 003 255 000
uživatel 768-999 jakýkoliv uživatel uživatel 001-255 uživatel 256-511 uživatel 512-767 uživatel 768-999 jakýkoliv uživatel číslo KEYSWITCH jakýkoliv KEYSWITCH uživatel 001-255 uživatel 256-511 uživatel 512-767 uživatel 768-999 jakýkoliv uživatel uživatel 001-255 uživatel 256-511 uživatel 512-767 uživatel 768-999 jakýkoliv uživatel číslo KEYSWITCH
001-231 001-255 001-255 001-255 001-231 001-032 001-255 001-255 001-255 001-231 001-255 001-255 001-255 001-231 001-032
001-231 001-255 001-255 001-255 001-231 001-032 001-255 001-255 001-255 001-231 001-255 001-255 001-255 001-231 001-032
255
jakýkoliv KEYSWITCH
-
-
000 001 002 003 255 000 001 002 003 255 000 255
uživatel 001-255 uživatel 256-511 uživatel 512-767 uživatel 768-999 jakýkoliv uživatel uživatel 001-255 uživatel 256-511 uživatel 512-767 uživatel 768-999 jakýkoliv uživatel číslo KEYSWITCH jakýkoliv KEYSWITCH auto zapnutí zrušeno jednoklávesové vypnutí STAY / ST bez zp. vypnuto z Winloadu vypnuto z Winloadu po poplachu vypnuto z Winloadu poplach vypnuto z telefonního modulu jakékoliv speciální vypnutí
001-255 001-255 001-255 001-231 001-255 001-255 001-255 001-231 001-032 000
001-255 001-255 001-255 001-231 001-255 001-255 001-255 001-231 001-032 000
001
001
002
002
003
003
004
004
005 006 007
005 006 007
008
008
-
-
000 022
speciální vypnutí
255
3
023 024 025 026 027
zóna BYPASSována zóna v poplachu zóna požární v poplachu zóna obnova po poplachu zóna obnova po požáru
028
vypnuto před limitem
029
vypnuto po limitu
030
speciální poplach
001-192 001-192 001-192 001-192 000
zóny dle výběru
001-192 001-192 255
jakákoliv zóna
000 001 002 003 255 000 001 002 003 255
uživatel 001-255 uživatel 256-511 uživatel 512-767 uživatel 768-999 jakýkoliv uživatel uživatel 001-255 uživatel 256-511 uživatel 512-767 uživatel 768-999 jakýkoliv uživatel panik 1 (1+3) panik 2 (4+6) panik 3 (7+9) poplach v čase po odchodu druhý poplach auto vyřazení zóny jakýkoliv speciální poplach uživatel 001-255 uživatel 256-511 uživatel 512-767 uživatel 768-999 jakýkoliv uživatel
000
255
031
nátlak
032
auto vyřazení zóny tamper zóny porucha tamper zóny obnova blokování klávesnice
033 034 035
036
porucha
001-192 001-192
000 001 002 003 255 000
zóny dle výběru
001-192 001-192 001-255 001-255 001-255 001-231 001-255 001-255 001-255 001-231 000 001 002
001-255 001-255 001-255 001-231 001-255 001-255 001-255 001-231 000 001 002
003
003
004 005
004 005
-
-
001-255 001-255 001-255 001-231 001-192
001-255 001-255 001-255 001-231 001-192
001-192 001-192
255
jakákoliv zóna
000
blokování klávesnice
000
000
porucha AC porucha baterie přetížení AUX přetížení BELL odpojen BELL porucha času porucha požární zóny jakákoliv porucha
000 001 002 003 004 005 006 007 -
000 001 002 003 004 005 006 007 -
000
255
4
001-192 001-192
037
obnova
000
obnova linky 000 000 obnova AC 001 001 obnova baterie 002 002 obnova AUX 003 003 obnova BELL 004 004 připojen BELL 005 005 zadání času 006 006 obnova požární zóny 007 007 jakákoliv obnova porucha komunikace 000 000 BUS porucha tamper modulu 001 001 porucha RAM/ROM 002 002 porucha tel. linky 003 003 modulu porucha komunikace na 004 004 PCO porucha tisku 005 005 porucha AC 006 006 porucha baterie 007 007 porucha AUX 008 008 jakákoliv porucha modulu obnova komunikace 000 000 BUS obnova tamper modulu 001 001 obnova ROM/RAM 002 002 obnova tel. linky modulu 003 003 obnova komunikace na 004 004 PCO obnova tisku 005 005 obnova AC 006 006 obnova baterie 007 007 obnova AUX 008 008 jakákoliv obnova modulu telefonní číslo 001-004 001-004
255
jakékoliv telefonní číslo
000
255
000 038
porucha modulu
255
000 039
obnova modulu
255 040 041 042 043 044 045
porucha komunikace na telefonní číslo bezdrát porucha baterie bezdrát porucha hlídání bezdrát obnova baterie bezdrát obnova hlídání speciální událost
-
-
001-255 001-255 000
zóny dle výběru
001-255 001-255 001-255 001-255
255
jakákoliv zóna
000
reset z 0 (odpojeno napájení)
5
001-255 001-255 000
000
reset za chodu přenosový test na PCO spojení s Lisen-IN Winload programování ON Winload programování OFF instalační programování ON instalační programování OFF jakákoliv speciální událost uživatel 001-255 uživatel 256-511 uživatel 512-767 uživatel 768-999 jakýkoliv uživatel uživatel 001-255 uživatel 256-511 uživatel 512-767 uživatel 768-999 jakýkoliv uživatel akce jakákoliv akce
255
046
zapnuto před limitem
047
zapnuto po limitu
048
PGM AKCE ×××
049
odchod pomocí Z2
050
přístup zakázán
051 052 053
054 055 056 057 058 059 062
nezavřeno poplach násilně otevřeno poplach zavřeno po nezavření poplach zavřeno po násilném otevření poplach spuštěn čas INTELLI zóny zóna vyřazena při FORCE zóna zařazena po FORCE na BUS přidán modul z BUS odstraněn modul uživateli povolen
000 001 002 003 255 000 001 002 003 255 000 255
001 002 003
001 002 003
004
004
005
005
006
006
007
007
-
-
001-255 001-255 001-255 001-231 001-255 001-255 001-255 001-231 001-064 001-032
001-255 001-255 001-255 001-231 001-255 001-255 001-255 001-231 001-064 001-032
001-032 001-032 001-032 001-032 000
dveře dle výběru 001-032 001-032 001-032 001-032
255
jakékoliv dveře
001-032 001-032
000 255
zóny dle výběru jakákoliv zóna
001-192 001-192 -
000
zóny dle výběru
001-192 001-192
255
jakákoliv zóna
001-192 001-192
000
modul dle výběru
001-254 001-254
255
jakýkoliv modul
001-254 001-254
000
uživatel 001-255
001-255 001-255
6
vstup acc
063
uživateli zakázán vstup acc
064
stav 1 (Neprogramuje se deaktivační událost. Nesmí se deaktivovat časem. Po ukončení aktivační události se PGM shodí automaticky.)
065
066
067
stav 2 (Neprogramuje se deaktivační událost. Nesmí se deaktivovat časem. Po ukončení aktivační události se PGM shodí automaticky.)
001 002 003 255 000 001 002 003 255
000 - událost musí vzniknout na všech Podsystémech současně
001 - podsystém1 002 - podsystém2 003 - podsystém3 004 - podsystém4 005 - podsystém5 006 - podsystém6 007 - podsystém7 008 - podsystém8
uživatel 256-511 uživatel 512-767 uživatel 768-999 jakýkoliv uživatel uživatel 001-255 uživatel 256-511 uživatel 512-767 uživatel 768-999 jakýkoliv uživatel zapnuto zapnuto FORCE zapnuto STAY zapnuto STAY bez zpoždění poplach do vypnutí kódem poplach tichý poplach hlasitý do čas sir nebo vyp. kódem poplach požární ready čas pro odchod čas pro příchod porucha systému poplach v paměti zóny v BYPASSu BYPASS, Master kód, Instalační kód
001-255 001-255 001-231 001-255 001-255 001-255 001-231 000 001 002
001-255 001-255 001-231 001-255 001-255 001-255 001-231 000 001 002
003
003
004
004
005
005
006
006
007 000 001 002 003 004 005
007 000 001 002 003 004 005
006
006
blokována klávesnice
007
007
spuštěn čas INTELLI 000 000 zóny stav 3 čas zpoždění požárního (Neprogramuje se 001 001 poplachu deaktivační auto zapnutí 002 002 událost. Nesmí se 255 - stačí když 003 003 deaktivovat událost vznikne na časem. Po tamper narušen 004 004 jednom Podsystému ukončení aktivační bezdrát - porucha 005 005 události se PGM baterie shodí porucha požární zóny 006 006 automaticky.) bezdrát - porucha 007 007 hlídání zvonkohra v Speciální stav podsystému 1(000) 000-003 000-003 (Tyto události je 4(003) možné použít pouze pro aktivaci reset požárních 004 004 PGM na desce detektorů ústředny - nelze připojení na telefonní 005 005 použít pro moduly) linku (LED ON)
7
kiss OFF vyzvánění telefonu siréna v podsystému 1(008) - 8(015) požární poplach v podsystému 1(016) 8(023) zap/vyp kiss OFF v podsystému 1(024) 8(031) *KEYSWITCH 01 - 32 jako PGM akce xxx stav dveří 01(064) 32(095) porucha v systému porucha komunikace porucha na modulu porucha na BUS porucha data a času porucha AC porucha baterie přetížen AUX přetížen BELL chybí BELL porucha ROM porucha RAM ztráta linky 1 porucha komunikace na telefonním čísle 1 porucha komunikace na telefonním čísle 2 porucha komunikace na telefonním čísle 3 porucha komunikace na telefonním čísle 4 porucha komunikace na tel. číslo PC modul - narušen tamper modul - porucha ROM modul - porucha telefonní linky modul - porucha komunikace s PCO modul - porucha tisku modul - porucha AC modul - porucha baterie modul - porucha AUX
8
006 007
006 007
008-015 008-015 016-023 016-023
024-031 024-031 032-063 032-063 064-095 064-095 096 097 098 099 103 104 105 106 107 108 109 110 112
096 097 098 099 103 104 105 106 107 108 109 110 112
113
113
114
114
115
115
116
116
117
117
118 119 120 121
118 119 120 121
122
122
123
123
124 125 126 127
124 125 126 127
chybí klávesnice chybí modul celková porucha BUS přetížení BUS sepnuto relé komunikátoru 070
čas
9
128 128 129 129 130-132 130-132 133 133 134 134 135 135 136
136
hodiny
minuty
Příloha 2 Stav
Poplach zóny 8
Poplach do vypnutí kódem
Data na sběrnici
G001N000A009
G064N004A001
Vstup sítě
Výstup sítě
Požadovaný výstup sítě
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0
0.0005 0.0491 0.0244 0.3990 0.3147 0.4217 0.5662 0.6313 0.3401 0.5080 0.4797 0.5089 0.4380 0.4800 0.6195
0 0 0 0 0 0 0 1 1 0 0 1 0 0 1
0.9937 0.0243 0.6066 0.2471 0.7242 0.4932 0.7182
1 0 1 0 1 0 1
10
Narušen tamper G002N000A009 zóny 8
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
11
0.8173 0.5706 0.5339 0.4727 0.4527 0.5539 0.5151 0.4653
1 1 0 0 1 1 0 1
0.0073 0.0975 0.1391 0.4696 0.2042 0.4562 0.4640 0.5379 0.4333 0.4847 0.4209 0.4935 0.4126 0.4345 0.6841
0 0 0 0 0 0 1 1 0 0 0 1 0 0 1
0 0 0 0 0 0 0 0 0 0 1 0 0 1
Zóna 8 v klidu
G000N000A009
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0.0011 0.0701 0.0721 0.3711 0.1065 0.3116 0.3891 0.5703 0.3263 0.4536 0.4252 0.5286 0.3612 0.4283 0.5215
12
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
Vypnuto po poplachu uživatelem 521767
G017N002A001
1 0 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
0.0073 0.2444 0.0539 0.4227 0.2508 0.8535 0.5022 0.7097 0.5624 0.4271 0.4027 0.4663 0.4738 0.5086 0.4905
13
0 1 0 0 0 0 1 1 0 0 1 1 1 1 0
Příloha 3 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace perceptron { class Program { static void Main(string[] args) { int[,] vstupTrain = new int[,] { { 1, 0 }, { 1, 1 }, { 0, 1 }, { 0, 0 } }; int[,] vstupNew = new int[,] { { 0, 0}, {0, 1 }, {1, 1 }, {1, 0} }; int[] vystupTrain = { 0, 1, 0, 0 }; Random r = new Random(); double[] vahy = { r.NextDouble(), r.NextDouble(), r.NextDouble() }; double koeficientUceni = 1; double uplnaChyba = 1;
while (uplnaChyba > 0.2) { uplnaChyba = 0; for (int i = 0; i < 4; i++) { int vystup = pocitejVystup(vstupTrain[i, 0], vstupTrain[i, 1], vahy); int chyba = vystupTrain[i] - vystup; vahy[0] += koeficientUceni * chyba * vstupTrain[i, 0]; vahy[1] += koeficientUceni * chyba * vstupTrain[i, 1]; vahy[2] += koeficientUceni * chyba * 1; uplnaChyba += Math.Abs(chyba); } } Console.WriteLine("Výsledek:"); for (int i = 0; i < 4; i++) Console.WriteLine(pocitejVystup(vstupNew[i, 0], vstupNew[i, 1], vahy));
14
Console.ReadLine(); } private static int pocitejVystup(double vstup1, double vstup2, double[] vahyP) { double sum = vstup1 * vahyP[0] + vstup2 * vahyP[1] + 1 * vahyP[2]; return (sum >= 0) ? 1 : 0; } } }
15