Vizualizace jako nástroj studia chování modelů přírodních systémů

Rozměr: px
Začít zobrazení ze stránky:

Download "Vizualizace jako nástroj studia chování modelů přírodních systémů"

Transkript

1 České vysoké učení technické v Praze Fakulta elektrotechnická Diplomová práce Vizualizace jako nástroj studia chování modelů přírodních systémů Jan Saidl Vedoucí práce: Ing. Pavel Kordík Studijní program: Informatika a výpočetní technika leden 2006

2 ii

3 Poděkování Rád bych poděkoval Ing. Pavlu Kordíkovi za vedení při mém studiu neuronových sítí, genetických algoritmů a za četné a velmi podnětné rady při psaní této diplomové práce. Můj velký dík patří mé matce, která mě po dlouhá léta podporovala v mém studiu a to i v době, která nebyla tou nejlehčí. Také bych rád poděkoval své přítelkyni Soně, která mi svým optimismem vždy dokázala dodat energii pro další práci. iii

4 iv

5 Prohlášení Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu 60 zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Karlových Varech dne v

6 vi

7 Abstract The common topic of all experiments in this thesis is the vizualization of neural network behaviour. We had some difficulties dealing with the multidimensional character of the models, therefore we had to study and apply several concepts for multivariate data projection. Approaches proposed in this thesis are unique, so we spend a lot of time tuning them to be applicable to real-world problems. Finally we applied genetic algorithm preserving diversity to find interesting behaviour of neural network in multidimensional space. Abstrakt Společným tématem všech eperimentů této diplomové práce je vizualizace chování neuronových sítí. Velkou výzvou byla multidimenzionalita dat. Abychom tento problém vyřešili, museli jsme nastudovat a posléze aplikovat několik metod projekce dat. Navržené metody jsou unikátní, proto jsme strávili mnoho času jejich vyladěním, aby byly použitelné pro řešení reálných problémů. Hlavním cílem práce je implementace genetického algoritmu vyhledávajícím zajímavé oblasti chování neuronových sítí v multidimenzionálním prostoru. Důležitou vlastností algoritmu je zachování diverzity. vii

8 viii

9 Obsah 1 Motivace 1 I Teorie 3 2 Neuronové sítě Inspirace Umělá neuronová síť Učení zpětným šířením signálu - BackPropagation Group Method of Data Handling (GMDH) Group of Adaptive Models Evolution (GAME) Skupinové učení (Ensemble learning) Genetické algoritmy Inspirace Analogie Algoritmus Fitness funkce Elitismus Diverzita populace a její zachování Vizualizace dat Scatterplot Scatterplot matrix Další vizualizační techniky mnohadimenzionálních dat II Vlastní práce 17 5 Cíle mé práce 18 6 Nové pohledy na neuronové sítě Vizualizace modelů neuronových sítí Vizualizace modelů řešící klasifikační úlohu Zobrazení reálných dat Vizualizace skupiny modelů řešící klasifikační úlohu ix

10 6.2 Násobení odezev modelů neuronových sítí Vyhledávání zajímavých oblastí chovaní modelů Aplikace genetického algoritmu Zakódování chromosomu Fitness funkce Selekce chromosomu Křížení chromosomů Mutace chromosomu Experimenty Uměle vytvořená data s malou dimenzí Fitness funkce Diverzita populace Uměle vytvořená data s dimenzí vstupního vektoru tři Ohodnocení významnosti vstupních parametrů (feature ranking) Reálná data - spotřeba energie budovy Ohodnocení významnosti vstupních parametrů (feature ranking) Implementace Vizualizace Rozhraní pro genetické algoritmy Třída Population Vizualizační třída GA a konfigurační třída GAConfig pro aplikaci GAME Aplikace navrženého rozhraní Chromosome Rozhraní tříd GA a GAConfig Další práce Závěr Literatura 55 x

11 Seznam obrázků 2.1 Umělý neuron Umělá neuronová síť Učení neuronové sítě s učitelem GMDH síť Srovnání MIA GMDH sítě se sítí GAME Schéma Bagging Schéma genetického algoritmu Diverzita populace - Niching Scaterrplot Scatterplot matrix Schématická ukázka vizualizace klasifikačního modelu Vizualizace klasifikačního modelu Iris setosa Vizualizace klasifikačního modelu Iris versicolor Vizualizace klasifikačního modelu Iris virginica Vizualizace klasifikačního modelu spirál Vizualizace klasifikačního modelu Iris a učících dat Vizualizace několika klasifikačních modelů Iris versicolor Vizualizace násobení odezev modelů pro jednotlivé třídy Vizualizace odezev modelů Iris pro všechny třídy Podmínky pro zajímavou oblast Zakódování chromosomu Vliv základu exponentu c na selekční operátor (změnu selekčního tlaku) Porovnání pravděpodobností selekce Křížení chromosomů Uměle vygenerovaná učící data a odezvy modelů Závislost fitness funkce na x start a x velikost Řezy grafem fitness funkce Porovnání dvou typů fitness a) součet b) součin Řezy grafem fitness funkce v součinovém tvaru Transformační funkce Porovnání fitness funkcí xi

12 8.8 Závislost poměrné velikosti fitness funkcí Vývoj diverzity populace bez použití metody Niching Vývoj diverzity populace s použitím metody Niching Nejlepší nalezené chromosomy jednotlivých druhů zleva doprava podle klesající hodnoty fitness funkce Definiční obor množiny učících dat Diverzita populace pro jednotlivé vstupní parametry x, y a z Průběhy jednotlivých parametrů z funkce generující trénovací data Nejlepší chromosomy pro jednotlivé vstupní parametry x, y a z v generaci 10 a Nejlepší chromosomy pro jednotlivé vstupní parametry temp, humid, solar, wind a spotřeby elektrické energie a teplé a studené vody v 50. generaci Porovnání významnosti vstupních parametrů genetického algoritmu a GAME Rozhraní konfigurační třídy Průběh genetického algoritmu xii

13 KAPITOLA 1. MOTIVACE 1 1 Motivace Schopnost člověka měřit a zaznamenávat jakoukoliv dostupnou informaci vede ke vzniku velkých souborů dat. Dalším krokem pro zpracování takových dat je jejich analýza. Jednou z možností je jejich vizualizace a následné vizuální vyhledávání nových souvislostí a informací. Velkým problémem při vizualizaci takových dat je počet parametrů, ze kterých se data skládají (dimensionalita). Dnes se již běžně setkáváme s nástroji pro vizualizaci mnohadimenzionálních dat. Vědecká vizualizace umožňující snadnou orientaci v multidimenzionálních datech je stará několik desítek let [6]. S rychlým rozvojem hardwaru je stále snadnější realizovat složitější a lepší postupy pro analýzu a vizualizaci multidimenzionálních dat. A to nejen díky výpočetní síle současných počítačů, ale i díky možnosti zobrazovacích zařízení. Dalším způsobem pro vyhledávání nových informací a závislostí v datech je možnost modelování dat. Jednou z možností jsou neuronové sítě. V této diplomové práci se zabývám možností vizualizace chování modelů neuronových sítí. Kriteriem hodnotícím kvalitu modelu neuronové sítě je schopnost modelu správně reagovat na vstupní parametry. V této práci se snažím spojit možnosti vizualizace mnohadimenzionálních dat s vizualizací chování modelu a tím umožnit snadnou vizuální kontrolu kvality modelu. Stavový prostor, který je dán rozsahem vstupních parametrů modelu neuronové sítě, je s rostoucím počtem vstupních parametrů (rostoucí dimenzí) tak velký, že manuální kontrola odezvy modelu je téměř nemožná. Dalším cílem této práce je usnadnit vyhledávání takových oblastí chování modelu, které jsou zajímavé. Poprvé jsem se setkal s pojmem neuronová síť v předmětu Neuronové sítě a neuropočítače Doc. Ing. Miroslava Šnorka, CSc., který nás na přednáškách seznámil se součastným stavem tohoto oboru. V cvičení tohto předmětu jsem se seznamil s aplikací GAME, kterou intenzivně vyvíjí Ing. Pavel Kordík a pod jeho vedením jsem začal přispívat vizualizačními moduly pro tuto aplikaci. V rámci semestrálního projektu začaly vznikat základy vizualizačních modulů klasifikačních modelů neuronových sítí. Na tuto práci jsem poté navázal touto diplomovou prácí s modulem vyhledávajícím zajímavé oblasti chování regresních modelů neuronových sítí.

14 2 KAPITOLA 1. MOTIVACE

15 Část I Teorie 3

16 4 KAPITOLA 2. NEURONOVÉ SÍTĚ 2 Neuronové sítě První krok v tvorbě umělé neuronové sítě udělali v roce 1943 Warren McCulloch a Walter Pitts, když vytvořili matematický model umělého neuronu. Později, v šedesátých letech, Rossenblatt publikoval svou práci o perceptronu (velmi jednoduchém modelu neuronu) a algoritmus pro jeho učení. Navíc vytvořil první umělou neuronovou síť složenou z perceptronů schopnou rozpoznávat znaky. Na konci 60. let publikoval slavný matematik Minsky práci, ve které dokázal, že jednovrstvý perceptron není schopný řešit lineálně neseparabilní problémy. Tento důkaz způsobil úpadek zájmu o umělé neuronové sítě, který trval až do poloviny 80. let. V roce 1986 publikoval Rumelhart, Winton a Williams článek o učícím algoritmu BackPropagation (metoda zpětného šíření signálu), kde představili jednoduchý učící algoritmus aplikovatelný na širokou škálu problémů. Tento algoritmus je popsán v kapitole 2.3. Rychlý rozvoj počítačů umožňuje snáze aplikovat nové metody a zájem o tuto oblast stále narůstá. 2.1 Inspirace Neuronové sítě jsou inspirovány biologickým mozkem. Nové poznatky nám pomáhají při modelování přírodních systémů. Neuronové sítě jsou používány pro svou schopnost učit se na omezené množině (vstupů a výstupů) a generalizovat tedy dávat výsledky i u vstupů, u kterých neznáme výstupy. Obrázek 2.1: Umělý neuron Základním stavebním kamenem biologické neuronové sítě je neuron. Neuron má tři části: denrity, soma a axon. Dendrity jsou vstupy a každý neuron jich má několik. Dendrity poskytují neuronu vstupní signály, které jsou v těle neuronu (soma) sečteny a podle výsledného signálu a prahové funkce je vyslán signál na výstup neuronu (axon). Neuron má pouze jeden výstup (axon), který se dále větví a je napojen přes synapse na další neurony. Synapse se dělí na dva druhy. Excitační synapse zvyšují hodnotu signálu a inhibiční, které naopak snižují hodnotu signálu. Míra, o kolik se hodnota signálu zvýší nebo sníží, se liší u každé synapse. 2.2 Umělá neuronová síť Neuronová síť vzniká ve fázi, které se říká trénovací. V této fázi máme k dispozici množinu trénovacích dat, která se skládá z vektorů vstupních hodnot a výstupní hodnoty. Počet vstupů sítě odpovídá dimenzi vektoru z množiny trénovacích dat. Tyto vektory jsou síti

17 KAPITOLA 2. NEURONOVÉ SÍTĚ 5 postupně předkládány. Podle odezvy sítě jsou upravovány parametry neuronové sítě tak, aby výstup sítě co nejvíce odpovídal očekávané hodnotě. Výhodou umělých neuronových sítí je jejich schopnost generalizovat. Po naučení je síť schopná reagovat i na vstupní vektory, které jí nebyly předloženy v trénovací fázi. Vnitřní struktura sítě se dělí na vrstvy. První vstupní vrstva slouží pouze k distribuci vstupních hodnot do další již skryté vrstvy. Skrytých vrstev může být libovolný počet. Mezi jednotlivými vrstvami existuje propojení. Každý neuron předchozí vrstvy je propojen s neuronem následující vrstvy. To s jakou významností bude propojení přispívat do neuronu je dáno váhou, která je nastavována v učící fázi. Za poslední skrytou vrstvou je vrstva výstupní, která reprezentuje výstup neuronové sítě. Obrázek 2.2: Umělá neuronová síť 2.3 Učení zpětným šířením signálu - BackPropagation Znovuobjevení algoritmu BackPropagation [1] přineslo v osmdesátých letech nové možnosti v oblasti neuronových sítí. Při použití tohoto algoritmu je struktura sítě vytvořena předem a během učící fáze se již nemění. Algoritmus používá techniku učení s učitelem. Je tedy nutné mít k dispozici učící množinu dat. Využívá se pro neuronové sítě s dopředným šířením signálu. To znamená, že síť nemá žádné zpětné propojení neuronů nebo propojení ve smyčce. Algoritmus probíhá iteračně. Prvním krokem je porovnání výstupů neuronové sítě s učícím vzorkem. To je provedeno přiložením učícího vzorku na vstupy sítě a porovnáním výstupů neuronové sítě s očekávanou hodnotou, kterou známe z učícího vzorku. Na základě odchylky od vzorku je vypočítána odchylka. Dále je pro každý neuron spočítán výstup který by měl správně mít a jeho lokální odchylka od skutečné hodnoty. Podle této odchylky je změněna váha neuronu, tak aby byla minimalizována odchylka na výstupu neuronové sítě. Postupně jsou síti předloženy všechny učící vzorky, tomu se říká epocha učení. Algoritmus probíhá tak dlouho, až chyba na výstupu neuronové sítě klesne pod předem zadanou hodnotu nebo pokud je proveden určitý počet epoch učení.

