vizuální 3d analýza chování neuronových...
Post on 14-Jul-2020
0 Views
Preview:
TRANSCRIPT
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 a informatika dobíhající magisterský
Obor: Informatika a výpocetní technika
Leden 2007
ii
iii
Podekování: Rád bych podekoval Ing. Pavlu Kordíkovi za vedení pri mém studiu problematiky související s touto prací a také za jeho otevrený a prátelský prístup a predevším za jeho trpelivost se mnou. Mé obrovské díky patrí mým rodicum, kterí mi studium umožnili a v jeho prubehu me intenzivne podporovali, jak jen to bylo možné.
Jsem také velmi rád, že mohu podekovat své prítelkyni Barbore, která mi dodávala elán a optimismus.
iv
v
Prohlášení Prohlašuji, že jsem svou diplomovou práci vypracoval samostatne a použil jsem pouze podklady uvedené v priloženém seznamu. Nemám závažný duvod proti užití tohoto školního díla ve smyslu §60 Zákona c. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o zmene nekterých zákonu (autorský zákon).
V Praze dne 10. 1. 2007 …………………………………………………
vi
vii
Abstract The GAME method automatically generates models of variously complex systems. Models built by this method are often multidimensional, just as the data, which are used in training these systems. The problem is to find out, wheather the output of model aproximates the training data correctly.
The aim of this work is to get better insight into a multidimensional behaviour of models, by means of 3D graphics. As the multidimensional space is too extensive, we applied genetic algorithms to locate remarkable areas in this space automatically.
Abstrakt Metoda GAME automaticky generuje modely rozlicne složitých systému. Takto vytvorené modely jsou casto mnohorozmerné stejne jako data, použitá k jejich ucení. Problém je zjistit, zda výstup modelu správne aproximuje trénovací data.
Smyslem této práce je umožnit získat alespon cástecnou predstavu o mnohorozmerném chování modelu s využitím prostredku 3D grafiky. Protože je mnohodimenzionální prostor príliš rozsáhlý, nasadili jsme genetické algoritmy k automatickému nalezení zajímavých oblastí v tomto prostoru.
viii
ix
Obsah Seznam obrázku……………………………………………………………………… xi 1 Úvod...................................................................................................................................1 Teoretická cást 2 Neuronové síte .................................................................................................................4
2.1 Úvod do problematiky neuronových sítí...............................................................4 2.2 Inspirace prírodními nervovými systémy .............................................................4 2.3 Umelá neuronová sít ...............................................................................................5 2.4 Ucení zpetným šírením signálu – BackPropagation..........................................6 2.5 Group Method of Data Handling (GMDH) ...........................................................8 2.6 Group of Adaptive Models Evolution (GAME) ..................................................11 2.7 Skupinové ucení (Ensemble learning) ...............................................................12
3 Vizualizace dat...............................................................................................................12 3.1 Scatterplot...............................................................................................................13 3.2 Technika paralelních souradnic ..........................................................................13
4 Java 3D API....................................................................................................................14 4.1 Základní architektura Java 3D API.....................................................................15 4.2 Základní objekty 3D scény v Jave ......................................................................15
5 Genetické algoritmy.......................................................................................................16 5.1 Inspirace..................................................................................................................16 5.2 Analogie ..................................................................................................................17 5.3 Algoritmus ...............................................................................................................17 5.4 Fitness funkce ........................................................................................................18 5.5 Elitismus ..................................................................................................................18
Vlastní práce 6 Shrnutí výchozích poznatku.........................................................................................20
6.1 Regresní a klasifikacní modely............................................................................20 6.2 Model v multidimenzionálním prostoru ..............................................................21 6.3 3D rez n-dimenzionálního prostoru ....................................................................23
7 Postup vizualizace 3D rezu..........................................................................................24 7.1 Osy...........................................................................................................................27 7.2 Vizualizace trénovacích a ucicích dat ................................................................31 7.3 Zobrazení dat a odpovedi síte najednou ...........................................................33 7.4 Svetla a materiálové vlastnosti ............................................................................34 7.5 Nastavení smeru a poctu smerových svetel .....................................................35 7.6 Barvy svetel ............................................................................................................37 7.7 Zobrazení více modelu najednou – regrese......................................................37 7.8 Problémy s pruhledností, chyba v Java 3D API...............................................39
8 Ctení grafu – co lze z vizualizovaného modelu vypozorovat..................................41 8.1 Vyhledání oblastí zajímavého chování modelu ................................................42 8.2 Aplikace genetického algoritmu ..........................................................................44
8.2.1 Zakódování chromozomu.............................................................................45 8.2.2 Operátory krížení...........................................................................................45 8.2.3 Operátor mutace ............................................................................................46 8.2.4 Operátor selekce ...........................................................................................46 8.2.5 Fitness funkce ................................................................................................47 8.2.6 Nastavení parametru genetického algoritmu............................................47
9 Testování a experimenty..............................................................................................48 9.1 Mlžná telesa pro klasifikacní modely..................................................................48
x
9.2 Overení korektnosti vizualizace 3D rezu ...........................................................51 9.3 Užití genetického algoritmu..................................................................................53
9.4. Genetický algoritmus na reálných datech…..………
………………………...Chyba! Záložka není definována. 10. Záver .............................................................. Chyba! Záložka není definována. 11. Seznam literatury ......................................... Chyba! Záložka není definována. A. Seznam použitých zkratek ................................. Chyba! Záložka není definována. B. Uživatelská prírucka ............................................ Chyba! Záložka není definována.
B1. Instalace........................................................ Chyba! Záložka není definována. B2. Získání modelu pro vizualizaci .................. Chyba! Záložka není definována. B3. Aktivace vizualizacního modulu ................ Chyba! Záložka není definována. B4. Ovládání vizualizacního modulu ............... Chyba! Záložka není definována. B5. Nastavení vlastností vizualizace ............... Chyba! Záložka není definována.
B51. Záložka Axis ............................................. Chyba! Záložka není definována. B52. Záložka Models ........................................ Chyba! Záložka není definována. B53. Záložka Lights .......................................... Chyba! Záložka není definována. B54. Záložka Data ............................................ Chyba! Záložka není definována. B55. Záložka Genetic search.......................... Chyba! Záložka není definována.
C. Obsah priloženého CD ....................................... Chyba! Záložka není definována.
xi
Seznam obrázku Obr. 2.1 Umelý neuron
Obr. 2.2 Umelá neuronová sít
Obr. 2.3 Ucení neuronové síte s ucitelem
Obr. 2.4 GMDH sít
Obr. 2.6 Srovnání MIA GMDH síte se sítí GAME
Obr. 3.1 2D Scatterplot
Obr. 3.2 Vizualizace 3rozmerných dat metodou paralelních souradnic
Obr. 4.1 Stromová struktura jednoduché 3D scény
Obr. 6.1 Neuronová sít z funkcního hlediska
Obr. 6.2 Dekompozice neuronové síte s více výstupy na více sítí s jediným
výstupem
Obr. 7.1 Tvorba 3D rezu
Obr. 7.2 Vizualizace chování síte pomocí bodu v prostoru
Obr. 7.3 Vizualizace chování síte pomocí drátového modelu
Obr. 7.4 Vizualizace chování síte pomocí ploch v prostoru
Obr. 7.5 Zobrazení samotných os souradného systému
Obr. 7.6 Osy souradného systému s jejich názvy
Obr. 7.7 Osy souradného systému s jejich názvy a hodnotami
Obr. 7.8 Osy souradného systému s jejich názvy, hodnotami a orientacními body
Obr. 7.9 Zobrazení samotných ucicích dat
Obr. 7.10 Zobrazení dat a odpovedí síte v jedné scéne
Obr. 7.11 Nasvícení scény všudyprítomným svetlem – AmbientLight
Obr. 7.12 Nasvícení scény smerovým svetlem – DirectionalLight
Obr. 7.13 Orientace 6 smerových svetel
Obr. 7.14 Orientace 8 smerových svetel
Obr. 7.15 Více sítí v jedné scéne spolu s daty
Obr. 7.16 3 síte s pruhledností
Obr. 7.17 Stejné síte jako na obrázku 7.16, ale nepruhledné
Obr. 8.1 Závislost ceny budov v urcitém bode n-rozmerného prostoru
Obr. 8.2 Zakódování chromozomu
Obr. 8.3 Usporádání konfiguracního panelu genetického algoritmu
Obr. 9.1 Vizualizace klasifikacního modelu s využitím billboardu
Obr. 9.2 Overení korektnosti vizualizace
xii
Obr. 9.3 Artefakty pri vizualizaci klasifikace pomocí bodu
Obr. 9.4 Vlevo náhodná oblast, vpravo zajímavá oblast nalezená genetickým
algoritmem
Obr. 9.5 Prubeh rustu fitness funkce pri hledání zajímavých oblastí genetickým
algoritmem
Obr. 9.6 Vlevo náhodná oblast, vpravo zajímavá oblast nalezená genetickým
algoritmem
Obr. 9.7. Vývoj fitness funkce na modelech z reálných dat
Obr. B.1 Program GAME s aktivovaným vizualizacním modulem
Obr. C.1 Obsah priloženého CD
xiii
KAPITOLA 1. ÚVOD
1
1 Úvod Tvorba modelu je jedním ze základních nástroju abstraktního myšlení. Popišme si
tento proces podrobneji. Ac o tom ne každý clovek takto uvažuje, vytvárí si pri
poznávání okolního sveta i sebe sama ve své mysli, at vedome ci nevedome,
abstraktní objekty, které jsou modely reálných objektu z okolního sveta. Tento
myšlenkový model zachycuje významné vlastnosti reálného modelovaného objektu.
To, které vlastnosti objektu budou považovány za duležité, se odvíjí predevším od
zámeru, který nás vede ke zkoumání konkrétního objektu.
Model je objekt, který slouží k predikci chování modelovaného objektu.
Modely systému jsou zjednodušené, abstraktní nástroje používané pro predikci chování modelovaných systému. [2] Pokud odhlédneme od vnitrní struktury neuronové síte, mužeme na ni nahlížet
jako na cernou skrínku, která má schopnost sama se naucit správne reagovat na
vstupní signály pomocí urcitého množství príkladu správné reakce na dané signály.
Temito príklady správné reakce jsou trénovací data. Jednou z predností neuronové
síte je fakt, že ucicí príklady zdaleka nemusí kompletne pokrývat celý obor hodnot.
Jinými slovy, neuronová sít se naucí správne reagovat ve všech prípadech, a to jen
pomocí menšího množství príkladu. Receno ješte jinak, neuronová sít je ve své
podstate vlastne univerzální interpolátor a extrapolátor.
Neuronová sít tedy vytvárí model systému, ze kterého pocházejí ucicí data.
Tento model vzniká ve fázi ucení neuronové síte a je realizován vnitrní strukturou a
vnitrními parametry neuronové síte. Modelem je mnohodimenzionální prostor, kde
každé dimenzi odpovídá jeden parametr modelovaného systému.
S takto získaným modelem pak mužeme pracovat tak, že predložíme
na vstup neuronové síte vektor souradnic – odpovídající hodnotám parametru
modelovaného systému, a na výstupu neuronové síte obdržíme odpoved síte
na tento vstupní vektor.
Model systému vytvorený neuronovou sítí by tedy mel vystihovat chování
modelovaného systému, ale ponevadž ve fázi ucení nemá neuronová sít k dispozici
kompletní a vycerpávající informace o modelovaném systému, musí chování
systému v mnohých místech odhadovat. Kdybychom tyto kompletní informace o
KAPITOLA 1. ÚVOD
2 systému meli, patrne bychom nepotrebovali neuronovou sít. Model systému proto
nemusí ve všech oblastech odpovídat realite. Jedním z motivu této práce je
napomoci takové oblasti odhalit, stejne tak jako najít oblasti, ve kterých by se
vytvorený model mel blížit systému skutecnému s vetší pravdepodobností. Dalším
smyslem této práce je napomoci nalézt takové oblasti v modelu, které jsou nejakým
zpusobem zajímavé, a napomoci tak pri analýze vytvoreného modelu, a dále umožnit
nahlížet na model s využitím podpory pocítacové 3D grafiky.
Metod vizualizace dat existuje pomerne velké množství. Mým úkolem bylo
nejakou zvolit a implementovat ji do prostredí programu GAME, vyvíjeného na
katedre pocítacu FEL CVUT.
Tato práce je clenena na dve sekce. V první teoretické sekci shrnuji
nejduležitejší teoretické poznatky, týkající se sekce vlastní práce. V sekci vlastní
práce popisuji funkci jednotlivých soucástí vizualizacních modulu, které jsem
implementoval, a zásadní rozhodnutí, která jsem v prubehu implementace musel
ucinit. Na konci této sekce jsou popsány experimenty, které jsem provedl za úcelem
overení správné funkce implementovaných modulu. Sekce vlastní práce je pro
ilustraci doplnena obrázky, které jsou produktem implementovaných modulu.
KAPITOLA 2. NEURONOVÉ SÍTE
3
Teoretická cást
KAPITOLA 2. NEURONOVÉ SÍTE
4
2 Neuronové síte
2.1 Úvod do problematiky neuronových sítí
Problematika umelých informacních systému, které jsou principiálne schopné
napodobovat funkce nervových soustav a mozku živých organizmu podstatne
dokonalejším zpusobem, než to muže cinit dosavadní, tzv. konvencní výpocetní
technika, pritahuje pozornost odborníku i laiku již mnoho let. Historie
neuroinformatiky je pomerne dlouhá a obor se prubežne rozvíjí.
Umelé neuronové síte jsou oborem, v nemž mužeme vysledovat období
módního až nekritického zájmu, avšak i období, kdy tento výrazne opadal. Druhá
polovina šedesátých let 20. století prinesla, krome rady nových poznatku, i
autoritativní názor, že perceptron (v té dobe jediný známý model neuronu) je co do
svých schopností precenen, nebot nedokáže realizovat napr. logickou funkci XOR
[4]. Velká renesance problematiky neuronových sítí nastala až ve druhé polovine 80.
let, kdy se podarilo vysvetlit, že správný poznatek byl nesprávne interpretován.
Mezi neuronovými sítemi a konvencními pocítaci existuje ve zpusobu práce
zásadní rozdíl. Konvencní pocítacové systémy pracují podle predem daného postupu
– algoritmu. Podle nej vykonávají jednotlivé dílcí operace. Naproti tomu neuronové
systémy uskutecnují velmi vysoký pocet dílcích operací soucasne a pracují bez
algoritmu. Jejich cinnost je založena na procesu ucení, pri kterém se neuronová sít
postupne co nejlépe adaptuje k rešení dané úlohy.
Umelými neuronovými sítemi mužeme rešit složitejší úlohy, jako je
rozpoznávání písma, identifikace podpisu ci prevod reci na psaný text. Dalšími
úlohami jsou: predikce v pojištovnictví a bankovnictví, identifikace radarových údaju,
zjištování cíle v sonarových obrazech, detekce explozivních látek na letištích,
chybová diagnostika stroju, rozpoznávání státních poznávacích znacek automobilu,
trídení zásilek podle PSC a v poslední dobe se objevují aplikace v oblasti vytežování
dat (data mining).
2.2 Inspirace prírodními nervovými systémy Neuronové síte jsou inspirovány prírodními nervovými systémy. Poznatky o
prírodních nervových systémech nám pomáhají pri modelování prírodních nervových
systému. Neuronové síte jsou používány pro svou schopnost ucit se na omezené
KAPITOLA 2. NEURONOVÉ SÍTE
5
množine (vstupu a výstupu) a dávat výsledky i u vstupu, u kterých neznáme výstupy,
cili pro svou schopnost generalizace.
Obr. 2.1 Umelý neuron
Základním stavebním kamenem prírodního nervového systému je neuron.
Neuron má tri cásti: dendrity, soma a axon. Dendrity jsou vstupy a každý neuron jich
má nekolik. Dendrity poskytují neuronu vstupní signály, které jsou v tele neuronu
(soma) secteny, 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 vetví
a je napojen pres synapse na další neurony. Synapse se delí na dva druhy. Excitacní
synapse, zvyšující hodnotu signálu, a inhibicní, které naopak snižují hodnotu signálu.
Míra, o kolik se hodnota signálu zvýší nebo sníží, se liší u každé synapse a
nositelem této míry prenosu signálu je tzv. synaptická váha. Tyto synaptické váhy
jsou z velké míry zodpovedné za pamet celé síte. Dalším faktorem vytvárejícím
pametový efekt síte je její struktura a vzájemné propojení jednotlivých neuronu. Nyní
jiste tušíte, že obrovské schopnosti prírodních nervových systému, kterým je i lidský
mozek, jsou predevším dány obrovským množstvím a bohatým vzájemným
propojením jednotlivých nervových bunek cili neuronu. Jen pro predstavu uvedme,
že lidský nervový systém obsahuje približne 1012 neuronu, k jedinému neuronu
smeruje a informaci do nej prináší 10 až 100 tisíc dendritu a délka všech axonu
jediného cloveka více než ctyrikrát presahuje vzdálenost Zeme – Mesíc.
2.3 Umelá neuronová sít
Neuronová sít vzniká ve fázi, které se ríká ucicí. V této fázi máme k dispozici
množinu trénovacích dat, která se skládá z urcitého množství dvojic vektoru
vstupních hodnot a výstupních hodnot. Pocet vstupu síte odpovídá dimenzi vektoru
vstupních hodnot z množiny trénovacích dat. Tyto vektory vstupních hodnot jsou síti
KAPITOLA 2. NEURONOVÉ SÍTE
6
postupne predkládány. Podle odezvy síte jsou upravovány parametry neuronové síte
tak, aby výstup síte co nejvíce odpovídal ocekávané výstupní hodnote dané
v trénovací množine. Výhodou umelých neuronových sítí je jejich schopnost
generalizovat. Po naucení je sít schopná reagovat i na vstupní vektory, které jí
nebyly predloženy v ucicí fázi. Vnitrní struktura síte se delí na vrstvy. První vstupní
vrstva slouží pouze k distribuci vstupních hodnot do další již skryté vrstvy. Skrytých
vrstev muže být libovolný pocet. Mezi jednotlivými vrstvami existuje propojení. Každý
neuron predchozí vrstvy je propojen s neurony následující vrstvy. To, s jakou
významností bude propojení prispívat do neuronu, je dáno synaptickou váhou, která
je nastavována v ucící fázi. Za poslední skrytou vrstvou je vrstva výstupní, která
reprezentuje a realizuje výstup neuronové síte, hodnota na tomto výstupu je reakcí –
odpovedí síte na predložený vstupní vektor.
Obr. 2.2 Umelá neuronová sít
2.4 Ucení zpetným šírením signálu – BackPropagation Znovuobjevení algoritmu BackPropagation [1 ] prineslo v osmdesátých letech nové
možnosti v oblasti neuronových sítí. Pri použití tohoto algoritmu je struktura síte
vytvorena predem a behem ucicí fáze se již nemení. Algoritmus používá techniku
ucení s ucitelem. Je tedy nutné mít k dispozici ucicí množinu dat. Využívá se pro
KAPITOLA 2. NEURONOVÉ SÍTE
7
neuronové síte s dopredným šírením signálu. To znamená, že sít nemá žádné
zpetné propojení neuronu nebo propojení ve smycce. Algoritmus probíhá iteracne.
Prvním krokem je porovnání výstupu neuronové síte s ucicím vzorkem. To je
provedeno priložením ucicího vzorku na vstupy síte a porovnáním výstupu
neuronové síte s ocekávanou hodnotou, kterou známe z ucicího vzorku. Na základe
odchylky od vzorku je vypocítána odchylka. Dále je pro každý neuron spocítán
výstup, který by mel správne mít, a jeho lokální odchylka od skutecné hodnoty. Podle
této odchylky je zmenena váha neuronu tak, aby byla minimalizována odchylka na
výstupu neuronové síte. Postupne jsou síti predloženy všechny ucicí vzorky, tomu se
ríká epocha ucení. Algoritmus probíhá tak dlouho, až chyba na výstupu neuronové
síte klesne pod predem zadanou hodnotu, nebo pokud je proveden urcitý pocet
epoch ucení.
Již název algoritmu ríká, že chyba a tím i ucení se šírí zpetne. Chyba se šírí z
výstupních neuronu k vnitrním neuronum neuronové síte. Algoritmus ucení je
založen na minimalizaci odchylky výstupu neuronové síte od všech vzorku z ucící
množiny. Velikost odchylky neuronové síte popisuje její míru naucenosti.
Obr. 2.3 Ucení neuronové síte s ucitelem
KAPITOLA 2. NEURONOVÉ SÍTE
8
2.5 Group Method of Data Handling (GMDH) Neuronové síte typu GMDH [2] jsou síte, které jsou vytváreny indukcí. Na
rozdíl od sítí, které používají algoritmus BackPropagation, struktura síte typu GMDH
není predem známá, ale vzniká až ve fázi ucení. Sít typu GMDH vychází z nekolika
základních stavebních jednotek, které behem fáze ucení kombinuje a snaží se
vytvorit model odpovídající trénovací množine dat. Pri vytvárení modelu se používá
pravidlo „nejsilnejší prežívá“, kde nejsilnejší je ten model, který nejlépe odpovídá
trénovací množine dat.
Sít se skládá ze dvou typu neuronu. První typ neuronu – distribucní – je
obsažen pouze v první (vstupní) vrstve. Tento neuron má pouze jeden vstup a
nekolik výstupu. Jeho jedinou funkcí je distribuovat vstupní hodnotu na vstupy
neuronu v první skryté vrstve. Skryté vrstvy jsou složeny z druhého typu neuronu,
který realizuje transformacní funkci, a na poctu jejích parametru závisí i pocet vstupu
do daného neuronu. Jeho výstup, stejne jako výstup distribucního neuronu, muže být
rozvetven a pripojen na vstupy v další skryté vrstve. Aktivní neurony typicky realizují
polynomiální funkci a jednotlivé aktivní neurony se od sebe liší pouze koeficienty
techto polynomu.
Obr. 2.4 GMDH sít
KAPITOLA 2. NEURONOVÉ SÍTE
9
Pocet a propojení mezi neurony dvou skrytých vrstev jsou dány až ve fázi
ucení, která splývá s tvorbou síte. Na zacátku je pouze první vrstva složená z
distribucních neuronu. Tvorba skryté vrstvy je stále stejná. Vždy vznikne práve tolik
nových neuronu, kolik existuje kombinací vstupu z predchozí vrstvy.
Ucení síte probíhá s ucitelem. Pred ucením není známa struktura neuronové
síte. Sít vzniká vrstvu po vrstve, až v procesu ucení. Na zacátku je jasná pouze
velikost (šírka) vstupní vrstvy. Ta má práve tolik distribucních neuronu, kolik je prvku
(jaká je dimenze) vstupního vektoru. Ucení síte splývá s její tvorbou. Za vstupní
vrstvou pri ucení prirustají další a další skryté vrstvy a tento proces probíhá tak
dlouho, pokud není splneno kritérium kvality výstupní síte.
Algoritmus tvorby skrytých vrstev je stále stejný. V každé vrstve vznikne tolik
neuronu, kolik je úplných kombinací dvojic výstupu vrstvy predchozí. Pak se
jednotlivé neurony konfigurují. To znamená, že se vypoctou všechny koeficienty
jejich polynomu. Pak se nove utvorená vrstva zmrazí. To znamená, že se behem
dalšího ucení již její parametry nemení a vrstva slouží pouze k distribuci signálu.
Muže jen dojít k selekci neuronu v ní obsažených.
Postup pri ucení neuronové síte typu GMDH:
1. konfigurace k-té vrstvy vytvorení nových neuronu výpocet koeficientu
polynomu v každém polynomu
2. selekce neuronu v k-té vrstve
3. ukoncení ucení síte
Konfigurace a selekce se opakují tak dlouho, dokud sít nedosahuje požadované
chyby. Konfigurace k-té vrstvy probíhá tak, že pro každou dvojicí výstupu predchozí
vrstvy vytvoríme nový neuron. Je-li tedy pocet výstupu predchozí vrstvy N, vznikne
takto
( )
21
2−
=
=
NNNm
KAPITOLA 2. NEURONOVÉ SÍTE
10
nových neuronu. Každý neuron má své vlastní koeficienty v prenosové funkci
polynomu. Po provedení prvního kroku tedy máme sestaveno m obecných
prenosových polynomu, u nichž je treba urcit konkrétní hodnoty koeficientu. K tomu
slouží ucicí množina dat. Ta obsahuje vzory (dvojice vstupu a výstupu).
Priložíme-li na vstupy neuronu hodnotu hodnoty výstupu z predchozí vrstvy a
dosadíme-li hodnotu požadovaného výstupu síte, máme pro každý neuron aktuální
vrstvy lineární kombinaci n koeficientu. Pro urcení hodnoty koeficientu polynomu
existuje rada algoritmu. Nejjednodušší spocívá v náhodném výberu n vstupních
vektoru z ucicí množiny a koeficienty pak dostaneme vyrešením soustavy n
lineárních rovnic o n neznámých. Pri selekci neuronu vypocteme strední kvadratickou
odchylku každého neuronu pro soubor tzv. testovacích dat. Ta jsme získali tak, že
jsme soubor vstupních dat predem rozdelili na cást použitou pri ucení síte a na cást
testovací, kterou zkoumáme, jak kvalitne naucená sít aproximuje. Výpocet této
odchylky tedy probíhá se souborem jiných dat, než která byla použita k ucení.
Výpocet strední kvadratické odchylky muže napríklad probíhat podle tohoto vzorce:
∑
∑
=
=
−= k
ii
k
iii
y
yyr
1
2
1
2
2
)ˆ(
,
kde yi je hodnota požadovaného výstupu, iy skutecný výstup uvažovaného neuronu
a k je pocet vektoru testovací množiny. Neurony aktuální vrstvy seradíme podle
dosažené chyby. To znamená, že neurony s menší chybou budou pred neurony s
chybou vetší. V síti ponecháme jen vyhovující neurony. To znamená, že odstraníme
neurony z konce setrídené posloupnosti. Jsou to totiž neurony s nejvetší chybou a
nechceme tedy, aby jako takové mely na chování síte v dalším pokracování
algoritmu vliv. Neurony, které v aktuální vrstve zustaly, zmrazíme. Jejich koeficienty
se pri další tvorbe síte už menit nebudou a v dalším pokracování algoritmu tyto
neurony budou sloužit pouze k distribuci
dat do vrstev následujících. Ucení síte je ukonceno, když splnuje sít naše požadavky
na výstup. Postupujeme tak, že v každém uc ícím kroku otestujeme, zda nejlepší
neuron s požadovanou presností neaproximuje všechny vstupní vektory testovací
množiny. V kladném prípade tvorba síte skoncila a práve tento neuron je výstupním
neuronem celé síte.
KAPITOLA 2. NEURONOVÉ SÍTE
11
2.6 Group of Adaptive Models Evolution (GAME) Metoda GAME [3] vylepšuje neuronovou sít typu GMDH. Dokáže generovat
presnejší modely pro rozlicná data. Hlavním prínosem metody GAME je její
schopnost generovat skupiny samoadaptujících se modelu podle charaketru a
komplexnosti zadaných dat. Induktivní model neuronové síte roste do takové
velikosti, aby byl schopen zadanou úlohu vyrešit s požadovanou presností. Model se
skládá z jednotek (neuronu), které nejlépe modelují vnitrní vztahy v datech.
Obr. 2.6 Srovnání MIA GMDH síte se sítí GAME
Jak je videt na obrázku 2.6, sít typu GAME má více stupnu volnosti než sít 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 ruzných modelu správnou topologii. Metoda GAME v sobe
zahrnuje genetický algoritmus, který vyvíjí optimální strukturu modelu. Dalšími
vylepšeními jsou:
• nekolik typu jednotek (neuronu), které souteží o prežití v modelu
• rostoucí složitost modelu
KAPITOLA 3. VIZUALIZACE DAT
12 • propojení mezi vrstvami
• generování skupiny modelu, které zvyšují verohodnost odezvy modelu
• genetický algoritmus pro vytvárení optimální topologie modelu
• metoda niching, která umožnuje zachování méne presných, ale
zajímavejších neuronu v modelu
Metoda GAME generuje na množine ucicích dat modely s podobnou presností.
Modely jsou testovány na náhodných podmnožinách množiny ucicích dat. Modely se
skládají z podobných typu jednotek (neuronu) a mají podobnou složitost. Je velice
obtížné zvolit jen jeden nejlepší model, protože modely jsou si velice podobné. Proto
vzniká skupina modelu. Výhody skupinového ucení jsou popsány dále.
2.7 Skupinové ucení (Ensemble learning) Tato technika je založena na myšlence, že skupina konecného poctu modelu
neuronových sítí je naucena pro rešení stejné úlohy. Skupinové ucení je nový
prístup, kde je skupina neuronových sítí trénována pro rešení stejné úlohy. Tato
metoda byla poprvé prezentována Hansenem a Salamonem [5], kterí ukázali, že
schopnost neuronových sítí zevšeobecnovat muže být znacne zvýšena seskupením
nekolika neuronových sítí a jejich spolecným naucením a kombinováním odezev
jednotlivých modelu. Aplikace GAME, kterou jsme si popsali v predešlé kapitole,
vytvárí takovouto skupinu modelu, jejímž použitím,
na rozdíl od jednoho modelu, je možné zvýšit presnost modelování.
3 Vizualizace dat Protože se v této práci venujeme vizualizaci mnohorozmerného chování neuronové
síte, strucne zmíníme teorii vizualizace mnohorozmerných dat, která se k našemu
problému tematicky vztahuje, a ze které cerpáme nekteré myšlenky.
Pri práci s neuronovými sítemi se setkáváme s velkými soubory dat. Pro
alespon základní odhalení jejich struktury je možné použít nekolik prístupu. Textový
výpis datových vektoru je pro cloveka, který neví co hledá, necitelný. Na tomto míste
prichází na radu vizualizace, jako nástroj pro první náhled a rozpoznání struktury
souboru dat. Pri vizualizaci hraje zásadní roli dimenze zkoumaných dat. Pochopitelne
s rostoucí dimenzí dat se vizualizace a nahlédnutí struktury dat stává složitejší a
casove nárocnejší.
KAPITOLA 3. VIZUALIZACE DAT
13 3.1 Scatterplot Pro zobrazení dvourozmerných datových vektoru je vizualizace jednoduchá. Pokud
je jeden datový vektor popsán
( )yxd ,=r
,
zobrazí se v grafu, kde na jedné ose je vynesena hodnota x, na druhé y, a na jejich
souradnicích je zobrazena znacka. Takovému grafu se ríka Scatterplot. Príklad
takového grafu je na obrázku 3.1 .
Obr. 3.1 2D Scatterplot
Tuto techniku vizualizace datových vektoru rozšírenou na trírozmerné datové
vektory jsem použil i já ve své práci pro vizualizaci ucicích a trénovacích datových
vektoru s tím, že jako znacku jsem použil koule.
3.2 Technika paralelních souradnic
Príkladem techniky, která umožnuje vizualizaci mnohorozmerných dat, je technika
nazývaná „technika paralelních souradnic“. Tato technika zobrazuje jednotlivá data z
mnohorozmerného prostoru pomocí lomené prímky, která protíná jednotlivé
rovnobežné horizontálne nebo vertikálne položené osy v bodech, které odpovídají
korespondujícím souradnicím v mnohorozmerném prostoru. Príklad vizualizace
trojrozmerných dat touto technikou je na obrázku 3.2.
KAPITOLA 4. JAVA 3D API
14
Obr. 3.2 Vizualizace 3rozmerných dat metodou paralelních souradnic ©IEEE
4 Java 3D API Java 3D API je volitelne instalovatelné rozhraní Javy, které poskytuje možnost
programovat a pracovat s 3D pocítacovou grafikou. Ponevadž SUN – autor Javy – se
rozhodl neinvestovat nadále do vývoje 3D rozhraní, stal se vývoj tohoto rozhraní
predmetem vývoje zájmových skupin. Vzhledem k faktu, že mnoho vedeckých skupin
toto rozhraní využívá k vizualizaci a práci s vedeckými daty, nemohl Sun 3D API
zcela umrtvit. Na druhou stranu si jiste v Sunu uvedomili fakt, že vzhledem
k nárocnosti grafických operací a vzhledem k výkonnosti soucasných PC není šance
konkurovat neinterpretovaným jazykum, a tudíž dospeli patrne k záveru, že ke
komercnímu využití toto rozhraní nebude možno v soucasné dobe využít. Takový byl
stav v roce 2005.
V dobe psaní této práce se vývoj tohoto 3D rozhraní sice zpomalil, ale stále
probíhá a vznikají nové rychlejší verze, které umožnují pomerne nenárocnou práci
s 3D grafikou, která se díky stoupajícímu výkonu PC a vývoji samotného Java 3D
API približuje ke kvalite a rychlosti neintepretovaných rozhraní. Díky zpetné
kompatibilite a javovské prenositelnosti na ruzné operacní systémy lze ocekávat, že
toto 3D rozhraní bude použitelné tak dlouho, jak dlouho bude použitelný samotný
jazyk Java.
KAPITOLA 4. JAVA 3D API
15 4.1 Základní architektura Java 3D API
Java 3D API využívá k popisu 3D scény stromovou strukturu. Základem každé scény
v Jave 3D je objekt VirtualUniverse, který odkazuje na všechny ostatní objekty, které
se ve scéne nacházejí. Používání trídy VirtualUniverse však není príliš obvyklé,
mnohem casteji je, alespon u jednodušších programu, používána trída
SimpleUniverse, což je podtrída trídy VirtualUniverse, jejíž využívání je mnohem
snazší a vetšinou zcela dostacující. Zbavuje nás totiž nutnosti starat se o objekty
PhysicalBody, PhysicalPlatform, View a ViewPlatform. (Jejich úcelem je popis
pozorovatele, rozlišení obrazovky, jeho poloha, možnost stereo pohledu a dalších
upresnujících méne obvyklých možností, které jsou základne nastaveny objektem
SimpleUniverse).
4.2 Základní objekty 3D scény v Jave Na obrázku 4.1 je príklad jednoduché scény se základními objekty. V modre
vyznacené cásti scény se nacházejí objekty nutné pro nastavení vlastností
zobrazovacího zarízení. Celou tuto cást je možné nahradit objektem SimpleUniverse,
který obsahuje definici této struktury. Z objektu SimpleUniverse následne získáme
odkaz na jeho cást Canvas3D, který umístíme do garfického rozhraní stejným
zpusobem, jako bežné ovládací komponenty AWT.
Nyní si ve strucnosti naznacíme význam jednotlivých objektu scény, címž si
nastíníme postup tvorby scény.
VirtualUniverse – základ každé scény. Predstavuje pocátecní bod stromové
struktury a jako jediný objekt 3D scény nemá žádného rodice.
Locale – tento objekt urcuje výchozí bod souradného systému.
BranchGroup – koren pro cást scény.
TransformationGroup – transformacní uzel, který obsahuje transformacní matici
posunutí, rotace a merítka.
S – Shape – tento objekt je považován za list stromové struktury a shrnuje v sobe
odkazy na popis geometrie a optických vlastností grafického objektu.
Geometry – tento objekt je nositelem konkrétních hodnot souradnic vrcholu
grafického objektu.
KAPITOLA 5. GENETICKÉ ALGORITMY
16 Appearance – tento uzel slouží jako uchování odkazu na objekty definující optické
vlastnosti grafického objektu a metod jeho renderování.
Materiál – specifikuje materiálové vlastnosti grafického objektu.
ColoringAttributes – definice barvy grafického objektu. Tato barva je použita jen
v prípade, že grafický objekt nemá prirazené materiálové vlastnosti.
LineAttributes – zpusob kreslení car. (prerušovane, plne, teckovane)
Obr. 4.1 Stromová struktura jednoduché 3D scény
5 Genetické algoritmy
5.1 Inspirace
Genetické algoritmy jsou inspirovány prírodou a používané termíny jsou prevzaty z
biologie. Populace živocišných druhu na Zemi jsou tvoreny jedinci, kde každý jedinec
je definován skupinou chromozomu, které jsou tvoreny geny. Geny mohou nabývat
ruzných hodnot allea a tím kódovat ruzné vlastnosti jedince. Skupina chromozomu,
pak vytvárí genom, který urcuje všechny vlastnosti jedince. Genom je pro každého
jedince specifický a pokud dva jedinci mají stejný genom, pak jsou identictí. Pri
rozmnožování dochází k náhodné výmene (krížení) genu mezi rodici, kterí jsou v
prírode vybírání podle schopnosti reprodukovat se a prežít v daném prostredí. Tím
vzniká nový jedinec s unikátním geonomem, a tím i vlastnostmi. Pri krížení dochází i
KAPITOLA 5. GENETICKÉ ALGORITMY
17 k mutaci, pri které dojde k náhodné zmene nekterých genu, a která do
populace vnáší vetší rozmanitost.
5.2 Analogie Genetické algoritmy používají podobné techniky a snaží se napodobit úspech
prírody. Možné rešení problému je jedincem, a jeho genom jsou parametry, které toto
rešení definují. Parametry jsou vetšinou uloženy v podobe retezce, který se skládá
z predem známé abecedy. Znaky retezce jsou geny, které mohou nabývat ruzných
hodnot abeced (alleami). Hodnoty znaku mohou být jak binární (0 a 1), tak reálné.
Kvalitu jedince a jeho vhodnost pro použití jako rodice pro další generaci definujeme
pomocí fitness funkcí. Fitness funkce je ohodnocením každého jedince a svou
hodnotou musí zvýhodnovat lepší rešení problému.
5.3 Algoritmus 1. Inicializace první populace
Na zacátku je potreba vytvorit populaci. Ta muže být bud zcela náhodná, nebo,
pokud chceme zkrátit dobu výpoctu, mužeme vytvorit první populaci tak, aby
neobsahovala zcela nevhodná rešení. Další možností je vytvorit populaci s vetším
poctem jedincu s tím, že algoritmus pri provádení první selekce vybere lepší jedince.
2. Výpocet fitness funkce
Pro každého jedince z populace se vypocte fitness funkce, která urcuje vhodnost
jedince stát se rodicem pro další populaci. Behem tohoto kroku se také vyhodnocuje
zastavovací kritérium. Zastavovací kritérium urcí, zda je v populaci jedinec, který je
dostatecne kvalitní a je možné algoritmus ukoncit.
3. Vytvorení nové populace
Pri vytvárení nové populace opakovane používáme operátory selekce a krížení.
Operátor selekce vybírá vhodné kandidáty na rodice a následne jejich krížením
vzniká jedinec, který je zarazen do nové populace. To provádíme tak dlouho, dokud
nová populace nemá dostatecný pocet jedincu.
4. Mutace
Na každého jedince v populaci je aplikován operátor mutace, který náhodne se
zadanou pravdepodobností pozmení geny jedince.
KAPITOLA 5. GENETICKÉ ALGORITMY
18 5. Elitismus
Do nové populace zahrneme i nekolik nejlepších jedincu ze staré populace. Tím se
docílí zachování nejlepších doposud nalezených rešení pro další generace a zároven
maximální hodnota fitness funkce bude v prubehu algoritmu neklesající.
6. Stárí
Starou populaci nahradíme novou a pokracujeme opet výpoctem fitness funkce.
5.4 Fitness funkce Fitness funkce je merítkem úspešnosti jedince v populaci. Cím lepší (vetší) je
hodnota fitness funkce, tím se jedinec stává perspektivnejším kandidátem na rodice.
Pokud se jedinec stane rodicem, je jeho rešení predáno do další generace. Fitness
funkce by mela postihnout všechna kriteria rešené úlohy. Kladné vlastnosti by mely
zvyšovat hodnotu fitness funkce a naopak záporné vlastnosti by hodnotu fitness
funkce mely snižovat. Na správném navržení fitness funkce závisí správnost celého
genetického algoritmu. Velkou výhodou genetických algoritmu je jejich schopnost
„fungovat“ i s fitness funkcí, která ne zcela optimálne popisuje hledané rešení.
Genetický algoritmus pak konverguje pomaleji, ale z jeho chování lze odvodit
správné nastavení fitness funkce, které bude konvergovat rychleji.
5.5 Elitismus
Zpusob, jakým se vybírají kandidáti na rodice pro novou populaci nezarucuje, že
v nové populaci bude vždy obsažen jedinec, který popisuje doposud nejlepší
nalezené rešení. Aby se zabránilo zapomenutí již nalezeného nejlepšího rešení, jsou
do nové populace automaticky vkládáni nejlepší jedinci ze staré populace. Tím je
zarucen neklesající prubeh maximální hodnoty fitness funkce v celé populaci.
KAPITOLA 6. SHRNUTÍ VÝCHOZÍCH POZNATKU
19
Vlastní práce
KAPITOLA 6. SHRNUTÍ VÝCHOZÍCH POZNATKU
20 6 Shrnutí výchozích poznatku
6.1 Regresní a klasifikacní modely
Aplikace, pro které jsou neuronové síte vhodné, lze v podstate rozdelit na dve
množiny, a sice na aplikace regresní a klasifikacní. Z pohledu neuronové síte jsou
všechny fáze i zpusob její práce stejné, rozdíl je v tom, jak správne interpretovat
výsledky, které sít poskytuje. V prípade regresní aplikace nás zajímá vývoj
konkrétních hodnot výstupního parametru v závislosti na ostatních vstupních
parametrech. V prípade klasifikacních aplikací nás zajímá, zda v závislosti na
vstupních parametrech sledovaný objekt prísluší k dané tríde. V trénovacích datech
se to projeví tím, že hodnoty výstupního modelovaného parametru nabývají
v prípade klasifikacních aplikací pouze nekolika – obvykle dvou – hodnot, a ty urcují
príslušnost k dané tríde v daném bode prostoru. Naopak v aplikacích regresních
nabývají hodnoty modelovaného parametru celé škály ruzných hodnot.
Nyní se pokusím rozdíl mezi regresními a klasifikacními aplikacemi osvetlit na
konkrétních príkladech obou aplikací. Tyto príklady nejsou mnou vymyšlené, ale
pocházejí z [12], a obe aplikace jsem ve své práci odzkoušel.
Príkladem regresní aplikace je vývoj cen budov v americkém Bostonu
v závislosti na parametrech, jako je míra kriminality v dané oblasti, stárí budovy,
vzdálenost od centra mesta, znecištení ovzduší a další. Predložíme-li naucené
neuronové síti na vstup konkrétní hodnoty techto vstupních parametru, na výstupu
síte se objeví její odezva a hodnota odezvy síte je odhadem ceny budovy pri techto
parametrech.
Príkladem klasifikacní aplikace je rozpoznávání druhu kosatce v závislosti na
jeho biometrických vlastnostech, jako je délka a šírka okvetního lístku a kališního
lístku. Po priložení techto hodnot na vstup naucené neuronové síte dostaneme na
jejím výstupu hodnotu z intervalu <0;1>. Pokud je hodnota na výstupu síte
rovna 1, znamená to, že kosatec patrí do dané rodové trídy, výstup síte roven 0
naopak znací, že kosatec do této trídy nepatrí. Pokud se na výstupu objeví
hodnota mezi 0 a 1, pak tato hodnota znamená nejistotu síte v daném bode, cili
napríklad hodnota 0,7 znamená, že kosatec do této trídy patri se 70%
pravdepodobností. Pro klasifikaci do více tríd – tak jak je tomu i v této úloze – se
nepoužívá vícehodnotová škála odpovedí, ale konstruujeme více neuronových sítí
najednou – pro každou klasifikacní trídu jednu sít.
KAPITOLA 6. SHRNUTÍ VÝCHOZÍCH POZNATKU
21
6.2 Model v multidimenzionálním prostoru
Nyní se nebudeme zabývat tím, jak je neuronová sít sestavena, ani procesy, které se
v ní odehrávají, ale budeme ji brát jako cernou krabicku – cili budeme se o ni zajímat
jen z hlediska jejího vnejšího chování.
Do této cerné krabicky mohou pricházet informace z okolního sveta jen pres
vstupní kanály a informace do okolního sveta z ní mohou vycházet jen pres kanály
výstupní. Tyto kanály jsou oddelené, neboli kanály nejsou vstupne-výstupní.
Vstupními kanály jsou napojení na smyslové orgány a výstupními kanály jsou orgány
výkonné, jak je to v prípade živých organismu. V našem prípade umelých
neuronových sítí jsou vstupní i výstupní kanály numerické. Numerické kanály mohou
samozrejme prejímat informace z umelých senzoru a výstupní numerické kanály
mohou sloužit k rízení výkonných soucástí nejakého zarízení – a v praxi to takto
skutecne funguje. My se ale budeme predevším zajímat o tyto kanály z hlediska
funkcních závislostí. Naší výhodou je, že numerické kanály mohou získávat a
vydávat informace pomocí textového souboru.
Obr. 6.1 Neuronová sít z funkcního hlediska
Naše aplikace GAME je navržena tak, že predpokládá, že má vždy jedna sít
jeden výstup. Z teoretického hlediska neexistuje duvod, proc by jedna sít nemohla
mít více výstupu. V praxi se však vetšinou pracuje se sítemi, které mají jen jeden
výstup, a pokud vznikne potreba více výstupu, reší se tato potreba pripojením více
neuronových sítí na stejné vstupy. Z analytického hlediska bychom metodou
dekompozice postupovali stejným zpusobem. Pokud bychom meli prece jen sít
s více výstupy, rozdelili bychom ji na více sítí s jedním výstupem a se vstupy
pripojenými na stejné vstupní hodnoty.
KAPITOLA 6. SHRNUTÍ VÝCHOZÍCH POZNATKU
22
Obr. 6.2 Dekompozice neuronové síte s více výstupy na více sítí
s jediným výstupem
Ve chvíli, kdy je proces ucení neuronové síte ukoncen, je výstup síte dán
nejakým funkcním vztahem mezi vstupními kanály. Tento funkcní vztah je dán vnitrní
strukturou síte a jejím nastavením. Struktura síte i její nastavení se mení ve fázi
ucení, pokud je však proces ucení ukoncen, zustává toto vše nemenné a výstup síte
je nadále deterministický. Tím máme na mysli to, že pokud priložíme na vstup síte
stejné hodnoty, dostaneme na výstupu vždy stejný výsledek. Dalším duležitým
faktem je to, že dostáváme pro jednu kombinaci vstupních hodnot jedinou hodnotu
výstupní. Tento model by byl funkcí dvou promenných. Její graf by byl zakrivenou
plochou v trojrozmerném prostoru – dva rozmery by byly ony vstupní promenné a
tretí rozmer by byl odpovedí síte, tedy funkcní hodnotou vstupních promenných.
KAPITOLA 6. SHRNUTÍ VÝCHOZÍCH POZNATKU
23
V praktických aplikacích však bývá vstupních promenných mnohem vetší
množství. To je zpusobeno tím, že systémy v reálném svete mohou být ovlivneny
mnoha faktory, a tyto faktory musíme pri modelování takových systému zohlednit,
aby náš model kopíroval chování reálného systému co nejverneji.
N vstupních promenných tedy povede k tomu, že model systému vytvorený
sítí bude funkce N promenných vracející jednu hodnotu, cili bude tvorit N+1
dimenzionální prostor. Vzhledem k tomu, že je model dán funkcí, z vlastností funkce
vyplývá, že modelem bude zakrivená rovina v tomto N+1 rozmerném prostoru.
Jaký však má tato funkce význam? Tato funkce je modelem chování urcitého
parametru modelovaného systému v závislosti na parametrech, které privádíme na
vstupy síte.
6.3 3D rez n-dimenzionálního prostoru Vzhledem k tomu, že se náš model nachází v N+1 dimenzionálním prostoru, kde N je
velmi casto vetší než 2, je treba rešit problém, jak takovýto prostor vizualizovat – to je
totiž mimo jiné smyslem této práce.
Rozhodl jsem se zvolit techniku rezu. Myšlenka techniky rezu v našem
kontextu znamená zmrazit všechny dimenze krome trí vybraných na zvolených
konstantních hodnotách a zbývající tri dimenze použít pro tvorbu trojrozmerného
telesa, které pak následne zobrazíme.
Pro vetší názornost si techniku rezu popíšeme na príkladu 2D rezu 3D
prostoru – dvoudimenzionálního rezu trojrozmerného prostoru. Predstavme si
grafický trojrozmerný model povrchu pohorí. Tento grafický model bude tvoren
zakrivenou plochou, predstavující povrch pohorí. Pak do tohoto modelu vložíme
rovinu. Pak prunik 3D modelu a roviny tvorí dvou rozmerný rez trojrozmerného
prostoru. Tuto rovinu mužeme vložit ve zcela obecné poloze a bude se jednat o rez,
nicméne pro naše úcely je šikovné vložit ji tak, aby byla rovnobežná s co nejvetším
poctem os souradného systému.
Vzhledem k tomu, že se chystáme nejak graficky znázornit chování funkce,
bude v našem rezu vždy práve jedna dimenze vyhrazena pro funkcní hodnoty – pro
odpoved síte v daném bode prostoru a zbylé dva rozmery budou použity pro dva
ruzné zvolené vstupy na nichž budeme zobrazovat funkcní závislost.
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
24
7 Postup vizualizace 3D rezu Pro grafické zobrazení 3D rezu jsem se rozhodl využít možností Java 3D API. Tato
volba byla predevším podmínena tím, že celá aplikace GAME je napsána práve
v programovacím jazyku Java. Podobne jako v jiných grafických prostredích pro 3D
grafiku, využívá Java 3D k popisu složitejších objektu jejich rozkladu na množinu
elementárních geometrických útvaru jako je bod, úsecka,trojúhelník nebo ctverec.
Pri zobrazení musíme nejprve zvolit souradný systém. V našem prípade jsem
se rozhodl pro kartézský souradný systém. Je to totiž nejcasteji používaný souradný
systém a využívá jej také Java 3D API. Pri vizualizaci 3D rezu tedy ztotožníme
souradný systém rezu a virtuálního modelového prostoru v Java 3D API.
Jak již bylo uvedeno výše, pri tvorbe 3D rezu mnohodimenzionálního prostoru
ponecháváme všechny vstupní promenné krome dvou vybraných na urcité
konstantní hodnote a zbylé dve vstupní promenné meníme od jejich minimálních
možných hodnot až po jejich maximální možné hodnoty a pritom zjištujeme odpoved
síte pro tyto vstupní hodnoty. Projdeme-li takto všechny možné kombinace dvou
zvolených vstupu, získáme množinu bodu, která tvorí zakrivenou plochu v 3D
prostoru, kterou následne zobrazíme a umožníme ji natácet, približovat a oddalovat,
aby si mohl pozorovatel udelat co nejlepší predstavu o jejím tvaru.
Obr. 7.1 Tvorba 3D rezu
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
25 Z technického charakteru problému plyne, že nemužeme projít úplne
všechny body, ale musíme odmery provádet s urcitým krokem. Takto získáme
množinu bodu, které leží na zakrivené ploše, kterou chceme zobrazit. Tyto body
mužeme zobrazit jako body tak jak leží v 3D prostoru obr 7.2. , nebo je mužeme
spojit úseckami obr. 7.3, tímto postupem získáme takzvaný drátový model, anebo je
proložit rovinami obr. 7.4 . Všechny tyto tri možnosti jsem implementoval ve své práci.
Obr. 7.2 Vizualizace chování síte pomocí bodu v prostoru
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
26
Obr. 7.3 Vizualizace chování síte pomocí drátového modelu
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
27
Obr. 7.4 Vizualizace chování síte pomocí ploch v prostoru
7.1 Osy
V technické praxi je zavedeným zvykem kreslit ke grafum osy, jednak aby bylo jasné,
kde má graf pocátek souradného systému a jak je tento souradný systém orientován,
a jednak, aby bylo jasne dané merítko grafu. Merítko grafu vyplývá z hodnot
uvedených po urcitých pravidelných intervalech na osách v podobe grafické znacky a
pripojené císelné hodnoty. Casto se ješte mezi znacky hodnot na osy kreslí menší
znacky, a sice opet v pravidelných intervalech, ale bez popisu. Tyto menší znacky
slouží jako orientacní body pro lepší odhad hodnoty v místech mezi body opatrenými
císelnou hodnotou, která nemuže být z duvodu prostorové nárocnosti na zobrazení
zobrazena s tak velkou hustotou jako samotné grafické znacky.
Pocátek souradného systému bývá obvykle zobrazen prusecíkem os a
orientace souradného systému se znacívá šipkou na konci osy, a sice šipkou ve
smeru kladného rustu hodnot v príslušné dimenzi. K jaké dimenzi urcitá osa prísluší
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
28 je jasné z jejího názvu, který bývá pripsán pod ní nebo nejcasteji do místa blízkého
šipce naznacující její kladnou orientaci.
Ve své práci jsem se snažil, aby bylo zobrazení co nejvíce konfigurovatelné a
aby si jej mohl pozorovatel co nejvíce prizpusobit svým potrebám. Tato snaha se
promítla i do zobrazení os. Pomocí checkboxu v nastavení vlastností zobrazení lze
zobrazování os úplne vypnout nebo zobrazit pouze osy, jak je videt na následujícím
obrázku.
Obr. 7.5 Zobrazení samotných os souradného systému
To, zda bude zobrazen popis os, je další volitelná vlastnost zobrazení.
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
29
Obr. 7.6 Osy souradného systému s jejich názvy
Lze zvolit, zda budou zobrazeny hodnoty na osách a jejich pocet. Popisy jsou
pak umísteny na osy tak, aby mezi dvema popisy na jedné ose byla vždy stejná
vzdálenost a aby úseky mezi jednotlivými osami byly co nejvetší.
Obr. 7.7 Osy souradného systému s jejich názvy a hodnotami
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
30 Další volitelnou vlastností os je zobrazení a pocet menších orientacních
znacek bez popisu hodnot. Jejich rozmístení je opet pravidelné.
Obr. 7.8 Osy souradného systému s jejich názvy, hodnotami a
orientacními body
Jako grafickou znacku oznacující místo na ose jsem zvolil dve stejne dlouhé
úsecky vzájemne se protínající ve svých stredech a navzájem na sebe kolmých a
kolmých na osu, na níž je znacka umístena. Tato dvojice krížících se úsecek tak
vlastne vytvárí znacku ve tvaru znaménka +. Výhodou tohoto symbolu je predevším
to, že at se na nej díváme z jakéhokoli úhlu, je vždy videt alespon jedna úsecka
zkrácená maximálne na polovinu odmocniny ze dvou vynásobené puvodní délkou.
Takže se nikdy nemuže stát, že by znacka nebyla videt. Na druhou stranu, tyto
úsecky zabírají malou cást na obrazovce, a tak v prípade, že leží pred modelem
chování neuronové síte, témer vubec nepusobí rušivým dojmem.
Aby pri sledování modelu z ruzných stran zustávaly názvy os a císelné
hodnoty na osách citelné, je treba zohlednit pri zobrazení techto popisu úhel, ze
kterého do scény nahlížíme. Toto natácení popisu lze jednoduše realizovat pomocí
trídy zajištující, aby byl grafický objekt orientován smerem k pozorovateli vždy ve
stejném úhlu. V terminologii pocítacové grafiky se o takovémuto objektu ríká, že
se chová jako billboard.
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
31 7.2 Vizualizace trénovacích a ucicích dat
Ve chvíli, kdy máme již neuronovou sít naucenou a vizualizujeme její chování,
budeme též chtít do stejného modelu zobrazit i ucicí a trénovací data, aby bylo
možné pozorovat, jak presne je sít proložila.
Tato data jsou vlastne osamocené body v prostoru a jejich poloha je vetšinou
zcela chaotická, nebo se vyskytují shluky.
Ponevadž jsou data body, budeme se je snažit vizualizovat nejobvyklejším
zpusobem – jako body v prostoru. Nejjednodušším zpusobem, jak tohoto cíle
dosáhnout, je reprezentovat data jako koule v prostoru – ty totiž pri natácení scény
vypadají vždy stejne.
Ve skutecnosti mají ucicí a trénovací data zcela presnou polohu
v mnohodimenzionálním prostoru, tedy presne definovanou polohu vzhledem ke
všem dimenzím. Pri zobrazování 3D rezu bychom museli znát presné hodnoty
souradnic, které je treba nastavit na konstantních vstupech pro jednotlivá data,
abychom se dostali s naším 3D rezem do míst v mnohodimenzionálním prostoru,
která presne protínají polohu jednotlivých trénovacích dat. Za tímto úcelem bylo již
v programu GAME implementováno rozhraní v podobe posuvníku, jehož posunem se
dostáváme postupne do mís t v mnohodimenzionálním prostoru, která odpovídají
presné poloze dat. Tento posuvník je nazván „Training or testing data“.
Já jsem se rozhodl na popud svého konzultanta vizualizovat i data, která neleží
presne v poloze dané fixovanými dimenzemi, ale jsou od dané polohy 3D rezu
v mnohodimenzionálním prostoru ne príliš, ale prece jen ponekud vzdálena. To, jak
mnoho jsou data vzdálena od skutecné polohy, jsem zohlednil velikostí zobrazené
kulicky, a to tak, že cím jsou data vzdálenejší od soucasné polohy vizualizovaného
rezu, tím je zobrazovaná kulicka menší.
S rostoucí vzdáleností se kulicky od urcité vzdálenosti nezobrazují. Toto
pravidlo je zavedeno z toho duvodu, že jinak by se vlastne vždy do vizualizace
promítla všechna data, což zase prece jen nechceme. To, od jaké vzdálenosti se
data již nebudou zobrazovat, je opet nastavitelný parametr modelu, a nazvali jsme jej
„klobouk“ – z duvodu podobnosti tvaru této funkce s tvarem oblíbeného módního
doplnku gentlemanu.
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
32
Obr. 7.9 Zobrazení samotných ucicích dat – opet se jedná o 3D rez mnohodimenzionálního prostoru. Jednotlivá ucicí data jsou zobrazena jako
kulicky v prostoru. Velikost kulicky je závislá na její vzdálenosti od její skutecné polohy v mnohodimenzionálním prostoru
Nyní se jen krátce zmíním o tom, v jakém smyslu pracuji s pojmem
vzdálenost. Používám Euklidovu vzdálenost, cili vzdálenost d dvou bodu x, y v n-
dimenzionálním prostoru je definována následujícím vztahem:
( ) ( )21
1
2,
−= ∑
=
n
iii yxyxd
, kde ii yx , jsou i-té souradnice bodu yx, .
Pri zobrazování klasifikacních dat je vetšinou prospešné zobrazit jen data
patrící k jedné klasifikacní skupine. Výber klasifikacní skupiny, jejíž data se zobrazují,
je prováden komboboxem, který již v aplikaci byl. Dále jsem doplnil možnost zobrazit
data všech klasifikacních skupin najednou a také jsem samozrejme umožnil
zobrazování dat úplne vypnout. Obe tyto možnosti jsou rešeny pomocí checkboxu
v menu nastavení grafu.
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
33 7.3 Zobrazení dat a odpovedi síte najednou
Zobrazíme-li data a odpoved síte do jediné scény, mužeme pozorovat, jak sít
prokládá ucicí a trénovací data, a tedy i to , jak je interpoluje a extrapoluje.
Musíme si však na tomto míste uvedomit, že jsou zobrazena i data, která mají
rozdílné hodnoty vstupu, které jsou pro model chování neuronové síte zobrazený
pomocí zakrivené plochy v dané scéne konstantní. Rozdílnost konstantních vstupu je
popsána v minulém oddílu. Proto nelze ocekávat, že sít proloží všechna data –
nebylo by to ani dobrým znakem chování síte. Na druhou stranu by odpoved síte
mela procházet oblastí, která obsahuje vetší zahuštení trénovacích a ucicích dat.
Obr. 7.10 Zobrazení dat a odpovedi síte v jedné scéne
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
34 7.4 Svetla a materiálové vlastnosti Pri implementaci jsem po zkonstruování grafických objektu modelujících chování síte
musel do scény pridat svetla, aby byly grafické objekty viditelné . Nejprve jsem použil
nejjednodušší všudyprítomné svetlo bez smerových vlastností. Tento typ svetla je
v Java 3D API reprezentován sve tlem AmbientLight. Následne jsem pak vyzkoušel,
jak by vizualizace vypadala pri použití smerových svetel. Smerová svetla jsou v Java
3D API reprezentována svetlem DirectionalLight. Rozdíl v nasvícení objektu je
krásne videt na následujících dvou srovnávacích obrázcích – téhož objektu
nasvíceného ruznými typy svetel.
Obr. 7.11 Nasvícení scény všudyprítomným svetlem – AmbientLight
Obr. 7.12 Nasvícení scény smerovým svetlem – DirectionalLight
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
35 Nevýhodou použití smerových svetel je nutnost definovat jednotlivým plochám
normálové vektory. To však není problém, ponevadž každou rovinu máme danou 4
body – ty získáváme jako odpoved neuronové síte a s využitím kartézského soucinu
dvou vektoru získáme normálový vektor této roviny, který je pak ješte dobré
normalizovat. Toto je problém lehce rešitelný. Daleko težší je zodpovedet si na
otázku, zda redundantní informace, která se takto díky odleskum a stínum do
zobrazení zanáší, je pozorovateli prospešná ci nikoli.
Dle mých pozorování je však lepší použít smerové nasvícení scény, nebot
odlesky a stíny mnohem lépe ukazují deformace roviny, které lze v prípade nasvícení
scény pouze všesmerovým – ambientním svetlem pozorovat až pri natácení scény, a
tedy pohledem z ruzných úhlu.
Rozhodl jsem se však ponechat uživateli možnost nastavit oba typy svetel.
Svetlo lze tedy nastavit jak všesmerové, tak smerové, a i kombinace obou. Nastavení
typu svetla se provádí pomocí checkboxu v nastavení vizualizace.
7.5 Nastavení smeru a poctu smerových svetel V prípade použití všesmerového svetla si vystacíme pouze se svetlem jediným,
kterému navíc není nutné a ani možné nastavovat smer vyzarování. Mnohem více
rozhodování nás ceká v prípade použití svetel smerových – ale efektnost a efektivita
následné vizualizace za to jiste stojí.
V prípade užití smerových svetel musíme nastavit jejich smer. Vyzarované
paprsky jsou rovnobežné, a proto musíme použít více smerových svetel tak,
abychom nasvítili scénu ze všech smeru, nebot lze modelem otácet a je nutné, aby
byl model dostatecne nasvícen ze všech smeru. Pri prvním pokusu se smerovými
svetly jsem použil 6 svetel – vždy po dvou smerových svetlech svítících proti sobe ve
smeru os zvoleného souradného systému, jak je naznaceno na obrázku 7.13.
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
36
Obr. 7.13 Orientace 6 smerových svetel Nedostatkem takto nasvícené scény byly nedostatecne nasvícené oblasti
modelu, které mely normálový vektor rovnobežný nebo témer rovnobežný s
diagonálami myšlené krychle , dané souradným systémem vizualizace a vytycené
osami. Proto jsem puvodních 6 svetel nahradil 8 svetly v diagonálním smeru – opet
vždy po dvojici svetel svítících ve smeru proti sobe, jak je naznaceno na obrázku
7.14.
Obr. 7.14 Orientace 8 smerových svetel
Všechny tri zmínené zpusoby osvetlení scény, tedy ambientním svetlem, 6
svetly smerovými a 8 svetly smerovými, je samozrejme možné ruzne kombinovat. To,
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
37 který druh osvetlení a jejich kombinace se použijí, je možné nastavit v panelu
nastavení vizualizacního modulu.
7.6 Barvy svetel
Dalším parametrem pri osvetlování scény, který musíme nejak zvolit, je barva
použitého svetla , a to at se rozhodneme použít ambientní osvetlení, tak i v prípade
svetel smerových. Ponevadž výsledná zakrivená plocha, která modeluje chování
síte, již svou barvu nastavenou má a není smysluplné tuto její barvu ješte dále menit
barvou použitého svetla, zvolil jsem pro všechna svetla barvu bílou. Bílá barva svetla
totiž obsahuje všechny barevné složky, a tak pri dopadu na povrch zachovává jeho
puvodní barvu.
7.7 Zobrazení více modelu najednou – regrese
Ponevadž aplikace GAME využívá k tvorbe modelu z ucicích a trénovacích dat, tedy
k ucení, ruzné algoritmy, mezi než patrí i algoritmy genetické, jsou dva modely
vytvorené na stejných ucicích i trénovacích datech témer vždy odlišné. Nekdy více,
jindy zase méne – to závisí mimo jiné i na ruzných parametrech ucení. Parametru
ucení je veliké množství, patrí sem treba jeho délka, pocet neuronu, jejich prenosové
funkce, ale i mnohé další. Avšak i v prípade, že použijeme stejné i tyto parametry a
stejná data, obdržíme nakonec témer vždy ruzné síte. To je dáno charakterem
trénovacích algoritmu.
Zobrazíme-li více modelu do jedné vizualizacní scény, mužeme práve tyto
odlišnosti pozorovat. V oblastech, kde se síte chovají velmi podobne, mužeme
s vetší pravdepodobností ocekávat, že se modely vytvorené neuronovými sítemi
svým chováním více blíží reálnému chování modelovaného systému. Ale ani
stoprocentní shoda více modelu nemuže zarucit shodu v chování modelu s chováním
reálného modelovaného systému, stejne tak jako neplatí, že více hlav vždy ví víc.
Príkladem ze života muže být situace, kdy necháme hlasovat velké množství lidí o
veku ženy, která vzhledove vypadá mladší než ve skutecnosti je , a tento fakt jim
nesdelíme. Pak budou odhadovat její vek na základe svých bohatých každodenních
zkušeností a budou její stárí typovat na vek, na který momentálne vypadá. Skutecná
pravda však bude jiná a prumerný odhad tipující skupiny se nezlepší ani s vetším
poctem tipujících jedincu.
Na druhou stranu v oblastech, kde mají síte dostatek správných trénovacích
dat, lze ocekávat, že se síte svým nauceným chováním budou realite približovat lépe.
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
38 Pro úcely srovnávání chování sítí jsem tedy do své vizualizace zavedl
možnost zobrazit více modelu v jedné scéne. K výberu neuronových sítí, které
chceme vizualizovat, jsem využil rozhraní, které již bylo v programu GAME
implementováno a slouží ke stejnému úcelu – výberu více sítí nebo jen urcitých
skupin sítí.
Jak již bylo receno výše, lze u každé síte vybrané k vizualizaci následne
nastavit zpusob její vizualizace, cili zvolit, zda bude zobrazena pomocí ploch – tato
volba je implicitní, nebo pomocí drátového modelu anebo pomocí bodu. Také lze
zvolit u každé síte její individuální barvu a nastavit její míru pruhlednosti. O
problematice pruhlednosti je pojednáno níže. Volba barvy se provádí po stisku
tlacítka „Set color“ a následnou volbou z dialogu, kde je k dispozici volba ze škály
preddefinovaných barev, dále stanovení barvy s využitím barevného modelu RGB
nebo barevného modelu HSB. Barva síte je, pokud není následne zvolena jinak,
nastavena automaticky tak, aby byla barva každé síte jiná.
Obr. 7.15 Více sítí v jedné scéne spolu s daty
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
39 7.8 Problémy s pruhledností, chyba v Java 3D API
Na obrázku 7.15 je zobrazeno nekolik neuronových sítí najednou. Tyto síte se
navzájem prekrývají a protínají, takže cást jejich tvaru není z jednoho úhlu pohledu
videt. Pro získání predstavy o jejich tvaru je nutné pohled na scénu ruzne natácet a
v prípade vetšího poctu sítí než 2 i približovat a oddalovat. Tuto manipulaci s úhlem
pohledu a priblížení mnou naprogramovaný modul umožnuje , a sice v reálném case.
Pri stisku levého tlacítka myši v okne s vizualizovanou scénou lze pohybem myši
menit úhel pohledu na scénu. Obdobne lze pri stisku prostredního tlacítka myši,
prípadne rolovacího kolecka, menit priblížení ci oddálení scény a stejným zpusobem
pomocí pravého tlacítka myši lze menit horizontální a vertikální polohu pohledu na
scénu.
Pri vývoji jsem se zabýval myšlenkou, že by mohlo být pro zkoumání chování
modelu užitecné, kdyby bylo možné zobrazit jednotlivé síte tak, aby byly cástecne
pruhledné a umožnily tak soucasne pohlédnout i na oblasti, které jsou v prípade
zobrazení více modelu najednou prekryté modelem, který leží nad nimi. Ponevadž
dokumentace Java 3D API uvádí, že je možné grafickému objektu nastavit míru jeho
pruhlednosti, zavedl jsem proto i tuto možnost nastavení míry pruhlednosti
jednotlivým sítím i do svého vizualizacního modulu. Zobrazení trí sítí najednou, jež
mají nastavenou 50ti procentní pruhlednost, je videt na obrázku 7.16.
Obr. 7.16 3 síte s pruhledností
KAPITOLA 7. POSTUP VIZUALIZACE 3D REZU
40
Obr. 7.17 Stejné síte jako na obrázku 7.16, ale nepruhledné
Na obrázku 7.17 jsou zobrazeny tytéž síte ve stejné poloze jako na obrázku
7.16. V grafu zobrazeném na obrázku 7.17 je videt, že se síte ruzne prolínají a
prekrývají. V nekterých oblastech je nejblíže k pozorovateli žlute obarvená sít, jinde
zase sít obarvená modre a v nekterých oblastech je to sít cervená. Toto protínání se
jednotlivých ploch by se melo projevit i na obrázku 7.16 s cástecne pruhlednými
modely. Skutecnost je však jiná. Na obrázku s cástecne pruhlednými modely jsou
jednotlivé síte zobrazeny tak, jako by ležely postupne nad sebou a vubec se
neprotínaly. Po prozkoumání císelných hodnot modelu zobrazených na techto dvou
obrázcích jsem se ujistil v predpokladu, že chybne jsou zobrazeny modely
s nastavenou cástecnou pruhledností – že se jednotlivé modely prolínají, tak jak je
videt na obrázku 7.17.
Po bezúspešném hledání chyby ve zdrojovém kódu jsem se na diskusních
stránkách o Java 3D API ujistil ve svém predpokladu, že je v Java 3D API chyba
v zobrazování cástecne pruhledných objektu. Pri psaní této práce jsem pro práci
s 3D grafikou využíval verzi 1.3.1, která byla v té dobe nejnovejší oficiální verzí Java
3D API. Dále jsem vyzkoušel použít verzi 1.4.0 která byla v té dobe stabilní testovací
verzí Java 3D API. Verze 1.4.0 sice chybu s pruhledností neodstranuje, ale prináší
mnohem rychlejší rendering a lépe pracuje a reší správu pametí pri práci s grafickými
objekty. Z tohoto duvodu a z duvodu bezproblémového chování pri pokusech jsem
KAPITOLA 8. CTENÍ GRAFU
41
se rozhodl u této verze Java 3D API zustat. Problém se zobrazováním cástecne
pruhledných objektu by dle informací na oficiálních stránkách k Java 3D API mel být
odstranen ve verzi 1.5. Z tohoto duvodu jsem ponechal ve svém modulu možnost
zobrazování modelu s nastavitelným procentem pruhlednosti. Až bude správne
fungující verze Java 3D API dostupná, nemel by být problém spouštet pod ním
programový kód napsaný pro predešlé verze, což je u Javy a i dalších
programovacích jazyku obvyklé.
8 Ctení grafu – co lze z vizualizovaného modelu vypozorovat
Nyní se podívejme na obrázek 8.1. Na tomto obrázku je zobrazeno 5 rezu modelu
neuronových sítí, které modelují všechny stejnou výstupní velicinu jednoho systému.
Konkrétne u tohoto systému se jedná o model cen budov v Bostonu v závislosti na
mnoha ruzných faktorech, jako je jejich stárí, vzdálenost od centra mesta, znecištení
ovzduší, kriminalita atd. Na obrázku 8.1 leží výstupní parametr, tedy cena budovy, na
ose RESPONSE a je zobrazena v nejakém bode n-dimenzionálního prostoru
v závislosti na parametrech AGE a RM. Ihned vidíme, že v tomto bode n-
dimenzionálního prostoru není cena budovy, nebo jen nepatrne, ovlivnena jejím
stárím – AGE a, že na parametru – RM naopak závislá je a sice tak, že s rostoucím
parametrem – RM klesá, krome modelu zobrazeného hnede, kde nejprve prudce
roste a pak klesá s podobným trendem jako u ostatních modelu. Pokud bychom
chteli tyto dva fakty zobecnit na celý n-dimenzionální prostor našeho modelu,
nemužeme ríci, že cena budov není na parametru AGE závislá – nevíme totiž, jak se
model chová v jiných místech. Naproti tomu mužeme zcela jiste konstatovat, že cena
budov je závislá na parametru RM, a tudíž je tento parametr zcela jiste významný.
V oblasti vymezené intervalem hodnot <54.7;70.9> mají všechny modely
podobné hodnoty, a tudíž lze v této oblasti od jednotlivých modelu ocekávat, že jsou
v rámci malého rozptylu správné a blíží se reálným cenám budov. Ve zbylých 2/3 se
jednotlivé modely více odchylují, a tudíž zde nelze od modelu ocekávat príliš velikou
shodu s reálným systémem závislosti cen budov.
KAPITOLA 8. CTENÍ GRAFU
42
Obr. 8.1 Závislost ceny budov v urcitém bode n-rozmerného prostoru
8.1 Vyhledání oblastí zajímavého chování modelu Tato cást práce je inspirována a navazuje na práci uvedenou v [6]. V této práci je
popsán postup, jak pomocí genetického algoritmu vyhledávat zajímavé oblasti
chování modelu s cílem vizualizovat tyto zajímavé oblasti ve 2D prostoru. Tento
postup jsem upravil tak, aby jej bylo možné využít pro vizualizaci ve 3D prostoru.
Také jsem využil poznatky z experimentu uvedených v [6] k sestavení fitness funkce
a dalších parametru genetického algoritmu.
Hlavním problémem pri studiu chování modelu neuronových sítí je velká
dimenzionalita vstupních dat. Model neuronové síte je definován pro jakoukoliv
kombinaci vstupních parametru. Orientovat se v tomto obrovském prostoru bez další
znalosti závislostí v množine ucicích dat je témer nemožné. Víme, jaké chování
modelu je zajímavé, ale problémem je najít tyto zajímavé oblasti (nastavit vstupní
parametry), které tomuto chování odpovídají.
Pri 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í.
KAPITOLA 8. CTENÍ GRAFU
43
Na model neuronové síte se mužeme dívat jako na funkci vektoru vstupních
promenných.
( )xfyr
= , kde ( )nxxxx ,...,, 21=r, kde 1;0∈ix ,
kde n je dimenze vstupního vektoru (pocet vstupních parametru modelu).
Po predložení vstupního vektoru xr
i-tému modelu získáme odezvu yi, která je
normalizovaná do intervalu 1;0 .
Pri skupinovém ucení bylo vytvoreno m modelu neuronové síte. Odezvy
modelu budou zkoumány vždy pro dva zvolené vstupní parametry xj1 a xj2, kde 1 = j1
= n a zároven 1 = j2 = n . Tyto vstupní parametry jsou promenné, které pro jedno
nastavení ostatních vstupních parametru urcují prubeh odezvy modelu. Pro jedno
nastavení vstupního vektoru xr
je tedy možné zobrazit prubeh odezvy jednoho
modelu jako funkci dvou promenných yi(xj1, xj2), kde xj1 velikoststartstart XXX +∈ 11 ; , xj2
velikoststartstart XXX +∈ 22 ; jsou vybrané vstupní parametry a i je index jednoho ze
skupiny modelu. Úkolem genetického algoritmu je najít takové nastavení vstupního
vektoru xr
a parametru x1start, x2start, xvelikost urcující oblast, aby odezvy yi modelu
splnovaly následující podmínky pro „zajímavou oblast“:
1. Odezvy modelu jsou v oblasti velikoststartstartvelikoststartstart XXXXXX +×+ 2211 ;; co
nejpodobnejší. V místech, kde jsou odezvy modelu podobné, je pravdepodobné, že
odezvy jsou správné. To je dáno tím, že v prubehu ucení modelu je odezva nejdríve
náhodná a postupne je upravována tak, aby odpovídala množine ucicích dat. Z toho
plyne, že v místech, kde je možné odezvu modelu porovnat s daty z ucicí množiny,
jsou odezvy modelu podobné a na ostatních místech jsou náhodné. Místa, kde jsou
odezvy modelu náhodné, je treba odfiltrovat a vyhledat jen místa, kde se modely
shodují. Míra podobnosti modelu p v oblasti
velikoststartstartvelikoststartstart XXXXXX +×+ 2211 ;;
je dána vztahem:
( )( ) ( )( )∑∑+
=≤<≤<
+
=
−=
velikoststart
start
velikoststart
start
XX
Xkimii
mi
XX
Xjvelikost
kjfkjfX
p2
2
1
1
,minarg,maxarg1002 .
KAPITOLA 8. CTENÍ GRAFU
44
2. Nalezená oblast je co nejvetší (maximalizace parametru xvelikost) Odezvy modelu
se mohou na nejaké 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é ploše pro zkoumané vstupní parametry xj1,xj2 jsou odezvy modelu
podobné.
3. Velikost zmeny chování prumerných odezev modelu v nalezené ctvercové oblasti
velikoststartstartvelikoststartstart XXXXXX +×+ 2211 ;; .
Pokud jsou odezvy modelu podobné na dostatecne velké oblasti vstupních
parametru, je další podmínkou definující zajímavou oblast samotný prubeh odezev
modelu. Modely se na zkoumaném intervalu chovají podobne, a je tedy možné
vycházet z jejich prumerné hodnoty.
( ) ( )∑=
=m
ijjijj xxy
mxxy
12121 ,1, ,kde
[ ] velikoststartstartvelikoststartstartjj XXXXXXxx +×+∈ 221121 ;;; ,
kde m je pocet zkoumaných modelu a yi je odezva i-tého modelu. Pokud je prubeh
na zkoumané oblasti konstantní, je zrejmé, že modely na zmenu zkoumaných
parametru nereagují. Taková oblast není tak zajímavá jako v prípade, kdy se
prumerná odezva modelu mení. Jedním ze zpusobu, jak tyto zmeny poznat, je
porovnání minimální a maximální hodnoty prumerné odezvy modelu na zkoumané
oblasti. Z techto hodnot je odvozen parametr
)),(min(arg)),((maxarg 2121 ttyttyyvelikost −= , kde
[ ] velikoststartstartvelikoststartstart XXXXXXtt +×+∈ 221121 ;;; .
8.2 Aplikace genetického algoritmu Pro vyhledání zajímavých oblastí v modelech lze využít genetického algoritmu. Pro
nasazení genetického algoritmu musíme stanovit chromozom, který definuje jedno
rešení, dále operátory krížení, mutace a selekce techto chromozomu v populaci
jedincu, kterí jsou popsáni práve temito chromozomy.
KAPITOLA 8. CTENÍ GRAFU
45
8.2.1 Zakódování chromozomu
Parametry, které definují „zajímavou oblast“, jsou vstupní vektor xr
, velikost oblasti
xvelikost a volba dvou zkoumaných vstupních promenných xj1, xj2. Volbu zkoumaných
vstupních promenných xj1 a xj2 však není nutné do chromozomu zahrnout, nebot ta je
predem dána volbou pred aktivací celého vizualizacního modulu.
Chromozom je tedy vektor o dimenzi n + 1 . Prvních n složek jsou vstupní
parametry modelu. Poslední n+1. složka chromozomu kóduje velikost ctvercové
oblasti. Pri krížení a mutaci chromozomu se muže stát, že velikost oblasti by mohla
prekrocit oblast, pro kterou je model definován. Proto je pri výpoctu fitness hodnoty
daného chromozomu provedena nejprve korekce této složky.
Obr. 8.2 Zakódování chromozomu
8.2.2 Operátory krížení
Po vybrání (selekci) vhodných kandidátu na rodice jsou použity operátory krížení,
jejichž produktem jsou noví potomci. V našem prípade, kdy jsou chromozomy
zakódovány jako vektory reálných císel, je krížení dvou chromozomu možno
provádet výpoctem aritmetického prumeru pro každou složku vektoru. Složky vektoru
chromozomu potomka pi jsou pak dány vztahem:
2ii
i
bap
+= , pro i ? {1, 2, ..., n + 1},
kde n je dimenze vektoru vstupních dat. Tento zpusob krížení generuje jen jednoho
potomka na dva rodice, protože takto definovaný operátor krížení je symetrický.
Dalším použitým operátorem krížení je operátor jednotného krížení. Tento
operátor prochází oba chromozomy a se zadanou pravdepodobností vymenuje
jednotlivé položky vektoru chromozomu rodicu. Pri použití tohoto operátoru krížení
vzniknou potomci dva.
KAPITOLA 8. CTENÍ GRAFU
46
8.2.3 Operátor mutace
Operátor mutace se zadanou pravdepodobností náhodne modifikuje velikosti
jednotlivých složek vektoru chromozomu. Operátor mutace slouží genetickému
algoritmu ke generování nových rešení. Nastavení pravdepodobnosti mutace je
otázkou experimentu. Príliš velká pravdepodobnost nebo velikost mutace muže
zpusobit nefunkcnost genetického algoritmu, ale na druhou stranu muže zpusobit
nalezení zcela nového rešení a pomáhá zabránit algoritmu k zabrednutí do lokálních
minim.
8.2.4 Operátor selekce
Použil jsem operátor, který je nazýván exponenciální ranking. Tento operátor
predpokládá, že na vstupu je serazena posloupnost chromozomu od nejlepšího
k nejhoršímu (podle klesající hodnoty fitness funkce). Pokud v populaci existuje
chromozom s výrazne lepší fitness, má nejvetší pravdepodobnost být vybrán, ale
oproti jednodušším operátorum selekce nezpusobí predcasnou konvergenci
genetického algoritmu. Pravdepodobnost pi výberu i-tého z m chromozomu je:
∑=
= m
i
i
i
i
c
cp
1
.
Pro index chromozomu i a náhodne vybrané císlo r z intervalu (0; 1) platí následující
vztah:
∑∑=
=
=i
jm
kk
j
c
cr
11
.
Z této rovnosti plyne vztah pro index vybraného chromozomu:
ccr
im
ln)1)1(ln( +−
= ,
a jelikož index vybraného chromozomu musí být celé císlo, je index roven i .
Základ exponentu c je parametr, který je v intervalu (0;1), jehož zmenou lze
menit selekcní tlak. Selekcní tlak udává míru zvýhodnení lepších chromozomu
pred horšími. Zmena selekcního tlaku tak ovlivnuje míru zachování variability
KAPITOLA 8. CTENÍ GRAFU
47
v populaci, a tím predcasnou konvergenci genetického algoritmu k lokálnímu
maximu.
8.2.5 Fitness funkce
V práci [6], keterou je genetické hledání zajímavých oblastí inspirováno, je
experimentálne zjišteno, že pro 2D prípad hledání zajímavých oblastí se nejlépe
osvedcila fitness funkce v následující podobe, a proto jsem pro svuj 3D prípad použil
její stejný tvar:
pyxfitness velikostvelikost
1**= .
Tato funkce díky soucinu všech zahrnutých faktoru podporuje takové oblasti,
ve kterých jsou splnena všechna kritéria zajímavosti najednou, a to tak, že cím vetší
hodnoty nabývají jednotliví cinitelé fitness funkce, tím více je príslušná oblast
uprednostnena.
8.2.6 Nastavení parametru genetického algoritmu
Pro základní nastavení parametru genetického algoritmu jsem použil hodnoty, které
byly experimentálne nalezené v [6]. Aby bylo možné tyto hodnoty konfigurovat, pridal
jsem k ovládacím panelum vizualizace 3D rezu panel, kde je možné menit nastavení
genetického algoritmu, a tento panel je také místem, kde se stiskem tlacítka „Search“
spouští samotné hledání genetickým algoritmem. Samotné hledání pak probíhá
v samostatném vlákne, a tak je možné dále se scénou v prubehu hledání pracovat.
Postup hledání, cili pocet již odsimulovaných generací, lze sledovat hned pod
tlacítkem „search“, kde je zobrazen pomocí progressbaru. Po stisku tlacítka „Prejít do
nejlepší oblasti“ dojde k nastavení všech promenných do pozice, která této oblasti
odpovídá, a k zobrazení modelu príslušného modelu ve 3D scéne. Do nejlepší
oblasti je možné prejít již po výpoctu první generace a tato nejlepší oblast je nejlepší
oblastí, kterou do té doby genetický algoritmus nalezl. Usporádání ovládacího
konfiguracního panelu genetického algoritmu je zobrazeno na obr. 8.3.
48APITOLA 9. TESTOVÁNÍ A EXPERIMENTY
Obr. 8.3 Usporádání konfiguracního panelu genetického algoritmu
9 Testování a experimenty
9.1 Mlžná telesa pro klasifikacní modely Primárním cílem této práce je sice vizualizace regresních modelu, ale
pred zapocetím prací na vizualizaci 3D rezu regresních modelu jsem se také zabýval
možností vizualizace 4D rezu s pomocí Javy 3D. Použití 4D rezu bylo omezeno
pouze na klasifikacní modely. Myšlenka byla následující: Jednu z promenných 4
dimenzí modulovat do pruhlednosti v daném bode 3D scény a zbylé 3 promenné
použít k urcení polohy vzhledem k souradným osám vizualizacní 3D scény.
Pro modulaci do pruhlednosti byla zvolena promenná n-dimenzionálního prostoru
predstavující odpoved síte. Tímto postupem bychom získali scénu, kde by byly
mlžné objekty podobné mrakum na obloze, jejichž hustota by odpovídala míre
49 KAPITOLA 9. TESTOVÁNÍ A EXPERIMENTY
klasifikace k dané množine v daném bode. Místa, kde jsou takto vytvorené mraky
nepruhledné, klasifikuje sít do dané množiny, a naopak v místech, kde mracna
nejsou – cili jsou zcela pruhledná, neklasifikuje sít do dané množiny. Oblasti
cástecne pruhledných mracen pak odpovídají svou pruhledností míre nejistoty
klasifikace do dané trídy. Barevne by pak bylo možné odlišit jednotlivé klasifikacní
trídy.
Objekt Fog obsažený v Java 3D API není možné využít, nebot ten nefunguje
jako mlha v prírode, cili nejedná se o objem s cástecnou pruhledností, ale funguje
tak, že snižuje viditelnost objektu ve scéne v závislosti na jejich vzdálenosti
od pozorovatele. Toto je zcela jiné chování mlhy, než pro naše úcely potrebujeme.
Další alternativou, kterou jsem odzkoušel, bylo zobrazení krychlí, jejichž
pruhlednost byla dána odpovedí síte v daném bode. Zásadním nedostatkem takto
vizualizované scény bylo príliš velké množství rušivé informace ve scéne zpusobené
odlišnými optickými vlastnostmi na hranách a stenách zobrazených krychlí.
Pri použití vetších krychlí sice tento efekt slábl, ale zase nebylo možné pozorovat
detailnejší chování modelu. Naopak pri použití menších krychlí zcela prevládal tento
rušivý efekt nad efektem žádaným. Z tohoto duvodu jsem v rozvoji této alternativy
rešení dále nepokracoval.
Predposledním pokusem o rešení problému vizualizace 4D rezu byla
modulace míry klasifikace k dané tríde do pruhlednosti bodu umístených ve scéne.
Body jsem umístil do pravidelné pravoúhlé mrížky. Zobrazení jednoho modelu, které
jsem takto získal je na obr. 9.2. Pravidelnost umístení bodu do mrížky a perspektiva
pohledu na scénu zpusobují vznik artefaktu, které opet zcela zastinují kýžený efekt.
Z tohoto duvodu je i tato metoda nepoužitelná.
50APITOLA 9. TESTOVÁNÍ A EXPERIMENTY
Obr. 9.1 Artefakty pri vizualizaci klasifikace pomocí bodu
Pri posledním pokusu o vizualizaci 4D rezu jsem jako objekty scény použil
objekty typu billboard. Objekty typu billboard se bežne používají v aplikacích 3D
grafiky a jejich hlavním znakem je zachovávání stejné orientace k pozorovateli,
bez ohledu na úhel natocení scény vzhledem k pozorovateli. Tyto objekty se bežne
používají k vizualizaci složitých objektu, jako jsou napríklad stromy, které jsou
nahrazeny texturou, která pak zachovává stálou orientaci k pozorovateli. Já jsem
použil ctvercové plochy, jejichž míru pruhlednosti jsem nastavil podle míry klasifikace
síte v daném bode. Opet je možné jednotlivé klasifikacní skupiny barevne odlišit a
zobrazit tak více ruzných sítí do jediné scény najednou. Výsledná vizualizace
modelu, kterou jsem tímto postupem naprogramoval, je videt na obr. 9.3. Bohužel i
tato cesta má jeden podstatný nedostatek, který brání nasazení tohoto postupu.
Tímto nedostatkem je fakt, že Java 3D API pocítá v nekterých prípadech chybne
pruhlednost v prípade více pruhledných objektu umístených za sebou, a tato chyba
je dána špatným urcením poradí pruhledných ploch vzhledem ke zdroji svetla ve
scéne. Tato chyba v Java 3D API souvisí s chybou popsanou v kapitole 7.8 . Tato
chyba Java 3D API by mela být v príštích verzích Java 3D API odstranena, a proto je
možné do budoucna uvažovat o nasazení této metody.
51 KAPITOLA 9. TESTOVÁNÍ A EXPERIMENTY
Obr. 9.2Vizualizace klasifikacního modelu s využitím billboardu
9.2 Overení korektnosti vizualizace 3D rezu
Pro overení korektnosti vizualizace modelu jsem vygeneroval data s využitím
jednoduchých funkcí, jejichž tvar si lze snadno predstavit. Tato data jsem predložil
systému GAME k natrénování a následne jsem ve vizualizovaných modelech
kontroloval jejich korektnost. Kontrolní data bylo však nutné vytvorit tak, aby bylo
možné zkontrolovat správnou vzájemnou polohu os, trénovacích dat a modelu, a
proto bylo nutné vytvorit data tak, aby byla asymetrická vzhledem k osám
souradného systému.
Pro tyto úcely jsem použil následující funkci trí promenných x,y,z:
( ) ( ) zyxzyxSETvýsledekDE *,, += pokud yx ≥ jinak 0, pricemž 5;0∈x ; 10;0∈y ; 50;0∈z .
52APITOLA 9. TESTOVÁNÍ A EXPERIMENTY
Data jsem vygeneroval s krokem generování 1 v celém oboru všech promenných
x,y,z:
Promenné této funkce vytvorí spolu s natrénovanou odpovedí sítí (cili s aproximací
funkcní hodnoty) 4-dimenzionální prostor. Na obr. 9.3 je vizualizace dvou modelu
vytvorených aplikací GAME na datech, vygenerovaných s pomocí výše uvedené
funkce. Jeden z modelu je obarven svetle šedou barvou a druhý hnedožlutou. Ucicí
data jsou zobrazena pomocí cervených koulí. Promenná z slouží jako merítko, ale
jejím hlavním úcelem je, aby umožnila demonstrovat závislost velikosti zobrazení
trénovacích dat na jejich vzdálenosti od jejich skutecné polohy, vzhledem
k zmrazeným dimenzím. To je nejlépe videt v levé cásti obr. 9.3 V pravé cásti
obrázku, za zlomem funkce, se vizualizovaná trénovací data vzhledem k dimenzi
z nemení, a proto jsou zobrazena vždy jako jedna koule.
Z obr. 9.3 a definice trénovací funkce je patrné, že poloha os a modelu je správná.
Také je na nem videt, že rozsah hodnot na osách a jejich popis odpovídá
trénovaným hodnotám.
53 KAPITOLA 9. TESTOVÁNÍ A EXPERIMENTY
Obr. 9.3 Overení korektnosti vizualizace
9.3 Užití genetického algoritmu Pro otestování funkcnosti genetického algoritmu jsem vygeneroval trénovací data,
která jsem následne predložil síti k natrénování. Pri trénování jsem nechal program
GAME vytvorit 5 modelu. Tato trénovací data jsem vygeneroval tak, aby byla
trojrozmerná, a použil jsem následující predpis:
( )
Π
=100
**2sin*,,
yxzyxf
, pokud 5=z ,jinak náhodné císlo z intervalu 1;0 s 5%
pravdepodobností nebo žádná hodnota,
pricemž 10;0∈x ; 100;0∈y ; 10;0∈z .
54APITOLA 9. TESTOVÁNÍ A EXPERIMENTY
Tato data vytvorí spolecne s funkcní hodnotou 4 dimenzionální prostor. Víme o nich,
že urcite obsahují alespon jednu zajímavou oblast, a sice pro z = 5. Ostatní data jsou
náhodný šum. Pro vizualizaci techto modelu pomocí 3D rezu je jako zmrazená
dimenze zvolena promenná z, která zde slouží pro urcení polohy zajímavé oblasti.
Na levé polovine obrázku 9.4 je zobrazen model v náhodne zvoleném bode
vzhledem k promenné z. Zde je videt, že se jednotlivé modely, které jsou barevne
odlišené, se svými hodnotami odpovedí liší. Tato odlišnost odpovedí je dána velmi
malou hustotou ci absencí trénovacích dat v tomto bode prostoru. Následne jsem
nechal genetický algoritmus najít zajímavou oblast s ponecháním jeho nastavení na
jeho základních hodnotách, a ten po stu generacích evoluce oznacil jako
nejzajímavejší oblast v bode 4,989 na ose z, což je o pouhých 0,011 od námi
ocekávaného bodu. Ponevadž je chování modelu v nalezeném bode témer stejné
jako v oblasti dané ocekávaným bodem – jednotlivé modely mají podobné chování,
výrazne mení své hodnoty a velikost této oblasti je velká – lze tento výsledek hledání
zajímavé oblasti genetickým algoritmem považovat za vynikající. Navíc leží nalezená
oblast velmi blízko ocekávané oblasti. Vizualizace modelu v takto nalezené oblasti je
na obr. 9.4 vpravo.
0br. 9.4 Vlevo náhodná oblast, vpravo zajímavá oblast nalezená genetickým
algoritmem
Oblast na obrázku 9.4 vpravo se nachází velmi blízko místa, kde leží trénovací data,
a je videt, že všech 5 modelu velmi presne aproximuje trénovanou funkci sinus (y)
násobenou x a ani jeden model se nesnaží aproximovat šum. To je ale presne to,
KAPITOLA 10. ZÁVER
ceho jsme chteli dosáhnout! Genetický algoritmus nalezl oblast, kde modely velmi
dobre aproximují natrénovanou funkci a shodují se svými hodnotami. Také je
z tohoto obrázku patrné, že umístení modelu vzhledem k osám, hodnoty na osách
stejne tak jako tvar zobrazeného modelu odpovídjí trénovaným datum.
Prubeh rustu hodnoty fitness funkce pri behu genetického hledání je zachycen
v grafu na obrázku 9.5 .
0
0,0005
0,001
0,0015
0,002
0,0025
0,003
0,0035
0,004
0,0045
0 10 20 30 40 50 60 70 80 90 100
Generace
Fitness
Obr. 9.5 Prubeh rustu fitness funkce pri hledání zajímavých oblastí genetickým
algoritmem
9.4 Genetický algoritmus na reálných datech Pro otestování genetického algoritmu jsem použil data pocházející z [11]. Zvolená
data obsahují ceny budov v Bostnu spolu s údaji o jejich konkrétní vzdálenesti od
centra, stárí, celkem je sledováno 12 atributu budov. Modelovaným parametrem je
práve cena techto budov v závislosti na techto parametrech. Spolu s cenou je pak
tedy modelový prostor 13ti dimenzionální.
Po natrénování sítí jsem spustil genetický algoritmus s volbou sledovaných
parametru AGE a CRIM, tentokrát jsem ale oproti základnímu nastavení nechal
algoritmus bežet 1000 generací.
Na levé polovine obrázku 9.6 je zobrazen model v náhodne zvoleném bode a
na pravé polovine je oblast nalezená genetickým algoritmem. Je videt, že nalezená
KAPITOLA 9. TESTOVÁNÍ A EXPERIMENTY
oblast se chová více zajímavým zpusobem, než oblast náhodná. Prubeh vývoje
fitness funkce je zachycen na obrázku 9.7 .
Obr. 9.6 Vlevo náhodná oblast, vpravo zajímavá oblast nalezená genetickým
algoritmem
Na obrázku 9.6 je videt, že v nalezené oblasti se jednotlivé modely svými
hodnotami shodují lépe, než v oblasti zvolené náhodne.
0
0,0002
0,0004
0,0006
0,0008
0,001
0,0012
0,0014
0,0016
0 100 200 300 400 500 600 700 800 900 1000
Generace
Fitness
Obr. 9.7 Vývoj fitness funkce na modelech z reálných dat
Z obrázku 9.7 je patrné, že po sté generaci se hodnota fitness funkce již
významne nemení, címž dokládá kvalitu základního nastavení genetického
algoritmu.
KAPITOLA 10. ZÁVER
10 Záver Navrhl a implementoval jsem moduly do programu GAME, které vizualizují chování modelu neuronových sítí vytvorených v tomto programu. Oba tyto moduly využívají prostredku 3D grafiky. 3D grafika v techto modulech využívá rozhraní Java 3D API. Bohužel, v dusledku chyby v Java 3D API je použitelný pouze jeden z techto dvou modulu a sice vizualizace 3D rezu n-dimenzionálního prostoru. Po odstranení chyby v Java 3D API by však melo být možné nasadit i druhý modul. Pro nalezení oblastí, ve kterých mají modely z našeho hlediska zajímavé chování, v n-dimenzionálním prostoru, a jejich následnou vizualizaci jsem implementoval genetický algoritmus, který umožnuje jejich automatické nalezení a prechod k jejich vizualizaci. Správná funkcnost vizualizacního modulu, stejne tak jako genetického algoritmu, byla overena experimenty na skutecných a umele vygenerovaných datech. Výsledky této práce jsem prezentoval na 11. Bilateral Student Workshop CTU Prague – HTW Dresden, která se konala 1. – 3. prosince 2006 v Dráždanech. Díky efektnosti obrázku, které pri 3D vizualizaci modelu získáváme, jsou tyto obrázky velmi vhodné pro prezentacní úcely programu GAME, stejne tak jako samotných výsledku práce tohoto programu.
KAPITOLA 11. SEZNAM LITERATURY
11 Seznam literatury
[1] Šnorek M.: Neuronové síte a neuropocítace, Vydavatelství CVUT, Praha,
2002, ISBN 80-01-02549-7.
[2] Horácek P.: Systémy a modely, Vydavatelství CVUT, Praha, 1999,
ISBN 80-01-01923-3.
[3] Kordík P.: Fully Automated Knowledge Extraction using Group of Adaptive Models
Evolution, PhD thesis, FEE, CTU Prague, September 2006.
[4] Minsky M., Pápery S.: Perceptrons. MIT Press 1969.
[5] P. L.K.Hansen: Neural network ensembles. IEEE Trans. Pattern Anal. Machine
Inteligence, 1990.
[6] Seidl Jan: Vizualizace jako nástroj studia chování modelu
prírodních systému, Diplomová práce CVUT, 2006.
[7] java.net: The source for Java Technology Collaboration
https://java3d.dev.java.net.
[8] Sun Developer Network: http://java.sun.com/products/java-media/3D/index.jsp.
[9] Daniel A. Keim: Information Visualization and Visual Data Mining, IEEE
Transactions On Visualization and Computer Graphics, Vol. 7, No. 1, January –
March 2002.
[10] interval.cz: http://interval.cz/clanky/java-a-3d-grafika-graf-sceny/ .
[11] Neural Computing Group: http:/neuron.felk.cvut.cz/game/.
[12] Uci machine learning repository:
http://www.ics.uci.edu/~mlearn/MLSummary.html.
KAPITOLA 11. SEZNAM LITERATURY
12 Seznam použitých zkratek Renderování – název používaný pro proces výpoctu vizuální podoby 3D scény
Progressbar – grafický prvek urcený pro indikaci stavu déle trvajícího vývoje
nejakého procesu
4D – ctyrdimenzionální
3D – trídimenzionální
2D – dvoudimenzionální
API – Application Programming Interface – rozhraní urcené pro programování
aplikací
PC – Personal Computer – osobní pocítac
AWT – Abstract Window Toolkit – rozhraní Javy pro práci s grafickými ovládacími
prvky
KAPITOLA 10. ZÁVER
13 Uživatelská prírucka Tato prírucka popisuje ovládání implementovaného vizualizacního modulu, který
jsem implementoval do programu GAME. Popis práce s programem GAME lze získat
z [11] a tento popis není predmetem této prírucky. Tato prírucka se zabývá pouze
implementovaným vizualizacním modulem.
13.1 Instalace
Postup instalace a spuštení programu GAME s implementovaným vizualizacním
modulem je popsán v souboru index.html v korenovém adresári priloženého CD.
13.2 Získání modelu pro vizualizaci Model pro vizualizaci je možné vytvorit v programu GAME. Popis tvorby je modelu je
popsán v [11]. Dríve vytvorený model je možné nacíst ze souboru. Nactení se
provede volbou File -> load a následným výberem souboru v menu programu GAME.
13.3 Aktivace vizualizacního modulu Máme-li nactený model, který chceme vizualizovat, je nejprve nutné oznacit presne
dve vstupní promenné tohoto modelu. Oznacení vstupních promenných se provádí
v levé cásti okna aplikace GAME pomocí checkboxu, kde jeden checkbox odpovídá
jedné vstupní promenné.
Dále je nutné vybrat modely, které chceme vizualizovat, a to se provede
pomocí okna urceného k výberu modelu. Okno pro výber modelu je prístupné
pres tlacítko multiple models, které se nachází ve spodní cásti okna aplikace GAME
vlevo.
Aktivace vizualizacního modulu se provádí volbou v menu aplikace
Graph -> Cut 3D. Následne dojde ke spuštení vizualizacního modulu. Vizualizace
modelu je zobrazena v prostrední – nejvetší cásti aplikace.
PRÍLOHA B. UŽIVATELSKÁ PRÍRUCKA
Obr. B.1 Program GAME s aktivovaným vizualizacním modulem
13.4 Ovládání vizualizacního modulu Vizualizované modely je možné otácet do všech stran. To se provede umístením
kurzoru myši do cásti aplikace, kde jsou modely zobrazeny, stiskem levého tlacítka
myši a pohybem myši pri stisknutém levém tlacítku.
Vizualizované modely je možné posouvat horizontálne a vertikálne vzhledem
k oknu, kde jsou zobrazeny. To se provede umístením kurzoru myši do cásti
aplikace, kde jsou modely zobrazeny, stiskem pravého tlacítka myši a pohybem myši
pri stisknutém pravém tlacítku.
Vizualizované modely je možné približovat a oddalovat vzhledem k oknu, kde
jsou zobrazeny. To se provede umístením kurzoru myši do cásti aplikace, kde jsou
modely zobrazeny, stiskem prostredního tlacítka myši a pohybem myši pri stisknutém
prostredním tlacítku. Místo stisku prostredního tlacítka lze stisknout kolecko myši,
nebo jen (i bez stisku) koleckem otácet.
13.5 Nastavení vlastností vizualizace Parametry vizualizace lze nastavit po otevrení okna Graph properties. Toto okno
otevreme volbou v menu aplikace Options -> Graph properties. Okno Graph
properties je dále rozdeleno 5 záložkami – Axis, Models, Lights, Data, Genetic
search. V dolní cásti tohoto okna je tlacítko Recreate now, jehož stisk zpusobí
PRÍLOHA B. UŽIVATELSKÁ PRÍRUCKA
aplikaci všech parametru nastavených v tomto okne na vizualizovanou scénu a její
prekreslení bez zavrení tohoto okna. Dále je v dolní cásti tohoto okna tlacítko OK,
jehož stisk zpusobí aplikaci všech parametru nastavených v tomto okne
na vizualizovanou scénu a její prekreslení s následným zavrením tohoto
konfiguracního okna.
13.5.1 Záložka Axis
Zde je možné nastavit rozlišení – resolution vizualizovaných modelu. Toto rozlišení
stanovuje pocet odmeru v jednom smeru a ve smeru druhém je použit stejný pocet
odmeru. Tento pocet odmeru umocnený na druhou udává pocet elementu, ze
kterých je sestaven graf pro jeden model.
Pole klobouk – zde se nastavuje mezní hodnota pro funkci klobouk, kterou popisuji v odstavci 7.2.
Checkbox Show axis – je-li zaškrtnut, budou zobrazeny osy.
Checkbox Show axis description – je-li zaškrtnut, budou zobrazeny popisy os.
Checkbox Show values – je-li zaškrtnut, budou zobrazeny hodnoty na osách
Pole Number of values – hodnota v tomto polícku urcuje pocet zobrazených hodnot
na každé ose, je-li zaškrtnut checkbox Show values, jinak je pole neprístupné.
Checkbox Show orientation points – je-li zaškrtnut, budou na osách zobrazeny
body mezi hodnotami.
Pole Number of points – hodnota v tomto polícku urcuje pocet bodu, které budou
zobrazeny mezi hodnotami na osách, je -li zaškrtnut checkbox Show orientation
points, jinak je pole neprístupné.
13.5.2 Záložka Models
Zde jsou zobrazeny ovládací prvky pro každý z dríve vybraných modelu.
Tlacítko Set color – po jeho stisku se zobrazí panel, kde je možné zvolit barvu
konkrétního modelu bud výberem z preddefinovaných barev, pomocí složek RGB
modelu, anebo pomocí HSB modelu.
Checkbox Transparency – po jeho zaškrtnutí je možné nastavit míru pruhlednosti
konkrétního modelu, což se provádí posuvníkem, který je umísten hned vedle tohoto
checkboxu a je prístupný pouze po zaškrtnutí checkboxu Transparency.
Pruhlednost je nastavitelná v rozsahu od 0 do 100 procent.
PRÍLOHA B. UŽIVATELSKÁ PRÍRUCKA
Trojice radibuttonu face, wire, point. V jedné chvíli lze zvolit pouze jeden z techto
checkboxu. Pri volbe radiobuttonu face je konkrétní model vizualizován pomocí
ploch. Je-li zvolen radiobutton wire, je model zobrazen jako drátový. Je-li vybrán
radiobutton point, je konkrétní model vizualizován pomocí bodu. Více informací
o zpusobu vizualizace je popsáno v kapitole 7.
13.5.3 Záložka Lights
Na této záložce se nastavují parametry osvetlení scény. Jednotlivé druhy osvetlení
scény lze libovolne kombinovat. O nasvícení scény blíže pojednává kapitola 7.5 .
Checkbox Ambient light – je-li zaškrtnut, je scéna nasvetlena ambientním svetlem.
Checkbox Directional lights – je-li zaškrtnut, je scéna nasvícena osmi smerovými
svetly.
Checkbox Directional lights - axe orientation – je-li zaškrtnut, je scéna nasvícena
šesti smerovými svetly.
13.5.4 Záložka Data
Checkbox Show data – je-li zaškrtnut, jsou zobrazena data skupiny modelu
vybraných v padacím menu. Toto menu se nachází v hlavním okne aplikace GAME
vlevo dole v panelu Select model.
Checkbox Show all data – je-li zaškrtnut, jsou zobrazena data všech skupin modelu.
13.5.5 Záložka Genetic search
Pole Generací – zde se zadává pocet generací pro hledání genetického algoritmu.
Pole Pravdepodobnost mutace chromozomu pri mutaci. Název tohoto pole je
samovysvetlující.
Pole Pravdepodobnost výmeny chromozomu pri jednotném krížení. Název
tohoto pole je samovysvetlující.
Pole Selekcní tlak – nastavuje míru selekcního tlaku pri výberu nových jedincu
do príští populace.
Pole Odmeru na šírku modelu – hodnota tohoto pole umocnená na druhou udává
pocet bodu, které se použijí pri výpoctu fitness funkce.
Pole Elitních jedincu – udává pocet elitních jedincu v každé generaci.
PRÍLOHA B. UŽIVATELSKÁ PRÍRUCKA
Pole Jedincu mutací – udává pocet jedincu, kterí pri tvorbe nové generace vznikají
mutací.
Pole Jedincu aritmetickým krížením – udává pocet jedincu, kterí pri tvorbe nové
generace vznikají aritmetickým krížením.
Pole Jedincu jednotným krížením – udává pocet jedincu, které pri tvorbe nové
generace vznikají jednotným krížením.
Tlacítko Search – po jeho stisku je v samostatném vlákne spušten genetický
algoritmus hledání zajímavé oblasti.
Tlacítko Prejít do nejlepší oblasti – po jeho stisku jsou vstupní promenné v levé
cásti hlavního panelu aplikace GAME nastaveny tak, aby odpovídaly poloze nejlepší
dosud nalezené oblasti, a jsou vizualizovány modely odpovídající této oblasti.
PRÍLOHA C. OBSAH PRILOŽENÉHO CD
14 Obsah priloženého CD
Obr. C.1 Obsah priloženého CD
top related