Algoritmy pro optimalizaci sítí GAME Miroslav Janošík
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ů 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
____________________________________________________________
under bed The are magazines the .
____________________________________________________________
wardrobe is chest of drawers The opposite...
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 ...
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...
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...
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...
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é ...
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...