18 6 KAPITOLA 2. NEURONOVÉ SÍTĚ Již název algoritmu říká, že chyba a tím i učení se šíří zpětně. Chyba se šíří z výstupních neuronů k vnitřním neuronům neuronové sítě. Algoritmus je založen na minimalizaci odchylky výstupů neuronové sítě od všech vzorků z učící množiny. Velikost odchylky neuronové sítě popisuje její míru naučenosti. Obrázek 2.3: Učení neuronové sítě s učitelem 2.4 Group Method of Data Handling (GMDH) Neuronové sítě typu GMDH [1] jsou sítě, které jsou vytvářeny indukcí. Na rozdíl od sítí, které používají algoritmus Backpropagation, struktura sítě typu GMDH není předem známá a vzniká až ve fázi učení. Síť typu GMDH vychází z několika základních stavebních jednotek, které během fáze učení kombinuje a snaží se vytvořit model odpovídající trénovací množině dat. Při vytváření modelu se používá pravidlo nejsilnější přežívá, kde nejsilnější je ten model, který nejlépe odpovídá validační množině dat. Tuto selekci můžeme popsat m = argmincr(m), kde m M a CR (m) = f (P, C, σ, T, V ) kde m je hledaný nejlepší model, M je množina všech modelů, CR je externí kriterium, které definuje kvalitu modelu na základě P vstupních proměnných, složitosti modelu C, rozptylu šumu σ, typu transformace T a referenční funkce V. Pro konečnou referenční funkci V odpovídá množina vstupních proměnných P struktuře modelu C. To zjednoduší externí kriterium CR na funkci f (C), což znamená, že model je reprezentován funkcí vstupních proměnných. Síť se skládá ze dvou typů neuronů. První typ neuronu - distribuční je obsažen pouze v první (vstupní) vrstvě. Tento neuron má pouze jeden vstup a několik výstupů. Jeho jedinou funkcí je distribuovat vstupní hodnotu na vstupy neuronů v první skryté vrstvě. Skryté vrstvy jsou složeny z druhého typu neuronu, který realizuje transformační funkci a na počtu jejích parametru závisí i počet vstupů do daného neuronu. Jeho výstup, stejně

19 KAPITOLA 2. NEURONOVÉ SÍTĚ 7 jako výstup distribučního neuronu, může být rozvětven a připojen na vstupy v další skryté vrstvě. Aktivní neurony typicky realizují polynomiální funkci a jednotlivé aktivní neurony se od sebe liší pouze koeficienty těchto polynomů. Obrázek 2.4: GMDH síť Počet a propojení mezi neurony dvou skrytých vrstev je dáno až ve fázi učení, která splývá s tvorbou sítě. Na začátku je pouze první vrstva složená z distribučních neuronů. Tvorba skryté vrstvy je stále stejná. Vždy vznikne právě tolik nových neuronů, kolik existuje kombinací vstupů z předchozí vrstvy. Učení sítě probíhá s učitelem. Před učením není známa struktura neuronové sítě. Síť vzniká vrstvu po vrstvě, až v procesu učení. Na začátku je jasná pouze velikost (šířka) vstupní vrstvy. Ta má právě tolik distribučních neuronů, kolik je prvků (jaká je dimenze) vstupního vektoru. Učení sítě splývá s její tvorbou. Za vstupní vrstvou při učení přirůstají další a další skryté vrstvy a tento proces probíhá tak dlouho, pokud není splněno kritérium kvality výstupní sítě. Algoritmus tvorby skrytých vrstev je stále stejný. V každé vrstvě vznikne tolik neuronů, kolik je úplných kombinací dvojic výstupů vrstvy předchozí. Pak se jednotlivé neurony konfigurují. To znamená, že se vypočtou všechny koeficienty jejich polynomu. Pak se nově utvořená vrstva zmrazí. To znamená, že se během dalšího učení již její parametry nemění a vrstva slouží pouze k distribuci signálu. Může jen dojít k selekci neuronů v ní obsažených. Postup při učení neuronové sítě typu GMDH: 1. konfigurace k-té vrstvy vytvoření nových neuronů výpočet koeficientů polynomu v každém polynomu 2. selekce neuronů v k-té vrstvě

20 8 KAPITOLA 2. NEURONOVÉ SÍTĚ 3. ukončení učení sítě Konfigurace a selekce se opakují tak dlouho, dokud síť nedosahuje požadované chyby. Konfigurace k-té vrstvy probíhá tak, že pro každou dvojicí výstupů předchozí vrstvy vytvoříme nový neuron. Je-li tedy počet výstupů předchozí vrstvy N, vznikne takto m = C ( N 2 ) = N(N 1) 2 nových neuronů. Každý neuron má své vlastní koeficienty u přenosové funkce (polynomu). Po provedení prvního kroku tedy máme sestaveno m obecných přenosových polynomů, u nichž je třeba určit konkretní hodnoty koeficientů. K tomu slouží učící množina dat. Ta obsahuje vzory (dvojice vstupů a výstupu). Přiložíme-li na vstupy neuronu hodnotu hodnoty výstupů z předchozí vrstvy a dosadímeli hodnotu požadovaného výstupu sítě, máme pro každý neuron aktuální vrstvy lineární kombinaci n koeficientů. Pro určení hodnoty koeficientů polynomu existuje řada algoritmů. Nejjednodušší spočívá v náhodném výběru n vstupních vektorů z učící množiny a koeficienty pak dostaneme vyřešením soustavy n lineárních rovnic o n neznámých. Při selekci neuronů vypočteme střední kvadratickou odchylku každého neuronu pro soubor tzv. validačních dat. Ta jsme získali tak, že jsme soubor vstupních dat předem rozdělili na část použitou při učení sítě a na část testovací, kterou zkoumáme, jak kvalitně naučená síť aproximuje. Výpočet této odchylky tedy probíhá se souborem jiných dat, než která byla použita k učení. Výpočet střední kvadratické odchylky může například probíhat podle tohoto vzorce: r 2 = ki=1 (y i ŷ i ) 2 ki=1 y 2 i, kde y i je hodnota požadovaného výstupu, ŷ i skutečný výstup uvažovaného neuronu a k počet vektorů testovací množiny. Neurony aktuální vrstvy seřadíme podle dosažené chyby. To znamená, že neurony s menší chybou budou před neurony s chybou větší. V síti ponecháme jen vyhovující neurony. To znamená, že odstraníme neurony z konce setříděné posloupnosti. Jsou to totiž neurony s největší chybou a nechceme tedy, aby jako takové měly na chování sítě v dalším pokračování algoritmu vliv. Neurony, které v aktuální vrstvě zůstaly, zmrazíme. Jejich koeficienty se při další tvorbě sítě už měnit nebudou a v dalším pokračování algoritmu tyto neurony budou sloužit pouze k distribuci dat do vrstev následujících. Učení sítě je ukončeno, když splňuje síť naše požadavky na výstup. Postupujeme tak, že v každém učícím kroku otestujeme, zda nejlepší neuron s požadovanou přesností neaproximuje všechny vstupní vektory testovací množiny. V kladném případě tvorba sítě skončila a právě tento neuron je výstupním neuronem celé sítě. 2.5 Group of Adaptive Models Evolution (GAME) Metoda GAME [4] vylepšuje neuronovou síť typu GMDH. Dokáže generovat přesnější modely pro rozličná data. Hlavním přínosem metody GAME je její schopnost generovat

21 KAPITOLA 2. NEURONOVÉ SÍTĚ 9 Obrázek 2.5: Srovnání MIA GMDH sítě se sítí GAME skupiny samoadaptujících se modelů podle charakteru a komplexnosti zadaných dat. Induktivní model neuronové sítě roste do takové velikosti, aby byl schopen zadanou úlohu vyřešit s požadovanou přesností. Model se skládá z jednotek (neuronů), které nejlépe modelují vnitřní vztahy v datech. Jak je vidět na obrázku 2.5 síť typu GAME má více stupňů volnosti než síť typu GMDH (jednotky s více vstupy, propojení mezi vrstvami v síti). S rostoucí dimenzí zadaných dat je nemožné bez další heuristiky vyhledat v obrovském stavovém prostoru různých modelů správnou topologii. Metoda GAME v sobě zahrnuje genetický algoritmus, který vyvíjí optimální strukturu modelu. Dalšími vylepšeními jsou: několik typů jednotek (neuronů), které soutěží o přežití v modelu rostoucí složitost modelu propojení mezi vrstvami generování skupiny modelů, které zvyšují věrohodnost odezvy modelů genetický algoritmus pro vytváření optimální topologie modelu metoda niching, která umožňuje zachování méně přesných, ale zajímavějších neuronů v modelu Metoda GAME generuje na množině učících dat modely s podobnou přesností. Modely jsou testovány na náhodných podmnožinách množiny učících dat. Modely se skládají z podobných typů jednotek (neuronů) a mají podobnou složitost. Je velice obtížné zvolit jen jeden nejlepší model, protože modely jsou si velice podobné. Proto vzniká skupina (ensemble) modelů. Výhody skupinového učení jsou popsány dále.

22 10 KAPITOLA 2. NEURONOVÉ SÍTĚ 2.6 Skupinové učení (Ensemble learning) Tato technika je založena na myšlence, že skupina konečného počtu modelů neuronových sítí je naučena pro řešení stejné úlohy. Skupinové učení je nový přístup, kde je skupina neuronových sítí trénována pro řešení stejné úlohy. Tato metoda byla poprvé prezentována Hansenem a Salamonem [2], kteří ukázali, že schopnost neuronových sítí zevšeobecňovat může být značně zvýšena seskupením několika neuronových sítí a jejich společným naučením a kombinováním odezev jednotlivých modelů. Aplikace GAME, kterou dále popisuji v kapitole 2.5, vytváří takovou skupinu modelů, jejímž použitím narozdíl od jednoho modelu, je možné zvýšit přesnost modelování [14]. V GAME je použita metoda Bagging [2], která je schématicky znázorněna na obrázku 2.6. Tato metoda generuje několik trénovacích množin z originální množiny dat a poté probíhá trénování modelů. Tento způsob umožňuje vznik diverzity v nové skupině modelů tím, že každý model je trénován na jiné podmnožině trénovacích dat. Obrázek 2.6: Schéma Bagging

23 KAPITOLA 3. GENETICKÉ ALGORITMY 11 3 Genetické algoritmy 3.1 Inspirace Genetické algoritmy [13] jsou inspirovány přírodou a používané termíny jsou převzaty z biologie. Populace živočišných druhů na Zemi jsou tvořeny jedinci, kde každý jedinec je definován skupinou chromosomů, které jsou tvořeny geny. Geny mohou nabývat různých hodnot alley a tím kódovat různé vlastnosti jedince. Skupina chromosomů, pak vytváří genom, který určuje všechny vlastnosti jedince. Genom je pro každého jedince specifický a pokud dva jedinci mají stejný genom, pak jsou identičtí. Při rozmnožování dochází k náhodné výměně (křížení) genů mezi rodiči, kteří jsou v přírodě vybírání podle schopnosti reprodukovat se a přežít v daném prostředí. Tím vzniká nový jedinec s unikátním genomem a tím i vlastnostmi. Při křížení dochází i k mutaci, při které dojde k náhodné změně některých genů, a která do populace vnáší větší rozmanitost. 3.2 Analogie Genetické algoritmy používají podobné techniky a snaží se napodobit úspěch přírody. Možné řešení problému je jedincem, a jeho genom jsou parametry, které toto řešení definují. Parametry jsou vetšinou uloženy v podobě řetězce, který se skládá z předem známé abecedy. Znaky řetězce jsou geny, které mohou nabývat různých hodnot abeced (allelamy). Hodnoty znaků mohou být jak binární (0 a 1), tak reálné. Kvalitu jedince a jeho vhodnost pro použití jako rodiče pro další generaci definujeme pomocí fitness funkcí. Fitness funkce je ohodnocením každého jedince a svou hodnotou musí zvýhodňovat lepší řešení problému. 3.3 Algoritmus 1. Inicializace první populace Na začátku je potřeba vytvořit populaci. Ta může být buď zcela náhodná nebo pokud chceme zkrátit dobu výpočtu můžeme vytvořit první populaci tak, aby neobsahovala zcela nevhodná řešení. Další možností je vytvořit populaci s větším počtem jedinců s tím, že algoritmus při provádění první selekce vybere lepší jedince. 2. Výpočet fitness funkce Pro každého jedince z populace se vypočte fitness funkce, která určuje vhodnost jedince stát se rodičem pro další populaci. Během tohoto kroku se také vyhodnocuje zastavovací kritérium. Zastavovací kritérium určí zda je v populaci jedinec, který je dostatečně kvalitní a je možné algoritmus ukončit. 3. Vytvoření nové populace

24 12 KAPITOLA 3. GENETICKÉ ALGORITMY Obrázek 3.1: Schéma genetického algoritmu Při vytváření nové populace opakovaně používáme operátory selekce a křížení. Operátor selekce vybírá vhodné kandidáty na rodiče a následně jejich křížením vzniká jedinec, který je zařazen do nové populace. To provádíme tak dlouho dokud nová populace nemá dostatečný počet jedinců. 4. Mutace Na každého jedince v populaci je aplikován operátor mutace, který náhodně se zadanou pravděpodobností pozmění geny jedince. 5. Elitismus Do nové populace zahrneme i několik nejlepších jedinců ze staré populace. Tím se docílí zachování nejlepších doposud nalezených řešení pro další generace a zároveň maximální hodnota fitness funkce bude v průběhu algoritmu neklesající. 6. Stáří Starou populaci nahradíme novou a pokračujeme opět výpočtem fitness funkce.

25 KAPITOLA 3. GENETICKÉ ALGORITMY Fitness funkce Fitness funkce je měřítkem úspěšnosti jedince v populaci. Čím lepší (větší) je hodnota fitness funkce, tím se jedinec stává perspektivnějším kandidátem na rodiče. Pokud se jedinec stane rodičem, je jeho řešení předáno do další generace. Fitness funkce by měla postihnout všechna kriteria řešené úlohy. Kladné vlastnosti by měly zvyšovat hodnotu fitness funkce a naopak záporné vlastnosti by hodnotu fitness funkce měly snižovat. Na správném navržení fitness funkce závisí správnost celého genetického algoritmu. Velkou výhodou generických algoritmů je jejich schopnost fungovat i s fitness funkcí, která ne zcela optimálně popisuje hledané řešení. Genetický algoritmus pak konverguje pomaleji, ale z jeho chování lze odvodit správné nastavení fitness funkce, které bude konvergovat rychleji. 3.5 Elitismus Způsob, jakým se vybírají kandidáti na rodiče pro novou populaci, nezaručuje, že v nové populaci bude vždy obsažen jedinec, který popisuje doposud nejlepší nalezené řešení. Aby se zabránilo zapomenutí již nalezeného nejlepšího řešení jsou do nové populace automaticky vkládáni nejlepší jedinci ze staré populace. Tím je zaručen neklesající průběh maximální hodnoty fitness funkce v celé populaci. 3.6 Diverzita populace a její zachování Mechanismus, jakým se generují nové populace, nepodporuje diverzitu v populaci. Je to dáno tím, že je vždy upřednostňováno pouze jedno nejlepší řešení v rámci populace. Pokud populace obsahuje i jiné řešení, jehož hodnota fitness funkce je nižší než maximální hodnota fitness funkce v populaci, ale zároveň toto řešení je jiné, je potřeba zajistit přežití jedince do další populace. Způsob určení odlišnosti takového jedince je závislý na řešeném problému. Obrázek 3.2: Suboptimální řešení nalezená metodou zachovávající diverzitu populace Odlišnost dvou řešení je vyjádřena jejich vzdáleností. O tomto se mluví jako o vzdálenosti genotypu - lze se setkat také se vzdáleností phenotypu.[10]. V případě, kdy je chromosom

