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

Transkript

Vizualizace jako nástroj studia chování modelů přírodních systémů
Č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
ii
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
iv
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 20.1. 2006
.............................................................
v
vi
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
viii
Obsah
1 Motivace
1
I
3
Teorie
2 Neuronové sítě
4
2.1
Inspirace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.2
Umělá neuronová síť . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.3
Učení zpětným šířením signálu - BackPropagation . . . . . . . . . . . . .
5
2.4
Group Method of Data Handling (GMDH) . . . . . . . . . . . . . . . . .
6
2.5
Group of Adaptive Models Evolution (GAME) . . . . . . . . . . . . . . .
8
2.6
Skupinové učení (Ensemble learning) . . . . . . . . . . . . . . . . . . . .
10
3 Genetické algoritmy
11
3.1
Inspirace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.2
Analogie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.3
Algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.4
Fitness funkce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.5
Elitismus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.6
Diverzita populace a její zachování . . . . . . . . . . . . . . . . . . . . .
13
4 Vizualizace dat
II
15
4.1
Scatterplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
4.2
Scatterplot matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
4.3
Další vizualizační techniky mnohadimenzionálních dat . . . . . . . . . . .
16
Vlastní práce
17
5 Cíle mé práce
18
6 Nové pohledy na neuronové sítě
19
6.1
Vizualizace modelů neuronových sítí . . . . . . . . . . . . . . . . . . . .
19
6.1.1
Vizualizace modelů řešící klasifikační úlohu . . . . . . . . . . . . .
19
6.1.2
Zobrazení reálných dat . . . . . . . . . . . . . . . . . . . . . . . .
20
6.1.3
Vizualizace skupiny modelů řešící klasifikační úlohu . . . . . . . .
23
ix
6.2
Násobení odezev modelů neuronových sítí . . . . . . . . . . . . . . . . .
7 Vyhledávání zajímavých oblastí chovaní modelů
23
25
7.1
Aplikace genetického algoritmu . . . . . . . . . . . . . . . . . . . . . . .
27
7.2
Zakódování chromosomu . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
7.3
Fitness funkce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
7.4
Selekce chromosomu . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
7.5
Křížení chromosomů . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
7.6
Mutace chromosomu . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
8 Experimenty
8.1
8.2
Uměle vytvořená data s malou dimenzí . . . . . . . . . . . . . . . . . . .
32
8.1.1
Fitness funkce . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
8.1.2
Diverzita populace . . . . . . . . . . . . . . . . . . . . . . . . . .
37
Uměle vytvořená data s dimenzí vstupního vektoru tři
. . . . . . . . . .
39
Ohodnocení významnosti vstupních parametrů (feature ranking) .
41
Reálná data - spotřeba energie budovy . . . . . . . . . . . . . . . . . . .
43
8.3.1
44
8.2.1
8.3
32
Ohodnocení významnosti vstupních parametrů (feature ranking) .
9 Implementace
46
9.1
Vizualizace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
9.2
Rozhraní pro genetické algoritmy . . . . . . . . . . . . . . . . . . . . . .
47
9.3
Třída Population . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
9.4
Vizualizační třída GA a konfigurační třída GAConfig pro aplikaci GAME
48
9.5
Aplikace navrženého rozhraní Chromosome . . . . . . . . . . . . . . . . .
49
9.6
Rozhraní tříd GA a GAConfig . . . . . . . . . . . . . . . . . . . . . . . .
49
10 Další práce
51
11 Závěr
52
12 Literatura
55
x
Seznam obrázků
2.1
Umělý neuron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.2
Umělá neuronová síť . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.3
Učení neuronové sítě s učitelem . . . . . . . . . . . . . . . . . . . . . . .
6
2.4
GMDH síť . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.5
Srovnání MIA GMDH sítě se sítí GAME . . . . . . . . . . . . . . . . . .
9
2.6
Schéma Bagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.1
Schéma genetického algoritmu . . . . . . . . . . . . . . . . . . . . . . . .
12
3.2
Diverzita populace - Niching . . . . . . . . . . . . . . . . . . . . . . . . .
13
4.1
Scaterrplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
4.2
Scatterplot matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
6.1
Schématická ukázka vizualizace klasifikačního modelu . . . . . . . . . . .
20
6.2
Vizualizace klasifikačního modelu Iris setosa . . . . . . . . . . . . . . . .
20
6.3
Vizualizace klasifikačního modelu Iris versicolor . . . . . . . . . . . . . .
21
6.4
Vizualizace klasifikačního modelu Iris virginica . . . . . . . . . . . . . . .
21
6.5
Vizualizace klasifikačního modelu spirál . . . . . . . . . . . . . . . . . . .
22
6.6
Vizualizace klasifikačního modelu Iris a učících dat . . . . . . . . . . . .
22
6.7
Vizualizace několika klasifikačních modelů Iris versicolor . . . . . . . . .
23
6.8
Vizualizace násobení odezev modelů pro jednotlivé třídy . . . . . . . . .
24
6.9
Vizualizace odezev modelů Iris pro všechny třídy . . . . . . . . . . . . .
24
7.1
Podmínky pro zajímavou oblast . . . . . . . . . . . . . . . . . . . . . . .
25
7.2
Zakódování chromosomu . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
7.3
Vliv základu exponentu c na selekční operátor (změnu selekčního tlaku) .
29
7.4
Porovnání pravděpodobností selekce . . . . . . . . . . . . . . . . . . . . .
30
7.5
Křížení chromosomů . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
8.1
Uměle vygenerovaná učící data a odezvy modelů . . . . . . . . . . . . . .
32
8.2
Závislost fitness funkce na xstart a xvelikost . . . . . . . . . . . . . . . . . .
34
8.3
Řezy grafem fitness funkce . . . . . . . . . . . . . . . . . . . . . . . . . .
34
8.4
Porovnání dvou typů fitness a) součet b) součin . . . . . . . . . . . . . .
35
8.5
Řezy grafem fitness funkce v součinovém tvaru . . . . . . . . . . . . . . .
35
8.6
Transformační funkce . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
8.7
Porovnání fitness funkcí . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
xi
8.8
Závislost poměrné velikosti fitness funkcí . . . . . . . . . . . . . . . . . .
36
8.9
Vývoj diverzity populace bez použití metody Niching . . . . . . . . . . .
37
8.10 Vývoj diverzity populace s použitím metody Niching . . . . . . . . . . .
38
8.11 Nejlepší nalezené chromosomy jednotlivých druhů zleva doprava podle klesající hodnoty fitness funkce . . . . . . . . . . . . . . . . . . . . . . . . .
39
8.12 Definiční obor množiny učících dat . . . . . . . . . . . . . . . . . . . . .
39
8.13 Diverzita populace pro jednotlivé vstupní parametry x, y a z . . . . . . .
40
8.14 Průběhy jednotlivých parametrů z funkce generující trénovací data . . . .
41
8.15 Nejlepší chromosomy pro jednotlivé vstupní parametry x, y a z v generaci
10 a 50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
8.17 Porovnání významnosti vstupních parametrů genetického algoritmu a
GAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
9.1
Rozhraní konfigurační třídy . . . . . . . . . . . . . . . . . . . . . . . . .
50
9.2
Průběh genetického algoritmu . . . . . . . . . . . . . . . . . . . . . . . .
50
xii
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í.
2
KAPITOLA 1. MOTIVACE
Část I
Teorie
3
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
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í.
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ě
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ě
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:
2
r =
Pk
i=1
(yi − ŷi )2
,
2
i=1 yi
Pk
kde yi 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
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.
10
2.6
KAPITOLA 2. NEURONOVÉ SÍTĚ
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
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
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.
KAPITOLA 3. GENETICKÉ ALGORITMY
3.4
13
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
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
d (~x, ~y ) =
n
X
(xi − yi )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
aplikuj operátor křížení na p1 a p2 a vygeneruj
aplikuj operátor mutace na c1,c2
jestliže [ d(p1,c1) + d(p2,c2) ] > [d(p1,c2) +
jestliže f(c1) > f(p1) potom vyměň v populaci
jestliže f(c2) > f(p2) potom vyměň v populaci
jinak
jestliže f(c2) > f(p1) potom vyměň v populaci
jestliže f(c1) > f(p2) potom vyměň v populaci
p1,p2
potomky c1,c2
d(p2,c1) ]
p1 za c1
p2 za c2
p1 za c2
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
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,
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 pdimenzioná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.
Část II
Vlastní práce
17
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.
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í.
6.1.1
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 = (x1 , x2 , ..., xn ), kde xi ∈ h0; 1i
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 h0; 1i, 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 h0; 1i 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 xi a xj 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 (x1 , ..., xi , ..., xj , ...., xn ) , kde xi , xj ∈ h0; 1i , (k 6= 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 10 ∗ 10 =
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í
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 6= 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).
6.1.2
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
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).
s2 =
k=n
X
(dk − xk )2
k=0
k 6= i, j
kde i a j jsou indexy vstupních parametrů, které definují zobrazovaný řez. Pro určení
22
KAPITOLA 6. NOVÉ POHLEDY NA NEURONOVÉ SÍTĚ
velikosti l značky je použit vztah:



