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

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

Algoritmy pro spojitou optimalizaci

PŘEDNÁŠKA 03 OPTIMALIZAČNÍ METODY Optimization methods

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

Evoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi

Biologicky inspirované výpočty. Schématické rozdělení problematiky a výuky

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

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

Jak se matematika poučila v biologii

Navrženy v 60. letech jako experimentální optimalizační metoda. Velice rychlá s dobrou podporou teorie

OPTIMALIZACE. (přehled metod)

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

Úvod do optimalizace, metody hladké optimalizace

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

Evolučníalgoritmy. Dále rozšiřována, zde uvedeme notaci a algoritmy vznikléna katedře mechaniky, Fakulty stavební ČVUT. Moderní metody optimalizace 1

UČENÍ BEZ UČITELE. Václav Hlaváč

1. Téma 03 - Rozhodování

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

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

Gramatická evoluce a softwarový projekt AGE

Swarm Intelligence. Moderní metody optimalizace 1

Numerické metody a programování. Lekce 8

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

Metaheuristiky s populacemi

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

A0M33EOA: Evoluční optimalizační algoritmy

Masarykova univerzita. Fakulta informatiky. Evoluce pohybu

Dynamické datové struktury III.

Užití systému Matlab při optimalizaci intenzity tepelného záření na povrchu formy


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

Pokročilé operace s obrazem

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

Pokročilé metody učení neuronových sítí. Tomáš Řehořek

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

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

SPECIFICKÝCH MIKROPROGRAMOVÝCH ARCHITEKTUR

Poslední nenulová číslice faktoriálu

6 Příkazy řízení toku

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: Předmět: ZAP

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

Optimalizační metody v CFD

OPTIMALIZAČNÍ ÚLOHY. Modelový příklad problém obchodního cestujícího:

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

1 Nejkratší cesta grafem

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

PARAMETRICKÁ STUDIE VÝPOČTU KOMBINACE JEDNOKOMPONENTNÍCH ÚČINKŮ ZATÍŽENÍ

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

FORTANNS. 22. února 2010

Časová a prostorová složitost algoritmů

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

VISUAL BASIC. Přehled témat

Optimalizační metody v CFD diferenciální evoluce

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

NG C Implementace plně rekurentní

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA STROJNÍ BAKALÁŘSKÁ PRÁCE. 2016/2017 Monika Knolová

Genetické algoritmy. a jejich praktické využití. Pavel Šturc. průmyslu, stejně tak je zde uvedeno i několik případů jejich úspěšné implementace.

ití empirických modelů při i optimalizaci procesu mokré granulace léčivl ková SVK ÚOT

Objektové programování

Algoritmus pro hledání nejkratší cesty orientovaným grafem

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

TÉMATICKÝ OKRUH Softwarové inženýrství


Analytické programování v C#

Datové struktury 2: Rozptylovací tabulky

Markov Chain Monte Carlo. Jan Kracík.

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

Algoritmizace. 1. Úvod. Algoritmus

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

Zobrazte si svazy a uspořádané množiny! Jan Outrata

Testování neuronových sítí pro prostorovou interpolaci v softwaru GRASS GIS

Neuropočítače. podnět. vnímání (senzory)

5.5 Evoluční algoritmy

Rekurzivní algoritmy

VUT Brno Fakulta informačních technologií Simulační nástroje a techniky (SNT) 2014/2015 Vehicle routing problem Ant colony

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

ŠVP Gymnázium Ostrava-Zábřeh Úvod do programování

OPTIMALIZACE A MULTIKRITERIÁLNÍ HODNOCENÍ FUNKČNÍ ZPŮSOBILOSTI POZEMNÍCH STAVEB D24FZS

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

Lineární klasifikátory

PRŮZKUM VÝŽIVY LESA NA ÚZEMÍ ČESKÉ REPUBLIKY

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

MULTISIM VÝUKOVÝ ELEKTRONICKÝ MATERIÁL

1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

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

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Rozvoj tepla v betonových konstrukcích

Popis zobrazení pomocí fuzzy logiky

Genotypy absolutní frekvence relativní frekvence

Úvod do programování - Java. Cvičení č.4

Výuka odborného předmětu z elektrotechniky na SPŠ Strojní a Elektrotechnické

11. Tabu prohledávání