26 14 KAPITOLA 3. GENETICKÉ ALGORITMY zakódován do binárního řetězce, je možné vzdálenost dvou chromosomů vyjádřit Hammingovou vzdáleností. V případě, kdy je chromosom zakódován jako n-dimenzionální vektor reálných čísel, je možné použít Euklidovou vzdálenost n d ( x, y) = (x i y i ) 2, i=0 kde x a y jsou vektory dvou řešení. Genetický algoritmus, který používá tuto metodu, pak vypadá následovně: generuj počáteční populaci n chromosomů opakuj pro m generací opakuj n/2 krát aplikuj operátor selekce a vyber dva chromosomy p1,p2 aplikuj operátor křížení na p1 a p2 a vygeneruj potomky c1,c2 aplikuj operátor mutace na c1,c2 jestliže [ d(p1,c1) + d(p2,c2) ] > [d(p1,c2) + d(p2,c1) ] jestliže f(c1) > f(p1) potom vyměň v populaci p1 za c1 jestliže f(c2) > f(p2) potom vyměň v populaci p2 za c2 jinak jestliže f(c2) > f(p1) potom vyměň v populaci p1 za c2 jestliže f(c1) > f(p2) potom vyměň v populaci p2 za c1 na rozdíl od běžného genetického algoritmu, který vypadá takto: generuj počáteční populaci n chromosomů opakuj pro m generací opakuj n/2 krát aplikuj operátor selekce a vyber dva chromosomy p1,p2 aplikuj operátor křížení na p1 a p2 a vygeneruj potomky c1,c2 aplikuj operátor mutace na c1,c2 jestliže f(c1) > f(p1) potom vyměň v populaci p1 za c1 jestliže f(c2) > f(p2) potom vyměň v populaci p2 za c2

27 KAPITOLA 4. VIZUALIZACE DAT 15 4 Vizualizace dat Jelikož se v této prácí věnuji vizualizaci mnohadimenzionálního chování neuronové sítě, stručně zmíním teorii vizualizace mnohadimenzionálních dat, která se k tématu vztahuje, a ze které jsou čerpány některé myšlenky. Při používání neuronových sítí se setkáváme s velkými soubory dat. Pro alespoň základní odhalení jejich struktury je možné použít několik přístupů. Textový výpis datových vektorů je pro člověka, který neví co hledá, nečitelný. Na tomto místě přichází na řadu vizualizace jako nástroj pro první náhled a rozpoznání struktury souborů dat. Při vizualizaci hraje velkou roli dimenze zkoumaných dat. Pochopitelně s rostoucí dimenzí se vizualizace a nahlédnutí struktury dat stává složitější a složitější. 4.1 Scatterplot Pro zobrazení dvourozměrných datových vektorů je vizualizace jednoduchá. Pokud je jeden datový vektor popsán d = (x, y) zobrazí se v grafu, kde na jedné ose je vynesena hodnota x, na druhé y a na jejich souřadnicích je zobrazena značka. Takovému grafu se říká Scatterplot. Příklad takového grafu je na obrázku 4.1 Obrázek 4.1: Scaterrplot a) 2D graf b) 2D graf s referenční mřížkou 4.2 Scatterplot matrix Pokud je dimenze datového vektoru větší než dvě. V grafu Scatterplot je informace dalších složek ztracena. Pro alespoň částečný náhled na závislosti mezi daty je možné použit graf Scatterplot matrix. Jedná se o stejný princip popsaný výše s tím rozdílem,

28 16 KAPITOLA 4. VIZUALIZACE DAT že grafů je více. Do matice jsou zobrazeny všechny kombinace složek datového vektoru. Na obrázku 4.2 je příklad grafu Scatterplot matrix. Jsou na něm zobrazena data, kde datový vektor má dimenzi tři a jsou to data, která jsem později použil pro generování množiny testovacích dat v kapitole 8.2. Obrázek 4.2: Scatterplot matrix pro datové vektory s dimenzí tři 4.3 Další vizualizační techniky mnohadimenzionálních dat Pro vizualizaci mnohadimenzionálních dat existuje mnoho dalších technik. Jednou z nich je Grand Tour od Daniela Asimova [9]. Tato technika umožňuje vizualizovat p- dimenzionální datové vektory tak, že použije dvě proměnné k vytvoření řezu, jednu proměnnou jako čas a zbylé proměnné, kterých je (p 3), promítne do vybraného řezu. Proměnná, která je interpretována jako čas a může být použita pro vytvoření animace.

29 Část II Vlastní práce 17

30 18 KAPITOLA 5. CÍLE MÉ PRÁCE 5 Cíle mé práce V této kapitole bych rád zmínil cíle, kterých jsem se při psaní diplomové práce snažil dosáhnout. V první části mé práce jsem se věnoval vizualizaci odezev modelů neuronových sítí. Popisuji mnou implementované metody vizualizace modelů neuronových sítí řešících klasifikační úlohy v závislosti na mnoha vstupních parametrech. Dále popisuji způsob jak vizuálně ověřit správnost odezev modelů neuronové sítě na množině učících a testovacích dat. Tyto metody jsem aplikoval na vizualizaci skupiny modelů neuronové sítě vzniklých skupinovým učením v aplikaci GAME. V další části popisuji způsob vyhledávání zajímavých oblastí chování skupiny regresních modelů neuronové sítě pomocí genetického algoritmu. Definuji, co je zajímavá oblast a jak zajímavou oblast popsat. Pro vyhledávání zajímavých oblastí jsem použil genetický algoritmus. Pro jeho aplikaci bylo třeba definovat zakódování zajímavé oblasti do chromosomu, nastavit parametry genetického algoritmu a v neposlední řadě stanovit tvar fitness funkce. Stanovení fitness funkce se ukázalo jako nějvětším problémem při hledání zajímavých oblastí chování modelů. Součástí mé diplomové práce je i implementace metod pro zachování diverzity populace genetického algoritmu. Pro splnění této podmínky jsem implementoval metodu Deterministic Crowding [8]. Výsledky této metody jsem ověřil v průběhu experimentů. Na závěr jsem se věnoval experimentům s vyhledáváním zajímavých oblastí. Tyto experimenty zabírají podstatnou část mé práce. Experimenty na umělých datech o malé dimenzi mi pomohly navrhnout správný tvar fitness funkce a zjištění vlivu parametrů genetického algoritmu na kvalitu nalezeného řešení. Experimenty jsem prováděl i na datech o vyšší dimenzi vstupního vektoru a na reálných datech.

31 KAPITOLA 6. NOVÉ POHLEDY NA NEURONOVÉ SÍTĚ 19 6 Nové pohledy na neuronové sítě Mým úkolem je vizualizovat odezvu modelu neuronové sítě. Na neuronovou síť se budu dívat jako na černou krabičku (blackbox), u které neznám její vnitřní strukturu. Neuronová síť je schopná po předložení vstupního vektoru vrátit svou odezvu. Všechny metody vizualizace zmíněné dále v textu jsem implementoval jako vizualizační moduly do aplikace GAME, vyvíjené Ing. Pavlem Kordíkem. 6.1 Vizualizace modelů neuronových sítí Cílem vizualizace modelu neuronové sítě je co nejpřehledněji zobrazit chování modelu neuronové sítě a tím umožnit získání nových poznatků o datech, ze kterých byl model vytvořen. Vizualizace může také napomoci k detailnějšímu prozkoumání kvality modelu. Zjistit, jak model v jednotlivých místech klasifikuje, a to nejen v místech, kde jsou k dispozici učící data, ale i v jejich okolí Vizualizace modelů řešící klasifikační úlohu Úkolem modelů, které řeší klasifikační úlohu, je rozhodnout na základě vstupů, zda se jedná čí nejedná o člena dané třídy. Na model neuronové sítě se tedy můžeme dívat jako na odezvu, která je dána vstupním vektorem a přenosovou funkcí y = f( x), kde x = (x 1, x 2,..., x n ), kde x i 0; 1 kde n je dimenze vstupního vektoru (počet vstupních parametrů modelu). Po předložení vstupního vektoru x modelu získáme odezvu y. Předpokládám, že odezva modelu je již normalizována do intervalu 0; 1, kde 0 říká, že na základě vstupních parametrů se nejedná o člena dané třídy. Naopak 1 znamená, že se jedná o člena dané třídy. Vzhledem k tomu, že odezva modelu může nabývat hodnot z intervalu 0; 1 je třeba v grafu znázornit i částečnou příslušnost k dané třídě. Částečná příslušnost je v grafu zobrazena jako míra průhlednosti. Vybereme-li dva parametry x i a x j ze vstupního vektoru, můžeme pro všechny jejich kombinace (0; 1) (0; 1) získat odezvu modelu jako funkci dvou proměnných: y = f( x) = f(x 1,..., x i,..., x j,..., x n ), kde x i, x j 0; 1, (k i, j) = konst. Odezvu je možné zobrazit jako graf, na kterém je barevně zobrazena příslušnost k dané třídě. Vzhledem k tomu, že modely generované aplikací GAME jsou často velice výpočetně náročné, bylo při implementaci nutné zobrazovaný graf parametrizovat rozlišením, které udává počet bodů, pro které je odezva modelu vypočítána. Na obrázku 6.1 je schématicky znázorněn příklad při rozlišení 10. Je tedy nutné spočítat odezvu modelu pro = 100bodů. Pro toto rozlišení je možné sledovat změny klasifikace při změně vstupních parametrů v reálném čase. Pro podrobné zkoumání a generování obrázku pro prezentační

32 20 KAPITOLA 6. NOVÉ POHLEDY NA NEURONOVÉ SÍTĚ Obrázek 6.1: Schématická ukázka vizualizace klasifikačního modelu účely je vhodné vyšší rozlišení. Graf je rozdělen na čtvercové oblasti a podle odezvy modelu v každém čtverci je vypočítána průhlednost. Odezva modelu ovšem závisí na nastavení ostatních vstupů (k i, j). Jejichž změna ovlivní hodnotu odezvy modelu, na což graf reaguje změnou průhlednosti v jednotlivých čtvercích. Obrázek 6.2: Vizualizace klasifikačního modelu - data Iris setosa v rozlišení 100 a 10 Na obrázcích 6.2, 6.3 a 6.4 je zobrazena vizualizace modelů, které jsou naučeny na datech Iris [5]. Data obsahují datové vektory o dimenzi 4, které jsou přiřazeny vždy k jedné ze tří druhů kosatce (Setosa, Versicolour a Virginica). Datové vektory obsahují parametry délky a šířky okvětních a kališních lístků (petal length, petal width, sepal length, sepal width) Zobrazení reálných dat Další kvalitou při vizualizaci modelů neuronových sítí je možnost vizuální kontroly, zda odezva modelů neuronové sítě odpovídá datům z množiny učících dat nebo z množiny

33 KAPITOLA 6. NOVÉ POHLEDY NA NEURONOVÉ SÍTĚ 21 Obrázek 6.3: Vizualizace klasifikačního modelu - data Iris versicolor v rozlišení 100 a 10 Obrázek 6.4: Vizualizace klasifikačního modelu - data Iris virginica v rozlišení 100 a 10 dat, kterou máme k testování. Problém je opět snadno řešitelný v případě malé dimenze vstupního vektoru. Pokud je vstupní vektor dvoudimenzionální, není problém zobrazit množinu dat do grafu formou značek, které budou svou barvou vyjadřovat příslušnost ke třídě, kterou reprezentují. Jedním z nejtěžších úkolů pro neuronové sítě je klasifikace do dvou tříd, kde každá třída je složena z jedné ze dvou do sebe zapletených spirál [5]. Na obrázku 6.5 jsou zobrazeny dvě množiny učících dat právě pro tento problém. Jedna spirála (třída) je zobrazena červenými značkami a druhá spirála (třída) modrými značkami. Značky jsou dány množinou učících dat. Každý vektor učících dat svými atributy udává polohu jedné značky. Zobrazený model neuronové sítě je naučen na spirálu (třídu) zobrazenou modrými značkami. Na první pohled je zřejmé jak byl model neuronové sítě úspěšný, kde jsou jeho odezvy správné a kde naopak odpovídá špatně. Pokud je dimenze větší, je tento způsob již nevyhovující. Graf zobrazuje odezvy modelů jen v řezu definovaným dvěma vstupními parametry a pokud značky zobrazíme stejným způsobem jako v případě dvou dimenzí, bez ohledu na ostatní dimenze, zaniká rozdíl mezi značkami, které jsou různě vzdálené v ostatních dimenzích. Pro určení významnosti jednotlivých značek v právě zobrazeném řezu, je nutné u každé značky vyhodnotit její vzdálenost od řezu. Jedním ze způsobů je výpočet Euklidovy vzdálenosti datového vektoru d od středu našeho souřadného systému (vektoru x). s 2 = k=n k = 0 k i, j (d k x k ) 2 kde i a j jsou indexy vstupních parametrů, které definují zobrazovaný řez. Pro určení

34 22 KAPITOLA 6. NOVÉ POHLEDY NA NEURONOVÉ SÍTĚ velikosti l značky je použit vztah: c, s = 0 c l = c+s, 0 < s k nezobrazeno, s > k kde c je velikost nejbližší značky. Největší značka je značka, která se nachází přímo v rovině zobrazovaného řezu. Pokud je značek příliš mnoho, stává se graf nepřehledný. Z toho důvodu je definována konstanta k, která zabrání v zobrazení značek, pro jejichž vzdálenost od roviny řezu platí s > k. Velikost značky potom určuje významnost jednotlivých značek. Čím je značka větší, tím blíž je zobrazovanému řezu a naopak čím je menší, tím je vzdálenější a zároveň méně důležitá. Odezva modelu neuronové sítě by měla tedy zahrnout všechny velké značky třídy, kterou modeluje. Obrázek 6.5: Vizualizace vzoru pro učící data a naučeného klasifikačního modelu Na obrázku 6.6 je zobrazen příklad z kapitoly s tím rozdílem, že jsou v grafech zobrazeny i značky učících dat. Značky učících dat jsou různě velké. To způsobují odlišné hodnoty složek datového vektoru. Na obrázku je vidět, že všechny tři modely pro všechny tři třídy jsou správně naučené v místech, kde jsou k dispozici učící data. Obrázek 6.6: Vizualizace klasifikačního modelu Iris a učících dat