c, s = 0
0<s≤k
l=

nezobrazeno, s > k
c
,
c+s
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 6.1.1 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
KAPITOLA 6. NOVÉ POHLEDY NA NEURONOVÉ SÍTĚ
6.1.3
23
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 yi ∈ h0; 1i, pro i ∈ h0; mi, je odezva celé skupiny
dána:
y0 =
m
Y
yi
i=1
Výsledná odezva je opět v intervalu y 0 ∈ h0; 1i.
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.
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í
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 = (x1 , x2 , ..., xn ), kde xi ∈ h0; 1i
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 yi , která je normalizovaná do
intervalu h0; 1i.
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 xj , 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é yi (xj ), kde xj ∈ hxstart ; xstart + xvelikost i
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ů xstart , xvelikost
určující oblast, aby odezvy yi modelů splňovaly následující podmínky pro „zajímavou
oblastÿ:
1. odezvy modelů jsou na intervalu hxstart ; x + xvelikost i 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
hxstart ; x + xvelikost i je dána:
p=
1
xstart +x
Xvelikost
xvelikost
j=xstart
arg max (fi (j)) − arg min (fi (j))
0<i≤m
0<i≤m
2. nalezená oblast je co největší (maximalizace parametru xvelikost )
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 xj jsou
odezvy modelů podobné.
3. změna v chování průměrné odezvy modelů na nalezeném intervalu hxstart ; xstart +
xvelikost i
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
ȳ(xj ) =
m
1 X
yi (xj ), kde xi ∈ h0; 1i
m i=1
kde m je počet zkoumaných modelů a yi 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
yvelikost = arg max (ȳ(t)) − arg min (ȳ(t)) , kde xstart < t ≤ xvelikost
KAPITOLA 7. VYHLEDÁVÁNÍ ZAJÍMAVÝCH OBLASTÍ CHOVANÍ MODELŮ 27
7.1
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 hxstart ; xstart +
xvelikost i. 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
h0; 1i jsou odezvy modelů vyhodnocovány. Pro které hodnoty vstupního parametru xj
jsou odezvy modelů zkoumány definují zbylé dvě složky vektoru chromosomu xstart a
xvelikost , které musí splňovat podmínky:
xstart ≥ 0 a xstart + xvelikost ≤ 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 xvelikost , která je jedním z parametrů, který genetický algoritmus nastavuje.
2. Další částí je změna chování modelů yvelikost 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
f itness(p, xvelikost , yvelikost )
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 8.
7.4
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
f itness(i)
pi = Pm
j=0 f itness(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:
ci
pi = Pm
i=1
ci
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í:
r=
i
X
cj
Pm
j=1
k=1
ck
Z této rovnosti plyne:
i=
ln (r (cm − 1) + 1)
ln c
a jelikož index chromosomu musí být celé číslo, je index roven bic.
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:
pi =
ai + bi
, 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.
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
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í.
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 ∈ h0; 1i a jeden výstupní
parametr y ∈ h0; 1i. 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ů
8.1.1
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 xstart a xvelikost .
První tvar fitness funkce, který jsem použil, byl:
f itness1 = xvelikost + yvelikost +
1
p
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ě:
f itness2 = x2velikost + yvelikost +
1
p
f itness3 = xvelikost + yvelikost +
1
p2
2
f itness4 = xvelikost + yvelikost
+
1
p
f itness5 = exvelikost + yvelikost +
1
p
f itness6 = xvelikost + eyvelikost +
1
p
Na obrázku 8.2 jsou zobrazeny grafy zobrazující velikost fitness funkce v závislosti na
parametrech xstart a xvelikost . 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:
f itness = xvelikost ∗ yvelikost ∗
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 f itnesssoucet je
vidět, že dobře ohodnocuje i takové chromosomy, které mají malou hodnotu xvelikost .
Toto chování ovšem není žádoucí, protože nesplňuje podmínku maximalizace parametru
xvelikost , která je popsána v kapitole 7. Druhá fitness funkce f itnesssoucin již lépe ohodnocuje chromosomy, které mají parametr xvelikost větší. Na grafu funkce f itnesssoucin 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 f itnesssoucet
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
, kde c ∈ (0; 1)
1−c
34
KAPITOLA 8. EXPERIMENTY
Obrázek 8.2: Závislost fitness funkce na xstart a xvelikost
Obrázek 8.3: Řezy grafem fitness funkce pro různé hodnoty parametru xstart 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 xstart = 0.4 a hodnoty fitness funkce v poměru se
svým maximem pro jednotlivé hodnoty parametru c.
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
xstart a typy fitness funkce
Obrázek 8.6: Transformační funkce pro různé hodnoty parametru základu exponentu c
36
KAPITOLA 8. EXPERIMENTY
Obrázek 8.7: Porovnání fitness funkcí s různým koeficientem c transformace parametru
xvelikost
Obrázek 8.8: Závislost poměrné velikosti fitness funkce s různým koeficientem c pro
xstart = 0.4
KAPITOLA 8. EXPERIMENTY
8.1.2
37
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
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.
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
, pro x, y, z ∈ (0; 1)
4
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ů bi = [x, y, z] s poloměry ri , které určovaly oblast ve tvaru koule:
x2i + yi2 + zi2 ≤ ri2
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
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
10
10
10
50
50
50
x
0.512
0.059
0.512
0.195
y
0.850
0.479
0.995
0.687
z xstart xvelikost ystart yvelikost f itness
0.239 0.18
0.58 0.28
0.58
1.02
0.995 0.38
0.35 0.49
0.4
1.00
- 0.12
0.75 0.18
0.5
1.09
0.598 0.12
0.75 0.18
0.5
4.39
0.995
0.0
0.75 0.57
0.14
2.48
0
0.92 0.56
0.2
4.18
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
KAPITOLA 8. EXPERIMENTY
8.2.1
41
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:
f itnessi
pi = Pn
,
j=1 f intessj
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
42
KAPITOLA 8. EXPERIMENTY
Obrázek 8.15: Nejlepší chromosomy pro jednotlivé vstupní parametry x, y a z v generaci
10 a 50
KAPITOLA 8. EXPERIMENTY
8.3
43
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
9
1
89
200
81.9 0.0184
0
7.62 496.07
7.2
9
1
89
300
80.7 0.0187
0
7.94 497.06
7.1
9
1
89
400
79.7 0.0194
0
7.72 496.67
7.1
9
1
89
500
79 0.0197
0.1
6.08 494.54
7.1
9
1
89
600
78.9 0.0199
0.1
5.68 498.09
7
9
1
89
700
78.5 0.0202
0.5
3.87 516.96
7
9
1
89
800
78.7 0.0207
47.5
5.34 589.44
7
wbhw
0.4
0.5
0.5
0.6
0.6
0.6
0.6
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 xstart ystart xvelikost yvelikost f itness
wbcw
0.2
0.3 0.12 0.06 0.24
0.94
0.61
17.01
wbe
0.43 0.09 0.12 0.03 0.11
0.9
0.43
3.96
wbhw
0.23 0.23 0.57 0.05 0.06
0.953
0.79
38.29
wbcw
0.74
- 0.47 0.17 0.06 0.65
0.94
0.19
8.93
wbe
0.71
- 0.08 0.74 0.19
0.6
0.75
0.06
1.8
wbhw
0.84
- 0.23 0.58
0.0 0.07
1
0.05
2.75
wbcw
0.57
0.33
0.2 0.02 0.57
0.98
0.03
2.51
wbe
0.57
0.21
- 0.41
0.0 0.35
0.94
0.31
4.96
wbhw
0.71
0.67
0.6
0.0 0.16
1.0
0.01
1.33
wbcw
0.66
0.26 0.92
- 0.01 0.64
0.98
0.05
2.58
wbe
0.85
0.45 0.395
- 0.06 0.64
0.9
0.22
5.18
wbhw
0.6
0.36 0.31
0.0 0.29
1.0
0.04
1.96
Tabulka 8.4: Nejlepší nalezené chromosomy
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
8.3.1
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ů.
KAPITOLA 8. EXPERIMENTY
wbcw
parametr GA GAME
temp
55%
41%
humid
29%
31%
solar
8%
11%
wind
8%
15%
45
GA
25%
11%
31%
33%
wbe
wbhw
GAME GA GAME
26% 86%
51%
9% 6%
30%
41% 3%
13%
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
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) ∈
h0; 1i pro x, y ∈ h0; 1i 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 6.1.2.
• 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. 6.1.2) pro maximální velikost značky.
KAPITOLA 9. IMPLEMENTACE
47
• public double getMaxKlobouk();
Nastavení konstanty k (viz. 6.1.2) 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 h0, 1i, 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();
}
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 h0; 1i. 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 h0; 1i. Její hodnota udává,
jak maximálně velká může mutace chromosomu být.
• velikost křížení, která se zadává hodnotou z intervalu h0; 1i. 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í,
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.
50
KAPITOLA 9. IMPLEMENTACE
Obrázek 9.1: Rozhraní konfigurační třídy
Obrázek 9.2: Průběh genetického algoritmu
KAPITOLA 10. DALŠÍ PRÁCE
51
10 Další práce
Při implementaci této práce se ukázalo, že některé problémy by se daly řešit jiným
způsobem a bylo by zajímavé vyzkoušet, jakých výsledků by se tímto jiným postupem
dalo dosáhnout. Bohužel jsem neměl dostatek času k jejích podrobnému rozpracování. V
této kapitole uvádím tyto nápady a postřehy pro případ dalšího vývoje.
V další práci by bylo zajímavé implementovat jiný výpočet vzdálenosti datového vektoru
od aktuálního zobrazovaného řezu než nyní implementované Euklidovy vzdálenosti uvedené v kapitole 6.1.2. Do vypočtené vzdálenosti by měl každý vstupní parametr přispívat
podle své významnosti. Významnost každého vstupního parametru by definovala velikost
změny odezvy modelu, k jaké dojde mezi zobrazovaným řezem a polohou datového vektoru. Pokud by tedy tato změna byla malá, což znamená, že mezi zobrazovaným řezem a
datovým vektorem nedochází ke změně klasifikační třídy, byla by vzdálenost nulová. Na
druhou stranu, pokud by byla změna velká a došlo by tedy ke změně klasifikační třídy,
odpovídala by vzdálenost právě této změně.
Pro další vylepšení fitness funkce by mohlo být zajímavé implementovat jiný výpočet
parametru yvelikost uvedeného v kapitole 7. Současný výpočet znevýhodňuje oblasti, ve
kterých nedochází k velké změně průměrné odezvy skupiny modelů, ale zároveň se odezva hodně mění. Z toho důvodu by bylo výhodnější spíše než rozdíl maxima a minima
průměrné odezvy skupiny modelů použít výpočet integrálu v dané oblasti.
Implementovaný modul pro vyhledávání zajímavých oblastí by se dal upravit pro automatické generování zprávy o naučenosti modelu. Výstupem takové akce by byl dokument,
který by obsahoval nejlepší nalezené oblasti pro každý vstupní parametr a poskytnul by
tak snadný a rychlý náhled na právě vytvořenou skupinu modelů.
Cely koncept by se dal rozšířit i na problemy modelů rečících klasifikační úlohy. V tomto
případě by bylo nutné opět experimentalne zjistit nejvhodnější tvar fitness funkce a
nastavení parametrů genetického algoritmu.
52
KAPITOLA 11. ZÁVĚR
11 Závěr
V této práci jsem prostudoval teorii neuronových sítí, vizualizace vícerozměrných dat,
geneticke algoritmy a techniky vizualizace chování modelů přírodních systémů reprezentovaných neuronovou sítí. Jako zdroj modelů přírodních systémů mi sloužila aplikace
GAME [4], jejímž autorem je vedoucí mé diplomové práce Ing. Pavel Kordík.
Do aplikace GAME jsem integroval vizualizační moduly pro studium chování modelu a
ověřování jeho kvality. Moduly jsou navrženy tak, aby respektovali mnohadimenzionální
podstatu problemu. V práci jsem také implementoval niching genetický algoritmus
zajišťující automatické nalezení zajímavých oblastí. Experimentoval jsem s parametry
a nastavením genetického algoritmu, až se mi ho povedlo vyladit tak, že je úspěšně
nasaditelný na modely reálných dat. Vedlejším produktem je i možnost inteligentniho
určování významnosti vstupnich parametrů z hodnoty nejlepší dosažené fitness
funkce.
V první části mé práce se věnují vizualizaci modelů řešících úlohu klasifikace. V rámci
práce jsem navrhnul a implementoval vizualizační modul pro aplikaci GAME umožňující
vizualizaci a následné studium chování modelů. Modul umožňuje vizualizaci odezvy
jednoho modelu v závislosti na dvou vstupních parametrech, které určují řez mnohadimenzionálním prostorem, ve kterém má model definovanou odezvu. Jako další kvalitu pro
studium modelu jsem implementoval vizualizaci datových vektorů trénovacích dat
pro vizuální kontrolu správnosti odezvy modelu. Pro správnou interpretaci vzdálenosti
datových vektorů od studovaného řezu jsem použil Euklidovu vzdálenost.
Pro komplexnější pohled na modely a studovananá data se pohled na odezvu modelu
v závislosti na dvou parametrech stal nedostatečným. Proto jsem implementoval modul
ScatterplotMatrix, který stejnou metodou jako pro dva vybrané vstupní parametry,
vizualizuje odezvy modelu pro všechny kombinace vstupních parametrů.
Jelikož aplikace GAME vytváří vybranou skupinu modelů, kde jsou všechny modely naučeny pro řešení stejného problému, věnoval jsem se dále vizualizaci odezev více modelů
do jednoho grafu. Používal jsem stejné postupy jako při vizualizaci jednoho modelu. Díky
snadné implementaci průhlednosti v prostředí jazyka JAVA nebyla modifikace již stávajícího modulu obtížná. Dalším krokem byla implementace násobení odezev modelů
klasifikujících stejnou třídu dat. Tento způsob vizualizace v kombinaci s vizualizací datových vektorů učících dat pomohl ukázat, zda kombinace modelů přesněji klasifikuje
správné oblasti dat.
V druhé části diplomové práce jsem implementoval algoritmus na vyhledávání zajímavých oblastí chování skupiny regresních modelů neuronových sítí. Pro genetický
algoritmus jsem definoval podmínky, které popisují zajímavou oblast chování modelů.
Genetický algoritmus jsem implementoval zcela obecně. Experimentování se díky obecné
implementaci značně zjednodušilo.
V rámci experimentů jsem se snažil definovat tvar fitness funkce, která by co nejlépe
popisovala zajímavou oblast. Pro ověření správnosti navržené fitness funkce jsem vygeneroval jednoduchá data, na kterých se snadno dalo ověřit její chování. Stanovení správného
tvaru fitness funkce se ukázalo jako největší problém. Hodnotu fitness funkce ovlivňovaly
i parametry, které nastavovaly důležitost jednotlivých podmínek, ze kterých se fitness
funkce skládá. Experimentoval jsem s transformací parametru ovlivňující velikost nale-
KAPITOLA 11. ZÁVĚR
53
zené oblasti. Po stanovení tvaru fitness funkce, jsem se věnoval experimentů s parametry
genetického algoritmu. Experimentoval jsem typem selekčního operátoru a s nastavením
selekčního tlaku.
V další části jsem se snažil o implementaci metody Niching pro zachování diverzity populace. Tato technika by měla zajistit, že pro jednu skupinu modelů bude nalezeno nejen
nejoptimálnější řešení, ale také další suboptimální řešení, které také splňují podmínky
pro zajímavou oblast chování modelů. Abych mohl tuto techniku implementovat, musel
jsem změnit stávající genetický algoritmus. Na skupině modelů vytvořených na umělých
datech jsem poté srovnával nalezená řešení s použitím klasického genetického algoritmu
a s použitím metody pro zachování diverzity populace. Pro výpočet diverzity v populaci bylo třeba definovat způsob výpočtu odlišnosti dvou řešení (chromosomů). Pro
tento výpočet jsem použil Euklidovu vzdálenost. Abych mohl sledovat vývoj diverzity
v populaci a následně snadno vyhledat nejlepší a zároveň nejodlišnější řešení v populaci, vytvořil jsem matici vzdáleností, která zobrazuje vzájemnou vzdálenost mezi všemi
řešeními. Metoda se ukázala jako funkční a povedlo se s její pomocí zachovat v populaci i další řešení, která mají menší ohodnocení fitness funkcí. Diplomová práce obsahuje
několik obrázků zachycujících vývoj diverzity populace v jednotlivých generacích.
Pro další otestování genetického algoritmu jsem vytvořil umělá trénovací data, která
mají větší dimenzi vektoru vstupních parametrů a stavový prostor, ve kterém je odezva
vytvořených modelů definována, je větší a tím je pro genetický algoritmus náročnější
vyhledat optimální řešení. I se složitějšími daty si mnou navržený algoritmus poradil
a vyhledal oblasti, ve kterých odezva většiny modelů odpovídala předpisu funkce, ze
kterého byla vytvořena množina učících dat. Aplikace metody pro zachování diverzity
populace v tomto případě nenalezla další suboptimální řešení a algoritmus konvergoval
vždy jen do jednoho řešení.
V rámci experimentů jsem výše zmíněné techniky použil i na reálná data. Souboru
dat, který jsem použil, obsahuje údaje o spotřebě elektrické energie a horké a studené
vody v závislosti na několika parametrech. Nalezené oblasti odpovídají předpokládaným
závislostem v datech.
Implementované moduly, které spolupracují s aplikací GAME, při prováděných experimentech pracovaly bez chyb a díky mnoha způsobům exportu dat bylo možné pohodlně
zpracovávat a analyzovat průběh genetického algoritmu a ověřovat správnost prováděných prováděných výpočtů.
Mnou implementované moduly našly uplatnění a usnadňují další výzkum modelů přírodních systémů realizovaných pomocí neuronových sítí v aplikaci GAME.
54
KAPITOLA 11. ZÁVĚR
KAPITOLA 12. LITERATURA
55
12 Literatura
[1] ŠNOREK M. Neuronové
ISBN 80-01-02549-7
sítě
a
neuropočítače,
ČVUT,
Praha,
2004,
[2] HANSEN L. K.; SALAMON P. Neural network ensembles, IEEE Trans. Pattern Anal.
Machine Inteligence, 1990
[3] ANDERSON D., McNEIL G. Artificial Neural Networks Technology, 1992,
http://www.dacs.dtic.mil/techs/neural/
[4] KORDÍK P. GAME - Group of Adaptive Models Evolution, ČVUT, 2005
[5] UCI Machine Learning Repository, UCI Machine Learning Repository Content Summary, WWW http://www.ics.uci.edu/~mlearn/MLSummary.html
[6] WONG P. Ch.; BERGERON R. D. 30 Years of Multidimensional Multivariate Visualization, Department of Computer Science University of New Hampshire
[7] PRECHELT L. PROBEN1 - A Set of Benchmarks and Benchmarking Rules for Neural Network Training Algorithms, Fakultät für Informatik, Universität Karlsruhe, 1994
[8] MAHFOUD S. W. Niching methods for genetic algorithms, Doctoral dissertation,
IlliGAL Rep.95001, Urbana U. of Illinois, Illinois Genetic Algorithms Lab, 1995.
[9] ASIMOV D. The grand tour: A tool for viewing multidimensional data., SIAM Journal on Scientific and Statistical Computing, 6(1):128-143
[10] STANLEY K. Efficient Evolution of Neural Networks Through Complexification,
Ph.D. Thesis, Department of Computer Sciences, The University of Texas at Austin,
2004
[11] ANKERST M. Visual Data Mining with Pixel-oriented Visualization Techniques,
The Boeing Company, Seatle, 2001.
[12] ANKERST M. Visual Data Mining,Ph.D. thesis, University of Munich, published
by www.dissertation.de, 2000
[13] OŠMERA P. Genetické algoritmy a jejich aplikace, Vysoké učení technické v Brně,
Fakulta srojního inženýrství, Brno, Prosinec 2001
[14] KORDÍK P.; Šnorek M. Ensemble Techniques for Credibility Estimation of GAME
Models, Department of Computer Science and Engineering, Czech Technical University, Prague

