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

Komentáře

Transkript

Algoritmy pro optimalizaci sítí GAME Miroslav Janošík
České vysoké učení technické v Praze
Fakulta elektrotechnická
ČVUT FEL katedra počı́tačů
Bakalářská práce
Algoritmy pro optimalizaci sítí GAME
Miroslav Janošík
Vedoucí práce: Ing. Pavel Kordík
Studijní program: Elektrotechnika a informatika strukturovaný bakalářský
Obor: Informatika a výpočetní technika
červen 2006
ii
Poděkování
Za spoustu poznatků, ochotu při konzultacích a vedení práce patří můj dík Pavlu Kordíkovi.
iii
iv
Prohlášení
Prohlašuji, že jsem svou bakalářskou práci vypracoval samostatně a použil jsem pouze podklady
uvedené v přiloženém seznamu.
Nemám závažný důvod proti užití tohoto školního díla ve smyslu §60 Zákona č. 121/2000 Sb.,
o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů
(autorský zákon).
V Litoměřicích dne 31.srpna 2006
.............................................................
v
vi
Abstract
This bachalor thesis is about a problem of optimization. Concreatly it is about optimization
of units of neural network GAME. This thesis includes theoretical part, where is the description of some optimization methods, and it also includes practical part. There was created an
implementation of algorithm of differential evolution. This implementation was tested on some
choosen data sets. On the same data sets were aplicated other optimization methods too. This
results was compared to results of algorithm of differential evolution. High quality of created
algorithm was prooved.
Abstrakt
Tato práce se zabývá problémem optimalizačních úloh. Konkrétně se jedná o optimalizaci jednotek neuronové sítě GAME. Součástí práce je teoretický rozbor problému, kde jsou popsány
některé z optimalizačních metod, a dále praktická část, při které byla vytvořena implementace
algoritmu diferenciální evoluce. Tato implementace byla testována na několika souborech vybraných dat. Na stejný soubor dat byly aplikovány i jiné optimalizační metody a jejich výsledky
byly porovnány s výsledky algoritmu diferenciální evoluce. Byla prokázána vysoká kvalita implementovaného algoritmu.
vii
viii
Obsah
Seznam obrázků
xi
Seznam tabulek
xiii
1 Úvod
1.1 Motivace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Specifikace cíle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Optimalizační metody
2.1 Gradientní metody . . . . . . . . . . . . . . .
2.1.1 Quasi-Newtonův algoritmus . . . . . .
2.1.2 Levenberg-Marquardtův algoritmus . .
2.2 Evoluční metody . . . . . . . . . . . . . . . .
2.2.1 Genetické algoritmy . . . . . . . . . .
2.2.2 Diferenciální evoluce . . . . . . . . . .
2.2.2.1 Parametry . . . . . . . . . .
2.2.2.2 Princip činnosti . . . . . . .
2.2.2.3 Vlastnosti . . . . . . . . . . .
2.2.3 Hejna . . . . . . . . . . . . . . . . . .
2.2.3.1 Particle swarm optimization
2.2.3.2 Hybrid GA a PSO . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Simulátor GAME
1
1
1
3
3
3
4
4
7
7
8
8
10
12
12
12
13
4 Implementace diferenciální evoluce
4.1 Popis implementace . . . . . . . .
4.1.1 UML schéma . . . . . . . .
4.1.2 Grafické rozhraní . . . . . .
4.1.3 Hlavní části kódu . . . . . .
4.2 Vlastnosti . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
15
15
16
17
18
5 Testování
5.1 Získané výsledky . . . . . . . . .
5.1.1 Metodika . . . . . . . . .
5.1.2 Úspěšnost přežití neuronu
5.1.3 Chyba sítě . . . . . . . .
5.1.3.1 Building . . . .
5.1.3.2 Spiral . . . . . .
5.1.3.3 Antro . . . . . .
5.2 Převzaté výsledky . . . . . . . .
5.2.1 Ecoli . . . . . . . . . . . .
5.2.2 Boston . . . . . . . . . . .
5.2.3 Building . . . . . . . . . .
5.2.4 Mandarin . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
19
19
19
21
21
22
24
24
24
25
25
26
6 Zhodnocení výsledků
6.1 Teoretické předpoklady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Praktické poznatky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Funkčnost diferenciální evoluce . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
27
27
27
.
.
.
.
.
.
.
.
.
.
.
.
ix
7 Závěr
29
8 Literatura
31
A Antro - Grafy výsledků experimentu
33
B Seznam použitých zkratek
35
C Obsah přiloženého CD
37
x
Seznam obrázků
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
Příklad prohledávání prostoru gradientní metodou
Pseudokód algoritmu gradientního sestupu . . . . .
Levemberg-Marquardt - pseudokód . . . . . . . . .
Pseudokód algoritmu EVT . . . . . . . . . . . . . .
Obměna generací . . . . . . . . . . . . . . . . . . .
Mutace . . . . . . . . . . . . . . . . . . . . . . . .
Křížení . . . . . . . . . . . . . . . . . . . . . . . . .
Reprodukce jedince . . . . . . . . . . . . . . . . . .
Detailní popis reprodukce nového jedince . . . . .
.
.
.
.
.
.
.
.
.
3
4
4
5
6
7
7
9
11
3.1
3.2
Rozdíl mezi sítí MIA GMDH a sítí GAME . . . . . . . . . . . . . . . . . . . . .
Rozhraní simulátoru GAME pro získávání chyby modelu. a) verze bez výpočtu
gradientu b) verze s výpočtem gradientu . . . . . . . . . . . . . . . . . . . . . .
13
4.1
4.2
UML schéma implementovaných tříd . . . . . . . . . . . . . . . . . . . . . . . .
GUI pro konfiguraci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
16
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
Procentuální zastoupení optimalizačních metod . . . . . . . . . . .
T-test nad daty WBE - Energy consumption . . . . . . . . . . . .
Datová množina Building - RMS Error . . . . . . . . . . . . . . . .
Data Spiral 1 a Spiral 2 - RMS Error . . . . . . . . . . . . . . . . .
Klasifikační úspěšnost na spirálních datech . . . . . . . . . . . . . .
Datová množina Ecoli - schopnost klasifikace sítě. Dva modely. . .
Datová množina Boston - RMS error sítě . . . . . . . . . . . . . .
Datová množina Building - menší hodnota znamená lepší výsledek
Datová množina Mandarin - RMS error . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
20
21
22
23
23
25
25
26
26
A.1 Klasifikační úspěšnost u věkových kategorií . . . . . . . . . . . . . . . . . . . .
A.2 Antropologická data AGE - RMS Error . . . . . . . . . . . . . . . . . . . . . .
A.3 Modely pro klasifikaci do věkových skupin - RMS Error . . . . . . . . . . . . .
33
33
34
C.1 Obsah přiloženého CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
xi
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
14
xii
Seznam tabulek
2.1
Řídící parametry DE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
5.1
5.2
5.3
Seznam optimalizačních metod pro testování . . . . . . . . . . . . . . . . . . .
Procetuální úspěšnost přežití jednotek sítě na různých datových množínách . .
Seznam všech optimalizačních metod . . . . . . . . . . . . . . . . . . . . . . . .
19
20
24
xiii
xiv
KAPITOLA 1. ÚVOD
1
1 Úvod
Pro tvorbu své bakalářské práce jsem si vybral téma: „Algoritmy pro optimalizaci sítí GAMEÿ.
1.1
Motivace
Hlavním důvodem, proč jsem si vybral právě toto téma je prostudování metod umělé inteligence,
které slouží k optimalizaci. Z praktického hlediska si zkusím vytvoření a otestování funkčnosti
tohoto alogoritmu.
1.2
Specifikace cíle
Charakter této bakalářské práce je implementační. V praktické části půjde o doplnění softwarového produktu o novou funkčnost - optimalizační metodu pro výuku jednotek neuronové sítě.
Po naprogramování a odladění konkrétní optimalizační metody bude nutné zhodnotit její funkčnost. Tento krok se bude skládat především z porovnání mnou přidané metody s metodami již
implementovanými. Konkrétní optimalizační metodou bude algoritmus nazývaný Diferenciální
evoluce patřící do skupiny evolučních výpočetních technik.
Teoretická část práce se bude zabývat studiem a popisem optimalizačních metod založených
na gradientním sestupu, genetických algoritmech a hejnech. Zvláštní pozornost bude věnována
evolučním výpočetním technikám, mezi něž patří již zmíněné genetické algoritmy a diferenciální
evoluce, která byla vybrána pro implementační část práce.
V závěru práce bude zhodnocena funkčnost algoritmu.
2
KAPITOLA 1. ÚVOD
KAPITOLA 2. OPTIMALIZAČNÍ METODY
3
2 Optimalizační metody
Tato kapitola obsahuje teoretický podklad k metodám použitým v simulátoru GAME. Stěžejní
oblastí teoretické části je podkapitola nazvaná Evoluční metody a především její součást Diferenciální evoluce. Ostaní optimalizační metody jsou uvedeny pouze pro úplnost.
2.1
Gradientní metody
Gradientní metody jsou matematické metody pro optimalizaci, které využívají hodnoty gradientu k určení vektoru největšího spádu v (m + 1)-dimenzionálním prostoru (kde m je dimenze
hledaného vektoru ~x 1 ).
Pro názornou představu se dá minimalizace pomocí gradientního prohledávání 3-dimenzionálního
prostoru připodobnit k toku vody v krajině. Voda totiž teče směrem největšího spádu a zastaví
se v nejnižším místě krajiny. Ilustrováno na obrázku 2.1.
Obrázek 2.1: Příklad prohledávání prostoru gradientní metodou
Pokud prvním místem v prohledávaném prostoru zvolíme náhodně vektor x0 , pak další krok
iterativního zlepšování řešení popíšeme vztahem
~xk+1 = ~xk + αk d~k
kde k ∈ {1, 2, 3, ...} a představuje iterační krok. αk je délka kroku. Pro konvergenci algoritmu
je potřeba směrový vektor - d~k . Ten určuje směr největšího spádu. Nejjednodušší metodou pro
nalezení tohoto vektoru je použití gradientu funkce f (~xk ).
d~k = −∇f (~xk ),
∇f (~xk ) =
T
∂
∂
f (~x1 ), ...,
f (~xn )
∂~x1
∂~xn
Obecný tvar algoritmu je na obrázku 2.2 [4].
Výhodou algoritmů založených na gradientním sestupu je rychlost se kterou nacházejí globální
extrém.
2.1.1
Quasi-Newtonův algoritmus
V simulátoru GAME je jako reprezentant gradientní metody zahrnut Quasi-Newtonův algoritmus. Je založen na gradientním sestupu a jeho předností je především rychlost výpočtu.
1
v kapitole 3 - Simulátor GAME - je tento vektor označován ~a
4
KAPITOLA 2. OPTIMALIZAČNÍ METODY
Obrázek 2.2: Pseudokód algoritmu gradientního sestupu
2.1.2
Levenberg-Marquardtův algoritmus
Jedním z nejčastěji používaných algoritmů využívaných pro optimalizaci je Levenberg-Marquardt
(LM). Dosahuje totiž největší rychlosti nalezení výsledku. Nevýhodou je ovšem jeho složitá implementace. Pseudokód algoritmu je na obrázku 2.3 [4].
Obrázek 2.3: Levemberg-Marquardt - pseudokód
2.2
Evoluční metody
Evoluční výpočetní techniky (EVT) [5], jak už jejich název napovídá, jsou techniky inspirované evolucí v přírodě. Pro laika se může zdát poněkud nepochopitelná představa kombinovat
Darwinovský zápas o přežití a výpočetní techniku, ale opak je pravdou.
Použití EVT je především pro prohledávání určitého stavového prostoru (stejně jako mnohé
jiné metody oboru umělé inteligence).
Pokud se navíc jedná o optimalizaci, je možné zmínku o ní nalézt již v biologické charakteristice evoluce: „V přírodní evoluci je základní úlohou biologického druhu vyhledání výhodných
adaptací vůči složitému a dynamicky se měnícímu prostředí. Znalost, která charakterizuje každý
KAPITOLA 2. OPTIMALIZAČNÍ METODY
5
biologický druh, byla získána vývojem a je shrnuta v chromozomech každého jedince.ÿ [2]
Zde je implicitně známka optimalizace. Vyhledání adaptace (změny) musí být výhodné ve
smyslu nějakého hodnotícího kritéria. V přírodě je zpravidla tímto hodnotícím kritériem schopnost reprodukce, která je limitována množstvím potravy a dalšími zdroji v oblasti. Ne všechna
individua v populaci musí být stejně kvalitní, avšak předpokládá se, že kvalitu jedince (např.
schopnost přežití a reprodukce) jsme schopni určit.
Z těchto myšlenek vychází i algoritmické využití EVT. Standardní metody optimalizace pracují
s jedním kandidátem řešení a toho postupně zlepšují. Oproti tomu EVT pracují s množinou
kandidátů xt,i , která je často nazývána populace a matematicky se dá zapsat v následujícím
tvaru
G(t) = {xt,1 , xt,2 , ..., xt,N }
kde t je vývojový čas a N je velikost populace. Vývojový čas zpravidla běží v diskrétních krocích
a proto se o něm dá hovořit jako o generacích.
Všichni jedinci jsou implementováni pomocí týchž datových struktur S. Přitom platí, že pro
každého jedince xt,i je možno určit hodnotu (cost value) jeho hodnotící funkce (fitness function),
která je zpravidla dána zobrazením f : S → R. To přesně odpovídá parametrům zadání úlohy
pro učení neuronové sítě.
Obecný tvar EVT algoritmu vystihuje pseudokód na obrázku 2.4.
Obrázek 2.4: Pseudokód algoritmu EVT
Před začátkem cyklu, který simuluje vývojový čas (posloupnost generací), je potřeba provést
inicializaci. Ta se skládá z vynulování čítače generací t, stanovení první generace jedinců pomocí
inicializace G(t) a její ohodnocení pomocí vyhodnocení G(t). Součástí ohodnocení může být i
stanovení nejlepšího jedince či výpočet průměrného ohodnocení celé generace.
Následuje začátek cyklu while, který se opakuje dokud není splněno zastavovací pravidlo. To
může být různé. Může to být například maximální doba výpočtu, dostatečná přesnost výsledku,
doba běhu programu, nebo předem určený počet po sobě jdoucích generací, při kterých pokud
nedojde ke zlepšení nejlepšího doposud nalezeného jedince - výpočet je ukončen.
V těle cyklu se pak odehrává vlastní evoluce. Ta začíná inkrementací čítače generací t a je
následována operací selekce G(t) z G(t-1). Zde probíhá simulace procesu přirozeného výběru
- zápasu o přežití. Jedinci jsou vybíráni do další generace pravděpodobnostmí kriteriem a to
zpravidla podle své kvality. Lepší přežívají častěji a horší méně často. Už z tohoto hlediska
6
KAPITOLA 2. OPTIMALIZAČNÍ METODY
vyplývá, že průměrné ohodnocení by v další generaci rozhodně nemělo být horší, než v té
současné.
Operací změna G(t) se vnáší do reprodukce inovativní prvek. Pomocí rekombinačních operátorů
m a x se vytvářejí nový jedinci - rozdílní od jedinců v minulé generaci. Tyto operátory pracují
s jedinci na úrovni datových struktur S.
• Mutace (m : S → S) - unární operátor - vytváří malou změnu v rámci jedince.
• Křížení (x : S × ... × S → S) - operátor pro n rodičů (většinou dva, ale není to pravidlem
- např. diferenciální evoluce) provede křížení. Výsledkem je opět pouze jeden jedinec.
Rekombinačních operátorů může být více a jsou vázány na reprezentaci jedince datovými strukturami S.
Následuje skok na začátek cyklu a proces evoluce se opakuje pro další generaci.
To, jakým způsobem probíhá obměna generací naznačuje obrázek 2.5.
Obrázek 2.5: Obměna generací
Doposud nezmíněný stav mezigenerace je množinou rodičů, ale i jejich potomků, kteří vznikli
operací změna G(t). Šipka označená náhrada generací pak vyjadřuje tzv. vývojovou strategii.
Vzhledem k tomu, že počet jedinců pro další generaci je většinou konstantní N , musí být
vybráni pouze někteří jedinci. Vývojové strategie lze podle toho, z kterých jedinců staví novou
generaci zařadit do dvou tříd:
• Generační strategie - dochází k obměně celé generace. Do další generace jsou převzati
pouze potomci. Obdoba evoluce jednoletých rostlin.
• Postupné strategie - dochází pouze k výměně části populace. Obdoba evoluce živočichů a
víceletých rostlin.
KAPITOLA 2. OPTIMALIZAČNÍ METODY
7
Pokud se rozhodneme použít generační model, pak je vhodné použít nějakou formu elitismu.
Ten spočívá v tom, že několik nejlepších jedinců předáme do následující generace vždy.
Při používání EVT může dojít i nepříjemnostem, jako je například stagnace populace. Pokud
není zachována různorodost populace, dochází k její k její unifikaci a rekombinační operátory
mohou mít velký problém se z tohoto stavu dostat.
Stagnace je rovněž odpovědí na zdánlivě jednoduchou biologickou otázku: „Proč se navzájem
liší jedinci patřící k témuž biologickému druhu.ÿ Pokud by totiž došlo k takovéto stagnaci
biologického druhu (z matematického hlediska - uváznutí v lokálním extrému), stal by se neadaptibilním vůči dynamicky se měnícímu prostředí a následovalo by jeho vyhynutí.
2.2.1
Genetické algoritmy
Historicky prvním představitelem EVT jsou Genetické algoritmy [5]. Jsou inspirovány křížením
jedinců na úrovni jejich genetického materiálu.
Datové struktury S jsou v souladu s biologií nazývány chromozomy. Ty jsou tvořeny posloupností symbolů si tak, že S = {s1 , s2 , ..., sn } kde n ∈ N . Každá pozice i v chromozomu je pak
nazývána alela. Konkrétní symbol v chromozomu se nazývá gen.
Standardní genetický algoritmus využívá binární reprezentaci genů (0,1). Rekombinační operátory m - mutace a x - křížení pracují nad strukturami S.
Obrázek 2.6: Mutace
Obrázek 2.7: Křížení
• Mutace (m : S → S) - vybere náhodně jeden bit a ten zneguje (viz. obrázek 2.6).
• Křížení (x : S × S → S) - nejprve jsou vybrání dva rodiče podle pravděpodobnostního kriteria. Pak je zvoleno (náhodně nebo předem) místo v chromozomu, které rozdělí
chromozom na dvě části. Rodiče si vymění takto rozdělené části své genetické výbavy a
vzniknou dva nový jedinci (viz. obrázek 2.7).
Schéma výměny generací je shodné s obecným tvarem EVT algoritmu.
Výhodou algoritmu je především jeho jednoduchost a univerzálnost použití. Za nevýhodu může
být považována rychlost výpočtu a možnost stagnace populace - uvíznutí v lokálním extrému.
2.2.2
Diferenciální evoluce
Mezi poměrně mladé EVT algoritmy patří i diferenciální evoluce (DE) [6]. Její autoři Ken Price
a Rainer Storn [7] ji definovali v roce 1994. Její schéma je podobné genetickým algoritmům, z
8
KAPITOLA 2. OPTIMALIZAČNÍ METODY
nichž vychází, nicnémě v dost ohledech se odlišuje.
Genetickým algoritmům (GA) se nejvíce podobají především manipulací s datovými typy. Nalezneme zde křížení jedinců i mutaci. GA pracuje se dvěma rodiči, naproti tomu DE využívá
pro získání nového jedince hned rodiče čtyři.
2.2.2.1
Parametry
Pro činnost algoritmu je významným faktorem náhodná složka (stejně jako pro většinu EVT).
Chování algoritmu lze ale ovlivnit i jeho nastavením (viz. tabulka 2.1).
Řídicí parametr
NP
F
CR
GEN
Interval
h4; 100i
h0; 2i
h0; 1i
dle uživatele
Optimum
10+
0, 3 − 0, 9
0, 8 − 0, 9
-
Význam
velikost populace
mutační konstanta
práh křížení
počet generací
Tabulka 2.1: Řídící parametry DE
• N P - počet jedinců v populaci. Pro správnou funkčnost je doporučeno N P ≥ 10. Při
vysokých hodnotách pracuje algoritmus pomalu, při nízkých je problém s málo pestrou
populací. Dobrý kompromis se dá určit experimentálně.
• F - mutační konstanta. Skalár, který slouží k přenásobení vektoru během procesu reprodukce jedince.
• CR - práh křížení - pravděpodobnost, jak moc bude zkušební vektor podobný původnímu
rodiči nebo šumovému vektoru (který vznikl křížením dalších tří rodičů). CR < 0, 5
znamená, že zkušební vektor bude více podobný rodiči. CR > 0, 5 znamená, že zkušební
vektor bude více podobný mutačnímu (šumovému) vektoru. Nikdy by nemělo nabývat
hodnot 0 nebo 1.
• GEN - ukončovací podmínka - maximální počet generací. Při jeho překročení se dál již
neoptimalizuje.
• D - dimenze vektoru řešení.
2.2.2.2
Princip činnosti
Jak již bylo řečeno, princip činnosti je podobný GA. Dochází zde ke koloběhu generací, přičemž
se zvyšuje průměrné ohodnocení jedince xi kde i ∈ N P . První generace jedinců je generována
zcela náhodně.
Co je však odlišné, je proces reprodukce nového jedince. Reprodukce (viz. obrázek 2.8) je
provedena v cyklu pro každého jedince xi . Vznikne tím nová generace se stejným počtem
jedinců.
1. Prvním krokem je určení rodičů r0 , r1 , r2 a r3 . Rodič r0 je vektor xi pro nějž je reprodukce
prováděna. Ostatní rodiče r1 , r2 a r3 jsou náhodně zvolení jedinci v generaci.
2. Dalším krokem je Mutace. Při ní vznikne mutační vektor (někdy nazývaný též šumový
vektor) v podle předpisu v = F ∗ (r1 − r2 ) + r3 , kde F je mutační konstanta, která je
parametrem algoritmu.
KAPITOLA 2. OPTIMALIZAČNÍ METODY
Obrázek 2.8: Reprodukce jedince
9
10
KAPITOLA 2. OPTIMALIZAČNÍ METODY
3. Při procesu křížení vzniká zkušební vektor xtest . Ten vznikne tak, že postupně procházíme všechny složky vektoru r0,i a vi ( i ∈ {1, 2, ..., D}) a podle pravděpodobnosti dané
konstantou CR zařadíme do zkušebního vektoru xtest
složku z r0,i nebo vi . Algoritmicky
i
test := r .
zapsáno: if (rnd(0, 1) ≤ CR) then xtest
:=
v
else
x
i
0,i
i
i
4. Nyní už zbývá otestovat, zda je zkušební vektor xtest
lepší, než jeho hlavní rodič r0 . Lepší
i
z těchto dvou jedinců přežívá do další generace. V našem případě minimalizujeme - proto
vyhrává jedinec s nižším ohodnocením fcost (x). V tomto bodě je do DE zakomponován
elitismus - zapamatování si nejlepšího jedince. Další vlastností tohoto kroku je používání
postupné strategie pro obměnu jedinců - rodiče koexistují se svými potomky.
Podrobný popis reprodukce jedince je na obrázku 2.9.
2.2.2.3
Vlastnosti
Mezi výhody algoritmu DE patří: [6]
• Jednoduchost - algoritmus je poměrně jednoduchý na pochopení a implementaci. Oproti
gradientním metodám není nutno počítat jakékoliv derivace.
• Různorodost datové reprezentace - velkou předností je možnost realizovat jednotlivé prvky
vektoru reprezentujícího jedince pomocí různých datových typů. Lze kombinovat celočíselné, reálné, dokonce i logické datové typy. Je možné využít i pouze diskrétní množinu
čísel.
• Používání dekadických číslic - oproti GA není nutné používání logických operátorů nad
binární reprezentací. Odpadá problém při mutaci, kdy záleží na umístění bitu (mutace m
v nejnižším bitu má rozdílnou účinnost oproti mutaci bitu nejvyšším).
• Rychlost - algoritmus pro díky své jednoduchosti vykazuje oproti jiným EVT velkou
rychlost.
• Nezávislost křížení na kvalitě rodičů - pokud u GA hraje roli kvalita jedince na jeho
pravděpodobnost páření, pak může výsledek konvertovat do lokálního extrému. V DE
jsou při reprodukci vybírání tři ze čtyř rodičů náhodně.
• Schopnost nalezení výsledku - metoda je robustní. Zachovává diversitu populace, takže
nedochází často ke stagnaci. Možnost nalezení více globálních extrémů, pokud existují.
Nevýhodou může být pomalejší činnost oproti algoritmům založeným na gradientním sestupu.
KAPITOLA 2. OPTIMALIZAČNÍ METODY
Obrázek 2.9: Detailní popis reprodukce nového jedince
11
12
2.2.3
KAPITOLA 2. OPTIMALIZAČNÍ METODY
Hejna
Metody optimalizace pomocí hejna (angl. swarm) jsou inspirovány přírodou jinak, než například
genetické algoritmy. Princip činnosti je zde v simulaci pohybu hejna nad krajinu. Jedinci jsou
na začátku rozprostřeni náhodně po prohledávaném prostoru. Čas t běží v diskrétních krocích.
V každém časovém okamžiku jsou přepočítány polohové vektory x~i pro každého jedince podle
vztahu:
x~i (t + 1) = x~i (t) + v~i (t)
kde i ∈ {1, 2, ..., N } a N je velikost populace. Pro určení v~i je potřeba další vztah:
v~i (t + 1) = w ∗ v~i (t) + c1 ∗ rnd() ∗ (~
pi − x~i (t)) + c2 ∗ rnd() ∗ (p~g − x~i (t))
kde w je inerciální konstanta a je menší než jedna, c1 a c2 jsou konstanty okolo hodnoty 1, p~i je
vektor nejlepšího bodu v prostoru okolo jedince a p~g je vektor nejlepšího bodu pro celé hejno.
Funkce rnd() generuje náhodnou hodnotu z intervalu h0; 1i.
Tímto způsobem je modelován pohyb hejna v prostoru. Iterativním způsobem algoritmus mění
polohu jedinců, přičemž průměrné ohodnocení generace se zlepšuje. Výsledkem je, že se hejno
v prostoru dostane do nějakého extrému (lokálního nebo globálního).
2.2.3.1
Particle swarm optimization
Particle swarm optimization (PSO) je jednou z implementací optimalizace pomocí hejna v
simulátoru GAME.
Nevýhodou PSO je velká spotřeba výpočetního času. Ta je dána velkým počtem ohodnocení
modelu sítě.
2.2.3.2
Hybrid GA a PSO
Hybrid genetických algoritmů a particle swarm optimization (HGAPSO) je další z metod obsažených v simulátoru GAME. Pracuje tak, že část výpočtu pracuje jako genetický algoritmus
a pak se přepne a pracuje na principu PSO.
KAPITOLA 3. SIMULÁTOR GAME
13
3 Simulátor GAME
Group of Adaptive Models Evolution (GAME) je programem pro simulaci a studium chování
umělých neuronových sítí. Je zde využita síť typu GAME, která vychází z původních GMDH
sítí (viz. obrázek 3.1) [3]. Síť může být tvořena různými typy jednotek (např. LinearNeuron,
CombiNeuron, PolySimpleNeuron, SigmNeuron, GaussNeuron a mnohé další). Tyto jednotky
jsou organizovány ve vrstvách. Evolučními procesy dochází k selekci „kvalitníchÿ jednotek,
které nadále v jednotlivých vrstvách přežívají.
Obrázek 3.1: Rozdíl mezi sítí MIA GMDH a sítí GAME
Síť je dynamicky generována procesem učení - jedná se tedy o neuronové sítě s učitelem. Pro
tvorbu neuronové sítě v simulátoru je potřeba zadat vstupní data. Ta obsahují informaci o
reálném systému, který bude v počítači simulován neuronovou sítí. Data jsou organizována v
řádcích a v každém řádku je vektor ~x (představující vstupní data sítě) a hodnotu d (předpokládaný výsledek pro vstupní data ~x). Pokud zjistíme odpověď sítě y na všechna vstupní data
~x, můžeme spočítat chybu sítě - E jako
E=
m
1 X
(yj − dj )2
m j=0
kde m je počet řádek se vstupními daty.
Účelem práce je začlenit do simulátoru metodu pro učení sítě, takzvaného učitele, pomocí
nějakého optimalizačního algoritmu. Proto je důležité, že v simulátoru existuje rozhraní pro
zjišťování chyby modelu E (schematicky viz. obrázek 3.2) [3].
Toto rozhraní dokáže komunikovat s modelem a na vstupní data ~a odpovídat hodnotou chyby
E. Z geometrického hlediska je možné si optimalizaci představit jako proces hledání globálního
minima v (m + 1)-dimenzionálním prostoru (kde m je dimenze vektoru ~a). Pro představu,
pokud by byl vstupní vektor dvoudimenzionální, pak by se jednalo o úlohu hledání globálních
extrémů v třírozměrném prostoru - tedy po převedení do reálného světa - hledání nejvyššího
(popř. nejnižšího) bodu v krajině (kopce a údolí).
V tomto případě jde o naučení neuronové sítě na vstupních datech. Účelem optimalizace je tedy
14
KAPITOLA 3. SIMULÁTOR GAME
Obrázek 3.2: Rozhraní simulátoru GAME pro získávání chyby modelu. a) verze bez výpočtu
gradientu b) verze s výpočtem gradientu
minimalizovat chybu sítě E, půjde tedy o minimalizací. Výsledkem snažení při optimalizaci by
mělo být nalezení globálního minima v (m + 1)-dimenzionálním prostoru.
KAPITOLA 4. IMPLEMENTACE DIFERENCIÁLNÍ EVOLUCE
15
4 Implementace diferenciální evoluce
Pro implementační část práce byla původně vybrána jiná evoluční metoda, a to genetické algoritmy. Vzhledem k tomu, že tato metoda (byť v modifikované podobě) je již v simulátoru GAME
obsažena, byla vybrána jiná evoluční metoda - diferenciální evoluce. K tomuto kroku mě vedlo
několik důvodů. Především není tak často používána (je stále poměrně mladá). Je považována
za velmi efektivní a robustní a v neposlední řadě je poměrně jednoduchá na implementaci.
4.1
Popis implementace
Simulátor GAME je napsán v jazyce Java, proto i pro implementaci bylo použito stejného
jazyku. Plné začlenění DE zahrnovalo pouze přidání tří tříd.
• DifferentialEvolutionTrainer.java - reprezentuje učitele sítě pomocí DE
• DifferentialEvolutionConfig.java - GUI pro nastavení parametrů DE
• Individual.java - reprezentuje jedince v populaci
4.1.1
UML schéma
Schéma 4.1 zobrazuje začlenění DE do simulátoru GAME. Ve schématu jsou zobrazeny pro
přehlednost pouze důležité metody a proměnné.
Obrázek 4.1: UML schéma implementovaných tříd
Pro správnou funkčnost bylo potřeba, aby třída DifferentialEvolutionTrainer.java byla potomkem třídy Trainer.java. Od něj byly přetíženy některé metody - např. teach(), která realizuje
16
KAPITOLA 4. IMPLEMENTACE DIFERENCIÁLNÍ EVOLUCE
samotný proces učení neuronové sítě. Reprodukci jedinců populaci obstarává metoda makeReproduction(). Obě tyto metody budou dále v textu zobrazeny a popsány.
4.1.2
Grafické rozhraní
Třída DifferentialEvolutionConfig.java slouží pro zobrazení panelu pro konfiguraci DE při běhu
simulátoru (tzv. GUI - viz. Obrázek 4.2). Jsou zde parametry pro nastavení DE:
• N P - počet jedinců v populaci. Pro správnou funkčnost je doporučeno N P ≥ 10.
• F - mutační konstanta. Doporučená hodnota je F ∈ h0, 4; 1, 6i.
• CR - práh křížení - pravděpodobnost, jak moc bude zkušební vektor podobný původnímu
rodiči a nebo šumovému vektoru (který vznikl křížením dalších tří rodičů). CR < 0, 5
znamená, že zkušební vektor bude více podobný rodiči. CR > 0, 5 znamená, že zkušební
vektor bude více podobný šumovému vektoru.
• GEN - ukončovací podmínka - maximální počet generací. Při jeho překročení se dál již
neoptimalizuje. Málokdy je tato podmínka uplatněna.
• EN D GEN - ukončovací podmínka, která stanovuje počet generací, při kterých pokud
nedojde ke zlepšení nejlepšího dosaženého řešení - ukončí optimalizaci.
• X - meze pro počáteční náhodné nastavení parametrů jedinců první generace. Náhodná
hodnota bude v intervalu h−X; Xi
Obrázek 4.2: GUI pro konfiguraci
KAPITOLA 4. IMPLEMENTACE DIFERENCIÁLNÍ EVOLUCE
4.1.3
17
Hlavní části kódu
Ze zdrojového kódu třídy DifferentialEvolutionTrainer.java jsem vybral dvě instanční metody,
které ilustrují způsob funkčnosti algoritmu. Jsou velmi jednoduché a skoro představují pseudokód algoritmu DE.
První z nich je procedura teach(), která v sobě skrývá proces učení neuronové sítě. Nejprve je
náhodně vygenerována první generace jedinců (proměnná population) a poté je v cyklu while
provedena reprodukce všech jedinců v generaci. Následuje nahrazení původní generace generací
novou, inkrementace čítače generací a na závěr cyklu testována ukončovací podmínka.
/** starts teaching process */
public void teach() {
// initialize the first random population
this.initPopulation();
// maximal GEN populations
while (this.generationCounter < this.GEN) {
// Reproduction of each Individual
for (int i = 0; i < population.length; i++) {
this.makeReproduction(i);
}
// swap populations
this.population = this.nextPopulation;
this.nextPopulation = new Individual[this.NP];
// increment generation counter
this.generationCounter++;
// test - is the solution going better...?
if (!isSolutionGoingBetter()) {
break;
}
}
}
Zde stojí za povšimnutí, že nikde není uplatněno zapamatování si nejlepšího průběžného výsledku optimalizace. Tento fakt se dá vysvětlit tím, že v následující proceduře makeReproduction() je volána funkce getError(), která nám vrátí chybu vygenerovanou neuronovou sítí.
Tato funkce si sama hlídá, které nastavení vykazovalo nejmenší chybu a pokud toto nastavení najde, pak si ho automaticky zapamatuje. Po skončení procedury teach() si toto řešení
automaticky přebere simulátor GAME.
Samotná procedura makeReproduction() představuje proces reprodukce nového jedince. Jejím
parametrem je celočíselný index, který určuje jedince v generaci.
Prvním krokem je určení všech čtyř rodičů. Rodič r0 je rodičem hlavním. Následuje stanovení
mutačního (šumového) vektoru. V cyklu for je proveden proces křížení, při kterém je získám
zkušební vektor, který je v závislosti na konstantě CR více podobný rodiči r0 nebo mutačnímu
vektoru v.
Dalším krokem je ohodnocení nového řešení pomocí funkce getError(). Podmíněný příkaz if
18
KAPITOLA 4. IMPLEMENTACE DIFERENCIÁLNÍ EVOLUCE
rozhodne, zda nalezený zkušební vektor je lepší než jeho rodič r0 a vítěze zařadí do nové
populace.
/** main method of DE - makes new individual for next genneration */
private void makeReproduction(int ind) {
// setting parents
Individual r0 = this.population[ind];
int index[] = this.setParentsIndexes(ind);
Individual r1 = this.population[index[0]];
Individual r2 = this.population[index[1]];
Individual r3 = this.population[index[2]];
// setting mutation vector: v = (r1 - r2)*F + r3
Individual v = r1.minus(r2);
v = v.timesScalar(this.F);
v = v.plus(r3);
// makeing crossover -> setting test vector
for (int i = 0; i < this.D; i++) {
if( Math.random() > this.CR){
v.setValueAt(i, r0.getValueAt(i));
}
}
// set the costValue of new vector v (after mutation and crossover)
double costValue = this.getError( v.getValues() );
v.setCostValue(costValue);
// test -> is new individual better then it’s parent ...?
// ’<’ ... because we want to minimalize
// the function (error in neural network)
if( v.getCostValue() < r0.getCostValue() ){
this.nextPopulation[ind] = v; // new solution is better
} else {
this.nextPopulation[ind] = r0; // old solution is better
}
}
4.2
Vlastnosti
Do simulátoru GAME byla přidána optimalizace pomocí DE ve své ryzí podobě - tedy verze se
čtyřmi rodiči, kteří jsou náhodně vybírání. První generace jedinců je generována zcela náhodně.
Ukončovací podmínky byly zahrnuty dvě a dají se nastavit v grafickém rozhraní (viz. Obrázek
4.2 - parametry GEN a EN D GEN ).
1. Maximální počet generací. Při jeho překročení se dál již neoptimalizuje. Pouze z důvodu
možného uváznutí algoritmu.
2. Počet generací, při kterých pokud nedojde ke zlepšení nejlepšího dosaženého řešení dochází k přerušení optimalizace.
KAPITOLA 5. TESTOVÁNÍ
19
5 Testování
Pro otestování funkčnosti a účinnosti byly provedeny dvě sady experimentů. Ty měli ověřit
především, jak se chová DE v porovnání s jinými metodami, které jsou již implementovány v
simulátoru GAME.
Předem je tedy vhodné uvést, že se nejednalo o porovnávání z hlediska náročnosti na čas a
složitost výpočtu, ale především na jeho kvalitu. Dobou výpočtu se evoluční výpočetní techniky
zdaleka nemohou rovnat metodám založeným na gradientním sestupu.
5.1
Získané výsledky
V této kapitole jsou shrnuty výsledky testováním pomocí optimalizačních metod uvedených v
tabulce 5.1.
Název třídy v GAME
UncminTrainer
SADETrainer
PSOTrainer
HGAPSOTrainer
DifferentialEvolutionTrainer
Zkratka
QN
SADE
PSO
HGAPSO
DE
Druh
Gradient
Genetic
Swarm
Genetic
Genetic
Výuková metoda
Quasi-Newton method
SADE genetic method
Particle Swarm Optimization
Hybrid of GA and PSO
Differtial Evolution
Tabulka 5.1: Seznam optimalizačních metod pro testování
Testy proběhly na následujících datech:
• Spiral - klasifikace spirály
• Building - data o teplotě vody - klasifikace na základě teploty vody, vzduchu, vzdušné
vlhkosti, atd.
• Antro - antropologická data - klasifikace podle různých parametrů (věková kategorie,
pohlaví, národnost, . . .) - jde o modelování věku
5.1.1
Metodika
Byly provedeny dva druhy testů, které se lišily svou metodikou, ale obě měly ukázat, jak si DE
vede v porovnání s ostatními optimalizačními metodami.
1. Úspěšnost přežití neuronu - vzhledem k tomu, že při učení jednotek sítě GAME probíhá
mezi těmito k evolučnímu boji, bylo sledováno, jak často přežívají jednotky učené DE.
2. Porovnání DE s ostatními metodami na základě RMS-error sítě.
5.1.2
Úspěšnost přežití neuronu
Při tomto testu byla sledována procentuální úspěšnost přežívání jednotek neuronové sítě učených DE ve výsledném modelu. Testy proběhly nad výše zmíněnými daty. Nastavení simulátoru
GAME bylo ponecháno ve standardní podobě. Byly však zapnuty všechny optimalizační metody a všechny druhy jednotek neuronové sítě. Algoritmus DE byl nastaven podle obrázku 4.2.
Testy proběhly z důvodu velké časové náročnosti výpočtu pouze jednou.
Tabulka 5.2 obsahuje výsledky experimentu. Obrázek 5.1 shrnuje výsledky do grafu s procentuálním zastoupením optimalizačních metod.
20
KAPITOLA 5. TESTOVÁNÍ
Data
Antro AGE
Spiral 1
Spiral 2
WBE
WBHW
WBCW
Průměr
BackProp
9,09
16,67
65,71
14,29
37,50
11,11
25,73
Optimalizační metoda [%]
QN PSO
DE
HGAPSO
72,73 9,09 9,09
0
50,00
0
16,67
16,67
11,43 2,86 5,71
11,43
57,14
0
14,29
0
12,50
0
25,00
12,50
44,44
0
11,11
11,11
41,37 1,99 13,64
8,62
SADE
0
0
2,86
14,29
12,50
22,22
8,64
Tabulka 5.2: Procetuální úspěšnost přežití jednotek sítě na různých datových množínách
Obrázek 5.1: Procentuální zastoupení optimalizačních metod
KAPITOLA 5. TESTOVÁNÍ
21
Algoritmus QN představuje hlavní část se 40%. Následován je algoritmem BackPropagation
s 26%. Diferenciální evoluce (DE) představuje solidních 14%. HGAPSO a SADE představují
každý 9%, PSO pouze 2%.
Tyto testy ukázaly dobrou schopnost přežití jednotek učených pomocí DE. Především v porovnání s ostatními evolučními technikami se DE vedla lépe.
5.1.3
Chyba sítě
Dalšími testy byla sledována chyba sítě. Nastavení simulátoru GAME bylo ponecháno ve standardní podobě. Byly zapnuty všechny všechny druhy jednotek neuronové sítě. Pokaždé byla
zapnuta pouze jedna optimalizační metoda (učitel neuronové sítě). Takto bylo vygenerováno
vždy 10 modelů nad každou množinou dat pro každou optimalizační metodu. Algoritmus DE
byl nastaven podle obrázku 4.2.
Jako metoda pro porovnání dvou nezávislých procesů byl vybrán T-test [1].
Tato statistická metoda je schopna rozhodnout, jestli jsou dva procesy stejné či nikoliv.
5.1.3.1
Building
Na testovací množině dat Building a konkrétně modelu WBE - Energy consumption proběhlo
porovnání DE s HGAPSO a DE s QN. Obrázek 5.2 ukazuje grafické porovnání vždy dvou
optimalizačních metod - a) DE s HGAPSO a b) DE s QN.
Obrázek 5.2: T-test nad daty WBE - Energy consumption
22
KAPITOLA 5. TESTOVÁNÍ
Při porovnávání DE a HGAPSO byla získána hodnota t = −8.23 a pravděpodobnost, že obě
metody jsou rovnocenné menší než 0,01%. Rozdíl je tedy statisticky signifikantní.
Oproti tomu při porovnání DE s QN byla získána hodnota t = −0.370 a pravděpodobnost, že
obě metody jsou rovnocenné, byla rovna 72%. Rozdíl tedy není statisticky signifikantní. Nelze
tedy učit, která metoda je lepší.
Takto byly porovnány různé metody na různých datových množinách a bylo zjištěno, že
závěry potvrzené T-testem přibližně odpovídají závěrům zjištěným při porovnávání Ensamble
RMS Error hodnot jednotlivých modelů.
Ensamble RMS Error je hodnota produkovaná simulátorem GAME. Pro 10 modelů vygenerovaných na každé skupině dat byla zjištěna tato hodnota.
Obrázek 5.3: Datová množina Building - RMS Error
Tři druhy modelů datové množiny Building (viz. obrázek 5.3). Modely WBE - Energy consumption vykazují největší rozdíly jednotlivých učících metod. Jsou dost zašuměná a metodám
založeným na simulaci hejna (PSO, HGAPSO) působí problémy. DE, SADE i QN prokazují
dobré výsledky.
Obdobné výsledky vykazují i modely WBCW - Cold water consumption a WBHW - Hot water
consumption. Zde již je rozdíl menší, ale stále patrný.
Datová množina Building vykazovala největší rozdíly testovaných algoritmů.
5.1.3.2
Spiral
Spiral je další testovanou množinou dat. Metody na těchto datech vykazovaly menší vzájemné
rozdíly.
Výsledky na grafech v obrázku 5.4 ukazují chybu sítě při klasifikaci spirály. Obstojně si vede
QN. DE se řadí k průměru. Rozdíl mezi jednotlivými metodami není příliš velký.
Graf na obrázku 5.5 znázorňuje úspěšnost sítě při klasifikaci spirály. Všechny hodnoty se pohy-
KAPITOLA 5. TESTOVÁNÍ
Obrázek 5.4: Data Spiral 1 a Spiral 2 - RMS Error
Obrázek 5.5: Klasifikační úspěšnost na spirálních datech
23
24
KAPITOLA 5. TESTOVÁNÍ
bují těsně nad padesátiprocentní hranicí. DE se vede nejlépe, rozdíly však nejsou velké. Modely
učené všemi druhy metod mají špatnou schopnost klasifikace.
5.1.3.3
Antro
Datová množina Antro vykazovala minimální rozdíly. Dá se konstatovat, že na těchto datech
si vedou všechny optimalizační metody stejně.
Z prostorových důvodů jsou výsledky porovnání zahrnuty v příloze A nazvané Antro - Grafy
výsledků experimentu. Tam jsou výsledky i zhodnoceny.
5.2
Převzaté výsledky
Druhá skupina testů je převzata z dizertační práce ing. Pavla Kordíka [3]. Tyto testy byly
provedeny s rozšířenou množinou učících metod. Diferenciální evoluce se zde objevuje ve dvou
různých implementacích. Seznam metod je uveden v tabulce 5.3. Převzaté výsledky byly okomentovány s ohledem na výsledky DE.
Název třídy v GAME
UncminTrainer
SADETrainer
PSOTrainer
HGAPSOTrainer
PALDifferentialEvolutionTr.
DifferentialEvolutionTrainer
StochasticOSearchTrainer
OrthogonalSearchTrainer
ConjugateGradientTrainer
ACOTrainer
CACOTrainer
Zkratka
QN
SADE
PSO
HGAPSO
PalDE
DE
SOS
OS
CG
ACO
CACO
Druh
Gradient
Genetic
Swarm
Genetic
Genetic
Genetic
Random
Gradient
Gradient
Swarm
Swarm
Výuková metoda
Quasi-Newton method
SADE genetic method
Particle Swarm Optimization
Hybrid of GA and PSO
Differtial Evolution version 1
Differtial Evolution version 2
Stochastic Orthogonal Search
Orthogonal Search
Conjugate Gradient method
Ant Colony Optimization
Cont. Ant Colony Optimization
Tabulka 5.3: Seznam všech optimalizačních metod
Provádění testů proběhlo na čtyřech různých datových množinách:
• Ecoli
• Boston
• Building
• Mandarin
Pro testy byly zapnuty všechny jednotky. Vždy byla zapnuta pouze jedna optimalizační metoda
(výjimkou je pouze nastavení all - zde byli zapnuty všechny výukové metody). Pro každou
množinu dat bylo vygenerováno 5 modelů (výjimkou jsou data Ecoli - pouze 3 modely z důvodu
velké časové náročnosti výpočtu).
5.2.1
Ecoli
Obrázek 5.6 zachycuje úspěšnost klasifikace pomocí různých modelů neuronové sítě na datech
Ecoli. V obou případech vyhrává metoda HGAPSO (Hybrid GA a PSO). DE si vede poměrně
špatně. V prvním modelu velkou úspěšnost na trénovacích datech, ovšem na datech testovacích
je tomu právě naopak. Překvapením je velký rozdíl úspěšnosti QN v prvním a druhém modelu.
KAPITOLA 5. TESTOVÁNÍ
25
Obrázek 5.6: Datová množina Ecoli - schopnost klasifikace sítě. Dva modely.
5.2.2
Boston
Obrázek 5.7: Datová množina Boston - RMS error sítě
Druhou testovanou množinou jsou data Boston. Jak ukazuje obrázek 5.7 prakticky všechny
metody si vedly stejně. Jedinou výjimkou je OS (Orthogonal Search). Shodné výsledky všech
metod mohou znamenat, že data nebyla zašuměna a že na této datové množině je celkem jedno,
kterou metodu pro naučení sítě použijeme.
5.2.3
Building
V datové množině Building byla data klasifikována do tří výstupních proměnných. Pro každou
je vygenerováno 5 modelů a z nich vypočítán ensamble RMS error. Tato hodnota byla převzata
přímo ze simulátoru GAME.
• Energy consumption
• Cold water consumption
• Hot water consumption
Výsledky (viz. obrázek 5.8) ukazují na to, že některé metody (DE, QN, SADE) si vedou velmi
dobře pro všechny tři modely. Nic na tom nemění ani značné zašumění modelu Energy consumption.
26
KAPITOLA 5. TESTOVÁNÍ
Obrázek 5.8: Datová množina Building - menší hodnota znamená lepší výsledek
Ostatní metody již dopadly hůře (PSO, ACO, palDE).
Překvapením je metoda palDE. Ta je druhou implementací diferenciální evoluce v simulátoru
GAME. Její výsledky jsou zde špatné a ukazují na to, že je důležité správné nastavení parametrů
algoritmu diferenciální evoluce. Tato metoda byla přidána do simulátoru GAME z internetu.
5.2.4
Mandarin
Posledním testem byla data Mandarin. Ty ukazují postupné rozložení výsledků jednotlivých
optimalizačních algoritmů (viz. obrázek 5.9). DE si vede dobře. Tradičně dobře dopadl i QN.
Obrázek 5.9: Datová množina Mandarin - RMS error
KAPITOLA 6. ZHODNOCENÍ VÝSLEDKŮ
27
6 Zhodnocení výsledků
Obsahem této kapitoly je krátké zhodnocení výsledků práce. Během práce došlo k potvrzení
některých teoretických předpokladů.
6.1
Teoretické předpoklady
Pokud jde o dobu výpočtu, pak své jednoznačné přednosti potvrdily metody využívající gradientního sestupu (např. Quasi-Newtonův alg.). Ty jsou jednoznačně nejrychlejším způsobem pro
dosažení výsledku. Diferenciální evoluce potvrdila, že ve skupině evolučních výpočetních technik
je jedním z nejrychlejších algoritmů. Optimalizace pomocí hejna (PSO) byla nejpomalejší.
6.2
Praktické poznatky
Při srovnání poznatků z testování optimalizačních metod je dobré se zaměřit na to, jaké metody
jsou nejvýhodnější z pohledu nalezení nejlepšího výsledku. Odpověď není tak jednoduchá.
Existují metody, které mají často dobré výsledky (QN, DE, . . .), ale občas se umístí až na konci
startovního pole.
Jindy zase výsledky ukazují, že metody, které mají častěji horší výsledky (PSO, HGAPSO),
vyhrávají nad tradičními vítězi.
Dalším případem je, že jsou si všechny metody skoro rovnocenné.
Významným faktorem při testování byla zašuměnost dat (např. model WBE - Energy consumtion) - metody HGAPSO a PSO zde prokazovaly znatelně horší výsledky.
Záleží tedy především na datových množinách pro které jsou modely neuronových sítí stavěny.
Lze tedy konstatovat, že pro různá data jsou vhodné různé optimalizační metody.
Za výhodnou metodu pro většinu porovnávaných dat lze považovat Quasi-Newtonův algoritmus
případně i Diferenciální evoluci.
6.3
Funkčnost diferenciální evoluce
Praktickými testy byla potvrzena funkčnost DE. Ověřena byla stabilita a robustnost algoritmu,
který vykazuje vysokou schopnost nalezení globálního extrému.
Překvapivým poznatkem byla funkčnost metody PalDE, druhé implementace algoritmu DE,
která byla do simulátoru GAME přidána z internetu 1 . Ta dopadla špatně na datovém modelu
WBE - Energy consumtion. Přitom DE implementovaná jako součást této práce byla mezi
nejlepšími.
1
PalDE nepochzí od tvůrců simulátoru GAME
28
KAPITOLA 6. ZHODNOCENÍ VÝSLEDKŮ
KAPITOLA 7. ZÁVĚR
29
7 Závěr
V úvodu práce jsem si vytkl začlenění algoritmu diferenciální evoluce do simulátoru GAME.
Tento předpoklad se podařilo naplnit.
Vytvořil jsem novou aplikaci v oboru evolučních výpočetních metod nazývanou diferenciální
evoluce. Funkčnost a vlastnosti algoritmu jsem prověřil na různých skupinách dat. Pro porovnání jsem na stejná data aplikoval i jiné optimalizační metody a porovnal je s činností
diferenciální evoluce.
Testováním se potvrdily přednosti algoritmu diferenciální evoluce, jako například stabilita a
robustnost. Tímto byla přidána do simulátoru kvalitní optimalizační metoda.
Teoretická část práce přispěla k prohloubení mých znalostí o učení neuronových sítí, optimalizačních metodách a testování jejich funkčnosti.
Dalším pokračováním práce by mohla být úprava algoritmu diferenciální evoluce o využití
hodnoty gradientu během výpočtu nebo implementace Levemberg-Marquardtova algoritmu.
30
KAPITOLA 7. ZÁVĚR
KAPITOLA 8. LITERATURA
31
8 Literatura
[1] T-test - webový kalkulátor
. www.physics.csbsju.edu/stats/t-test_bulk_form.html.
[2] L. Davis. Genetic Algorithms and Simulated Annealing. Morgan Kaufmann Publisher, Los
Altos, 1987.
[3] P. Kordík. Fully Automated Knowledge Extraction using Group of AdaptiveModels Evolution. Disertation thesis, 2006.
[4] K. Madsen. Methods for non-linear least squares problems. 2nd edition, 2004.
[5] V. Mařík. Umělá inteligence (3). Academica, Praha, 1. edition, 2001.
[6] V. Mařík. Umělá inteligence (4). Academica, Praha, 1. edition, 2003.
[7] R. Storn. Diferenciální evoluce - web tvůrce algoritmu
. www.icsi.berkeley.edu/~storn/code.html.
32
KAPITOLA 8. LITERATURA
PŘÍLOHA A. ANTRO - GRAFY VÝSLEDKŮ EXPERIMENTU
33
A Antro - Grafy výsledků experimentu
Tato příloha obsahuje grafy experimentů se stručným vyhodnocením výsledků.
Obrázek A.1: Klasifikační úspěšnost u věkových kategorií
Na obrázku A.1 jsou zachyceny procentuální úspěšnosti klasifikace do jednotlivých věkových
kategorií. Zde není příliš velký rozdíl - největší rozdíl dvou metod je menší než 1%.
Obrázek A.2: Antropologická data AGE - RMS Error
Antropologická data AGE na obrázku A.2 vykazují přibližně stejné výsledky pro všechny optimalizační metody. Nejinak je tomu i pro modely pro klasifikaci do věkových skupin - obrázek
A.3. Zde se od sebe jednotlivé metody prakticky neliší a to jak na trénovací, tak na testovací
množině dat.
34
PŘÍLOHA A. ANTRO - GRAFY VÝSLEDKŮ EXPERIMENTU
Obrázek A.3: Modely pro klasifikaci do věkových skupin - RMS Error
PŘÍLOHA B. SEZNAM POUŽITÝCH ZKRATEK
B Seznam použitých zkratek
ACO Ant colony optimization
CACO Cooperative ant colony optimization
CG Conjugate gradient
DE Diferenciální evoluce
EVT Evoluční výpočetní technika
GA Genetický algoritmus
GAME Group of adaptive models evolution
GMDH Group method of data handling
GUI Graphical user interface
HGAPSO Hybrid genetických algoritmů a particle swarm optimization
LM Levemberg-Marquardt
MIA Multilayered iteration algorithm
OS Orthogonal search
PalDE Pal diferenciální evoluce
PSO Particle swarm optimization
QN Quasi-Newton
SADE Simplified atavistic differential evolution
SOS Stochastic orthogonal search
UML Unified modeling language
35
36
PŘÍLOHA B. SEZNAM POUŽITÝCH ZKRATEK
PŘÍLOHA C. OBSAH PŘILOŽENÉHO CD
37
C Obsah přiloženého CD
Přiložené cd obsahuje násdedující složky a soubory (viz. obrázek C.1).
Obrázek C.1: Obsah přiloženého CD
Soubor index.html obsahuje informace pro zacházení s obsahem CD. Ve složce text je umístěna
elektronická verze této práce ve formátu PDF.