35 KAPITOLA 6. NOVÉ POHLEDY NA NEURONOVÉ SÍTĚ Vizualizace skupiny modelů řešící klasifikační úlohu Postup, který jsme použili pro jeden model, je snadno použitelný i pokud chceme vizualizovat více modelů do jednoho grafu. Pokud modely klasifikují stejnou třídu, je velice pravděpodobné, že jejich odezvy se budou překrývat. Překrývání odezev jednotlivých modelů lze vyřešit částečnou průhledností, které nám umožní i sledovat, kde se modely nejvíce shodují. Místa, kde bude intenzita zabarvení největší jsou místa, kde se shodlo nejvíce modelů. V případě, že modely klasifikují různé třídy, jsou jejich odezvy zobrazeny různými barvami. Obrázek 6.7: Vizualizace několika klasifikačních modelů Iris versicolor 6.2 Násobení odezev modelů neuronových sítí Pokud máme skupinu modelů, která vznikla při skupinovém učení popsaném v kapitole 2.6 a zobrazíme jejich odezvy technikou popsanou v kapitole 6.1.3, je patrné, že jednotlivé modely mají správnou odezvu v blízkosti učících dat, ale odezvy ve zbylém prostoru se již liší. Modely v místech, kde nejsou definována učící data, odezvu domýšlejí. Toje způsobeno tím, že taková odezva je náhodná a a je matoucí. Není jasné, kde si model vymýšlí a kde se jeho odezva zakládá na trénovacích datech. Takovou odezvu je třeba odfiltrovat. Při zobrazení odezev všech modelů bez ohledu na počet modelů, které se shodují, je oblast, která zobrazuje členství k třídě větší než oblast definovaná učícími daty. Pro skupinu m modelů, jejichž odezva y i 0; 1, pro i 0; m, je odezva celé skupiny dána: m y = y i i=1 Výsledná odezva je opět v intervalu y 0; 1. Na obrázku 6.8 je zobrazena operace násobení tří modelů pro tři klasifikační třídy dat Iris [5] (setosa, virginica, versicolor). Každý z modelů správně klasifikuje množinu učících dat, ale také označuje oblast, kde data nejsou definována. Každý model může mít tuto oblast náhodné odezvy na jiném místě a proto operace násobení odfiltruje tuto nezajímavou informaci.

36 24 KAPITOLA 6. NOVÉ POHLEDY NA NEURONOVÉ SÍTĚ Obrázek 6.8: Vizualizace násobení odezev modelů pro jednotlivé třídy Obrázek 6.9: Vizualizace odezev modelů Iris pro všechny třídy a) bez operace násobení b) s operací násobení

37 KAPITOLA 7. VYHLEDÁVÁNÍ ZAJÍMAVÝCH OBLASTÍ CHOVANÍ MODELŮ 25 7 Vyhledávání zajímavých oblastí chovaní modelů V této části se budu zabývat pouze skupinami regresních modelů, které vznikly při skupinovém učení popsaném v kapitole 2.6 v prostředí aplikace GAME. Hlavním problémem při studování chování modelů neuronových sítí je velká dimensionalita vstupních dat. Model neuronové sítě je definován pro jakoukoliv kombinaci vstupních parametrů. Orientovat se v tomto obrovském prostoru bez další znalosti závislostí v množině učících dat je téměř nemožné. Víme, jaké chování modelů je zajímavé, ale problémem je najít tyto zajímavé oblasti (nastavit vstupní parametry), které tomuto chování odpovídají. Při vyhledávání zajímavých oblastí je prvním krokem definování, co je zajímavá oblast. Z této definice je možné odvodit podmínky, které umožní aplikovat genetický algoritmus na vyhledávání takových oblastí. Na model neuronové sítě se můžeme dívat jako na odezvu, která je dána vstupním vektorem a přenosovou funkcí y = f( x), kde x = (x 1, x 2,..., x n ), kde x i 0; 1 kde n je dimenze vstupního vektoru (počet vstupních parametrů modelu). Po předložení vstupního vektoru x i-tému modelu získáme odezvu y i, která je normalizovaná do intervalu 0; 1. Obrázek 7.1: Podmínky pro zajímavou oblast Při skupinovém učení bylo vytvořeno m modelů neuronové sítě. Odezvy modelů budou zkoumány vždy pro jeden vstupní parametr x j, kde 1 j n. Tento vstupní parametr je proměnnou, která pro jedno nastavení ostatních vstupních parametrů určuje průběh odezvy modelů. Pro jedno nastavení vstupního vektoru x je tedy možné zobrazit průběh odezvy jednoho modelu jako funkci jedné proměnné y i (x j ), kde x j x start ; x start + x velikost

38 26 KAPITOLA 7. VYHLEDÁVÁNÍ ZAJÍMAVÝCH OBLASTÍ CHOVANÍ MODELŮ je vybraný vstupní parametr a i je index jednoho ze skupiny modelů. Úkolem genetického algoritmu je najít takové nastavení vstupního vektoru x a parametrů x start, x velikost určující oblast, aby odezvy y i modelů splňovaly následující podmínky pro zajímavou oblast : 1. odezvy modelů jsou na intervalu x start ; x + x velikost co nejpodobnější Jak již bylo napsáno v kapitole 2.5, v místech kde jsou odezvy modelů podobné, je pravděpodobné, že odezvy jsou správné. To je dáno tím, že v průběhu trénování modelů je odezva nejdříve náhodná a postupně je upravována, tak aby odpovídala množině učících dat. Z toho plyne, že v místech, kde je možné odezvu modelů porovnat s daty z trénovací množiny, jsou odezvy modelů podobné a na ostatních místech jsou náhodné. Místa, kde jsou odezvy modelů náhodné je třeba odfiltrovat a vyhledat jen místa, kde se modely shodují. Míra podobnosti modelů p na intervalu x start ; x + x velikost je dána: p = 1 x velikost x start+x velikost j=x start ( ) arg max (f i(j)) arg min (f i(j)) 0<i m 0<i m 2. nalezená oblast je co největší (maximalizace parametru x velikost ) Odezvy modelů se mohou na nějaké oblasti shodnout a splnit tím první podmínku. Podmínkou pro rozlišení dvou takovýchto oblastí je velikost nalezené oblasti. Velikostí se rozumí na jak velkém intervalu pro zkoumaný vstupní parametr x j jsou odezvy modelů podobné. 3. změna v chování průměrné odezvy modelů na nalezeném intervalu x start ; x start + x velikost Pokud jsou odezvy modelů podobné na dostatečně velkém intervalu vstupního parametru, je další podmínkou definující zajímavou oblast samotný průběh odezev modelů. Modely se na zkoumaném intervalu chovají podobně a je tedy možné vycházet z jejích průměrné hodnoty ȳ(x j ) = 1 m y i (x j ), kde x i 0; 1 m i=1 kde m je počet zkoumaných modelů a y i je odezva i-tého modelu. Pokud je průběh na zkoumaném intervalu konstantní, je zřejmé, že modely na změnu zkoumaného parametru nereagují. Taková oblast není tak zajímavá jako v případě, kdy se průměrná odezva modelů mění. Jedním ze způsobů jak tyto změny poznat je porovnání minimální a maximální hodnoty průměrné odezvy modelů na zkoumaném intervalu. Z těchto hodnot je odvozen parametr y velikost = arg max (ȳ(t)) arg min (ȳ(t)), kde x start < t x velikost

39 KAPITOLA 7. VYHLEDÁVÁNÍ ZAJÍMAVÝCH OBLASTÍ CHOVANÍ MODELŮ Aplikace genetického algoritmu Pro řešení úlohy popsané v předešlé kapitole lze použít genetický algoritmus. Při použití genetického algoritmu je výhodou snadné zakódování řešení do chromosomu a ohodnocení zajímavé oblasti. Algoritmus bude hledat globální a v lepším případě i lokální maxima fitness funkce, která budou odpovídat zajímavým oblastem. 7.2 Zakódování chromosomu Parametry, které definují zajímavou oblast, jsou vstupní vektor x a interval x start ; x start + x velikost. Chromosom je tedy vektor o dimenzi n + 1. Prvních n 1 složek jsou vstupní parametry modelů, kde je vynechán jeden parametr s indexem j. Tento parametr je vynechán, protože právě pro něj je odezva modelů zkoumána a pro jeho hodnoty z intervalu 0; 1 jsou odezvy modelů vyhodnocovány. Pro které hodnoty vstupního parametru x j jsou odezvy modelů zkoumány definují zbylé dvě složky vektoru chromosomu x start a x velikost, které musí splňovat podmínky: x start 0 a x start + x velikost 1 Na obrázku 7.2 je chromosom znázorněn jako n + 1 dimenzionální vektor reálných čísel. Obrázek 7.2: Zakódování chromosomu 7.3 Fitness funkce Pro každý chromosom je možné spočítat fitness funkci, která určuje míru zajímavosti oblasti, kterou chromosom popisuje. Fitness funkce musí zahrnovat všechny podmínky které definují zajímavou oblast. Proto se fitness funkce skládá ze tří částí. 1. Šířka vybrané oblast x velikost, která je jedním z parametrů, který genetický algoritmus nastavuje. 2. Další částí je změna chování modelů y velikost ve vybrané oblasti, která je dána odezvami modelů. 3. Poslední částí fitness funkce je podobnost modelů p ve zkoumané oblasti. Výsledná hodnota fitness funkce chromosomu je tedy funkcí tří proměnných fitness(p, x velikost, y velikost )

40 28 KAPITOLA 7. VYHLEDÁVÁNÍ ZAJÍMAVÝCH OBLASTÍ CHOVANÍ MODELŮ Každá ze zmíněných částí je jinak důležitá a proto tvar samotné fitness funkce jsem stanovil až na základě experimentů, které jsou popsány v kapitole Selekce chromosomu Při vytváření nové populace je třeba na základě hodnoty fitness funkce vybrat vhodné chromosomy jako rodiče, kteří budou sloužit jako vzor. Tuto funkci v genetickém algoritmu zastává operátor selekce. Cílem selekce je zvýhodnit lepší chromosomy před horšími. Při implementaci jsem použil dva typy operátoru selekce. Proporcionální selekce (nebo také ruletová selekce) Algoritmus toho operátoru je: Vstup: populace o m chromosomech Výstup: jeden chromosom součet = součet všech hodnot fitness hledaný_součet = náhodná hodnota z intervalu (0,součet) opakuj pro i = {1,2,... m } částečný_součet = částečný_součet + fitness(i) dokud (i < m) a (částečný_součet > hledaný_součet) I když hraje u tohoto selekčního operátoru velkou roli náhoda, jsou šance jednotlivých chromosomů přímoúměrné jejich hodnotě fitness funkce. Pravděpodobnost výběru i-tého chromosomu je p i = fitness(i) mj=0 fitness(i) Nevýhodou tohoto selekčního operátoru je, že je kladen velký důraz na absolutní hodnotu fitness funkce. Pokud se v populaci vyskytne chromosom, který má řádově větší fitness než ostatní, skončí po několika generacích genetický algoritmus s populací, která bude obsahovat jen tento jeden chromosom nebo jemu podobné. Exponenciální ranking Tento selekční operátor odstraňuje některé nevýhody proporcionálního selekčního operátoru. Předpokladem je, že na vstupu je seřazená posloupnost chromosomů od nejlepšího k nejhoršímu (podle klesající hodnoty fitness funkce). Pokud v populaci existuje chromosom s výrazně lepší hodnotou fitness funkce, má stále největší pravděpodobnost být vybrán, ale již nezpůsobí předčasnou konvergenci genetického algoritmu. Pravděpodobnost výběru i-tého z m chromosomů je: p i = ci mi=1 c i

41 KAPITOLA 7. VYHLEDÁVÁNÍ ZAJÍMAVÝCH OBLASTÍ CHOVANÍ MODELŮ 29 pro index chromosomu i a náhodně vybrané číslo r z intervalu (0; 1) platí: Z této rovnosti plyne: r = i j=1 c j mk=1 c k i = ln (r (cm 1) + 1) ln c a jelikož index chromosomu musí být celé číslo, je index roven i. Základ exponentu c je parametr, který je v intervalu (0; 1), jehož změnou lze měnit selekční tlak. Selekční tlak udává míru zvýhodnění lepších chromosomu před horšími. Změna selekčního tlaku tak ovlivňuje míru zachování variability v populaci a tím předčasnou konvergenci genetického algoritmu k lokálnímu maximu. Vliv parametru c je zobrazen na obrázku 7.3. Obrázek 7.3: Vliv základu exponentu c na selekční operátor (změnu selekčního tlaku) 7.5 Křížení chromosomů Po vybrání (selekci) vhodných kandidátů na rodiče, je použit operátor křížení. Jelikož chromosomy jsou zakódovány jako vektory reálných čísel, je křížení dvou chromosomů prováděno výpočtem aritmetického průměru pro každou složku vektoru. Složky vektoru chromosomu potomka jsou definovány: p i = a i + b i, pro i {1, 2,..., n + 1} 2 kde n je dimenze vektoru vstupních dat. Tento způsob křížení generuje jen jednoho potomka na dva rodiče, protože takto definovaný operátor křížení je symetrický a nelze použít metodu pro zachování diverzity populace popsané v kapitole 3.6.

42 30 KAPITOLA 7. VYHLEDÁVÁNÍ ZAJÍMAVÝCH OBLASTÍ CHOVANÍ MODELŮ Obrázek 7.4: Porovnání pravděpodobností selekce a) proporcionální selekce b) exponenciální ranking Jiným operátorem křížení je jednotné křížení. Tento operátor pro všechny složky vektoru chromosomů se zadanou pravděpodobností vyměňuje jednotlivé položky a tím vznikají dva noví potomci. Při použití tohoto operátoru křížení vzniknou již dva potomci. Obrázek 7.5: Křížení chromosomů 7.6 Mutace chromosomu Dalším a posledním operátorem je operátor mutace. Operátor mutace modifikuje se zadanou pravděpodobností a velikostí jednotlivé složky vektoru chromosomu. Operátor mutace slouží genetickému algoritmu ke generování nových řešení. Nastavení pravděpodobnosti a velikosti mutace je otázkou experimentů. Příliš velká pravděpodobnost nebo