Profilová část maturitní zkoušky 2017/2018

Název diplomové práce: Srovnávač životního pojištění. Určení: Bakalářská práce. Vedoucí: Doc. Ing. Petr Sosík, Dr.

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

Transkript:

Č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ů Seznam tabulek xi xiii 1 Úvod 1 1.1 Motivace........................................ 1 1.2 Specifikace cíle.................................... 1 2 Optimalizační metody 3 2.1 Gradientní metody.................................. 3 2.1.1 Quasi-Newtonův algoritmus......................... 3 2.1.2 Levenberg-Marquardtův algoritmus..................... 4 2.2 Evoluční metody................................... 4 2.2.1 Genetické algoritmy............................. 7 2.2.2 Diferenciální evoluce............................. 7 2.2.2.1 Parametry............................. 8 2.2.2.2 Princip činnosti.......................... 8 2.2.2.3 Vlastnosti.............................. 10 2.2.3 Hejna..................................... 12 2.2.3.1 Particle swarm optimization................... 12 2.2.3.2 Hybrid GA a PSO......................... 12 3 Simulátor GAME 13 4 Implementace diferenciální evoluce 15 4.1 Popis implementace................................. 15 4.1.1 UML schéma................................. 15 4.1.2 Grafické rozhraní............................... 16 4.1.3 Hlavní části kódu............................... 17 4.2 Vlastnosti....................................... 18 5 Testování 19 5.1 Získané výsledky................................... 19 5.1.1 Metodika................................... 19 5.1.2 Úspěšnost přežití neuronu.......................... 19 5.1.3 Chyba sítě.................................. 21 5.1.3.1 Building.............................. 21 5.1.3.2 Spiral................................ 22 5.1.3.3 Antro................................ 24 5.2 Převzaté výsledky.................................. 24 5.2.1 Ecoli...................................... 24 5.2.2 Boston..................................... 25 5.2.3 Building.................................... 25 5.2.4 Mandarin................................... 26 6 Zhodnocení výsledků 27 6.1 Teoretické předpoklady............................... 27 6.2 Praktické poznatky.................................. 27 6.3 Funkčnost diferenciální evoluce........................... 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 Příklad prohledávání prostoru gradientní metodou................ 3 2.2 Pseudokód algoritmu gradientního sestupu..................... 4 2.3 Levemberg-Marquardt - pseudokód......................... 4 2.4 Pseudokód algoritmu EVT.............................. 5 2.5 Obměna generací................................... 6 2.6 Mutace........................................ 7 2.7 Křížení......................................... 7 2.8 Reprodukce jedince.................................. 9 2.9 Detailní popis reprodukce nového jedince..................... 11 3.1 Rozdíl mezi sítí MIA GMDH a sítí GAME..................... 13 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...................... 14 4.1 UML schéma implementovaných tříd........................ 15 4.2 GUI pro konfiguraci................................. 16 5.1 Procentuální zastoupení optimalizačních metod.................. 20 5.2 T-test nad daty WBE - Energy consumption................... 21 5.3 Datová množina Building - RMS Error....................... 22 5.4 Data Spiral 1 a Spiral 2 - RMS Error........................ 23 5.5 Klasifikační úspěšnost na spirálních datech..................... 23 5.6 Datová množina Ecoli - schopnost klasifikace sítě. Dva modely.......... 25 5.7 Datová množina Boston - RMS error sítě..................... 25 5.8 Datová množina Building - menší hodnota znamená lepší výsledek....... 26 5.9 Datová množina Mandarin - RMS error...................... 26 A.1 Klasifikační úspěšnost u věkových kategorií.................... 33 A.2 Antropologická data AGE - RMS Error...................... 33 A.3 Modely pro klasifikaci do věkových skupin - RMS Error............. 34 C.1 Obsah přiloženého CD................................ 37 xi

xii