Podobné dokumenty

Literatura - zsjiraskova.cz

Literatura - zsjiraskova.cz ____________________________________________________________ under bed The are magazines the . ____________________________________________________________ wardrobe is chest of drawers The opposite...

Více

EFT případové studie - EFT

EFT případové studie - EFT měnícímu prostředí, málokdy jsme se cítili v bezpečí, nikdy jsme neměli jistotu, co bude zítra. Neměli jsme dovoleno ukázat pocity jako byla zlost, smutek nebo obavy, ve kterých jsme žili. Jsem si ...

Více

Několik poznámek k tvorbě počítačových her

Několik poznámek k tvorbě počítačových her V příkladech nebudeme úplně přesně a do detailu zkoumat, co která funkce dělá a jaké přesně musí mít parametry. To je velice pěkně popsané v manuálech ke knihovnám. Naším cílem je udělat několik ma...

Více

Skriptum AI - prof. Ing. IVO VONDRÁK, CSc.

Skriptum AI - prof. Ing. IVO VONDRÁK, CSc. Model se skládá z tří neuronů s definovanu hodnotou prahů, dvou vstupů (nepodmíněný Uunconditioned a podmíněný C-conditioned), jednoho výstupu (podmíněný reflex O-output) a pouze z excitačních vaze...

Více

Soupis bakalářských prací za akademický rok 2011/2012

Soupis bakalářských prací za akademický rok 2011/2012 Práce bude zaměřena na odvětví práva, jejichž právní předpisy upravují vztahy mezi subjekty v oblasti cestovního ruchu. Jedná se zejména o právo živnostenské, které stanoví zásady pro podnikání a p...

Více

Název učebního textu

Název učebního textu Metody moderní teorie řízení se do praxe dostávají stále velmi omezeně. Rovněž řídicí algoritmy založené na fuzzy logice a neuronových sítích jsou v praxi málo používané. Fuzzy logika přináší nové ...

Více

Algoritmy pro spojitou optimalizaci

Algoritmy pro spojitou optimalizaci Vladimı́r Bičı́k (ČVUT Praha)

Více

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

Vizualizace jako nástroj studia chování modelů přírodních systémů Rád bych poděkoval Ing. Pavlu Kordíkovi za vedení při mém studiu neuronových sítí, genetických algoritmů a za četné a velmi podnětné rady při psaní této diplomové práce. Můj velký dík patří mé matc...

Více