43 KAPITOLA 7. VYHLEDÁVÁNÍ ZAJÍMAVÝCH OBLASTÍ CHOVANÍ MODELŮ 31 velikost mutace může způsobit nefunkčnost genetického algoritmu, ale na druhou stranu může způsobit nalezení zcela nového řešení.

44 32 KAPITOLA 8. EXPERIMENTY 8 Experimenty V této kapitole popisuji experimenty, které jsem provedl v rámci diplomové práce. Pro testování navrženého genetického algoritmu, nastavení parametrů fitness funkce a otestování implementace vylepšení pro zachování diverzity populace bylo potřeba vygenerovat množinu jednoduchých trénovacích dat, na kterých lze snadno ověřit správnost výsledků nalezených genetickým algoritmem. 8.1 Uměle vytvořená data s malou dimenzí Tato množina dat má jeden vstupní parametr v rozsahu x 0; 1 a jeden výstupní parametr y 0; 1. Tato množina byla předložena aplikaci GAME popsané v kapitole 2.5, která vytvořila skupinu deseti modelů. Uspořádání množiny trénovacích dat a odezvy modelů jsou na obrázku 8.1. Obrázek 8.1: Uměle vygenerovaná učící data a odezvy modelů Fitness funkce Pro ověření správnosti výpočtu fitness funkce jsem použil právě takto jednoduchá data z důvodu, že prostor k prohledávání je natolik malý, že umožňuje výpočet hodnoty fitness v celém prostoru. Chromosom pro tyto data obsahuje jen dvě položky x start a x velikost. První tvar fitness funkce, který jsem použil, byl: fitness 1 = x velikost + y velikost + 1 p

45 KAPITOLA 8. EXPERIMENTY 33 Pro zvětšení důležitosti některých částí jsem provedl několik experimentů, ve kterých jsem změnil fitness funkci následovně: fitness 2 = x 2 velikost + y velikost + 1 p fitness 3 = x velikost + y velikost + 1 p 2 fitness 4 = x velikost + y 2 velikost + 1 p fitness 5 = e x velikost + y velikost + 1 p fitness 6 = x velikost + e y velikost + 1 p Na obrázku 8.2 jsou zobrazeny grafy zobrazující velikost fitness funkce v závislosti na parametrech x start a x velikost. Velikost fitness funkce je na grafech znázorněna mírou zabarvení. Tmavší zabarvení znázorňuje větší hodnotu fitness funkce a tím i zajímavější oblast. Fitness funkce ve všech případech správně ohodnotila chromosomy, které obsahují trénovací data. Ve všech případech se nepovedlo zvýhodnit chromosomy, které obsahují větší oblasti, před chromosomy, které obsahují oblasti malé. Neúspěch této fitness funkce mě vedl k vytvoření fitness funkce ve tvaru: fitness = x velikost y velikost 1 p Na obrázku 8.4 jsou dva grafy zobrazující velikost fitness funkce. Levý graf zobrazuje fitness v součtovém tvaru a pravý graf v součinovém tvaru. Na grafech obou fitness funkcí jsou jasně vidět části, které odpovídají rozložení učících dat. Na grafu fitness soucet je vidět, že dobře ohodnocuje i takové chromosomy, které mají malou hodnotu x velikost. Toto chování ovšem není žádoucí, protože nesplňuje podmínku maximalizace parametru x velikost, která je popsána v kapitole 7. Druhá fitness funkce fitness soucin již lépe ohodnocuje chromosomy, které mají parametr x velikost větší. Na grafu funkce fitness soucin je také vidět oblast přes obě dvě oblasti trénovacích dat, které se nacházejí na grafu více vpravo. Toto ohodnocení není špatné, protože mezi oblastmi trénovacích dat, kde modely neměly vzor v trénovacích datech, se většina modelů shodla. Fitness funkce fitness soucet tuto oblast ohodnotila nízkou hodnotou fitness funkce a není součástí možného řešení. Aby bylo možné ještě více znevýhodnit malé a tím méně zajímavé oblasti, provedl jsem na jednotlivých částech fitness funkce transformaci, která podle základu exponentu c znevýhodňuje menší oblasti před většími. Transformace má tvar: f(x) = (c x 1)c 1 c, kde c (0; 1)

46 34 KAPITOLA 8. EXPERIMENTY Obrázek 8.2: Závislost fitness funkce na x start a x velikost Obrázek 8.3: Řezy grafem fitness funkce pro různé hodnoty parametru x start a typy fitness funkce Na obrázku 8.6 je graf pro několik hodnot parametru základu exponentu c. Na grafu je vidět, že s klesající hodnotou parametru c jsou více zvýhodňovány větší hodnoty transformovaného parametru. Na obrázku 8.7 jsou grafy zobrazující hodnoty fitness funkce pro různé hodnoty parametru c. Na prvním grafu pro parametr c = 0, 01 je rozdíl fitness funkce mezi menší a větší oblastí velmi výrazný. Na dalších grafech je vidět, že s rostoucí hodnotou parametru c se rozdíl zmenšuje. Toto chování má za následek zvýhodnění větších oblastí. Na obrázku 8.8 je zobrazen řez pro x start = 0.4 a hodnoty fitness funkce v poměru se svým maximem pro jednotlivé hodnoty parametru c.

47 KAPITOLA 8. EXPERIMENTY 35 Obrázek 8.4: Porovnání dvou typů fitness a) součet b) součin Obrázek 8.5: Řezy grafem fitness funkce v součinovém tvaru pro různé hodnoty parametru x start a typy fitness funkce Obrázek 8.6: Transformační funkce pro různé hodnoty parametru základu exponentu c

48 36 KAPITOLA 8. EXPERIMENTY Obrázek 8.7: Porovnání fitness funkcí s různým koeficientem c transformace parametru x velikost Obrázek 8.8: Závislost poměrné velikosti fitness funkce s různým koeficientem c pro x start = 0.4

49 KAPITOLA 8. EXPERIMENTY Diverzita populace Zachování diverzity populace, které bylo popsáno v kapitole 3.6, je při řešení této úlohy velkou výhodou. Možnost nalezení více zajímavých oblastí umožňuje lépe studovat chování modelů neuronových sítí. Pro popsání diverzity populace je definována vzdálenost mezi dvěma chromosomy. Aby se diverzita populace zachovala nebo alespoň udržela po co nejdelší dobu je nutné upravit proces vzniku nové populace, jak bylo popsáno v kapitole 3.6. Pro vyzkoušení správné funkce jsem provedl dva experimenty na stejné skupině modelů. V prvním experimentu jsem použil obyčejný genetický algoritmus. Ve druhém experimentu jsem použil genetický algoritmus zachovávající diverzitu v populaci metodou Deterministic Crowding [8]. Pro zobrazení diverzity v populaci jsem použil grafy, které mají na obou osách indexy chromosomů v populaci a na jejich souřadnicích je zobrazena jejich vzdálenost. Vzdálenost je vyjádřena mírou ztmavnutí. Čím je barva tmavší, tím je vzdálenost chromosomů větší. Bílá barva tedy znamená, že chromosomy jsou identické. Chromosomy jsou na grafu seřazeny podle klesající hodnoty fitness funkce. Hodnota fitness funkce pro chromosomy na horizontální ose je zobrazena červeně a pro chromosomy na vertikální ose je zobrazena zeleně. Graf je diagonálně souměrný. Obrázek 8.9: Vývoj diverzity populace bez použití metody Niching Na obrázku 8.9 je zobrazeno několik generací genetického algoritmu. Na grafu první generace je zřejmé, že populace je vygenerována náhodně. S dalšími generacemi se v populaci více rozmnožují chromosomy, které mají lepší fitness na úkor slabších chromosomů. To je

50 38 KAPITOLA 8. EXPERIMENTY na grafech znázorněno rozrůstajícími se jednobarevnými oblastmi. Jejich drobné odstíny jsou způsobeny operátorem mutace, který náhodně mění některé z genů chromosomů. Od 32. generace jsou v populaci již jen dva různé chromosomy. Od této generace již soupeří jen mezi sebou a převládnutí lepšího druhu chromosomu je jen otázkou několika generací. Druhý slabší chromosom je silnějším chromosomem nakonec vytlačen. Obrázek 8.10: Vývoj diverzity populace s použitím metody Niching Na obrázku 8.10 jsou zobrazeny grafy generací druhého experimentu. V tomto případě se genetický algoritmus snaží zachovat diverzitu populace. Průběh je v prvních generacích stejný. Opět vznikají různé druhy chromosomů, které postupně zvětšují svůj počet. Rozdíl nastává v generaci, kdy v prvním experimentu začal lepší druh chromosomů vytlačovat slabší druh chromosomů. Zde způsobí Niching. Tím má slabší druh chromosomu větší šanci na to, že nebude vytlačen lepším druhem chromosomů. Je třeba zdůraznit, že tato metoda zachování diverzity populace nezaručí, že slabší druh chromosomů bude v populaci stále. Jelikož má menší hodnotu fitness funkce, má i menší pravděpodobnost, že bude vybrán selekčním operátorem jako rodič pro novou populaci. Tato pravděpodobnost může způsobit, že se počet chromosomů tohoto druhu v jedné populaci náhodně rapidně zmenší a v následujících populacích již nebude obsažen. Diverzita je v populaci tedy zachována jen po určitý konečný čas. Na obrázku 8.11 jsou zobrazeny tři nejperspektivnější chromosomy, které byly nalezeny.

51 KAPITOLA 8. EXPERIMENTY 39 Obrázek 8.11: Nejlepší nalezené chromosomy jednotlivých druhů zleva doprava podle klesající hodnoty fitness funkce 8.2 Uměle vytvořená data s dimenzí vstupního vektoru tři Pro ověření implementace genetického algoritmu jednoduchá data z kapitoly 8.1 nejsou kvuli velikosti dimenze vstupního vektru postačující. Vytvořil jsem rozsáhlejší umělá data vygenerovaná na základě funkce: f(x, y, z) = sin(2πx) + (2y 1)2 + z + 1 4, pro x, y, z (0; 1) Množinu učících dat jsem vytvořil ve čtyřech skupinách. Vstupem pro generátor těchto dat byla čtveřice bodů b i = [x, y, z] s poloměry r i, které určovaly oblast ve tvaru koule: x 2 i + y 2 i + z 2 i r 2 i V těchto oblastech bylo náhodně vygenerováno čtyřicet bodů v každé oblasti. Na obrázku 8.12 jsou zobrazeny body [x, y, z]. Obrázek 8.12: Definiční obor množiny učících dat

52 40 KAPITOLA 8. EXPERIMENTY Tyto body jsem použil pro vygenerování množiny trénovacích dat, která se skládá z vektorů: x = (x, y, z, f(x, y, z)) Poté byla nad daty spuštěna aplikace GAME, pomocí které vzniklo deset modelů neuronové sítě. Nad takto naučenými modely jsem spustil pro každý vstupní parametr x, y a z genetický algoritmus pro vyhledání zajímavých oblastí. Na obrázku 8.15 jsou v prvním sloupci zobrazeny nejlepší chromosomy populace z desáté generace. V druhém sloupci jsou již nejlepší chromosomy populace z padesáté generace. Je patrné, že modely správně identifikovaly průběhy jednotlivých vstupních parametrů tak, jak byly zadány ve funkci generující množinu učících dat. Rozdíl mezi chromosomy z desáté a padesáté generace je zejména v parametru určující shodu skupiny modelů na vybrané oblasti. V tabulce 8.1 jsou uvedeny hodnoty parametrů všech nejlepších nalezených chromosomů. generace x y z x start x velikost y start y velikost fitness Tabulka 8.1: Hodnoty popisující nalezená řešení Na obrázku 8.13 jsou zobrazeny grafy diverzity v různých generacích. U parametru x již ve 22. generaci existuje jen jeden druh chromosomu. Pro zbylé dva parametry y a z existuje sice více druhů chromosomu, ale ty se liší jen ve velikosti oblasti a nepřinášejí žádnou novou informaci o chování modelů. Obrázek 8.13: Diverzita populace pro jednotlivé vstupní parametry x, y a z

53 KAPITOLA 8. EXPERIMENTY Ohodnocení významnosti vstupních parametrů (feature ranking) Velice zajímavé je srovnání relativních hodnot fitness funkce nejlepších chromosomů, která ja vypočtena pro každý parametr: p i = fitness i nj=1 fintess j, kde n je počet parametrů. V tabulce 8.2 je srovnání těchto hodnot s hodnotami z GAME. Pomocí těchto hodnot je možné stanovit, jak ovlivňují jednotlivé vstupní parametry výslednou odezvu modelů. Tím lze stanovit významnost každého vstupního parametru. Z vypočtených hodnot je patrné, že nejvýznamnější je parametr x a nejméně ovlivňuje průběh parametr y. Tyto zjištěné hodnoty se shodují s hodnotami nalezenými pomocí GAME. parametr GA GAME x 40% 50% y 22% 22% z 38% 28% Tabulka 8.2: Porovnání významnosti vstupních parametrů genetického algoritmu a GAME Obrázek 8.14: Průběhy jednotlivých parametrů z funkce generující trénovací data

54 42 KAPITOLA 8. EXPERIMENTY Obrázek 8.15: Nejlepší chromosomy pro jednotlivé vstupní parametry x, y a z v generaci 10 a 50

55 KAPITOLA 8. EXPERIMENTY Reálná data - spotřeba energie budovy Pro experiment s reálnými daty jsem si vybral data [7], která obsahují průběh spotřeby elektrické energie (wbe) a teplé (wbhw) a studené (wbcw) vody v závislosti na času, venkovní teplotě (temp), vlhkosti (humid), slunečnímu záření (solar) a rychlosti větru (wind). Ukázka dat je v tabulce 8.3. month day year hour temp humid solar wind wbe wbcw wbhw Tabulka 8.3: Ukázka dat building dataset spotřeby energie budovy V aplikaci GAME jsem vygeneroval deset modelů neuronové sítě pro každou z měřených energií. Na obrázku 8.16 jsou grafy nejlepších chromosomů po padesáti generacích genetického algoritmu. V každém grafu je zobrazena závislost energií na jednom ze vstupních parametrů. Při provádění genetického algoritmu pro všechny energie i vstupní parametry vždy zůstal v populaci jen jeden druh chromosomu. Nejzajímavější graf je závislost spotřeby na teplotě. Na tomto grafu je patrná rostoucí závislost spotřeby studené vody a elektrické energie na teplotě a klesající závislost spotřeby teplé vody na teplotě. V tabulce 8.4 jsou uvedeny hodnoty nejlepších řešení (chromosomů) pro jednotlivé energie a vstupní parametry. energie temp humid solar wind x start y start x velikost y velikost fitness wbcw wbe wbhw wbcw wbe wbhw wbcw wbe wbhw wbcw wbe wbhw Tabulka 8.4: Nejlepší nalezené chromosomy