Podobné dokumenty

Algoritmy pro optimalizaci sítí GAME Miroslav Janošík

Algoritmy pro optimalizaci sítí GAME Miroslav Janošík Tato práce se zabývá problémem optimalizačních úloh. Konkrétně se jedná o optimalizaci jednotek neuronové sítě GAME. Součástí práce je teoretický rozbor problému, kde jsou popsány některé z optimal...

Více

Velkou naural tit

Velkou naural tit – Spočti f(x) pro každé x z P(t) – Opakuj n/2 krát: • selekcí vyber pár rodičů x, y z P(t) • s pravděpodobností pC aplikuj křížení na x, y • s pravděpodobností pM mutuj každý bit x, y • Vlož x, y d...

Více

Počítačová síť a internet — cvičení

Počítačová síť a internet — cvičení uživatelÿ, musíme svou práci s čísly alespoň částečně přizpůsobit tomuto stroji. Takže kde a jak se u počítačů a jiných výpočetních zařízení s jinými číselnými soustavami setkáváme: • binární (dvoj...

Více

Rozvojový projekt na rok 2011 - Helpdesk

Rozvojový projekt na rok 2011 - Helpdesk Vyměněné řídící jednotky přístupového systému (20 ks) – splněno (výměna zastaralých řídících jednotek provedena celkem ve 20 budovách JU, díky důsledné kontrole dodavatele, jednání o cenách a organ...

Více

Stáhnout prezentaci

Stáhnout prezentaci KLM - Klasický lineární model, GLM – Zobecněné lineární modely, GAM – Zobecněné aditivní modely, LDA – Lineární diskriminační analýza, CARTKlasifikační a regresní stromy, RF – Random forest, SVM – ...

Více

Výroční zpráva Ústavu informatiky AV ČR za rok 2001

Výroční zpráva Ústavu informatiky AV ČR za rok 2001 symetrické lineární algebraické soustavy (B). Bylo ukázáno, že numerická nestabilita iteračních metod může být předurčena volbou počítané báze bez ohledu na vlastní implementaci (B). V návaznosti n...

Více

Analýza antropologických dat metodami výpocetn´ı inteligence Bc

Analýza antropologických dat metodami výpocetn´ı inteligence Bc testuji modul pro automatické předzpracovánı́ dat, implementovaný do programu GAME, jehož výsledky poté porovnávám s ostatnı́mi metodami. Mou snahou bylo také shromáždit a porovnat výs...

Více

Marketingová strategie rozvoje cestovního ruchu

Marketingová strategie rozvoje cestovního ruchu regionalizací uvedenou v Marketingové strategii rozvoje cestovního ruchu v Moravskoslezském kraji (Vítkovsko jako součást TO Jeseníky,). Je navíc zřejmé, že některé obce turistické oblasti nemají z...

Více

Sylabus Základy bioinženýrství N319002

Sylabus Základy bioinženýrství N319002 správnou interpretaci, pochopení a začlenění do kontextů je třeba mít znalosti základních předmětů, jako jsou Fyzika, Matematika, Analytická a Fyzikální chemie, Biochemie, Mikrobiologie, Chemické i...

Více

Poměr frekvencí tónů vzdálených o oktávu je 2:1

Poměr frekvencí tónů vzdálených o oktávu je 2:1 Zatím jsme neřešili z jakého oboru je závisle proměnná. Délka vlasů je jistě z oboru reálných čísel. Ale když ji chcete zapsat do počítače, bude to číslo zapsané jen s určitou přesností (máme k dis...

Více