Seznam tabulek 2.1 Řídící parametry DE................................. 8 5.1 Seznam optimalizačních metod pro testování................... 19 5.2 Procetuální úspěšnost přežití jednotek sítě na různých datových množínách.. 20 5.3 Seznam všech optimalizačních metod........................ 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 x 0, pak další krok iterativního zlepšování řešení popíšeme vztahem x k+1 = x k + α k dk 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( x k ). d k = f( x k ), f( x k ) = ( ) T f( x 1 ),..., f( x n ) x 1 x n 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ů x t,i, která je často nazývána populace a matematicky se dá zapsat v následujícím tvaru G(t) = {x t,1, x t,2,..., x t,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 x t,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ů s i tak, že S = {s 1, s 2,..., s n } 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 Interval Optimum Význam N P 4; 100 10+ velikost populace F 0; 2 0, 3 0, 9 mutační konstanta CR 0; 1 0, 8 0, 9 práh křížení GEN dle uživatele - počet generací Tabulka 2.1: Řídící parametry DE NP - počet jedinců v populaci. Pro správnou funkčnost je doporučeno NP 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 x i kde i NP. 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 x i. Vznikne tím nová generace se stejným počtem jedinců. 1. Prvním krokem je určení rodičů r 0, r 1, r 2 a r 3. Rodič r 0 je vektor x i pro nějž je reprodukce prováděna. Ostatní rodiče r 1, r 2 a r 3 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 (r 1 r 2 ) + r 3, kde F je mutační konstanta, která je parametrem algoritmu.

KAPITOLA 2. OPTIMALIZAČNÍ METODY 9 Obrázek 2.8: Reprodukce jedince

10 KAPITOLA 2. OPTIMALIZAČNÍ METODY 3. Při procesu křížení vzniká zkušební vektor x test. Ten vznikne tak, že postupně procházíme všechny složky vektoru r 0,i a v i ( i {1, 2,..., D}) a podle pravděpodobnosti dané konstantou CR zařadíme do zkušebního vektoru x test i složku z r 0,i nebo v i. Algoritmicky zapsáno: if (rnd(0, 1) CR) then x test i := v i else x test i := r 0,i. 4. Nyní už zbývá otestovat, zda je zkušební vektor x test i lepší, než jeho hlavní rodič r 0. Lepší 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 f cost (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 KAPITOLA 2. OPTIMALIZAČNÍ METODY 2.2.3 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) + c 1 rnd() ( p i x i (t)) + c 2 rnd() ( p g x i (t)) kde w je inerciální konstanta a je menší než jedna, c 1 a c 2 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 0; 1. 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 = 1 m (y j d j ) 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: NP - počet jedinců v populaci. Pro správnou funkčnost je doporučeno NP 10. F - mutační konstanta. Doporučená hodnota je F 0, 4; 1, 6. 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 X; X Obrázek 4.2: GUI pro konfiguraci

KAPITOLA 4. IMPLEMENTACE DIFERENCIÁLNÍ EVOLUCE 17 4.1.3 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 END 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 Zkratka Druh Výuková metoda UncminTrainer QN Gradient Quasi-Newton method SADETrainer SADE Genetic SADE genetic method PSOTrainer PSO Swarm Particle Swarm Optimization HGAPSOTrainer HGAPSO Genetic Hybrid of GA and PSO DifferentialEvolutionTrainer DE Genetic 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Í Optimalizační metoda [%] Data BackProp QN PSO DE HGAPSO SADE Antro AGE 9,09 72,73 9,09 9,09 0 0 Spiral 1 16,67 50,00 0 16,67 16,67 0 Spiral 2 65,71 11,43 2,86 5,71 11,43 2,86 WBE 14,29 57,14 0 14,29 0 14,29 WBHW 37,50 12,50 0 25,00 12,50 12,50 WBCW 11,11 44,44 0 11,11 11,11 22,22 Průměr 25,73 41,37 1,99 13,64 8,62 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Í 23 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

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 Zkratka Druh Výuková metoda UncminTrainer QN Gradient Quasi-Newton method SADETrainer SADE Genetic SADE genetic method PSOTrainer PSO Swarm Particle Swarm Optimization HGAPSOTrainer HGAPSO Genetic Hybrid of GA and PSO PALDifferentialEvolutionTr. PalDE Genetic Differtial Evolution version 1 DifferentialEvolutionTrainer DE Genetic Differtial Evolution version 2 StochasticOSearchTrainer SOS Random Stochastic Orthogonal Search OrthogonalSearchTrainer OS Gradient Orthogonal Search ConjugateGradientTrainer CG Gradient Conjugate Gradient method ACOTrainer ACO Swarm Ant Colony Optimization CACOTrainer CACO Swarm 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 35 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

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.