56 44 KAPITOLA 8. EXPERIMENTY Obrázek 8.16: Nejlepší chromosomy pro jednotlivé vstupní parametry temp, humid, solar, wind a spotřeby elektrické energie a teplé a studené vody v 50. generaci Ohodnocení významnosti vstupních parametrů (feature ranking) V tabulce 8.5 jsou uvedeny hodnoty relativních hodnot fitness funkce pro jednotlivé energie a vstupní parametry porovnané s hodnotami, jak je určila GAME. Je vidět, že obě metody se shodují v pořadí vyhodnocení významnosti jednotlivých vstupních parametrů.

57 KAPITOLA 8. EXPERIMENTY 45 wbcw wbe wbhw parametr GA GAME GA GAME GA GAME temp 55% 41% 25% 26% 86% 51% humid 29% 31% 11% 9% 6% 30% solar 8% 11% 31% 41% 3% 13% wind 8% 15% 33% 22% 4% 4% Tabulka 8.5: Porovnání významnosti vstupních parametrů genetického algoritmu a GAME Obrázek 8.17: Porovnání významnosti vstupních parametrů genetického algoritmu a GAME

58 46 KAPITOLA 9. IMPLEMENTACE 9 Implementace Při implementaci obou úloh vizualizace chování modelů neuronových sítí i vyhledávání zajímavých oblastí jsem pracoval v prostředí poměrně rozsáhlé aplikace GAME implementující stejnojmenou metodu popsanou v kapitole 2.5. Modulární charakter této aplikace mi ale poskytoval velkou volnost při implementaci. Aplikace GAME je implementována v jazyce JAVA a tím byl dán i programovací jazyk pro mou diplomovou práci. 9.1 Vizualizace Při řešení této úlohy vznikly tři třídy. Třída pro vizualizaci odezvy jednoho modelu neuronové sítě Clasification2D. Třída pro vizualizaci odezvy skupiny modelů neuronové sítě ClasificationMulti2D. A třída ScatterplotMatrix pro zobrazení odezvy jednoho modelu neuronové sítě v závislosti na všech kombinacích vstupních parametrů. Jelikož všechny třídy řeší podobný úkol, což je vizualizace jedné nebo více funkcí f(x, y) 0; 1 pro x, y 0; 1 vytvořil jsem třídu GraphLayerFunction2D pro vizualizaci takové funkce a rozhraní, které této třídě zprostředkovává data. Rozhraní definuje funkci: public double getdoublevalue(double x, double y); funkce vrací hodnotu vizualizované funkce pro parametry x a y. Implementace výše zmíněných tříd pro vizualizaci odezev modelů neuronových sítí použitím třídy GraphLayerFunction2D spočívala v implementaci rozhraní pro zprostředkování dat. Pro vizualizaci množiny terénovacích dat jsem, podobně jako v případě vizualizace odezev, implementoval třídu GraphLayerSpots a rozhraní pro zprostředkování datových vektorů GraphLayerSpotsInterface. Třída GraphLayerSpots implementuje vizualizaci bodů tak jak je popsáno v kapitole public int SpotsCount(); Definuje počet zobrazovaných vektorů. public TSpot getspot(int index); Funkce zprostředkovává bod na určitém indexu. Index je v rozsahu od 0 do SpotsCount() - 1; public double getminklobouk(); Nastavení konstanty c (viz ) pro maximální velikost značky.

59 KAPITOLA 9. IMPLEMENTACE 47 public double getmaxklobouk(); Nastavení konstanty k (viz ) pro maximální vzdálenost vektoru od zobrazovaného řezu. public void drawspot(graphics g, TIntSpot s); Pro vykreslení vlastního bodu je možné definovat vlastní funkci pro vykreslení značky. Implementace rozšíření pro vizualizaci datových vektorů do vizualizačních tříd spočívalo v implementaci rozhraní GraphLayerSpotsInterface a použití třídy GraphLayerSpots. 9.2 Rozhraní pro genetické algoritmy Genetický algoritmus jsem se snažil implementovat pokud možno co nejobecněji. Z toho důvodu vzniklo rozhraní Chromosome, které definuje všechny potřebné vlastnosti chromosomu. public double fitness(); Základní vlastností chromosomu je výpočet fitness funkce. Chromosom na základě svých parametrů (genů) spočítá hodnotu fitness funkce. public void mutate(double MutationSize); Pro vnesení rozmanitosti do populace je třeba, aby chromosom zmutoval (změnil své geny). Parametr MutationSize, který je v intervalu 0, 1, udává jak velká maximálně mutace může být. public Chromosome crossing(population p, Chromosome X); Křížení, je jedním z operátorů používaných v genetickém algoritmu. Chromosom musí být schopen se zkřížit alespoň s chromosomem stejného typu. public double getdistancefrom(chromosome ch); Výpočet vzdálenosti od jiného chromosomu je jednou z cest k zachování diverzity v populaci. Chromosom musí být schopen vyjádřit svou vzdálenost od jiného chromosomu stejného typu. Dále je třeba mít zdroj nových náhodných chromosomů, které vytváří počáteční populaci nebo doplňují populaci do potřebné velikosti při vytváření nové generace populace. public interface ChromosomeGenerator { public Chromosome ChromosomeGenerator(); }

60 48 KAPITOLA 9. IMPLEMENTACE 9.3 Třída Population public class Population implements ChromosomeGenerator { public Population(int size, ChromosomeGenerator generator) private Chromosome Select() public Population nextpopulation() public Chromosome maxfitness() public Chromosome minfitness() public Chromosome getchromosome(int index) public double SetMutationProbability(double value) public double SetMutationSize(double value) } public double SetCrossingSize(double value) Samotný genetický algoritmus je implementován ve třídě Population. Konstruktor třídy má dva parametry: velikost populace a generátor chromosomů. Konstruktor vytvoří pomocí generátoru chromosomů počáteční populaci. Genetický algoritmus má několik parametrů. Jsou to: pravděpodobnost mutace, která se zadává hodnotou z intervalu 0; 1. Její hodnota udává pravděpodobnost, s jakou bude na nějaký chromosom uplatněn operátor mutace. velikost mutace, která se zadává hodnotou z intervalu 0; 1. Její hodnota udává, jak maximálně velká může mutace chromosomu být. velikost křížení, která se zadává hodnotou z intervalu 0; 1. Její hodnota udává, jak velké procento nových chromosomů, při vytváření nové populace vznikne křížením. Základní funkcí této třídy je vytváření nové populace nextpopulation. Tato funkce vygeneruje novou populaci, jejíž chromosomy jsou potomky současné populace. Při vytváření nové populace je jednou z podstatných operací ovlivňující novou populaci operátor selekce. Tento operátor implementuje funkce Select, která vrací chromosom ze současné populace, vybraný na základě selekčního operátoru. Třída Population obsahuje několik základních funkcí. Jsou to funkce: maxfitness(), která vrací chromosom, který má v populaci největší fitness. 9.4 Vizualizační třída GA a konfigurační třída GAConfig pro aplikaci GAME Pro propojení mé implementace genetického algoritmu a aplikace GAME slouží třída GA a její konfigurační třída GACfg. Třída GA implementuje rozhraní Graph, což je rozhraní,

61 KAPITOLA 9. IMPLEMENTACE 49 které ji zpřístupňuje v nabídce aplikace GAME a spouští její inicializaci. Konfigurační třída GACfg implementuje rozhraní GConfig, které zpřístupňuje konfiguraci v aplikaci GAME. 9.5 Aplikace navrženého rozhraní Chromosome Třída BaseRange je implementací mnou výše popsaného chromosomu 7.2 a fitness funkce 7.3. Tato třída implementuje rozhraní Chromosome a je tedy použitelná pro třídu implementující genetický algoritmus Population. Jelikož v průběhu experimentování docházelo k častým změnám v kódu chromosomu, stala se z třídy BaseRange třída rodičovská, která definuje zakódovaní chromosomu, a funkce pro výpočet fitness funkce a křížení chromosomu se přesunuly do tříd potomků, kde bylo snadnější tyto funkce měnit. 9.6 Rozhraní tříd GA a GAConfig Instanci třídy Population obsahuje třída GA, která vytváří vlákno, ve kterém je spuštěn výpočet nových populací genetického algoritmu. Pro konfiguraci parametrů, nastavení zobrazení výstupů a vizualizace průběhu genetického algoritmu slouží třída GAConfig. Na obrázku 9.1 je zobrazeno rozhraní konfigurační třídy. Jelikož konfigurační třída obsahuje mnoho parametrů, jsou parametry rozděleny do skupin. Graph Tento panel obsahuje skupinu parametrů určujících, jaké informace jsou v průběhu genetického algoritmu k dispozici. Genetic algorithm Na tomto panelu je možné nastavit pravděpodobnosti a velikosti jednotlivých operátorů používaných genetickým algoritmem. Chromosome Tento panel nastavuje koeficienty transformací jednotlivých kriterií použité pří výpočtu fitness funkce. Také je možné nastavit s jakou hustotou bude vzorkován právě zkoumaný vstupní parametr. Visualization Na tomto panelu je možné nastavit s jakým rozlišením a jak často budou vykreslovány informace o průběhu genetického algoritmu. Na obrázku 9.2 je ukázka průběhu genetického algoritmu. Je zobrazen vývoj maximální hodnoty fitness funkce, aktuální a nejlepší dosud nalezená populace a je zobrazen nejlepší chromosom z nejlepší populace. Pod grafy populací jsou zobrazeny souhrnné informace: index generace, minimální, maximální a průměrná hodnota fitness funkce v populaci, velikost populace a hodnoty nejlepšího chromosomu v populaci.

62 50 KAPITOLA 9. IMPLEMENTACE Obrázek 9.1: Rozhraní konfigurační třídy Obrázek 9.2: Průběh genetického algoritmu

Přednáška 13 Redukce dimenzionality

Přednáška 13 Redukce dimenzionality Vytěžování Dat Přednáška 13 Redukce dimenzionality Miroslav Čepek Fakulta Elektrotechnická, ČVUT Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti ČVUT (FEL) Redukce dimenzionality 1 /

Více

Projekční algoritmus. Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění. Jan Klíma

Projekční algoritmus. Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění. Jan Klíma Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění Jan Klíma Obsah Motivace & cíle práce Evoluční algoritmy Náhradní modelování Stromové regresní metody Implementace a výsledky

Více

Vytěžování znalostí z dat

Vytěžování znalostí z dat Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 1/26 Vytěžování znalostí z dat Pavel Kordík, Josef Borkovec Department of Computer Systems Faculty of Information

Více

Úloha - rozpoznávání číslic

Úloha - rozpoznávání číslic Úloha - rozpoznávání číslic Vojtěch Franc, Tomáš Pajdla a Tomáš Svoboda http://cmp.felk.cvut.cz 27. listopadu 26 Abstrakt Podpůrný text pro cvičení předmětu X33KUI. Vysvětluje tři způsoby rozpoznávání

Více

5. Umělé neuronové sítě. Neuronové sítě

5. Umělé neuronové sítě. Neuronové sítě Neuronové sítě Přesný algoritmus práce přírodních neuronových systémů není doposud znám. Přesto experimentální výsledky na modelech těchto systémů dávají dnes velmi slibné výsledky. Tyto systémy, včetně

Více

Neuronové časové řady (ANN-TS)

Neuronové časové řady (ANN-TS) Neuronové časové řady (ANN-TS) Menu: QCExpert Prediktivní metody Neuronové časové řady Tento modul (Artificial Neural Network Time Series ANN-TS) využívá modelovacího potenciálu neuronové sítě k predikci

Více

Rosenblattův perceptron

Rosenblattův perceptron Perceptron Přenosové funkce Rosenblattův perceptron Rosenblatt r. 1958. Inspirace lidským okem Podle fyziologického vzoru je třívrstvá: Vstupní vrstva rozvětvovací jejím úkolem je mapování dvourozměrného

Více

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Pravděpodobnost a učení Doc. RNDr. Iveta Mrázová,

Více

Státnice odborné č. 20

Státnice odborné č. 20 Státnice odborné č. 20 Shlukování dat Shlukování dat. Metoda k-středů, hierarchické (aglomerativní) shlukování, Kohonenova mapa SOM Shlukování dat Shluková analýza je snaha o seskupení objektů do skupin

Více

Obsah přednášky Jaká asi bude chyba modelu na nových datech?

Obsah přednášky Jaká asi bude chyba modelu na nových datech? Obsah přednášky Jaká asi bude chyba modelu na nových datech? Chyba modelu Bootstrap Cross Validation Vapnik-Chervonenkisova dimenze 2 Chyba skutečná a trénovací Máme 30 záznamů, rozhodli jsme se na jejich

Více

Emergence chování robotických agentů: neuroevoluce

Emergence chování robotických agentů: neuroevoluce Emergence chování robotických agentů: neuroevoluce Petra Vidnerová, Stanislav Slušný, Roman Neruda Ústav Informatiky, AV ČR Kognice a umělý život VIII Praha 28. 5. 2008 Evoluční robotika: EA & neuronové

Více

1. Úvod do genetických algoritmů (GA)

1. Úvod do genetických algoritmů (GA) Obsah 1. Úvod do genetických algoritmů (GA)... 2 1.1 Základní informace... 2 1.2 Výstupy z učení... 2 1.3 Základní pomy genetických algoritmů... 2 1.3.1 Úvod... 2 1.3.2 Základní pomy... 2 1.3.3 Operátor

Více

Genetické algoritmy. Informační a komunikační technologie ve zdravotnictví

Genetické algoritmy. Informační a komunikační technologie ve zdravotnictví Genetické algoritmy Informační a komunikační technologie ve zdravotnictví Přehled přednášky Úvod Historie Základní pojmy Principy genetických algoritmů Možnosti použití Související metody AI Příklad problém

Více

U Úvod do modelování a simulace systémů

U Úvod do modelování a simulace systémů U Úvod do modelování a simulace systémů Vyšetřování rozsáhlých soustav mnohdy nelze provádět analytickým výpočtem.často je nutné zkoumat chování zařízení v mezních situacích, do kterých se skutečné zařízení

Více

Fiala P., Karhan P., Ptáček J. Oddělení lékařské fyziky a radiační ochrany Fakultní nemocnice Olomouc

Fiala P., Karhan P., Ptáček J. Oddělení lékařské fyziky a radiační ochrany Fakultní nemocnice Olomouc Neuronové sítě a možnosti jejich využití Fiala P., Karhan P., Ptáček J. Oddělení lékařské fyziky a radiační ochrany Fakultní nemocnice Olomouc 1. Biologický neuron Osnova 2. Neuronové sítě Umělý neuron

Více

Umělé neuronové sítě

Umělé neuronové sítě Umělé neuronové sítě 17. 3. 2018 5-1 Model umělého neuronu y výstup neuronu u vnitřní potenciál neuronu w i váhy neuronu x i vstupy neuronu Θ práh neuronu f neuronová aktivační funkce 5-2 Neuronové aktivační

Více

Lineární klasifikátory

Lineární klasifikátory Lineární klasifikátory Lineární klasifikátory obsah: perceptronový algoritmus základní verze varianta perceptronového algoritmu přihrádkový algoritmus podpůrné vektorové stroje Lineární klasifikátor navrhnout

Více

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi

Více

ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT. Institut biostatistiky a analýz

ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT. Institut biostatistiky a analýz ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT prof. Ing. Jiří Holčík,, CSc. NEURONOVÉ SÍTĚ otázky a odpovědi 1 AKD_predn4, slide 8: Hodnota výstupu závisí na znaménku funkce net i, tedy na tom, zda bude suma

Více

Algoritmy a struktury neuropočítačů ASN - P11

Algoritmy a struktury neuropočítačů ASN - P11 Aplikace UNS při rozpoznání obrazů Základní úloha segmentace obrazu rozdělení obrazu do několika významných oblastí klasifikační úloha, clusterová analýza target Metody Kohonenova metoda KSOM Kohonenova

Více

Kybernetika a umělá inteligence, cvičení 10/11

Kybernetika a umělá inteligence, cvičení 10/11 Kybernetika a umělá inteligence, cvičení 10/11 Program 1. seminární cvičení: základní typy klasifikátorů a jejich princip 2. počítačové cvičení: procvičení na problému rozpoznávání číslic... body za aktivitu

Více

Využití neuronové sítě pro identifikaci realného systému

Využití neuronové sítě pro identifikaci realného systému 1 Portál pre odborné publikovanie ISSN 1338-0087 Využití neuronové sítě pro identifikaci realného systému Pišan Radim Elektrotechnika 20.06.2011 Identifikace systémů je proces, kdy z naměřených dat můžeme

Více

Algoritmy a struktury neuropočítačů ASN P4. Vícevrstvé sítě dopředné a Elmanovy MLNN s učením zpětného šíření chyby

Algoritmy a struktury neuropočítačů ASN P4. Vícevrstvé sítě dopředné a Elmanovy MLNN s učením zpětného šíření chyby Algoritmy a struktury neuropočítačů ASN P4 Vícevrstvé sítě dopředné a Elmanovy MLNN s učením zpětného šíření chyby Vrstevnatá struktura - vícevrstvé NN (Multilayer NN, MLNN) vstupní vrstva (input layer)

Více

Ambasadoři přírodovědných a technických oborů. Ing. Michal Řepka Březen - duben 2013

Ambasadoři přírodovědných a technických oborů. Ing. Michal Řepka Březen - duben 2013 Ambasadoři přírodovědných a technických oborů Ing. Michal Řepka Březen - duben 2013 Umělé neuronové sítě Proč právě Neuronové sítě? K čemu je to dobré? Používá se to někde v praxi? Úvod Umělé neuronové

Více

Neuronové sítě. Vlasta Radová Západočeská univerzita v Plzni katedra kybernetiky

Neuronové sítě. Vlasta Radová Západočeská univerzita v Plzni katedra kybernetiky Neuronové sítě Vlasta Radová Západočeská univerzita v Plzni katedra kybernetiky Motivace pro výzkum umělých neuronových sítí lidský mozek pracuje jiným způsobem než běžné číslicové počítače počítače přesně

Více

Pokročilé neparametrické metody. Klára Kubošová

Pokročilé neparametrické metody. Klára Kubošová Pokročilé neparametrické metody Klára Kubošová Pokročilé neparametrické metody Výuka 13 přednášek doplněných o praktické cvičení v SW Úvod do neparametrických metod + princip rozhodovacích stromů Klasifikační

Více

2. RBF neuronové sítě

2. RBF neuronové sítě 2. RBF neuronové sítě Kapitola pojednává o neuronových sítích typu RBF. V kapitole je popsána základní struktura tohoto typu neuronové sítě. Poté následuje definice a charakteristika jednotlivých radiálně

Více

Moderní systémy pro získávání znalostí z informací a dat

Moderní systémy pro získávání znalostí z informací a dat Moderní systémy pro získávání znalostí z informací a dat Jan Žižka IBA Institut biostatistiky a analýz PřF & LF, Masarykova universita Kamenice 126/3, 625 00 Brno Email: zizka@iba.muni.cz Bioinformatika:

Více

1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004.

1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004. Prostá regresní a korelační analýza 1 1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004. Problematika závislosti V podstatě lze rozlišovat mezi závislostí nepodstatnou, čili náhodnou

Více

Trénování sítě pomocí učení s učitelem

Trénování sítě pomocí učení s učitelem Trénování sítě pomocí učení s učitelem! předpokládá se, že máme k dispozici trénovací množinu, tj. množinu P dvojic [vstup x p, požadovaný výstup u p ]! chceme nastavit váhy a prahy sítě tak, aby výstup

Více

Architektura - struktura sítě výkonných prvků, jejich vzájemné propojení.

Architektura - struktura sítě výkonných prvků, jejich vzájemné propojení. Základní pojmy z oblasti neuronových sítí Zde je uveden přehled některých základních pojmů z oblasti neuronových sítí. Tento přehled usnadní studium a pochopení předmětu. ADALINE - klasická umělá neuronová

Více

Numerická stabilita algoritmů

Numerická stabilita algoritmů Numerická stabilita algoritmů Petr Tichý 9. října 2013 1 Numerická stabilita algoritmů Pravidla v konečné aritmetice Pro počítání v konečné aritmetice počítače platí určitá pravidla, která jsou důležitá

Více

Úvod do optimalizace, metody hladké optimalizace

Úvod do optimalizace, metody hladké optimalizace Evropský sociální fond Investujeme do vaší budoucnosti Úvod do optimalizace, metody hladké optimalizace Matematika pro informatiky, FIT ČVUT Martin Holeňa, 13. týden LS 2010/2011 O čem to bude? Příklady

Více

Globální matice konstrukce

Globální matice konstrukce Globální matice konstrukce Z matic tuhosti a hmotnosti jednotlivých prvků lze sestavit globální matici tuhosti a globální matici hmotnosti konstrukce, které se využijí v řešení základní rovnice MKP: [m]{

Více

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.0141 Báze vektorových prostorů, transformace souřadnic Michal Botur Přednáška

Více

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory K množina reálných nebo komplexních čísel, U vektorový prostor nad K. Lineární kombinace vektorů u 1, u 2,...,u

Více

Algoritmy a struktury neuropočítačů ASN P3

Algoritmy a struktury neuropočítačů ASN P3 Algoritmy a struktury neuropočítačů ASN P3 SOM algoritmus s učitelem i bez učitele U-matice Vektorová kvantizace Samoorganizující se mapy ( Self-Organizing Maps ) PROČ? Základní myšlenka: analogie s činností

Více

Vytěžování znalostí z dat

Vytěžování znalostí z dat Vytěžování znalostí z dat Department of Computer Systems Faculty of Information Technology Czech Technical University in Prague Přednáška 5: Hodnocení kvality modelu BI-VZD, 09/2011 MI-POA Evropský sociální

Více

Ing. Petr Hájek, Ph.D. Podpora přednášky kurzu Aplikace umělé inteligence

Ing. Petr Hájek, Ph.D. Podpora přednášky kurzu Aplikace umělé inteligence APLIKACE UMĚLÉ INTELIGENCE Ing. Petr Hájek, Ph.D. Podpora přednášky kurzu Aplikace umělé inteligence Aplikace umělé inteligence - seminář ING. PETR HÁJEK, PH.D. ÚSTAV SYSTÉMOVÉHO INŽENÝRSTVÍ A INFORMATIKY

Více

Diagnostika regrese pomocí grafu 7krát jinak

Diagnostika regrese pomocí grafu 7krát jinak StatSoft Diagnostika regrese pomocí grafu 7krát jinak V tomto článečku si uděláme exkurzi do teorie regresní analýzy a detailně se podíváme na jeden jediný diagnostický graf. Jedná se o graf Předpovědi

Více

Evoluční výpočetní techniky (EVT)

Evoluční výpočetní techniky (EVT) Evoluční výpočetní techniky (EVT) - Nacházejí svoji inspiraci v přírodních vývojových procesech - Stejně jako přírodní jevy mají silnou náhodnou složku, která nezanedbatelným způsobem ovlivňuje jejich

Více

Vizuální 3D analýza chování neuronových sítí

Vizuální 3D analýza chování neuronových sítí Ceské vysoké ucení technické v Praze Fakulta elektrotechnická Diplomová práce Vizuální 3D analýza chování neuronových sítí Jirí Nožka Vedoucí práce: Ing. Pavel Kordík Studijní program: Elektrotechnika

Více

Neuronové sítě Ladislav Horký Karel Břinda

Neuronové sítě Ladislav Horký Karel Břinda Neuronové sítě Ladislav Horký Karel Břinda Obsah Úvod, historie Modely neuronu, aktivační funkce Topologie sítí Principy učení Konkrétní typy sítí s ukázkami v prostředí Wolfram Mathematica Praktické aplikace

Více

Pokročilé operace s obrazem

Pokročilé operace s obrazem Získávání a analýza obrazové informace Pokročilé operace s obrazem Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno prezentace je součástí projektu FRVŠ č.2487/2011 (BFÚ LF MU) Získávání

Více

Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)

Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů) Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů) Autor: Vladimir Vapnik Vapnik, V. The Nature of Statistical Learning Theory.

Více

MATURITNÍ TÉMATA Z MATEMATIKY

MATURITNÍ TÉMATA Z MATEMATIKY MATURITNÍ TÉMATA Z MATEMATIKY 1. Základní poznatky z logiky a teorie množin Pojem konstanty a proměnné. Obor proměnné. Pojem výroku a jeho pravdivostní hodnota. Operace s výroky, složené výroky, logické

Více

Náhodné chyby přímých měření

Náhodné chyby přímých měření Náhodné chyby přímých měření Hodnoty náhodných chyb se nedají stanovit předem, ale na základě počtu pravděpodobnosti lze zjistit, která z možných naměřených hodnot je více a která je méně pravděpodobná.

Více

B) výchovné a vzdělávací strategie jsou totožné se strategiemi vyučovacího předmětu Matematika.

B) výchovné a vzdělávací strategie jsou totožné se strategiemi vyučovacího předmětu Matematika. 4.8.3. Cvičení z matematiky Předmět Cvičení z matematiky je vyučován v sextě a v septimě jako volitelný předmět. Vzdělávací obsah vyučovacího předmětu Cvičení z matematiky vychází ze vzdělávací oblasti

Více

Úvod do modelování a simulace. Ing. Michal Dorda, Ph.D.

Úvod do modelování a simulace. Ing. Michal Dorda, Ph.D. Úvod do modelování a simulace systémů Ing. Michal Dorda, Ph.D. 1 Základní pojmy Systém systémem rozumíme množinu prvků (příznaků) a vazeb (relací) mezi nimi, která jako celek má určité vlastnosti. Množinu

Více

Matematika pro geometrickou morfometrii

Matematika pro geometrickou morfometrii Matematika pro geometrickou morfometrii Václav Krajíček Vaclav.Krajicek@mff.cuni.cz Department of Software and Computer Science Education Faculty of Mathematics and Physics Charles University Přednáška

Více

Aplikovaná numerická matematika

Aplikovaná numerická matematika Aplikovaná numerická matematika 6. Metoda nejmenších čtverců doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních

Více

Fakulta elektrotechniky a komunikačních technologíı Ústav automatizace a měřicí techniky v Brně

Fakulta elektrotechniky a komunikačních technologíı Ústav automatizace a měřicí techniky v Brně Vysoké učení technické v Brně Fakulta elektrotechniky a komunikačních technologíı Ústav automatizace a měřicí techniky Algoritmy řízení topného článku tepelného hmotnostního průtokoměru Autor práce: Vedoucí

Více

Neuronové sítě v DPZ

Neuronové sítě v DPZ Univerzita J. E. Purkyně v Ústí nad Labem Fakulta životního prostředí Neuronové sítě v DPZ Seminární práce z předmětu Dálkový průzkum Země Vypracovali: Jan Lantora Rok: 2006 Zuzana Vašková Neuronové sítě

Více

Algoritmy a struktury neuropočítačů ASN - P10. Aplikace UNS v biomedicíně

Algoritmy a struktury neuropočítačů ASN - P10. Aplikace UNS v biomedicíně Aplikace UNS v biomedicíně aplikace v medicíně postup při zpracování úloh Aplikace UNS v medicíně Důvod: nalezení exaktnějších, levnějších a snadnějších metod určování diagnóz pro lékaře nalezení šetrnějších

Více

K možnostem krátkodobé předpovědi úrovně znečištění ovzduší statistickými metodami. Josef Keder

K možnostem krátkodobé předpovědi úrovně znečištění ovzduší statistickými metodami. Josef Keder K možnostem krátkodobé předpovědi úrovně znečištění ovzduší statistickými metodami Josef Keder Motivace Předpověď budoucí úrovně znečištění ovzduší s předstihem v řádu alespoň několika hodin má význam

Více

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY Jan Krejčí 31. srpna 2006 jkrejci@physics.ujep.cz http://physics.ujep.cz/~jkrejci Obsah 1 Přímé metody řešení soustav lineárních rovnic 3 1.1 Gaussova eliminace...............................

Více

5. Umělé neuronové sítě. neuronové sítě. Umělé Ondřej Valenta, Václav Matoušek. 5-1 Umělá inteligence a rozpoznávání, LS 2015

5. Umělé neuronové sítě. neuronové sítě. Umělé Ondřej Valenta, Václav Matoušek. 5-1 Umělá inteligence a rozpoznávání, LS 2015 Umělé neuronové sítě 5. 4. 205 _ 5- Model umělého neuronu y výstup neuronu u vnitřní potenciál neuronu w i váhy neuronu x i vstupy neuronu Θ práh neuronu f neuronová aktivační funkce _ 5-2 Neuronové aktivační

Více

Kombinatorická minimalizace

Kombinatorická minimalizace Kombinatorická minimalizace Cílem je nalézt globální minimum ve velké diskrétní množině, kde může být mnoho lokálních minim. Úloha obchodního cestujícího Cílem je najít nejkratší cestu, která spojuje všechny

Více

Regresní analýza 1. Regresní analýza

Regresní analýza 1. Regresní analýza Regresní analýza 1 1 Regresní funkce Regresní analýza Důležitou statistickou úlohou je hledání a zkoumání závislostí proměnných, jejichž hodnoty získáme při realizaci experimentů Vzhledem k jejich náhodnému

Více

Funkce - pro třídu 1EB

Funkce - pro třídu 1EB Variace 1 Funkce - pro třídu 1EB Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv využití výukového materiálu je povoleno pouze s odkazem na www.jarjurek.cz. 1. Funkce Funkce je přiřazení, které každému

Více

CVIČNÝ TEST 36. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

CVIČNÝ TEST 36. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 36 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST 1 Určete iracionální číslo, které je vyjádřeno číselným výrazem (6 2 π 4

Více

Asociativní sítě (paměti) Asociace známého vstupního vzoru s daným výstupním vzorem. Typická funkce 1 / 44

Asociativní sítě (paměti) Asociace známého vstupního vzoru s daným výstupním vzorem. Typická funkce 1 / 44 Asociativní paměti Asociativní sítě (paměti) Cíl učení Asociace známého vstupního vzoru s daným výstupním vzorem Okoĺı známého vstupního vzoru x by se mělo také zobrazit na výstup y odpovídající x správný

Více

Statistika. Regresní a korelační analýza Úvod do problému. Roman Biskup

Statistika. Regresní a korelační analýza Úvod do problému. Roman Biskup Statistika Regresní a korelační analýza Úvod do problému Roman Biskup Jihočeská univerzita v Českých Budějovicích Ekonomická fakulta (Zemědělská fakulta) Katedra aplikované matematiky a informatiky 2008/2009

Více

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s Kapitola 13 Kvadratické formy Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru f(x 1,..., x n ) = a ij x i x j, kde koeficienty a ij T. j=i Kvadratická forma v n proměnných

Více

Rozpoznávání písmen. Jiří Šejnoha Rudolf Kadlec (c) 2005

Rozpoznávání písmen. Jiří Šejnoha Rudolf Kadlec (c) 2005 Rozpoznávání písmen Jiří Šejnoha Rudolf Kadlec (c) 2005 Osnova Motivace Popis problému Povaha dat Neuronová síť Architektura Výsledky Zhodnocení a závěr Popis problému Jedná se o praktický problém, kdy

Více

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je

Více

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1 METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1 DOLOVÁNÍ V DATECH (DATA MINING) OBJEVUJE SE JIŽ OD 60. LET 20. ST. S ROZVOJEM POČÍTAČOVÉ TECHNIKY DEFINICE PROCES VÝBĚRU, PROHLEDÁVÁNÍ A MODELOVÁNÍ

Více

Katedra kybernetiky laboratoř Inteligentní Datové Analýzy (IDA) Katedra počítačů, Computational Intelligence Group

Katedra kybernetiky laboratoř Inteligentní Datové Analýzy (IDA) Katedra počítačů, Computational Intelligence Group Vytěžování dat Miroslav Čepek, Filip Železný Katedra kybernetiky laboratoř Inteligentní Datové Analýzy (IDA) Katedra počítačů, Computational Intelligence Group Evropský sociální fond Praha & EU: Investujeme

Více

Připomenutí co je to soustava lineárních rovnic

Připomenutí co je to soustava lineárních rovnic Připomenutí co je to soustava lineárních rovnic Příklad 2x 3y + z = 5 3x + 5y + 2z = 4 x + 2y z = 1 Soustava lineárních rovnic obecně Maticový tvar: a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a

Více

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice 9. Lineární diferenciální rovnice 2. řádu Cíle Diferenciální rovnice, v nichž hledaná funkce vystupuje ve druhé či vyšší derivaci, nazýváme diferenciálními rovnicemi druhého a vyššího řádu. Analogicky

Více

(Cramerovo pravidlo, determinanty, inverzní matice)

(Cramerovo pravidlo, determinanty, inverzní matice) KMA/MAT1 Přednáška a cvičení, Lineární algebra 2 Řešení soustav lineárních rovnic se čtvercovou maticí soustavy (Cramerovo pravidlo, determinanty, inverzní matice) 16 a 21 října 2014 V dnešní přednášce

Více

Náhodné (statistické) chyby přímých měření

Náhodné (statistické) chyby přímých měření Náhodné (statistické) chyby přímých měření Hodnoty náhodných chyb se nedají stanovit předem, ale na základě počtu pravděpodobnosti lze zjistit, která z možných naměřených hodnot je více a která je méně

Více

3. Vícevrstvé dopředné sítě

3. Vícevrstvé dopředné sítě 3. Vícevrstvé dopředné sítě! Jsou tvořeny jednou nebo více vrstvami neuronů (perceptronů). Výstup jedné vrstvy je přitom připojen na vstup následující vrstvy a signál se v pracovní fázi sítě šíří pouze

Více

7. Rozdělení pravděpodobnosti ve statistice

7. Rozdělení pravděpodobnosti ve statistice 7. Rozdělení pravděpodobnosti ve statistice Statistika nuda je, má však cenné údaje, neklesejte na mysli, ona nám to vyčíslí Jednou z úloh statistiky je odhad (výpočet) hodnot statistického znaku x i,

Více

Úvod do zpracování signálů

Úvod do zpracování signálů 1 / 25 Úvod do zpracování signálů Karel Horák Rozvrh přednášky: 1. Spojitý a diskrétní signál. 2. Spektrum signálu. 3. Vzorkovací věta. 4. Konvoluce signálů. 5. Korelace signálů. 2 / 25 Úvod do zpracování

Více

Matematické modelování dopravního proudu

Matematické modelování dopravního proudu Matematické modelování dopravního proudu Ondřej Lanč, Alena Girglová, Kateřina Papežová, Lucie Obšilová Gymnázium Otokara Březiny a SOŠ Telč lancondrej@centrum.cz Abstrakt: Cílem projektu bylo seznámení

Více

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu

Více

Základy navrhování průmyslových experimentů DOE

Základy navrhování průmyslových experimentů DOE Základy navrhování průmyslových experimentů DOE cílová hodnota V. Vícefaktoriální experimenty Gejza Dohnal střední hodnota cílová hodnota Vícefaktoriální návrhy experimentů počet faktorů: počet úrovní:

Více

5. Náhodná veličina. 2. Házíme hrací kostkou dokud nepadne šestka. Náhodná veličina nabývá hodnot z posloupnosti {1, 2, 3,...}.

5. Náhodná veličina. 2. Házíme hrací kostkou dokud nepadne šestka. Náhodná veličina nabývá hodnot z posloupnosti {1, 2, 3,...}. 5. Náhodná veličina Poznámka: Pro popis náhodného pokusu jsme zavedli pojem jevového pole S jako množiny všech možných výsledků a pravděpodobnost náhodných jevů P jako míru výskytů jednotlivých výsledků.

Více

DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ

DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast CZ.1.07/1.5.00/34.0963 IV/2 Inovace a zkvalitnění výuky směřující k rozvoji matematické gramotnosti

Více

NÁHODNÝ VEKTOR. 4. cvičení

NÁHODNÝ VEKTOR. 4. cvičení NÁHODNÝ VEKTOR 4. cvičení Náhodný vektor Náhodným vektorem rozumíme sloupcový vektor X=(X, X,, X n ) složený z náhodných veličin X, X,, X n, který je charakterizován sdruženým rozdělením pravděpodobnosti.

Více

Diferenciální rovnice

Diferenciální rovnice Diferenciální rovnice Průvodce studiem Touto kapitolou se náplň základního kurzu bakalářské matematiky uzavírá. Je tomu tak mimo jiné proto, že jsou zde souhrnně využívány poznatky získané studiem předchozích

Více

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují 1. u + v = v + u, u, v V 2. (u + v) + w = u + (v + w),

Více

Jana Dannhoferová Ústav informatiky, PEF MZLU

Jana Dannhoferová Ústav informatiky, PEF MZLU Počítačová grafika Křivky Jana Dannhoferová (jana.dannhoferova@mendelu.cz) Ústav informatiky, PEF MZLU Základní vlastnosti křivek křivka soustava parametrů nějaké rovnice, která je posléze generativně

Více

Jaroslav Tuma. 8. února 2010

Jaroslav Tuma. 8. února 2010 Semestrální práce z předmětu KMA/MM Odstraňování šumu z obrazu Jaroslav Tuma 8. února 2010 1 1 Zpracování obrazu Zpracování obrazu je disciplína zabývající se zpracováním obrazových dat různého původu.

Více

Fakulta chemicko-technologická Katedra analytické chemie. 3.2 Metody s latentními proměnnými a klasifikační metody

Fakulta chemicko-technologická Katedra analytické chemie. 3.2 Metody s latentními proměnnými a klasifikační metody Fakulta chemicko-technologická Katedra analytické chemie 3.2 Metody s latentními proměnnými a klasifikační metody Vypracoval: Ing. Tomáš Nekola Studium: licenční Datum: 21. 1. 2008 Otázka 1. Vypočtěte

Více

Neuronové sítě (11. přednáška)

Neuronové sítě (11. přednáška) Neuronové sítě (11. přednáška) Machine Learning Naučit stroje se učit O co jde? Máme model výpočtu (t.j. výpočetní postup jednoznačně daný vstupy a nějakými parametry), chceme najít vhodné nastavení parametrů,

Více

Funkce a lineární funkce pro studijní obory

Funkce a lineární funkce pro studijní obory Variace 1 Funkce a lineární funkce pro studijní obory Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Funkce

Více

0.1 Úvod do lineární algebry

0.1 Úvod do lineární algebry Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Lineární rovnice o 2 neznámých Definice 011 Lineární rovnice o dvou neznámých x, y je rovnice, která může být vyjádřena ve tvaru ax + by = c, kde

Více

Iterační metody řešení soustav lineárních rovnic. 27. prosince 2011

Iterační metody řešení soustav lineárních rovnic. 27. prosince 2011 Iterační metody řešení soustav lineárních rovnic Michal Čihák 27. prosince 2011 Přímé metody řešení soustav lineárních rovnic V přednáškách z lineární algebry jste se seznámili s několika metodami řešení

Více

Komplexní čísla, Kombinatorika, pravděpodobnost a statistika, Posloupnosti a řady

Komplexní čísla, Kombinatorika, pravděpodobnost a statistika, Posloupnosti a řady Předmět: Náplň: Třída: Počet hodin: Pomůcky: Matematika Komplexní čísla, Kombinatorika, pravděpodobnost a statistika, Posloupnosti a řady 4. ročník a oktáva 3 hodiny týdně PC a dataprojektor, učebnice

Více

Vzdělávací oblast: Matematika a její aplikace Vzdělávací obor: Matematický kroužek pro nadané žáky ročník 9.

Vzdělávací oblast: Matematika a její aplikace Vzdělávací obor: Matematický kroužek pro nadané žáky ročník 9. Vzdělávací oblast: Matematika a její aplikace Vzdělávací obor: Matematický kroužek pro nadané žáky ročník 9. Školní rok 2013/2014 Mgr. Lenka Mateová Kapitola Téma (Učivo) Znalosti a dovednosti (výstup)

Více

Aplikovaná numerická matematika - ANM

Aplikovaná numerická matematika - ANM Aplikovaná numerická matematika - ANM 3 Řešení soustav lineárních rovnic iterační metody doc Ing Róbert Lórencz, CSc České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových

Více

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti Kapitola 5 Vektorové prostory V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti operací sčítání a násobení

Více

Třídy složitosti P a NP, NP-úplnost

Třídy složitosti P a NP, NP-úplnost Třídy složitosti P a NP, NP-úplnost Cíle přednášky: 1. Definovat, za jakých okolností můžeme problém považovat za efektivně algoritmicky řešitelný. 2. Charakterizovat určitou skupinu úloh, pro které není

Více

Západočeská univerzita v Plzni. Fakulta aplikovaných věd. Ivana Kozlová. Modely analýzy obalu dat

Západočeská univerzita v Plzni. Fakulta aplikovaných věd. Ivana Kozlová. Modely analýzy obalu dat Západočeská univerzita v Plzni Fakulta aplikovaných věd SEMESTRÁLNÍ PRÁCE Z PŘEDMĚTU MATEMATICKÉ MODELOVÁNÍ Ivana Kozlová Modely analýzy obalu dat Plzeň 2010 Obsah 1 Efektivnost a její hodnocení 2 2 Základní

Více

NG C Implementace plně rekurentní

NG C Implementace plně rekurentní NG C Implementace plně rekurentní neuronové sítě v systému Mathematica Zdeněk Buk, Miroslav Šnorek {bukz1 snorek}@fel.cvut.cz Neural Computing Group Department of Computer Science and Engineering, Faculty

Více

AVDAT Nelineární regresní model

AVDAT Nelineární regresní model AVDAT Nelineární regresní model Josef Tvrdík Katedra informatiky Přírodovědecká fakulta Ostravská univerzita Nelineární regresní model Ey i = f (x i, β) kde x i je k-členný vektor vysvětlujících proměnných

Více

Úvod do mobilní robotiky NAIL028

Úvod do mobilní robotiky NAIL028 md at robotika.cz http://robotika.cz/guide/umor08/cs 11. listopadu 2008 1 2 PID Sledování cesty Modely kolových vozidel (1/5) Diferenční řízení tank b Encoder Motor Centerpoint Motor Encoder Modely kolových

Více

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC .6. VLASTNÍ ČÍSLA A VEKTORY MATIC V této kapitole se dozvíte: jak jsou definována vlastní (charakteristická) čísla a vektory čtvercové matice; co je to charakteristická matice a charakteristický polynom

Více