České vysoké učení technické v Praze Fakulta elektrotechnická Diplomová práce Neuronové sítě pro predikci časových řad Josef Bouška Vedoucí práce: Kordík Pavel Ing., Ph.D. Studijní program: Elektrotechnika a informatika, dobíhající, Magisterský Obor: Informatika a výpočetní technika Leden 2008
ii
Poděkování V první řadě děkuji Ing. Pavlu Kordíkovi, Ph.D. za odborné vedení, podnětné připomínky a návrhy a kolegiální přístup při tvorbě této práce. Díky patří též Dr. Richardovi Břzeznému z neurochirurgie v pražské univerzitní nemocnici Motol za poskytnutí biologických dat, Dr. Phil Prendergast ze zahradnického výzkumného ústavu, Kerikeri, Nový Zéland za poskytnutí dat o spotřebě vody mandarinkovníků a Ing. Radku Pincovi za jeho implementaci Analogues Complexing GMDH metody. Dále bych rád poděkoval svým rodičům, přítelkyni Monice a dalším lidem z mého blízkého okolí za psychickou podporu a trpělivost, kterou se mnou v tento čas měli. iii
iv
Prohlášení Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu 60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne 12.1.2008............................................................. v
vi
Abstract The goal of this diploma thesis is to find the most appropriate method from computational intelligence domain for slow biological signals prediction. To achieve this goal we need to study the basics of time series analysis, prediction by means of inductive models, choose the proper representatives from parametric and nonparametric methods and perform experiments by means of selected methods on various types of real data sets, including biological data from Motol Hospital in Prague. The results from this work can contribute to treatment of patients with brain injury. Abstrakt Cílem této diplomové práce je nalézt nejvhodnější metodu z oblasti neuronových sítí pro predikci pomalu se měnících biologických signálů. K dosažení tohoto cíle je třeba prostudovat základy analýzy časových řad a predikci prostřednictvím neuronových sítí, vybrat vhodné zástupce z parametrických a neparametrických metod a pomocí zvolených neuronových sítí provést experimenty s predikcí na různých typech reálných dat, včetně biologických dat dodaných univerzitní nemocnicí Motol. Výzvou je, že v budoucnu by výsledky této práce mohly přispět k rozhodování o zákrocích vedoucích k úspěšnému léčení pacientů po úrazu hlavy. vii
viii
Obsah Seznam obrázků Seznam tabulek xiii xvi 1 Motivace 1 2 Úvod 1 3 Teoretická část 2 3.1 Časové řady, jejich vlastnosti a základní metody analýzy............. 2 3.1.1 Druhy časových řad............................. 3 3.1.2 Dekompozice časových řad......................... 4 3.1.3 Doplnění chybějících hodnot........................ 4 3.1.4 Interpolace.................................. 5 3.1.5 Extrapolace.................................. 6 3.1.6 Aproximace.................................. 6 3.1.7 Predikce.................................... 6 3.1.7.1 Bodová předpověď a předpovědní interval............ 6 3.1.7.2 Kvalitativní a kvantitativní předpovědní metody........ 7 3.1.8 Chyby a metody pro hodnocení kvality predikce............. 7 3.2 Predikce časových řad pomocí neuronových sítí.................. 8 3.3 Parametrické metody a neuronové sítě....................... 9 3.3.1 GAME - Group of Adaptive Models Evolution.............. 9 3.3.1.1 Heterogenní jednotky....................... 10 3.3.1.2 Rostoucí složitost modelu..................... 10 3.3.1.3 Propojení napříč vrstvami.................... 11 3.3.1.4 Generování skupiny modelů.................... 11 3.3.1.5 Použití genetického algoritmu................... 11 3.3.1.6 Metoda niching.......................... 12 3.4 Neparametrické metody a neuronové sítě...................... 12 3.4.1 GMDH Analogues Complexing....................... 13 3.4.1.1 Generování vzorků......................... 13 3.4.1.2 Transformace vzorků....................... 13 3.4.1.3 Výběr vzorků............................ 14 3.4.1.4 Kombinování vzorků........................ 14 4 Experimentální část 17 4.1 Návrh experimentů.................................. 17 4.2 Popis použitých datových vzorků.......................... 18 4.3 Srovnání neparametrické a parametrické metody predikce............ 19 4.3.1 Nastavení experimentu............................ 19 4.3.2 Výsledky neparametrické metody...................... 20 4.3.3 Výsledky parametrické metody....................... 23 4.3.4 Vyhodnocení experimentu.......................... 25 4.4 Zkoumání vlivu optimalizační metody na chybu predikce............. 27 4.4.1 Nastavení experimentu............................ 27 4.4.2 Výsledky experimentu............................ 28 4.4.3 Vyhodnocení experimentu.......................... 28 ix
4.5 Porovnání úspěšnosti krátkodobé predikce na různých typech dat........ 31 4.5.1 Nastavení experimentu............................ 31 4.5.2 Výsledky experimentu............................ 32 4.5.3 Vyhodnocení experimentu.......................... 32 4.6 Porovnání úspěšnosti střednědobé predikce na různých typech dat....... 36 4.6.1 Nastavení experimentu............................ 36 4.6.2 Výsledky experimentu............................ 37 4.6.3 Vyhodnocení experimentu.......................... 37 4.7 Zkoumání vlivu doplňujících informací k časové řadě............... 40 4.7.1 Nastavení experimentu............................ 40 4.7.2 Výsledky experimentu............................ 41 4.7.3 Vyhodnocení experimentu.......................... 42 5 Implementační část 45 5.1 Rozšíření GAME o zpracování časových řad pro predikci............. 45 5.1.1 Popis funkčnosti............................... 45 5.1.2 Návod k použití............................... 45 5.2 Rozšíření GAME o vizualizaci výsledků predikce................. 48 5.2.1 Popis funkčnosti............................... 48 5.2.2 Návod k použití............................... 48 6 Závěr 51 6.1 Návrh na další práci................................. 51 7 Literatura 53 A Použité datové vzorky 55 A.1 Periodická data.................................... 55 A.1.1 Spotřeba vody mandarinkovníku...................... 55 A.1.2 Koncentrace kyslíku v krvi......................... 57 A.2 Aperiodická data................................... 58 A.2.1 Hladina kysličníku uhličitého, pacient 1.................. 58 A.2.2 Hladina kysličníku uhličitého, pacient 2.................. 60 A.2.3 Kategorizace událostí............................ 60 A.2.4 Příklad vstupních dat s doplňující informací................ 62 A.3 Náhodná data..................................... 63 A.3.1 Náhodný vzorek 1.............................. 64 A.3.2 Náhodný vzorek 2.............................. 65 B Podrobné výsledky experimentů 67 B.1 Srovnání neparametrické a parametrické metody predikce............ 67 B.2 Zkoumání vlivu optimalizační metody na chybu predikce............. 69 B.3 Porovnání úspěšnosti krátkodobé predikce na různých typech dat........ 71 B.4 Porovnání úspěšnosti střednědobé predikce na různých typech dat....... 74 B.5 Zkoumání vlivu doplňujících informací k časové řadě............... 80 C Obsah přiloženého CD 83 x
Seznam obrázků 3.1 Příklad časové řady: Vývoj kurzu Eura vůči české koruně............ 3 3.2 Trendová, sezónní, cyklická a náhodná složka časové řady............ 5 3.3 Průběh chyb předpovědi: a) vliv reziduální složky, b) vliv trendové složky... 7 3.4 Příklad GAME modelu složeného z heterogenních jednotek propojených do dopředné sítě...................................... 10 3.5 Porovnání originální MIA GMDH sítě a sítě GAME............... 11 3.6 Přístup časového okna k predikci časových řad.................. 11 3.7 Využití informace genetickými algoritmy (GA) pro výběr jedinců........ 12 3.8 GMDH Analogues Complexing: Transformace vzorků............... 14 3.9 GMDH Analogues Complexing: Výběr vzorků................... 15 3.10 GMDH Analogues Complexing: Výhled vzorků.................. 15 4.1 Vztahy mezi jednotlivými experimenty....................... 17 4.2 Výstup z metody Analogues Complexing: predikce na periodických datech prováděná v okamžiku t = 30.............................. 21 4.3 Výstup z metody Analogues Complexing: predikce na neperiodických datech prováděná v okamžiku t = 30............................ 21 4.4 GAME: predikce na periodických datech prováděná v okamžiku t = 30..... 23 4.5 GAME: predikce na neperiodických datech prováděná v okamžiku t = 30.... 24 4.6 RMS error s box plot: predikce prostřednictvím GAME a Analogues Complexing (AC) ve dvaceti různých okamžicích predikce................... 25 4.7 Vztah průměrné a maximální chyby k různé vzdálenosti predikce........ 26 4.8 Vzestupně seřazené průměrné RMS chyby jednotlivých modelů na periodických datech......................................... 30 4.9 Vzestupně seřazené průměrné RMS chyby jednotlivých modelů na neperiodických datech...................................... 30 4.10 Predikce správného směru příští hodnoty u neperiodického vzorku (CO 2, pacient 2)........................................... 33 4.11 Predikce správného směru příští hodnoty u periodického vzorku (kyslík).... 33 4.12 Predikce správného směru příští hodnoty u periodického vzorku (mandarinky). 34 4.13 Predikce správného směru příští hodnoty u náhodných dat (vzorek 1)..... 34 4.14 RMS error s box plot: určení správného směru příští hodnoty na 10-ti modelech 35 4.15 Predikce stoupajícího trendu do vzdálenosti t + 20 na periodických datech (spotřeba vody mandarinkovníku)......................... 38 4.16 Predikce klesajícího trendu do vzdálenosti t + 20 na neperiodických datech (CO 2, pacient 1)................................... 38 4.17 Predikce stoupajícího trendu do vzdálenosti t+20 na náhodných datech (vzorek 1)........................................... 39 4.18 Průběh hladiny CO 2 (pacient 1) společně s vygenerovanými impulsy manipulace 41 4.19 Průběh hladiny CO 2 (pacient 2) společně s vygenerovanými impulsy manipulace 41 4.20 Box plot: Porovnání úspěšnosti GAME modelů při určování trendu dat s doplňující informací (A) a obyčejných dat (B)..................... 43 4.21 a) Klasifikace s kombinováním modelů, b) Mapování n-dimenzionálních dat do dvou rozměrů..................................... 44 5.1 Aplikace pro předzpracování časových řad..................... 46 5.2 Aplikace pro vizualizaci výsledků predikce..................... 49 xi
A.1 Trénovací množina periodických dat (spotřeba vody mandarinkovníku) o velikosti 500 hodnot................................... 55 A.2 Testovací množina periodických dat (spotřeba vody mandarinkovníku) o velikosti 120 hodnot...................................... 55 A.3 Trénovací množina periodických dat (mandarinky) o velikosti 1500 hodnot... 56 A.4 Testovací množina periodických dat (mandarinky) o velikosti 500 hodnot... 56 A.5 Trénovací množina periodických dat (kyslík) o velikosti 1500 hodnot...... 57 A.6 Testovací množina periodických dat (kyslík) o velikosti 500 hodnot....... 57 A.7 Trénovací množina neperiodických dat (průběh CO 2 ) o velikosti 900 hodnot.. 58 A.8 Testovací množina neperiodických dat (průběh CO 2 ) o velikosti 900 hodnot.. 58 A.9 Trénovací množina neperiodických dat (průběh CO 2, pacient 1) o velikosti 1500 hodnot......................................... 59 A.10 Testovací množina neperiodických dat (průběh CO 2, pacient 1) o velikosti 500 hodnot......................................... 59 A.11 Trénovací množina neperiodických dat (průběh CO 2, pacient 2) o velikosti 1500 hodnot......................................... 60 A.12 Testovací množina neperiodických dat (průběh CO 2, pacient 2) o velikosti 500 hodnot......................................... 60 A.13 Trénovací množina náhodných dat (vzorek 1) o velikosti 1500 hodnot...... 64 A.14 Testovací množina náhodných dat (vzorek 1) o velikosti 500 hodnot...... 64 A.15 Trénovací množina náhodných dat (vzorek 2) o velikosti 1500 hodnot...... 65 A.16 Testovací množina náhodných dat (vzorek 2) o velikosti 500 hodnot...... 65 B.1 Predikce správného směru příští hodnoty u periodického vzorku (spotřeba vody mandarinkovníku).................................. 71 B.2 Predikce správného směru příští hodnoty u periodického vzorku (koncentrace kyslíku v krvi).................................... 72 B.3 Predikce správného směru příští hodnoty u neperiodického vzorku (hladina CO 2, pacient 1)....................................... 72 B.4 Predikce správného směru příští hodnoty u neperiodického vzorku (hladina CO 2, pacient 2)....................................... 72 B.5 Predikce správného směru příští hodnoty u náhodných dat (vzorek 1)..... 73 B.6 Predikce správného směru příští hodnoty u náhodných dat (vzorek 2)..... 73 B.7 Predikce stoupajícího trendu do vzdálenosti t + 20 na periodických datech (spotřeba vody mandarinkovníku)......................... 75 B.8 Predikce klesajícího trendu do vzdálenosti t + 20 na periodických datech (spotřeba vody mandarinkovníku)............................ 75 B.9 Predikce stoupajícího trendu do vzdálenosti t + 20 na periodických datech (koncentrace kyslíku v krvi)............................. 76 B.10 Predikce klesajícího trendu do vzdálenosti t + 20 na periodických datech (koncentrace kyslíku v krvi)............................... 76 B.11 Predikce stoupajícího trendu do vzdálenosti t + 20 na neperiodických datech (hladina CO 2, pacient 1)............................... 76 B.12 Predikce klesajícího trendu do vzdálenosti t + 20 na neperiodických datech (hladina CO 2, pacient 1)............................... 77 B.13 Predikce stoupajícího trendu do vzdálenosti t + 20 na neperiodických datech (hladina CO 2, pacient 2)............................... 77 B.14 Predikce klesajícího trendu do vzdálenosti t + 20 na neperiodických datech (hladina CO 2, pacient 2)............................... 77 xii
B.15 Predikce stoupajícího trendu do vzdálenosti t+20 na náhodných datech (vzorek 1)........................................... 78 B.16 Predikce klesajícího trendu do vzdálenosti t + 20 na náhodných datech (vzorek 1)........................................... 78 B.17 Predikce stoupajícího trendu do vzdálenosti t+20 na náhodných datech (vzorek 2)........................................... 78 B.18 Predikce klesajícího trendu do vzdálenosti t + 20 na náhodných datech (vzorek 2)........................................... 79 B.19 Predikce stoupajícího trendu do vzdálenosti t + 20 na neperiodických datech s doplňujícími údaji (hladina CO 2, pacient 1).................... 80 B.20 Predikce klesajícího trendu do vzdálenosti t + 20 na neperiodických datech s doplňujícími údaji (hladina CO 2, pacient 1).................... 81 B.21 Predikce stoupajícího trendu do vzdálenosti t + 20 na neperiodických datech s doplňujícími údaji (hladina CO 2, pacient 2).................... 81 B.22 Predikce klesajícího trendu do vzdálenosti t + 20 na neperiodických datech s doplňujícími údaji (hladina CO 2, pacient 2).................... 81 C.1 Obsah přiloženého CD................................ 83 xiii
xiv
Seznam tabulek 3.1 Příklad časové řady: Vývoj kurzu Eura vůči české koruně............ 2 4.1 Analogues Complexing: Výpočet přesnosti predikce na periodických datech (mandarinky) prováděné v okamžiku t = 30.................... 21 4.2 Analogues Complexing: Výpočet přesnosti predikce prováděné v okamžiku t = 30 na neperiodických datech (CO 2 ).......................... 22 4.3 GAME: Výpočet přesnosti predikce na periodických datech (spotřeba vody mandarinkovníku) prováděné v okamžiku t = 30.................... 23 4.4 GAME: Výpočet přesnosti predikce prováděné v okamžiku t = 30 na neperiodických datech (CO 2 )................................ 24 4.5 Porovnání RMS chyby predikce prostřednictvím metod GAME a Analogues Complexing...................................... 25 4.6 Přehled optimalizačních metod použitých v GAME................ 27 4.7 Průměrná RMS chyba predikce do vzdálenosti 5 a 10 hodnot na modelech trénovaných pomocí různých optimalizačních metod................. 29 4.8 Vzestupně seřazené průměrné RMS chyby jednotlivých modelů na periodických datech......................................... 29 4.9 Vzestupně seřazené průměrné RMS chyby jednotlivých modelů na neperiodických datech...................................... 30 4.10 Transformace dat za účelem porovnání výsledků krátkodobé predikce na různých datech......................................... 31 4.11 RMS chyby určení správného směru příští hodnoty na 10-ti modelech...... 32 4.12 Transformace dat za účelem porovnání výsledků střednědobé predikce na různých datech...................................... 36 4.13 Procentuální přesnost určení stoupajícího trendu do vzdálenosti t + 20 na 10-ti modelech....................................... 37 4.14 Procentuální přesnost určení klesajícího trendu do vzdálenosti t + 20 na 10-ti modelech....................................... 37 4.15 Záznam několika událostí manipulace s pacientem................ 40 4.16 Procentuální přesnost určení budoucího trendu hladiny CO 2 s doplňujícími údaji, do vzdálenosti t + 20 na 10-ti modelech...................... 42 4.17 Porovnání procentuální přesnosti určení trendu dat s doplňující informací a obyčejných dat pomocí odpovědí z ensemble modelů................. 42 4.18 Porovnání procentuální přesnosti určení trendu dat s doplňující informací a obyčejných dat pomocí průměru úspěšnosti jednotlivých modelů.......... 42 5.1 Předzpracování dat: Příklad vstupního souboru s pěti časovými řadami.... 46 5.2 Předzpracování dat: Příklad výstupního souboru s oknem velikosti 4 a jednou predikovanou hodnotou............................... 48 A.1 Doba akutního efektu na ICP v sekundách..................... 61 A.2 Příklad části trénovací množiny aperiodických dat s doplňující informací.... 62 B.1 Analogues Complexing: RMS error 20-ti predikcí prováděných v různém okamžiku na testovací množině periodických dat (mandarinky)........... 67 B.2 Analogues Complexing: RMS error 20-ti predikcí prováděných v různém okamžiku na testovací množině neperiodických dat (CO 2 ).............. 67 B.3 GAME: RMS error 20-ti predikcí prováděných v různém okamžiku na testovací množině periodických dat (mandarinky)...................... 67 xv
B.4 GAME: RMS error 20-ti predikcí prováděných v různém okamžiku na testovací množině neperiodických dat (CO 2 )......................... 68 B.5 RMS chyba predikce periodických dat do vzdálenosti 5 hodnot na modelech trénovaných pomocí různých optimalizačních metod............... 69 B.6 RMS chyba predikce periodických dat do vzdálenosti 10 hodnot na modelech trénovaných pomocí různých optimalizačních metod............... 69 B.7 RMS chyba predikce neperiodických dat do vzdálenosti 5 hodnot na modelech trénovaných pomocí různých optimalizačních metod............... 70 B.8 RMS chyba predikce periodických dat do vzdálenosti 10 hodnot na modelech trénovaných pomocí různých optimalizačních metod............... 70 B.9 RMS chyba určení správného směru příští hodnoty................ 71 B.10 Procentuální přesnost určení správného směru trendu do vzdálenosti t + 20 na periodických datech................................. 74 B.11 Procentuální přesnost určení správného směru trendu do vzdálenosti t + 20 na neperiodických datech................................ 74 B.12 Procentuální přesnost určení správného směru trendu do vzdálenosti t + 20 na náhodných datech.................................. 75 B.13 Procentuální úspěšnosti určení budoucího trendu hladiny CO 2 s doplňujícími údaji, do vzdálenosti t + 20............................. 80 B.14 Průměrné významnosti vstupů na 10 modelech.................. 82 xvi
KAPITOLA 2. ÚVOD 1 1 Motivace Je přirozenou touhou člověka dozvědět se o tom co ho teprve čeká. To se může týkat osudu jeho samotného, či dějů v jeho okolí, což může být například vývoj různých ekonomických ukazatelů či přírodních jevů. Třeba burzovní makléř by měl mít určitou představu o vývoji ceny akcií, stejně jako snad každého z nás někdy zajímá jaké bude v následujících dnech počasí. Jedním z cílů této práce je predikce biologických signálů ve spolupráci s pražskou nemocnicí v Motole, konkrétně pak průběh tlaku uvnitř hlavy pacienta po úrazu. Znalost budoucího vývoje tohoto průběhu je z medicínského hlediska zajímavá při rozhodování zda je vhodné začít s operací pacienta. V momentě kdy tlak uvnitř hlavy dosáhne kritické hodnoty, mozek spustí obranou reakci, která však v tomto případě vede k jeho sebedestrukci. Kdyby se podařilo tuto hodnotu alespoň trochu úspěšně predikovat, mohlo by to v některých případech napomoci při záchraně pacientova zdraví. 2 Úvod Svět kolem nás je plný jevů, jejichž průběh lze popsat časovými řadami, jakožto souborem hodnot uspořádaných v přirozené posloupnosti. Tato statistická data mají základní význam jak pro analýzu příčin, které na tyto jevy působily a ovlivňovaly jejich chování v minulosti, tak pro předvídání jejich budoucího vývoje. Právě předvídáním časových řad se zabývá tato práce, ve které bude tento proces dále označován pojmem predikce. Predikce časové řady tedy určuje budoucí hodnoty této řady na základě hodnot již naměřených. Obecně platí, že čím více těchto naměřených hodnot máme, tím může být větší naděje na určení budoucích hodnot. To však není jediná podmínka úspěchu, schopnost predikce je z velké části závislá na povaze dat. Je zřejmé že predikce jistě bude úspěšná na datech s periodickým průběhem. Nás však zajímá predikce na datech s obecným průběhem, které na první pohled neumožní určit jak se budou dále vyvíjet, ale ve skutečnosti mohou obsahovat skryté závislosti, které predikci umožní. Existuje mnoho metod pro predikci časových řad, počínaje algebraickými metodami, přes fyzikální modely, statistické metody až po metody využívající umělé neuronové sítě, kterými se tato práce zabývá. Metody využívající neuronové sítě se dají dále rozdělit na parametrické, které nad daty vytváří či přizpůsobují modely a nastavují koeficienty (parametry) neuronů tak aby model co nejlépe odpovídal požadovanému chování a neparametrické, což jsou spíše algoritmy, které využívají princip selekce nejlepšího modelu (v konkrétnějším případě se snaží vyhledávat v datech nejpodobnější vzorky, které použijí pro odhad budoucích hodnot). Práce se skládá ze tří hlavních celků. První část této této je teoretická a zabývá a úvodem do analýzy časových řad, dále popisem metod pro hodnocení úspěšnosti predikce a nakonec popisem parametrických a neparametrických metod. Praktická část je stěžejní částí této práce a obsahuje experimenty provedené na vybraných metodách aplikovaných na reálných datech různé povahy, srovnání výsledků těchto metod a zhodnocení použitelnosti pro predikci pomalu se měnících biologických dat. Implementační část obsahuje rozšíření programu GAME o předzpracování časových řad pro predikci pomocí přístupu posuvného okna a vizualizaci výsledků predikce.
2 KAPITOLA 3. TEORETICKÁ ČÁST 3 Teoretická část 3.1 Časové řady, jejich vlastnosti a základní metody analýzy Časová řada [8, 13] je chronologicky uspořádaná posloupnost hodnot určitého statistického ukazatele. Tento ukazatel musí být v čase vymezen věcně a prostorově shodně. Prakticky to znamená, že časová řada je řada čísel, kterou tvoří hodnoty nějaké (např. biologické) veličiny. Tyto hodnoty jsou uspořádány od nejstarších po nejmladší nebo naopak a časová vzdálenost mezi jednotlivými hodnotami je ve většině případů konstantní, což není ovšem podmínkou. Z formálního hlediska je časová řada realizací náhodného procesu. Pojem časová řada je možno z matematického hlediska zapsat jako posloupnost: resp. x 1, x 2,..., x n (3.1) x t, t = 1, 2,..., n (3.2) kde n je počet hodnot časové řady a každý prvek x t odpovídá hodnotou pozorování veličiny v čase t. Jako typický příklad časové řady je možno uvést třeba vývoj kurzu Eura vůči české koruně, viz. tabulka 3.1. Tento příklad je samozřejmě jen ilustrativní. Pokud bychom se chtěli pokusit seriózně predikovat budoucí vývoj kurzu, potřebovali bychom dat řádově více. Navíc tato data neobsahují kurzy měny o víkendu, což by se jinými slovy by se dalo říci, že tato časová řada nemá pevnou délku kroku. Přestože časové řady z povahy posloupnosti obsahují diskrétní hodnoty, pro jejich zobrazení se většinou používají spojnicové grafy, viz. obrázek 3.1. Samozřejmě lze použít i diskrétní zobrazení, ale to nevystihuje tak názorně vývoj hodnot časové řady. Datum Kč/1 EUR 10.10.2007 27.480 11.10.2007 27.470 12.10.2007 27.480 15.10.2007 27.520 16.10.2007 27.525 17.10.2007 27.450 18.10.2007 27.455 19.10.2007 27.240 22.10.2007 27.210 23.10.2007 27.190 24.10.2007 27.185 25.10.2007 27.115 26.10.2007 26.960...... Tabulka 3.1: Příklad časové řady: Vývoj kurzu Eura vůči české koruně Cílem analýzy časové řady je snaha porozumět principům, na jejichž základě byly generovány hodnoty řady. S porozuměním tomuto mechanismu přichází šance, že budeme schopni předpovídat budoucí vývoj řady. Za pomoci neuronových sítí však nutnost podrobněji řadu analyzovat
KAPITOLA 3. TEORETICKÁ ČÁST 3 KŁ / 1 EUR 27.6 27.5 27.4 27.3 kurz Eura 27.2 27.1 27 26.9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 den Obrázek 3.1: Příklad časové řady: Vývoj kurzu Eura vůči české koruně odpadá, zjednodušeně řečeno neuronové sítě dělají tuto práci za nás, postačí když dodáme pouze dostatečné množství vstupních dat. 3.1.1 Druhy časových řad Jak bylo zmíněno výše, časové řady většinou mají konstantní časové vzdálenosti mezi hodnotami (mají pevnou délku kroku), takové řady nazýváme ekvidistantní, nebo mohou mít proměnlivou délkou kroku a takové řady nazýváme neekvidistantní. Při práci s neekvidistantními řadami je situace komplikovanější o to, že musíme provádět korekce hodnot kvůli proměnlivému kroku, ale v praxi se naštěstí většinou setkáváme s řadami ekvidistantními. Další důležité dělení je na řady deterministické a stochastické. Časové řady deterministické jsou generovány podle určitého modelu a lze je vždy stejným způsobem přesně rekonstruovat, neobsahují tedy prvek náhody. Příkladem takové řady může být diskrétní obor hodnot nějaké funkce. Pokud takovou funkci známe, pak není samozřejmě žádný problém dokonale a bez chyby určit budoucí hodnoty této řady. Tomu však neříkáme predikce. Naproti tomu stochastické časové řady v sobě prvek náhody obsahují. Naprostá většina jevů v reálném světě, jejichž průběh lze nějakým způsobem zaznamenat a popsat časovou řadou je stochastických. Podle doby sledovaného je možno časové řady dělit na krátkodobé a dlouhodobé. Příkladem krátkodobé časové řady může být sledování tělesných parametrů u člověka v nemocnici, nebo měsíční produkce v továrně. Zatímco u těchto řad sledujeme zde spíše sezónní vlivy u dlouhodobé časové řady nás zajímá spíše dlouhodobý trend nějaké veličiny, třeba její vývoj za dlouhá léta. Dostatek hodnot pro predikci lze získat u obou druhů, záleží na tom, jak velký je krok mezi zaznamenávanými hodnotami. Ze statistického hlediska může chování časové řady buď podléhat změnám v aritmetickém průměru či variabilitě, pak mluvíme o řadě nestacionární, nebo se může chovat stále stejně a takovou řadu nazýváme stacionární. Jinými slovy to znamená, že hodnoty ze začátku nestacionární časové řady mohou mít jiný průměr než hodnoty na jejím konci, řada tedy vykazuje určitý trend, nebo mohou mít například jiný rozptyl. U takové řady jsme schopni ze zjištěných aritmetických parametrů odlišit jeden úsek řady od druhého. Naproti tomu řada stacionární se chová stále stejně, příkladem může být třeba šum.
4 KAPITOLA 3. TEORETICKÁ ČÁST Podle charakteru měřených hodnot máme řady okamžikové, u kterých se hodnota vztahuje k určitému okamžiku (např. odběr elektřiny v domácnosti v daný okamžik) a intervalové, kde velikost sledované hodnoty závisí na délce intervalu, po který je sledována (např. měsíční náklady na elektřinu této domácnosti). Podle druhu měřených hodnot rozlišujeme časové řady na řady s absolutními ukazateli a s odvozenými ukazateli. První z uvedených obsahuje hodnoty tak jak jsme je v okamžiku měření zaznamenali (např. zmíněná spotřeba elektřiny jedné domácnosti), druhý případ jsou řady nějakým způsobem transformované (např. průměr spotřeby domácností v rámci jednoho města). Pro účely predikce se budeme dále soustředit na časové řady, které jsou ekvidistantní a stochastické, zatímco ostatní parametry mohou být různé. 3.1.2 Dekompozice časových řad Analýza časových řad [7] je velmi důležitou oblastí statistiky. Cílem této analýzy je většinou konstrukce odpovídajícího modelu z důvodu porozumění mechanismu, kterým jsou generovány sledované údaje. Porozumění tomuto modelu umožňuje předpovídat budoucí vývoj systému. Dekompozice časových řad patří mezi základní přístupy k analýze. Cílem dekompozice je rozložit časovou řadu na tři systematické složky a jednu složku nesystematickou, jelikož se předpokládá, že je snažší analyzovat jednotlivé složky odděleně než celou řadu naráz. Jedná se o následující složky: Trendová složka. Trend odpovídá dlouhodobým změnám v chování časové řady. Zachycuje tedy dlouhodobý pokles či růst hodnot a vzniká působením vnějších sil stejným směrem. Lze jej popsat matematickou funkcí, ve které se neberou v úvahu krátkodobé nárůsty či poklesy, zachycuje se pouze pohyb v rámci celé časové řady. Sezónní složka. Sezónní složka je pravidelně opakující se odchylka od trendové složky. Perioda je menší než délka celé řady a přestože se tato složka pravidelně opakuje, může měnit svůj charakter. Cyklická složka. Cyklická složka charakterizuje dlouhodobé kolísání kolem trendu s proměnlivou periodou (která je delší než u sezónní složky) a proměnlivou amplitudou. Protože působí dlouhodobě, bývá složité ji vysledovat a často bývá zahrnuta do trendu. Reziduální složka. Reziduální složka (Jinak také náhodná, zbytková) je narozdíl od třech předchozích nesystematická. Je tvořena náhodnými výkyvy časové řady a můžeme pod ní zařadit všechny vlivy, které na časovou řadu působí a nedokážeme je systematicky popsat. Typickým příkladem mohou být šum či chyby měření. Jednotlivé složky zobrazuje obrázek 3.2. Je zřejmé, že časová řada nemusí obsahovat všechny uvedené složky najednou. 3.1.3 Doplnění chybějících hodnot V případě že v časové řadě některé hodnoty chybí (tak jak tomu bylo v příkladě s vývojem kurzu Eura), bývá občas nutné nutné před zahájením výpočtů chybějící hodnoty doplnit. Je zřejmé, že tyto doplněné hodnoty nejsou plnohodnotné a rovněž mohou snížit kvalitu výsledků, ale u některých metod se bez nich prostě neobejdeme. Dle povahy časové řady a účelu této transformace pro budoucí výpočet existuje několik možností, jak chybějící data doplnit:
KAPITOLA 3. TEORETICKÁ ČÁST 5 Obrázek 3.2: Trendová, sezónní, cyklická a náhodná složka časové řady Náhrada chybějících hodnot nulami. Toto je nejjednodušší způsob a pro predikci se příliš nehodí. Používá se tehdy, když chybějící hodnoty musí být alespoň do počtu a nebo když o řadě nevíme nic bližšího, než že její průměrný člen by měl být nulový. Náhrada chybějících hodnot aritmetickým průměrem či mediánem. Toto je zobecněný případ předchozí transformace a hodí se například pro analýzu stacionárních řad. Lze ještě vylepšit tak, že místo průměru celé řady bereme průměry pouze okolních hodnot, pak lze použít i pro řady nestacionární. Náhrada chybějících hodnot trendem celé časové řady. Hodí se pro nestacionární řady. Náhrada chybějících hodnot lineární aproximací okolních bodů. Tato transformace je vhodná pro predikci, protože nezkresluje chování řady zbytečnými výkyvy a hodí se též pro řady které vykazují setrvačnost. 3.1.4 Interpolace Výsledků analýzy časových řad je možno využít také k nalezení historických hodnot, pro které není k dispozici výsledek měření. Interpolací se rozumí doplňování hodnot doprostřed časových řad, přesněji řečeno nalezení chybějícího údaje závislé veličiny y pro některou hodnotu x uvnitř intervalu známých hodnot. Interpolace tedy není úloha jednoznačná a má smysl jen v jistých mezích přesnosti, která je tím větší, čím hustší a přesnější jsou dané body. Nevíme-li o hledané funkci nic obecnějšího, spojujeme jednoduše dva sousední body úsečkami, čemuž říkáme interpolace lineární. Pro tři známé sousední body můžeme zpřesnění dosáhnout interpolací kvadratickou. Při znalosti více bodů v okolí je možno proložit řadu polynomem, tak aby křivka procházela známými body.
6 KAPITOLA 3. TEORETICKÁ ČÁST 3.1.5 Extrapolace Zatímco u interpolace hledáme hodnoty uvnitř řady, u extrapolace se jedná o nalezení hodnot na koncích té řady, resp. vně intervalu známých hodnot. V tomto případě je nutno být opatrný, neboť matematické prostředky použité pro určení charakteru závislosti nemohou zpravidla zodpovědně odhadnout budoucí nebo minulý vývoj. Extrapolace je v podstatě jednodušším případem predikce. Je zřejmé, že extrapolace je ze matematického hlediska mnohem méně přesnou a složitější metodou než interpolace. 3.1.6 Aproximace Pojmem aproximace označujeme v matematice přibližnou hodnotu čísla, nebo jednu z jeho možných hodnot. Aproximace může také znamenat nahrazení čísla vhodným číslem blízkým. Například Ludolfovo číslo lze za určitých okolností nahradit (aproximovat) hodnotou 22 7. Aproximace čísla π je tedy 22 7. V geometrii se jedná o proložení několika bodů křivkou, přičemž narozdíl od interpolace není nutné, aby tato křivka přesně procházela zadanými body. Ve statistice je často třeba aproximovat naměřená data, zatížená náhodnými chybami měření nebo náhodným šumem funkční závislostí. 3.1.7 Predikce Konstrukce předpovědí (jinak také predikce) je jedním z nejdůležitějších úkolů analýzy časových řad. Výběr příslušné předpovědní techniky, závisí na dané situaci a řadě dalších okolností. Hrají zde roli zejména následující faktory: Horizont předpovědi, což je časová vzdálenost předpovídané hodnoty od okamžiku provádění předpovědi. Požadovaná forma předpovědi. Například bodová předpověď, nebo předpovědní interval, viz. níže. Náklady spojené s konstrukcí předpovědi, tzn. časové i finanční prostředky spojené s vyvinutím metody, či s vlastní předpovědí. Požadovaná přesnost předpovědi Druh dat, která jsou k dispozici. Výchozími daty může být např. pouze jednoduchá časová řada, řada s doplňujícími informacemi (průběh derivace, interferenční proměnné), či několik časových řad, které jsou spolu nějakým způsobem příbuzné. Dostupnost dat, jejich kvalita (např. chybějící údaje), či objem. 3.1.7.1 Bodová předpověď a předpovědní interval Bodová předpověď je hodnota, která představuje odhad hodnoty zkoumané časové řady ve stanoveném budoucím okamžiku. Bodová předpověď je vždy zatížena určitou chybou, takže konkrétní číslo, které poskytuje, je nutné brát s určitou rezervou. Proto je často užitečné počítat s takzvaným předpovědním intervalem, který je analogický intervalu spolehlivosti z matematické statistiky. Někdy se požaduje pouze znalost trendu, tzn. informace o tom zda bude ve stanoveném budoucím okamžiku sledovaná veličina růst, či klesat, bez ohledu na velikost změny. V praktické části této práce se budeme zabývat právě Bodovou předpovědí.
KAPITOLA 3. TEORETICKÁ ČÁST 7 3.1.7.2 Kvalitativní a kvantitativní předpovědní metody Kvalitativní předpovědní metody (též nazývané expertní metody) jsou obvykle založeny na názoru odborníků a mají proto dosti subjektivní charakter. Tyto metody nacházejí uplatnění v případě, když není k dispozici dostatečné množství historických dat, pro předpovědi za pomoci analýzy. To může nastat například při plánování výrobního procesu v továrně při zavádění nových výrobních technologií. Technologické srovnávání je metoda založená na tom, že pro předpovídanou veličinu existuje nějaká primární veličina, která její vývoj úzce ovlivňuje. Tudíž z vývoje primární veličiny lze vývoj neznámé veličiny odhadnout. Přístup této metody taktéž subjektivní v tom, že odpovědnost za vyhodnocení vztahu mezi oběma oblastmi se přenechává expertovi. Kvantitativní metody se snaží předpovídat na základě statistické analýzy naměřených dat. Kvantitativní metody jsou tedy konstruovány na základě objektivních metod, ale na druhou stranu jejich úspěch silně závisí na předpokladu, že se v budoucím vývoji nemění charakter řady (tzn. že zůstává v platnosti model zkonstruovaný na základě předchozích hodnot). 3.1.8 Chyby a metody pro hodnocení kvality predikce Vyšetřování chyb predikce je nezbytný úkol pro zhodnocení kvality použitých metod. Hlavním zdrojem chyby predikce je přítomnost reziduální složky v časové řadě, jelikož tato složka představuje nepředopvěditelné chování řady. Je-li v datech velký podíl této složky, pak je možnost podat přesnou předpověď značně omezena. Na velikosti chyby predikce má ale také vliv, jak úspěšně zvládneme predikci systematických složek řady. Proto velké chyby v předpovědi mohou znamenat buď značný podíl reziduální složky řadě, nebo také použití nevhodné předpovědní techniky. Pokud se použitá technika pro predikci vyrovnala s předpovědí všech systematických složek řady, pak chyby předpovědi odráží pouze vliv reziduální složky, viz. obrázek 3.3 a). Na obrázku 3.3 b) je naopak vidět situace kdy příslušná technika predikce špatně vystihla vývoj trendové složky. Obrázek 3.3: Průběh chyb předpovědi: a) vliv reziduální složky, b) vliv trendové složky Chyba predikce je definována jako: e t = y t ŷ t, (3.3) kde y t je skutečná hodnota a ŷ t je predikovaná hodnota. Velikost chyby se samozřejmě zjistí až tehdy, když poznáme skutečnou hodnotu y t, kterou jsme při konstrukci predikce neznali. Často se však pro posouzení kvality navržené metody predikce konstruují předpovědi známých
8 KAPITOLA 3. TEORETICKÁ ČÁST hodnot časové řady (tzv. testovací množina dat) a provádí se porovnání těchto předpovědí s daty z testovací množiny. Nejčastěji používané míry pro zhodnocení kvality navržené predikce posuzují vývoj předpovědi v čase. Používá se například odmocnina ze střední čtvercové chyby (Root Mean Square Error) RMS = 1 n střední čtvercová chyba (Mean Squared Error) n (y t ŷ t ) 2 = n t=1 t=1 MSE = 1 n n n (y t ŷ t ) 2 = t=1 t=1 součet čtvercových chyb (Sum of Squared Errors) a střední absolutní odchylka (Mean Absolute Deviation) e 2 t n, (3.4) e 2 t n, (3.5) n n SSE = (y t ŷ t ) 2 = e 2 t, (3.6) t=1 t=1 MAD = 1 n n n y t ŷ t = t=1 t=1 e t n, (3.7) kde n ve všech rovnicích znamená počet předpovídaných hodnot. Všechny tyto míry jsou dobře použitelné při porovnávání různých metod predikce na stejných datech. Pro který ukazatel se rozhodneme záleží na tom, které chyby chceme odhalit. Například ukazatel MSE na rozdíl od MAD penalizuje mnohem důrazněji větší chyby předpovědi než chyby malé. Pokud se však dostaneme do situace, kdy potřebujeme porovnat úspěšnost jedné metody predikce na různých datech, pak tyto ukazatele selhávají a to z důvodu že jejich výsledek je závislý na rozsahu oboru hodnot dané časové řady. V tomto případě je vhodné například porovnávat úspěšnost predikce trendu zkoumaných časových řad. 3.2 Predikce časových řad pomocí neuronových sítí Oproti klasické analýze spočívá výhoda neuronových sítí [15] ve schopnosti učit se z naměřených dat a schopnosti objevit skryté nelineární závislosti. Nevýhoda naopak spočívá v tom, že většinou nelze předem odhadnout velikost chyby předpovědi, či stanovit interval spolehlivosti. Obecně je naším úkolem najít optimální model systému. Při jeho hledání se dá postupovat dvěma způsoby: dedukcí - Na počátku vybereme obecný model a ten se pak během učící přizpůsobuje požadovanému chování, což znamená že se nastavením koeficientů vytvoří model systému, který hledáme. Na tomto principu je založena většina neuronových sítí. indukcí - Na počátku máme pouze několik základních stavebních jednotek a až během učící fáze se snažíme vhodný model vytvořit, který nejlépe odpovídá požadovanému chování. Pro většinu typů predikcí se hodí neuronové sítě, které jsou univerzálními aproximátory funkcí, mezi něž patří sítě typu back-propagation, nebo neuronová síť GMDH (Group method of Data Handling) a z ní odvozené sítě, kterými se blíže zabývá další část této práce. Tyto sítě jsou založeny na principu induktivního modelování a lze je dále rozdělit na parametrické sítě a neparametrické sítě.
KAPITOLA 3. TEORETICKÁ ČÁST 9 3.3 Parametrické metody a neuronové sítě Tento typ GMDH sítí se nazývá parametrickým proto, že během učení nastavuje koeficienty (parametry) neuronů. Je dokázáno, že parametrické GMDH algoritmy jsou vysoce účinné v případě modelování objektů s určitými (non-fuzzy) charakteristikami. První verzi algoritmu GMDH, síť MIA (Multilayered Iterative algorithm) [5], je založena na částečné indukci. Poprvé ji navrhl a v roce 1968 zveřejnil ukrajinský vědec A. G. Ivachněnko. Neurony sítě mají ve všech vrstvách stejné polynomy. Tento algoritmus je v praxi nejpoužívanější. Další typ sítě je založen na úplné indukci a kombinatorickém algoritmu COMBI (Combinatorial Algorithm). Podle tohoto algoritmu se během učení mění nejen struktura sítě, ale navíc se vyvíjí polynomy v neuronech v různých vrstvách. Třetí typ sítě je dvojnásobně vrstvený algoritmus TMNN (Twice Multilayered Neural Network), který pokrývá oblast GMDH sítí s vice než jedním výstupem. Obecně totiž GMDH neuronová síť má pouze jeden výstup. V případě, že chceme mít výstupů více, je nutné vytvořit pro každý jednu síť. Jejich učení probíhá nezávisle. Protože se však výstupy mohou vzájemně ovlivňovat, není vhodné nechat tyto výstupy odděleně. Tento problém se snaží vyřešit TMNN síť tím, že v prvním kroku naučí samostatné sítě, v druhém kroku pak označí každou síť za jeden neuron a z nich se pak snaží postavit celou výslednou síť. Poslední typ sítě je založen opět na úplné indukci a vychází ze sítě GMDH MIA. Její název je GAME (Group of Adaptive Models Evolution) a bude blíže popsána v následující podkapitole, jelikož byla vybrána jako zástupce parametrických metod pro predikci a tvoří nástroj pro značnou část experimentů této práce. 3.3.1 GAME - Group of Adaptive Models Evolution Z výše zmíněné verze algoritmu MIA GMDH byla vyvinuta síť ModGMDH s některými vylepšeními (např. heterogenní jednotky, propojení mezi vrstvami atd.). Dalším vývojem vznikla ještě důmyslnější metoda GAME [6, 11]. Tato metoda generuje skupiny samoadaptujících se modelů podle charakteru a komplexnosti zadaných dat. Induktivní model roste z minimální formy během učící fáze do takové velikosti, aby byl schopen vyřešit zadanou úlohu s požadovanou přesností. Konečný model (viz. obrázek 3.4) se skládá z jednotek (neuronů), které nejlépe vystihují vnitřní vztahy v datech. Z obrázku 3.5 je vidět že GAME má více stupňů volnosti než základní metoda MIA GMDH (neurony nemusí být jen polynomy a mohou mít více vstupů, propojení mezi neurony se může realizovat i napříč různými vrstvami). V následujících podkapitolách jsou vylepšení GAME podrobněji rozebrána. V případě vícerozměrných dat je nemožné bez dalších heuristik vyhledat v obrovském stavovém prostoru všech modelů odpovídající topologii. Proto v sobě metoda GAME zahrnuje genetický algoritmus, který napomáhá vyvinout optimální strukturu. Metoda GAME je primárně navržena pro regresní a klasifikační úlohy, použití pro predikci není tak přímočaré. Data na kterých chceme predikci provést musí být patřičným způsobem připravena, například pomocí přístupu časového okna, viz. obrázek 3.6. Tento přístup spočívá v tom, že na vstupy sítě přivedeme více historických hodnot časové řady, vtažených k okamžiku predikce. Síť tak získává přehled o tom co se v datech dělo za zvolený časový úsek minulých hodnot. Jak bylo zmíněno výše, síť má pouze jeden výstup. Pokud tedy chceme předpovídat
10 KAPITOLA 3. TEORETICKÁ ČÁST Obrázek 3.4: Příklad GAME modelu složeného z heterogenních jednotek propojených do dopředné sítě více budoucích hodnot, musíme na takto připravených trénovacích datech vyvinout pro každý výstup jeden model. 3.3.1.1 Heterogenní jednotky Jednotky ze kterých se skládá výsledný model mohou být různých typů, lišících se ve své přenosové funkce. Typy jednotek mohou být lineární, polynomiální, sigmoidní, exponenciální, či například samotná perceptronová síť. Každý typ má svůj vlastní učící algoritmus pro stanovení koeficientů (Back-propagation algoritmus, SADE genetický algoritmus, Gauss-Jordanova metoda atd.). Které typy jednotek budou vybrány při vytváření sítě závisí přirozeně na povaze zkoumaných dat. Hlavní výhoda používání různých typů jednotek v jednom modelu spočívá v tom, že model se automaticky přizpůsobí modelovanému systému. Hybridní modely jsou přesnější než homogenní, dokonce i když homogenní metoda má přenosovou funkci odpovídající modelovanému systému. 3.3.1.2 Rostoucí složitost modelu Jednotky v GAME síti musí mít minimálně jeden vstup a maximální počet vstupů nesmí překročit počet jednotek skryté vrstvy, ke které daná jednotka patří. Počet vstupů do jednotky roste společně s hloubkou jednotky v modelu. Přenosová funkce odráží rostoucí počet vstupů. Vlastnost rostoucího počtu vstupů do jednotek je zásadní pro induktivní sítě, pomáhá překonat problém s dimenzionalitou. V souvislosti s induktivním principem je jednoduché dekomponovat problém na jedno-dimenzionální interpolační problém a kombinovat řešení do dvou a více dimenzí.
KAPITOLA 3. TEORETICKÁ ČÁST 11 Obrázek 3.5: Porovnání originální MIA GMDH sítě a sítě GAME Obrázek 3.6: Přístup časového okna k predikci časových řad 3.3.1.3 Propojení napříč vrstvami Jednotky už nemají pouze vstupy pouze z předchozích vrstev. Vstupy mohou být připojeny na výstup jakékoliv jednotky z předcházející vrstvy. 3.3.1.4 Generování skupiny modelů Metoda GAME generuje na množině učících dat modely s podobnou přesností. Modely jsou stavěny a testovány na náhodných podmnožinách množiny učících dat. Modely mají také podobné typy jednotek a podobnou složitost. Potom je těžké vybrat nejlepší model, protože mnoho modelů má stejnou, či velmi podobnou přesnost na testovaných datech. Proto není vybrán jeden nejlepší model, ale skupina modelů, tzv. ensemble. Tato technika je založena na myšlence, že skupina modelů neuronových sítí je naučena pro řešení stejné úlohy a odezvy jednotlivých modelů se kombinují. 3.3.1.5 Použití genetického algoritmu Jedinec v genetickém algoritmu reprezentuje jednu určitou jednotku v GAME sítí. Vstup do jednotky je zakódován do binárního řetězce chromozómu. Délka chromozómu se rovná počtu vstupních proměnných plus počtu jednotek předcházející vrstvy, na kterou může být daná jednotka připojena. Vhodnost (fitness funkce) jedince je nepřímo úměrná chybě jednotky na
12 KAPITOLA 3. TEORETICKÁ ČÁST testovací množině. Po několika epochách genetického algoritmu, jedinec s nejvyšší hodnotou fitness funkce se stane hlavní složkou populace a je nalezeno nejlepší řešení. 3.3.1.6 Metoda niching Tato metoda [12] je jedním z hlavních vylepšení GAME oproti ModGMDH. Rozšiřuje genetické algoritmy a umožňuje zachování méně přesných jedinců, které však mohou nést zajímavou informaci pro výsledný model. Je založena na principu nalezení většího počtu extrémů. Běží-li totiž klasický genetický algoritmus dostatečně dlouhou dobu, všichni jedinci se budou nakonec nalézat v okolí globálního extrému. Pokud však chceme nalézt větší počet řešení, genetický algoritmus by měl udržovat stabilní populace na okolí několika extrémů. K tomu nám právě dopomůže technika niching, která v populaci zachová i jedince z okolí méně dobrých extrémů pomocí určité normalizace kvality těchto jedinců. V podstatě se populace rozdělí na několik samostatně vyvíjejících se částí s upraveným životním prostředím (proto niching, odvozeno od niche - útočiště) v okolí různých extrémů. Obrázek 3.7: Využití informace genetickými algoritmy (GA) pro výběr jedinců 3.4 Neparametrické metody a neuronové sítě V případě kdy modelování zahrnuje objekty s neurčitými (fuzzy) charakteristikami (např. když je v datech příliš velký rozptyl šumu), je více účinné použít neparametrické GMDH algoritmy, ve kterých jsou polynomiální modely nahrazeny vzorky dat rozdělenými do intervalů či shluků. Zde nelze mluvit o neuronové síti v původním významu, jako spíše o algoritmech, které využívají princip selekce nejlepšího modelu. Objev první neparametrické techniky [16] se datuje ke konci 19. století, kdy Karl Pearson představil techniku zvanou histogram. Sice zdaleka nejde o neuronovou síť, ale tento objev položil základ dalším výzkumům. Z dalších objevů lze jmenovat například Kernel Smoothing, populární neparametrickou metodu pro odhad hustoty, představenou pány M. Rosenblatt 1 a E. Parzen. Rostoucí vývoj a praktické aplikace neparametrických metod přichází společně s rapidním vývojem výpočetní techniky. Mezi představitele GMDH sítí patří například algoritmus pro shlukovou analýzu nazývaný Objective Cluster Analysis (OCA) [1], který umí automaticky a objektivně stanovit množství shluků a vyhledat optimální schéma shlukování. Jinými slovy je jeho účelem automaticky rozdělit data do skupin s podobnými vlastnostmi. Dále se k těmto sítím řadí algoritmus pro hledání fuzzy modelů (FUZZY-GMDH), jinak také nazývaný Fuzzy Rule Induction using GMDH [3]. Je to přístup formování modelů za použití 1 Pozor na záměnu s F. Rosenblattem, vynálezcem perceptronu.
KAPITOLA 3. TEORETICKÁ ČÁST 13 popisujícího jazyka založeného na fuzzy logice s fuzzy predikáty. Je schopný kvalitativně popsat vícenásobný vstupní/výstupní systém prostřednictvím systému fuzzy pravidel. Algoritmus probíhá ve třech krocích: fuzzyfikace, identifikace struktury (generování pravidel) a defuzzyfikace. A konečně mezi neparametrické neuronové GMDH sítě patří také algoritmus Analogues Complexing (AC), což je vícerozměrný vyhledávací nástroj, který vybírá nejpodobnější vzorky z dat v minulosti vztažené k aktuálnímu referenčnímu vzorku. Tento algoritmus byl vybrán za zástupce neparametrických metod pro své přímočaré nasazení pro predikci a dostupnosti vhodné aplikace implementující tento algoritmus. Zabývá se jím praktická část této práce a proto je mu blíže věnována následující podkapitola. Neparametrické metody mohou být rovněž využity při analýze sekvencí DNA. Konkrétně se jedná o EST analýzu (Expressed Sequence Tags), viz. [19]. Ta zkoumá malé kousky sekvencí, ke kterým obvykle neexistují téměř žádné doplňující informace a byly získány pomocí jednodušších metod. Zde se pro predikci, zkoumání a identifikaci dají nasadit Bayesovské neparametrické metody (Bayesian nonparametric methods), viz. [14]. 3.4.1 GMDH Analogues Complexing Metoda Analogues Complexing [17, 6, 4] je určena pro shlukování, klasifikaci a především predikci časových řad, kde nalézá asi největší využití. Je založena na předpokladu, že časový průběh zkoumaného děje se nějakým způsobem opakuje. Jinými slovy to znamená, že k současnému stavu systému existuje v minulosti jeden či více stavů podobných, ze kterých lze usuzovat jak se chování systému bude vyvíjet v budoucnosti. Dalším předpokladem je dostatečný počet vzorků, které vystihují charakteristické stavy a chování systému. Metoda je často nasazovaná na neúplná a zašuměná data s neurčitými vlastnostmi, na kterých mít přesnější výsledky než parametrické metody. Algoritmus této metody se dá shrnout do čtyřech kroků, které budou blíže popsány v následujících podkapitolách. V prvních dvou krocích probíhá učící fáze, kdy se na základě trénovací množiny vytvoří paměť vzorků, ve které každý vzorek obsahuje posloupnost vektorů z trénovací množiny a odkaz na další vývoj posloupnosti. V dalších dvou krocích probíhá vybavovací fáze. V paměti vzorků se vyhledávají nejpodobnější vzorky výchozí posloupnosti vektorů a jejich kombinací se usuzuje na budoucí vývoj posloupnosti. Algoritmus může probíhat iterativně, kdy nově získané hodnoty mohou být použity jako výchozí vektor posloupnosti do další iterace. 3.4.1.1 Generování vzorků Generování vzorků spočívá ve vytvoření všech možných vzorků z trénovací množiny. Protože vstupní data do této metody nemusí mít pouze jeden rozměr, předpokládejme že trénovací množina se skládá z jednotlivých vektorů. Jeden vzorek potom představuje určitý počet vektorů. Tento počet je označován jako velikost okna. Obvykle se nastavuje rozmezí v jakém se velikost okna může při generování vzorků pohybovat. Tento parametr se do značné míry ztotožňuje s velikostí posuvného okna použitého při predikci pomocí parametrických metod. 3.4.1.2 Transformace vzorků Jednotlivé vzorky uložené v paměti slouží k vyhledávání podobných vzorků k výchozí posloupnosti vektorů. Protože ale může dojít k tomu, že vhodné vzorky v paměti mohou být posunuty, či dokonce mít jiné měřítko, je vhodné vzorky v paměti transformovat. Algoritmus potom
14 KAPITOLA 3. TEORETICKÁ ČÁST nehodnotí podobnost vzorků pouze podle absolutní shody, ale také podle podobnosti tvaru průběhu. Obrázek 3.8: GMDH Analogues Complexing: Transformace vzorků 3.4.1.3 Výběr vzorků Jak bylo již zmíněno výše, úkolem tohoto kroku je nalezení takových vzorků v paměti, které se nejvíce podobají referenčnímu vzorku, tedy posloupnosti výchozích vektorů z testovací množiny. Pro rozhodování o tom, které vzorky jsou nejvíce podobné, je nutno použít vhodnou metriku, která tuto podobnost vyjadřuje číselně. Například lze využít hammingovu či euklidovskou vzdálenost pro vyjádření podobnosti dvou vzorků. Algoritmus pro výběr nejpodobnějších vzorků může buď vybírat pevný počet nejpodobnějších vzorků, či stanovit mezní hodnotu metriky. 3.4.1.4 Kombinování vzorků Každý ze vzorků, získaných v předchozím kroku, má svojí vlastní posloupnost vektorů, které po něm následují v trénovací množině. Této posloupnosti se říká výhled, viz. obrázek 3.10. Jednotlivé výhledy je pak potřeba zkombinovat a tím vytvořit výslednou předpověď budoucího vývoje posloupnosti, tedy výhled referenčního vzorku. Způsobů jak kombinovat výhledy je poměrně mnoho. Z jednodušších způsobů lze uvést například použití aritmetického či geometrického průměru. Vylepšením může být zohlednění jednotlivých vzorků podle míry jejich podobnosti.
KAPITOLA 3. TEORETICKÁ ČÁST 15 Obrázek 3.9: GMDH Analogues Complexing: Výběr vzorků Obrázek 3.10: GMDH Analogues Complexing: Výhled vzorků
16 KAPITOLA 3. TEORETICKÁ ČÁST
KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 17 4 Experimentální část 4.1 Návrh experimentů Experimentální část se v první řadě zabývá porovnáním dvou rozdílných přístupů k algoritmu GMDH, konkrétně parametrickou metodou GAME a neparametrickou metodou Analogues Complexing. Porovnání je provedeno na dvou typech dat. Prvním jsou data s opakujícím se charakterem, druhý typ dat je striktně aperiodický. Protože predikce pomocí parametrické metody se ukázala jako přesnější, věnují se další experimenty podrobněji síti GAME. Vztah mezi jednotlivými experimenty znázorňuje obrázek 4.1. Na obrázku jsou také zachyceny náměty na další experimenty, které se v průběhu práce ukázaly jako zajímavé, bohužel však již překračují prostor této práce. Obrázek 4.1: Vztahy mezi jednotlivými experimenty První experiment se týká vlivu optimalizační metody při trénování (a stavění) sítě a měl by odpovědět na otázku, zda použitá optimalizační metoda ovlivní chybu výsledného modelu při predikci. V případě kladné odpovědi by zároveň měly být určeny nejúspěšnější optimalizační metody pro účel predikce. Další dva experimenty se týkají porovnání úspěšnosti predikce na různých typech dat, včetně pokusu o predikci na náhodně vygenerovaných časových řadách, pro ověření validity predikce na reálných datech. První z těchto experimentů se věnuje krátkodobé predikci a to hned následující hodnoty za koncem časového okna (tedy v čase t + 1). Aby bylo možno porovnat úspěšnost predikce na různých datech (s různým měřítkem), nepředpovídá se absolutní hod-
18 KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST nota, ale informace o tom zda je budoucí hodnota menší, či větší, než hodnota v čase t. Další experiment se týká střednědobé predikce, konkrétně v čase t + 20. Zde se místo absolutní hodnoty předpovídá směr trendu časové řady do vzdálenosti predikce. Poslední experiment je již konkrétnější a zabývá se přidáním doplňující informace k časové řadě s biologickým signálem. Měl by odpovědět na otázku, jakou měrou ovlivní přidaná informace, související s časovou řadou, schopnost predikce. Vychází se přitom z předchozího experimentu se střednědobou predikcí, aby bylo možno porovnat výsledky. Předpoklad je samozřejmě takový že doplňující informace schopnost predikce zvýší. Jak bylo uvedeno výše, v průběhu provádění experimentů se objevily náměty na další otázky. Tyto náměty budou přiblíženy v závěru jako návrhy na další práci. 4.2 Popis použitých datových vzorků V této podkapitole budou blíže představeny použité datové vzorky v experimentální části. Data jsou vždy rozdělena na trénovací a testovací množinu a grafy s průběhy příslušných časových řad lze nalézt v příloze. Data z testovací množiny vždy přesně navazují na konec časové řady v datech z trénovací množiny. Bližší popis nastavení trénovací a testovací množiny se nachází vždy až u příslušného experimentu. Periodická data 1 - Za prvé se jedná o časovou řadu zaznamenávající spotřebu vody mandarinkového stromu. Chování řady má opakující se charakter díky vyšší spotřebě vody přes den. Kromě dne a noci má však na spotřebu vody vliv mimo jiné například počasí v daný den, takže objem spotřeby se může každý den lišit. Data jsou poskytnuta zahradnickým výzkumným ústavem na Novém Zélandu. Za druhé jde o průběh koncentrace kyslíku v krvi u spícího člověka. Tyto data pocházejí z laboratoře v Beth Israel Hospital, Boston, Massachusetts. Aperiodická data - Tento typ dat je striktně aperiodický, ne však čistě náhodný. Jedná se o dva vzorky dat snímaných u pacientů v nemocnici po úrazu hlavy, konkrétně vývoj hladiny kysličníku uhličitého. Původní záměr byl zkoumat vývoj pacientova vnitrolebečního tlaku, což by mohlo mít v případě úspěšné predikce i jistý klinický význam, data však v současné době stále nejsou k dispozici, z důvodu technických komplikací digitálního záznamu těchto dat. Náhodná data - Jedná se o data, generovaná pseudonáhodně s jistými zákonitostmi na základě dvou zadaných parametrů. Nejedná se tedy pouze o bílý šum. První parametr určuje maximální počet přírůstků, resp. úbytků v jednom směru. Počet je při každé změně směru rovněž generován náhodně, ale je parametrem shora omezen. Druhý parametr určuje maximální velikost každého přírůstku, resp. úbytku. I tato velikost je v každém kroku generována náhodně, ale shora omezeně. Algoritmus je znám také jako Random walk, jeho implementaci přikládám v příloze. 1 pro upřesnění: v pravém významu slova je periodicita přesně matematicky definována. Zkoumaná data sice této definici neodpovídají (jinak by totiž šlo o deterministickou časovou řadu a nejednalo by se pak o predikci), ale jelikož mají pravidelně se opakující charakter, dovolil jsem si toto označení použít
KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 19 4.3 Srovnání neparametrické a parametrické metody predikce Jako zástupce neparametrických metod byl vybrán algoritmus Analogues Complexing díky jeho přímočarému nasazení na predikci časových řad. Existují dvě známé implementace tohoto algoritmu. Prvním je software KnowledgeMiner [2], který je však napsaný pro platformu Macintosh. Dá se pomocí emulátoru spustit i pod jinými platformami, ale existuje ještě druhá možnost v podobě implementace Analogues Complexing [17] od Radka Pince, jakožto výsledek jeho diplomová práce. Výhoda této aplikace je, že běží na webovém serveru, takže je použitelná na všech platformách přes okno webového prohlížeče. Další její výhodou je příjemné a intuitivní ovládání. Obě výhody rozhodly o použití právě této aplikace. Z parametrických metod byl vybrán algoritmus GAME, protože je vyvíjen na katedře počítačů a pro porovnání s dalšími parametrickými metodami již není v práci prostor. Pro prováděný experiment je použito open source prostředí FAKE GAME podporující automatizované vytváření GAME modelů. Tento software je výsledkem disertační práce [10] Pavla Kordíka. 4.3.1 Nastavení experimentu Tento experiment je navržen tak, aby odpověděl na otázku jestli je metoda Analogues Complexing schopna dát přesnější výsledky predikce než metoda GAME. Jak bylo uvedeno výše, experiment je proveden na dvou zcela odlišných typech dat. Nejdříve si blíže popíšeme podobu trénovací a testovací množiny obou vzorků. Trénovací množina periodických dat (obrázek A.1) obsahuje 500 hodnot a časový rozestup mezi jednotlivými hodnotami je půl hodiny. To znamená že v trénovací množině je zaznamenána spotřeba vody přibližně za 10 dní. Testovací množina (obrázek A.2) přímo navazuje na trénovací data a obsahuje 120 hodnot. Pro přehlednost stojí za zmínku, že graf zobrazující testovací data má na vodorovné ose jiné měřítko než graf s daty trénovacími. Trénovací množina aperiodických dat (obrázek A.7) obsahuje 900 hodnot a časový rozestup mezi hodnotami je 2 minuty, což znamená, že trénovací množina obsahuje sledování vývoje CO 2 po dobu 30 hodin. Testovací množina (obrázek A.8) obsahuje 100 hodnot a rovněž přímo navazuje na trénovací data. Ze zobrazení to nemusí být na první pohled patrné, jelikož z důvodu lepší představu o testovacích datech bylo upraveno i měřítko svislé osy. Oba popisované vzorky dat budou použity ve stejné podobě u obou porovnávaných metod. Jediný rozdíl spočívá ve zpracování vstupního souboru dat pro vstup do metod. Zatímco jako vstup pro Analogues Complexing je brána přímo časová řada, jako jeden sloupec hodnot v souboru, pro metodu GAME je nutné data předzpracovat k použití v posuvném časovém okně. K tomu slouží aplikace, která je součástí této práce. Při předzpracování dat pro GAME byla zvolena velikost časového okna 30 hodnot, z důvodu aby v okně vždy byla přítomna změna v periodě v podobě sestupné, resp. vzestupné hrany. Ve skutečnosti však není použito všech 30 hodnot jako vstupy do modelu, ale bere se každá druhá hodnota. Tímto zmenšením počtu vstupů je dosaženo snížení výpočetní náročnosti při zachování informace o tvaru průběhu v okně, které má stále velikost 30-ti hodnot do minulosti. Predikce byla provedena do vzdálenosti 20-ti budoucích hodnot, přičemž je opět predikována každá druhá hodnota. Zde je časová úspora ještě důležitější, neboť každá predikovaná budoucí hodnota představuje vytvoření jednoho GAME modelu. Při trénování výsledných modelů bylo nastaveno použití lineárních a polynomiálních jednotek a perceptronových sítí. Jako metoda tré-
20 KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST nování byla zvolena Quasi Newton Method. Toto nastavení bylo použito pro oba datové vzorky. Nastavení predikce Analogues Complexing je založeno na použití historického průběhu do vzdálenosti 15 až 30 hodnot (u této metody se nastavuje rozsah hodnot). Toto nastavení by mělo odpovídat použití informace z minulosti jako u časového okna metody GAME. Metoda Analogues Complexing automaticky předpovídá průběh řady až do konce testovací množiny (je tedy vhodná i pro dlouhodobější predikci). Pro účely porovnání však stačí 20 budoucích hodnot. V nastavení metody se dá určit zda se jako referenční hodnoty pro každý další krok budou brát data z původní testovací množiny a nebo již nové, predikované hodnoty. Pro naše účely tedy samozřejmě volíme jako výchozí hodnoty ty nově predikované, jinak by se jednalo vždy pouze o predikci jedné budoucí hodnoty. Dalších nastavení metody bylo stanoveno experimentálně, aby byl výstup z metody co nejlepší a se liší podle předpovídaného vzorku dat. U periodických dat bylo nastaveno použití volby Bez transformací, Hammingova vzdálenost jako použitá metrika, výběr 5-ti nejlepších vzorků včetně odstraňování duplicit, Dolní výhled 1, Horní výhled 5, Vážený průměr podle pořadí jako volbu kombinování predikce a Predikční krok 1. Nastavení metody pro predikci aperiodických dat se liší výběrem parametru transformace Normalizace vzorků, zvolenou metrikou Euklidovská vzdálenost a výběrem 10-ti nejlepších vzorků. Je jasné, že nelze dělat závěry z jednoho měření, proto bylo provedeno celkem 20 predikcí s různým počátečním okamžikem prostřednictvím obou metod. Porovnání těchto výsledků bylo provedeno na základě odmocniny ze střední čtvercové chyby, viz. rovnice 3.4. 4.3.2 Výsledky neparametrické metody Z nastavení metody plyne, že je potřeba z testovacích dat vyhradit prvních 30 hodnot jako referenčních a první okamžik provádění předpovědi tedy bude v čase t = 30. V tento okamžik začne algoritmus vyhledávat v paměti vzorků nejpodobnější průběhy časové řady referenčnímu vzorku. Na základě vybraných historických vzorků stanoví následující budoucí hodnotu a posune referenční vzorek (okno) tak že v příštím kroku zohlední i novou hodnotu jako referenční. Takto pokračuje až do konce testovací množiny a zhotoví tak celou predikci k výchozímu okamžiku provádění předpovědi. Nás však bude zajímat pouze predikce do vzdálenosti 20 hodnot. Tabulky 4.1 a 4.2 zobrazují podrobně výpočet přesnosti predikce prováděné v okamžiku t = 30 pro oba vzorky dat, obrázky 4.2 a 4.3 zobrazují celý výstup z aplikace Analogues Complexing. V obrázcích je vidět predikce na celé testovací množině, zatímco v tabulkách jsou zaznamenány pouze hodnoty, které nás zajímají pro porovnání s parametrickou metodou. Souhrnné výsledky ze všech 20-ti okamžiků predikce metodou Analogues Complexing na obou vzorcích dat zobrazují tabulky B.1 a B.2 v příloze.
KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 21 Periodická data Vzdálenost Skutečná Predikovaná predikce (t) hodnota (y t ) hodnota (ŷ t ) (y t ŷ t ) 2 31 0.100500 0.088700 0.000139 33 0.049000 0.094656 0.002084 35 0.067000 0.082180 0.000230 37 0.088000 0.066313 0.000470 39 0.074000 0.077407 0.000012 41 0.074500 0.083387 0.000079 43 0.072500 0.074640 0.000005 45 0.062500 0.089340 0.000720 47 0.138000 0.087113 0.002589 49 0.116000 0.099693 0.000266 RMS error = 0.025682 Tabulka 4.1: Analogues Complexing: Výpočet přesnosti predikce na periodických datech (mandarinky) prováděné v okamžiku t = 30 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 Rozmezi Predikce Vychozi Skutecnost 0 0 10 20 30 40 50 60 70 80 90 100 110 120 130 Obrázek 4.2: Výstup z metody Analogues Complexing: predikce na periodických datech prováděná v okamžiku t = 30 6.8 6.75 Rozmezi Predikce Vychozi Skutecnost 6.7 6.65 6.6 6.55 0 10 20 30 40 50 60 70 80 90 100 110 Obrázek 4.3: Výstup z metody Analogues Complexing: predikce na neperiodických datech prováděná v okamžiku t = 30
22 KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST Aperiodická data Vzdálenost Skutečná Predikovaná predikce (t) hodnota (y t ) hodnota (ŷ t ) (y t ŷ t ) 2 31 6.570000 6.572412 0.000006 33 6.670000 6.577136 0.008624 35 6.630000 6.579599 0.002540 37 6.670000 6.575049 0.009016 39 6.660000 6.577511 0.006804 41 6.660000 6.581311 0.006192 43 6.680000 6.583325 0.009346 45 6.670000 6.582753 0.007612 47 6.660000 6.584594 0.005686 49 6.730000 6.589713 0.019680 RMS error = 0.086894 Tabulka 4.2: Analogues Complexing: Výpočet přesnosti predikce prováděné v okamžiku t = 30 na neperiodických datech (CO 2 )
KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 23 4.3.3 Výsledky parametrické metody Stejně jako u neparametrické metody je potřeba vyhradit přibližně 30 počátečních hodnot z testovací množiny pro referenční vzorek vstupující do posuvného časového okna. Zde je však výstup metody trochu jiný. Jelikož v síti GAME připadá právě jedna budoucí hodnota na jeden model, nedostaneme predikci do konce testovací množiny ale pouze jednorázově všechny budoucí hodnoty, pro které máme vytvořené modely. Tabulky 4.3 a 4.4 opět zobrazují výpočty přesnosti predikce v okamžiku t = 30 pro oba vzorky dat a obrázky 4.4 a 4.5 znázorňují narozdíl od předchozí metody pouze predikované hodnoty z tabulek. Souhrnné výsledky ze všech 20-ti okamžiků predikce metodou GAME na obou vzorcích dat zobrazují tabulky B.3 a B.4 v příloze. Periodická data Vzdálenost Skutečná Predikovaná predikce (t) hodnota (y t ) hodnota (ŷ t ) (y t ŷ t ) 2 31 0.100500 0.085186 0.000235 33 0.049000 0.068058 0.000363 35 0.067000 0.100033 0.001091 37 0.088000 0.110852 0.000522 39 0.074000 0.091311 0.000300 41 0.074500 0.060248 0.000203 43 0.072500 0.094239 0.000473 45 0.062500 0.091378 0.000834 47 0.138000 0.221281 0.006936 49 0.116000 0.157848 0.001751 RMS error = 0.035647 Tabulka 4.3: GAME: Výpočet přesnosti predikce na periodických datech (spotřeba vody mandarinkovníku) prováděné v okamžiku t = 30 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 Predikce Vychozi data Realna data 0 0 10 20 30 40 50 60 70 80 90 100 110 120 Obrázek 4.4: GAME: predikce na periodických datech prováděná v okamžiku t = 30
24 KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST Aperiodická data Vzdálenost Skutečná Predikovaná predikce (t) hodnota (y t ) hodnota (ŷ t ) (y t ŷ t ) 2 31 6.570000 6.576261 0.000039 33 6.670000 6.634246 0.001278 35 6.630000 6.636372 0.000041 37 6.670000 6.655722 0.000204 39 6.660000 6.652575 0.000055 41 6.660000 6.671002 0.000121 43 6.680000 6.670103 0.000098 45 6.670000 6.674665 0.000022 47 6.660000 6.675592 0.000243 49 6.730000 6.690916 0.001528 RMS error = 0.019049 Tabulka 4.4: GAME: Výpočet přesnosti predikce prováděné v okamžiku t = 30 na neperiodických datech (CO 2 ) 6.8 6.75 Predikce Vychozi data Realna data 6.7 6.65 6.6 6.55 0 10 20 30 40 50 60 70 80 90 100 Obrázek 4.5: GAME: predikce na neperiodických datech prováděná v okamžiku t = 30
KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 25 4.3.4 Vyhodnocení experimentu Tabulka 4.5 ukazuje průměrné chyby predikce prostřednictvím metod Analogues Complexing na obou vzorcích dat. Jde o souhrn predikce 10-ti budoucích hodnot ve 20-ti různých okamžicích predikce na testovacích množinách zkoumaných dat. Obrázek 4.6 přehledně zobrazuje stejné výsledky včetně rozptylů chyb. RMS error Periodická data Aperiodická data GMDH AC 0.158162 0.070403 GAME 0.073994 0.038623 Tabulka 4.5: Porovnání RMS chyby predikce prostřednictvím metod GAME a Analogues Complexing Obrázek 4.6: RMS error s box plot: predikce prostřednictvím GAME a Analogues Complexing (AC) ve dvaceti různých okamžicích predikce Rozdíly v přesnosti predikce jsou patrné, metoda GAME dosáhla v tomto experimentu přibližně dvakrát větší přesnosti než metoda Analogues Complexing. Velká RMS chyba u AC je pravděpodobně částečně způsobena posunem predikovaných od reálných hodnot ve směru časové osy (viz. obrázek 4.2). Podle obrázku 4.6 ze zdá že predikce neperiodických dat je výrazně úspěšnější (pozor na rozdílné měřítko svislé osy!), ale ve skutečnosti tyto dva výsledky nelze porovnávat, protože každý z obou vzorků dat má jiný charakter a hlavně jiný rozsah hodnot časové řady. Další oblast zájmu se dotýká vztahu mezi časovým horizontem (vzdáleností) predikce a její
26 KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST chyby. Obrázek 4.7 ukazuje, že u metody Analogues Complexing chyba přirozeně roste se vzdáleností predikce, stejně tak jako rozptyl chyby, což se dalo předpokládat. O dost překvapivější je však vývoj chyby u metody GAME. S rostoucí vzdáleností predikce zůstává chyba přibližně na stejné úrovni a velikost rozptylu dokonce klesá. Toto se projevilo především u neperiodických dat, což je druhý úkaz, který stojí za pozornost. Kolísání rozptylu a chyby u predikce periodických dat může také souviset s velikostí periody. Na základě těchto úkazů by bylo vhodné navrhnout další experimenty týkající se vztahu chyby ke vzdálenosti predikce. Brain injury data set (aperiodic) Mandarin data set (periodic) RMS error 0.012 0.01 0.008 0.006 GAME RMS error 0.3 0.25 0.2 0.15 GAME 0.004 0.1 0.002 0.05 0 Prediction t + 1 2 3 4 5 6 7 8 9 10 0 Prediction t + 1 2 3 4 5 6 7 8 9 10 RMS error 0.05 0.04 0.03 0.02 0.01 AC 0 0 Prediction t + 1 2 3 4 5 6 7 8 9 10 Prediction t + 1 2 3 4 5 6 7 8 9 10 RMS error 0.35 0.3 0.25 0.2 0.15 0.1 0.05 AC Obrázek 4.7: Vztah průměrné a maximální chyby k různé vzdálenosti predikce Z výsledků tohoto experimentu vychází lépe parametrická metoda GAME s přibližně dvakrát větší přesností predikce na obou typech dat než neparametrická metoda Analogues Complexing. Nevýhoda metody GAME však spočívá v nutnosti předzpracování dat pro predikci. Tento problém u metody Analogues Complexing odpadá a navíc je metoda přirozeně schopna predikovat libovolně dlouhý časový úsek dopředu, zatímco u GAME je pro každou budoucí hodnotu potřeba vytvořit jeden samostatný model. Pokud by tedy šlo pouze o přibližný vývoj průběhu časové řady, je vhodnější nasadit testovanou neparametrickou metodu. Pokud však jde o přesnější určení budoucí hodnoty ve stanovený okamžik, vyplatí se použít parametrickou metodu. Další experimenty budou zaměřeny na průzkum a možnosti zpřesnění predikce časových řad prostřednictvím neuronové sítě GAME.
KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 27 4.4 Zkoumání vlivu optimalizační metody na chybu predikce K vybudování úspěšných modelů je nezbytné nastavit odpovídajícím způsobem jejich parametry. Účelem optimalizace při trénování GAME modelu je minimalizace chyby sítě (většinou měřená jako RMS) s cílem nalezení globálního minima. Použité optimalizační metody tedy mají vliv na podobu výsledného modelu. Algoritmus GAME využívá optimalizačních (trénovacích) metod k nastavení vah a koeficientů jednotek. Optimalizační metody použité v implementaci se dělí do dvou základních skupin: Gradientní metody, což jsou matematické metody, využívající hodnoty gradientu k určení vektoru největšího spádu a Evoluční metody, což jsou výpočetní techniky inspirované evolucí v přírodě, používané především k prohledávání určitého stavového prostoru. Všechny optimalizační metody použité v implementaci GAME jsou uvedeny v tabulce 4.6 [11]. V tabulce je také označení metod, kterým budou dále v tomto experimentu reprezentovány. Bližší popis metod lze nalézt například v diplomové práci Algoritmy pro optimalizaci sítí GAME [9]. Optimalizační metoda Zkratka Druh Quasi-Newton method QN Gradientní SADE genetic method SADE Evoluční Particle Swarm Optimization PSO Hejna Hybrid of GA and PSO HGAPSO Hybridní PAL: Differential Evolution (version 1) PALDE Evoluční Differential Evolution (version 2) DE Evoluční Stochastic Orthogonal Search SOS Náhodný Orthogonal Search OS Gradientní PAL: Conjugate Gradient PALCG Gradientní Adaptive Ant Colony Algorithm AACA Evoluční Ant Colony Optimization ACO Hejna API (podle Pachycondyla apicalis) API Hejna Continuous Ant Colony Optimization CACO Hejna Direct Ant Colony Algorithm DACO Hejna Random Search Algorithm RSA Náhodný Tabulka 4.6: Přehled optimalizačních metod použitých v GAME Výběr správné optimalizační metody pro daný problém není jednoduchý úkol. Neexistuje totiž univerzální metoda pro všechny možné optimalizační úkoly. Výběr závisí ve velké míře na charakteru dat a také povaze řešeného úkolu (v tomto případě predikce). V tomto experimentu se tedy pokusím zjistit jaký má výběr trénovací metody vliv na chybu predikce výsledného modelu a nalézt optimální trénovací metodu pro predikci časových řad, opět na datech s periodickým i neperiodickým charakterem. 4.4.1 Nastavení experimentu Experiment by měl odpovědět na otázku, jakou měrou ovlivní výběr trénovací metody přesnost predikce výsledného modelu a nalézt nejlepší metodu pro data s periodickým a neperiodickým průběhem. Pro trénovací množinu je u obou datových vzorků použito shodně 1500 hodnot, pro testovací množinu 500 hodnot. Data v testovací množině opět přímo navazují na trénovací data. V peri-
28 KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST odických datech představujících spotřebu vody mandarinkovníku je opět půlhodinový rozestup mezi hodnotami, což znamená, že trénovací množina reprezentuje přibližně 31 denní záznam a testovací množina záznam 10 dní. Neperiodická data představující průběh CO 2 v mozku mají v tomto datovém vzorku rozestup minutu a půl. Záznam trénovací množiny je tedy dlouhý 37.5 hodiny a záznam trénovací množiny trvá 12.5 hodiny. Průběhy obou vzorků znázorňují grafy A.3, A.4, A.9 a A.10. Nastavení časového okna pro předzpracování dat bylo zvoleno jako 10 historických hodnot s rozestupem 2. Předpověď je bodová a představuje odhad hodnoty ve dvou budoucích okamžicích, a to +5 hodnot a +10 hodnot. Vztaženo přímo na zkoumaná data to znamená, že historická informace obsažená v okně v případě periodických dat je záznam z 10 hodin (2 10 0.5) a předpovídat se budou dvě hodnoty ve vzdálenosti 2.5 hodiny a 5 hodin. V případě neperiodických dat se jedná o informaci obsahující 30 minut záznamu (2 10 1.5) a předpovídat se budou hodnoty vzdálené 7.5 minut a 15 minut. V simulátoru GAME je pro výstavbu modelů povoleno použití jednotek perceptronové sítě a neurony ze skupiny Other (Exponential, Sigmoid, Sine, Gaussian, MultiGaussian, Gaussian PDF, Gauss a Rational). Samotný experiment pak představuje vystavění jednotlivých modelů za použití každé trénovací metody. Jelikož je však nutno vzít v úvahu značný vliv pseudonáhodného faktoru při trénování sítě je potřeba vystavět více modelů pro každou trénovací metodu. Bylo tedy provedeno 5 nezávislých trénování sítí pro každý vzorek dat i obě vzdálenosti predikce, což ve výsledku představuje 10 modelů pro každou trénovací metodu na obou vzorcích dat. Chyby predikce pomocí těchto modelů budou zprůměrovány. 4.4.2 Výsledky experimentu Tabulka 4.7 průměrné chyby predikce pěti modelů pro každou optimalizační metodu, oba vzorky dat a dvě různé vzdálenosti predikce. Kompletní výsledky tohoto experimentu jsou přehledně zobrazeny v tabulkách v příloze. Tabulky B.5 a B.6 obsahují RMS chyby predikce periodických dat pěti modelů pro každou trénovací metodu při dvou různých vzdálenostech budoucí hodnoty. Tabulky B.7 a B.8 obsahují RMS chyby predikce neperiodických dat. 4.4.3 Vyhodnocení experimentu Ze všech modelů na periodických i neperiodických datech byla pro každou optimalizační metodu stanovena průměrná RMS chyba. Jedná se o průměrnou hodnotu 10 chyb na každý model. V tabulkách 4.8, resp. 4.9 jsou seřazené tyto chyby od nejmenší po největší pro periodická, resp. neperiodická data. Ještě přehledněji tyto výsledky zobrazují grafy 4.8 a 4.9. Výsledné rozdíly chyb predikce modelů natrénovaných pomocí různých optimalizačních metod jsou sice poměrně malé, ale přesto o něčem vypovídají. V obou případech se na přední místa dostaly metody Quasi-Newton method a PAL: Differential Evolution (version 1), což pravděpodobně není pouze dílem náhody. Další metody na předních pozicích, které si jistě také zaslouží pozornost jsou SADE genetic method, která vynikla hlavně na periodických datech a Direct Ant Colony Algorithm, která naopak měla lepší výsledky na datech neperiodic-
KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 29 Optimalizační Periodická data Aperiodická data metoda t + 5 t + 10 t + 5 t + 10 QN 0.1646 0.1822 0.0598 0.0865 SADE 0.1613 0.1835 0.0595 0.0896 PSO 0.1629 0.1893 0.0608 0.0883 HGAPSO 0.1608 0.1878 0.0614 0.0872 PALDE 0.1637 0.1820 0.0572 0.0907 DE 0.1627 0.1843 0.0617 0.0873 SOS 0.1631 0.1850 0.0601 0.0884 OS 0.1648 0.1900 0.0629 0.0901 PALCG 0.1680 0.1859 0.0609 0.0928 AACA 0.1642 0.1848 0.0620 0.0865 ACO 0.1656 0.1897 0.0604 0.0883 API 0.1643 0.1855 0.0603 0.0879 CACO 0.1635 0.1837 0.0589 0.0909 DACO 0.1677 0.1836 0.0597 0.0877 RSA 0.1703 0.1877 0.0615 0.0889 Tabulka 4.7: Průměrná RMS chyba predikce do vzdálenosti 5 a 10 hodnot na modelech trénovaných pomocí různých optimalizačních metod Pořadí Opt. RMS Pořadí Opt. RMS Pořadí Opt. RMS metoda Error metoda Error metoda Error 1 SADE 0.1724 6 SOS 0.1740 11 PSO 0.1761 2 PALDE 0.1728 7 HGAPSO 0.1743 12 PALCG 0.1769 3 QN 0.1734 8 AACA 0.1745 13 OS 0.1774 4 DE 0.1735 9 API 0.1749 14 ACO 0.1776 5 CACO 0.1736 10 DACO 0.1757 15 RSA 0.1790 Tabulka 4.8: Vzestupně seřazené průměrné RMS chyby jednotlivých modelů na periodických datech kých. Jelikož v GAME lze vybrat pro trénování jednoho modelu i více optimalizačních metod najednou, je pravděpodobné že zvolením těchto 4 metod se přesnost výsledného modelu ještě zlepší. Naopak s největší chybou predikce skončily metody Random Search Algorithm (což se dalo předpokládat), Orthogonal Search a PAL: Conjugate Gradient. Tyto optimalizační metody vykázaly nejhorší výsledky na obou vzorcích dat. Jak bylo zmíněno výše, rozdíl chyb predikce pomocí jednotlivých metod není příliš velký, ale je také nutno připomenout, že velikost RMS chyby je závislá na rozsahu oboru hodnot zkoumané časové řady. Proto na datech s jiným měřítkem by se rozdíly chyb mohly pohybovat v řádově jiných hodnotách. Z výsledků tohoto experimentu tedy vyplývá, že volbou vhodné optimalizační metody pro trénování GAME sítě pro predikci časových řad se vyplatí zabývat.
30 KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 0.18 0.179 0.178 0.177 RMS error 0.176 0.175 0.174 0.173 0.172 0.171 0.17 SADE PALDE QN DE CACO SOS HGAPSO AACA API DACO PSO PALCG OS ACO RSA Obrázek 4.8: Vzestupně seřazené průměrné RMS chyby jednotlivých modelů na periodických datech Pořadí Opt. RMS Pořadí Opt. RMS Pořadí Opt. RMS metoda Error metoda Error metoda Error 1 QN 0.0732 6 AACA 0.0742 11 PSO 0.0746 2 DACO 0.0737 7 HGAPSO 0.0743 12 CACO 0.0749 3 PALDE 0.0739 8 ACO 0.0744 13 RSA 0.0752 4 API 0.0741 9 DE 0.0745 14 OS 0.0765 5 SOS 0.0742 10 SADE 0.0746 15 PALCG 0.0769 Tabulka 4.9: Vzestupně seřazené průměrné RMS chyby jednotlivých modelů na neperiodických datech 0.0775 0.077 0.0765 0.076 RMS error 0.0755 0.075 0.0745 0.074 0.0735 0.073 0.0725 QN DACO PALDE API SOS AACA HGAPSO ACO DE SADE PSO CACO RSA OS PALCG Obrázek 4.9: Vzestupně seřazené průměrné RMS chyby jednotlivých modelů na neperiodických datech
KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 31 4.5 Porovnání úspěšnosti krátkodobé predikce na různých typech dat V tomto experimentu se pokusím dokázat schopnost krátkodobé predikce příští hodnoty pomocí neuronové sítě GAME ve spojení s předzpracováním časových řad přístupem časového okna. Experiment je založen na porovnání úspěšnosti predikce několika různých vzorků proti náhodně vygenerované časové řadě. Aby toto bylo možno provést, je nutno zvolit nějaký způsob porovnání úspěšnosti. Každá data mají totiž jiné měřítko a tudíž nelze jednoduše porovnat RMS chybu predikce. Je sice možno data transformovat například do intervalu (0,1), ale zvolil jsem trochu jiný přístup. Hodnotit se bude úspěšnost trefy do správného směru. To znamená, že se bude predikovat zda je budoucí hodnota vyšší, či nižší než hodnota v okamžiku predikce. Detailní popis této transformace dat je v následující sekci. 4.5.1 Nastavení experimentu Předpoklad experimentu je takový, že úspěšnost trefy do správného směru příští hodnoty bude u reálných dat (u kterých se předpokládají nějaké skryté závislosti) vyšší než u náhodně vygenerovaných dat. Experiment se tedy snaží dokázat, že metoda predikce je schopna odhalit skryté závislosti u reálných dat, což by se u náhodných dat povést nemělo. Za účelem porovnání úspěšnosti predikce na různých datech bylo nutno data určitým způsobem transformovat. Nepředpovídá se zde přímo hodnotu v určitém bodě budoucího vývoje, ale pouze informace o tom zda je tato hodnota vyšší nebo nižší než hodnota v okamžiku předpovědi. Tuto informaci je třeba nějak číselně zakódovat, například tak, že vyšší hodnotu bude představovat číslo 1 a nižší hodnotu číslo -1. V případě rovnosti se bude na výstup generovat 0. V podstatě tedy predikce převádíme na klasifikační úlohu se třemi kategoriemi. S touto modifikací výstupu lze potom pracovat stejně jako při predikci skutečných dat a srovnávat výsledky opět pomocí RMS chyby. Rozsah oboru hodnot časové řady přitom zůstane zachován, ale již nebude mít na porovnávané výsledky vliv. Příklad této transformace je v tabulce 4.10. První sloupec obsahuje hodnoty řady (definované jako zobrazení f) v okamžiku predikce, druhý sloupec obsahuje hodnoty této řady v okamžiku posunutém o 10 časových jednotek do budoucnosti a třetí sloupec hodnoty generované výše popsanou transformací, pro účel tohoto příkladu nazvané jako zobrazení g. f(t) f(t + 1) g(f(t), f(t + 1)) 27.480 28.110 1 27.480 27.480 0 27.480 26.520-1 Tabulka 4.10: Transformace dat za účelem porovnání výsledků krátkodobé predikce na různých datech Datové vzorky použité v experimentu jsou rozšířeny zaprvé o další periodické i aperiodické průběhy a za druhé o náhodně vygenerovaná data. Data zaznamenávající spotřebu vody mandarinkovníku i data s průběhem CO 2 jsou zde použity ve stejné podobě jako v předcházejícím experimentu. Z dalších vzorků představuje jeden pseudo periodický průběh koncentrace kyslíku v krvi u spícího člověka (viz. grafy na obrázcích A.5 a A.6), s rozestupem půl sekundy mezi hodnotami. Druhý vzorek je neperiodický a jedná se opět o záznam CO 2, tentokrát však u jiného pacienta a rozestup mezi hodnotami je půl
32 KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST minuty. Průběh trénovací a testovací množiny těchto dat zobrazují grafy A.11 a A.12. Pro ověření předpokladu jsou použity dva náhodně vygenerované vzorky pomocí skriptu, který uvádím v příloze společně s průběhy těchto vzorků. Pro zajištění stejných podmínek pro predikci, mají všechny vzorky shodný počet hodnot, 1500 hodnot pro trénovací množinu a 500 hodnot pro množinu testovací. Průběhy testovacích a trénovacích množin obou vzorků znázorňují grafy A.13 až A.16. Nastavení časového okna je zvoleno jako 20 hodnot s rozestupem 1. S tímto nastavením sice časové okno neobsáhne delší historickou informaci, ale rozestup 1 je volen z důvodu, že se zde předpovídá hned následující hodnota (t+1) a nikoliv hodnota ve vzdálenější budoucnosti. Pokud tedy data obsahují určitý šum je nutné sledovat všechny hodnoty za sebou, aby se i s tímto šumem počítalo při určování hodnoty následující, respektive jejího směru. Více než 20 hodnot v časovém okně by již znamenalo značně náročnou výpočetní operaci. Pro zajištění věrohodnosti výsledků bylo pro každý vzorek dat vygenerováno 10 modelů. 4.5.2 Výsledky experimentu Tabulka 4.11 ukazuje průměrné hodnoty RMS chyby predikce na 10-ti modelech pro různé datové vzorky. Zároveň tabulka obsahuje chyby odpovědí z ensemble těchto modelů. Ensemble je skupina různých modelů trénovaných na stejných datech. Jednotlivé naměřené chyby predikce od všech modelů jsou podrobně uvedeny v tabulce B.9 v příloze. 10 Periodická data Aperiodická data Náhodná data Modelů Mandarinky Kyslík CO 2, pacient 1 CO 2, pacient 2 Vzorek 1 Vzorek 2 Ensemble 0.8719 0.8110 0.8945 0.8497 0.9854 0.9583 Průměr 0.9160 0.8319 0.9139 0.8891 0.9950 0.9759 Tabulka 4.11: RMS chyby určení správného směru příští hodnoty na 10-ti modelech Následující obrázky (4.10 až 4.13) zachycují odpovědi nejlepších modelů na celé testovací množině několika datových vzorků. Graficky znázorněné odpovědi modelů na všech datových vzorcích jsou opět v příloze. Modrá čára představuje správnou hodnotu z testovací množiny v čase t + 1 od okamžiku předpovědi, červená čára znázorňuje výstup neuronové sítě. 4.5.3 Vyhodnocení experimentu Na výsledcích experimentu je možno pozorovat několik zajímavých úkazů. Za prvé se jedná o potvrzení předpokladu neschopnosti predikce náhodného signálu. Dokazuje to RMS chyba na náhodných datech blížící hodnotě 1 a s tím související červená čára stále okolo nulové hodnoty na posledním obrázku 4.13. V porovnání s ostatními obrázky se může zdát, že je to do velké míry způsobeno šumem (nahuštěné modré čáry blízko u sebe), ale při porovnání s obrázkem 4.12 lze toto tvrzení popřít. Na něm je jasně znát perioda měnícího se signálu i při značném ovlivnění průběhu šumem. Za druhé je to malý rozdíl ve schopnosti předpovědět příští hodnotu na neperiodických datech (obrázek 4.10) a periodických datech (obrázky 4.11 a 4.12). Tento jev je pravděpodobně způsoben zašuměním dat společně s tím že se nepředpovídá trend, ale hodnota v čase t+1. Přesnost
KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 33 1.5 1 originalni vystup CO2CMP(t+1) predikovany vystup CO2CMP(t+1) 0.5 0-0.5-1 0 50 100 150 200 250 300 350 400 450 500 Obrázek 4.10: Predikce správného směru příští hodnoty u neperiodického vzorku (CO 2, pacient 2) 1.5 1 originalni vystup kyslikcmp(t+1) predikovany vystup kyslikcmp(t+1) 0.5 0-0.5-1 0 50 100 150 200 250 300 350 400 450 500 Obrázek 4.11: Predikce správného směru příští hodnoty u periodického vzorku (kyslík) u periodických dat je o něco větší, neboť závislosti v datech jsou patrné již na první pohled. Potěšující jsou však výsledky na neperiodických datech, kde je rovněž vidět, že síť se snaží generovat správný směr následující hodnoty, v porovnání například s náhodnými daty. Za třetí se jedná o úkaz, který je nejpatrnější na periodických datech (konkrétně obrázek 4.11). Predikovaná hodnota začne měnit směr svého průběhu ještě dříve než přijde změna směru v průběhu originálního signálu. Dobře patrné je to například kolem náběžné hrany v čase t = 300, kdy přijde změna klesajícího trendu na stoupající. Ještě před tímto zlomem, začne narůstat predikovaný signál na výstupu ze sítě. Tento úkaz se v menší míře projevuje i na neperiodických datech. Pravděpodobně to znamená, že se síť naučila závislosti v průběhu natolik, aby dovedla tyto změny v trendu odhadnout, přesto že nepředpovídáme samotný trend, ale pouze následující hodnotu za koncem časového okna. Výsledky experimentu se dají shrnout tvrzením, že metoda GAME je schopna krátkodobé predikce směru na periodických i neperiodických datech, i přesto že obsahují šum. Je zřejmé že přesnost predikce bude do značné míry záviset na nastavení časového okna, především tedy na velikosti časového okna. S rostoucím počtem vstupů však bude stoupat výpočetní náročnost, naopak při zvětšování rozestupu mezi vstupními hodnotami (pro zvětšení okna) síť nebude tak dobře reagovat na šum. Jelikož tento experiment přinesl celkem zajímavé výsledky, bude pro-
34 KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 1.5 1 originalni vystup watercmp(t+1) predikovany vystup watercmp(t+1) 0.5 0-0.5-1 0 50 100 150 200 250 300 350 400 450 500 Obrázek 4.12: Predikce správného směru příští hodnoty u periodického vzorku (mandarinky) 1.5 1 originalni vystup randcmp(t+1) predikovany vystup randcmp(t+1) 0.5 0-0.5-1 0 50 100 150 200 250 300 350 400 450 500 Obrázek 4.13: Predikce správného směru příští hodnoty u náhodných dat (vzorek 1) veden další experiment s předpovědí samotného trendu, tedy se střednědobou predikcí. Další změna se bude týkat transformace vstupních dat, z toho důvodu, aby šlo výsledky vyhodnotit jako procentuální úspěšnost trefy do správného směru, což bude jistě srozumitelnější než RMS chyba.
KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 35 Obrázek 4.14: RMS error s box plot: určení správného směru příští hodnoty na 10-ti modelech
36 KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 4.6 Porovnání úspěšnosti střednědobé predikce na různých typech dat Jelikož předchozí experiment vykázal zajímavé výsledky s predikcí směru následující hodnoty, bylo vhodné navrhnout další experiment, který se bude zabývat střednědobou predikcí směru (bude tedy odhadován trend vývoje). Porovnání úspěšnosti bude provedeno na stejných datových vzorcích jako v předchozím experimentu. Transformace dat je zde však navržena odlišně, aby bylo možno srozumitelněji interpretovat výsledky pomocí procentuálního vyjádření úspěšnosti trefy do správného směru. 4.6.1 Nastavení experimentu Experiment je navržen tak, aby rozšířil tvrzení předcházejícího pokusu a nalezl odpověď na to, jak se liší úspěšnost střednědobé predikce trendu na datech s různou povahou. Datové vzorky představují opět periodická, aperiodická a náhodná data ve stejném nastavení jako u předchozího experimentu. Jedná se tedy ve všech případech o trénovací množinu o velikosti 1500 hodnot a testovací množinu o velikosti 500 hodnot. Předpoklad je takový, že schopnost odhadnout trend by měla být relativně velká na periodických datech, zatímco na náhodných by se úspěšnost měla pohybovat kolem 50%. Otázkou je, zda se povede natrénovat síť tak, aby byla schopna predikovat trend úspěšněji než u náhodných dat. Pro porovnání úspěšnosti predikce na různých datech je potřeba opět provést jistou transformaci dat. Rovněž se zde tedy nebude předpovídat absolutní hodnota v určité vzdálenosti od okamžiku predikce, ale informace o tom zda trend vzhledem k této vzdálenosti má stoupající, či klesající tendenci. Tato informace bude zakódována do dvou výstupů. Jeden výstup bude označen UP a v případě stoupajícího trendu bude obsahovat hodnotu 1. Druhý výstup bude označen DOWN a bude obsahovat hodnotu 1 v případě klesajícího trendu. Pro určení zda je trend klesající či stoupající se bude porovnávat hodnota v okamžiku predikce s průměrem všech hodnot do vzdáleností predikce. V případě že budou obě porovnávané hodnoty stejné, bude na obou výstupech 0. Porovnávání průměru místo jedné hodnoty ve vzdálenosti predikce je vhodné z toho důvodu, že průměr podává objektivnější informaci o průběhu než výkyv jedné hodnoty v predikční vzdálenosti a navíc také omezí vliv šumu. Příklad této transformace dat uvádí tabulka 4.12. Jedná se tedy o klasifikaci do dvou kategorií pro oba výstupy. Výhodou této transformace je, že implementace GAME pak automaticky spočítá procentuální úspěšnost trefy do správného směru jako přesnost klasifikace všech predikovaných hodnot v testovací množině, kde GAME výstup < 0.5 = 0 a >= 0.5 = 1. CO 2 (t) 20 CO 2 (t+n) n=1 20 CO 2 UP (t + 20) CO 2 DOW N(t + 20) 6.6 6.83 1 0 6.7 6.7 0 0 6.8 6.48 0 1 Tabulka 4.12: Transformace dat za účelem porovnání výsledků střednědobé predikce na různých datech Protože vzdálenost predikce je v tomto experimentu větší, dá se zanedbat šum a zvětšit rozestupy mezi hodnotami v časovém okně. Z toho plyne výhoda ve zvětšení časového okna, čímž bude zahrnovat obsáhlejší informaci o průběhu časové řady pro predikci trendu. Samotný rozestup tedy byl zvolen jako 5 hodnot a počet vstupů do GAME byl zvolen jako 20 hodnot. Z toho
KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 37 vyplývá že v časovém okně je obsažena informace až do vzdálenosti 100 hodnot do minulosti. Predikovat se bude trend ve vzdálenosti 20 hodnot. Pro ověření věrohodnosti výsledků bude opět vygenerováno 10 různých modelů, pro každý vzorek dat. V nastavení trénování GAME modelů je zvoleno použití všech jednotek a jako optimalizační metoda je zvolena Quasi Newton Method. Všechny ostatní volby jsou ponechány ve výchozím nastavení, z čehož považuji asi za nejdůležitější zmínit použití normalizace vstupních a výstupních dat do intervalu < 0, 1 >. 4.6.2 Výsledky experimentu Tabulky 4.13 a 4.14 ukazují procentuální úspěšnost klasifikace stoupajícího a klesajícího trendu do vzdálenosti 20-ti hodnot na testovacích množinách různých dat. Odpovědi jsou brány jednak z ensemble 10-ti modelů a za druhé jako průměr přesnosti klasifikace všech modelů. Procentuální úspěšnosti všech modelů jednotlivě jsou zobrazeny v tabulkách B.10 až B.12 v příloze. 10 Periodická data Aperiodická data Náhodná data Modelů Mandarinky Kyslík CO 2, pacient 1 CO 2, pacient 2 Vzorek 1 Vzorek 2 Ensemble 92.21% 71.69% 63.12% 78.70% 55.06% 47.53% Průměr 91.35% 70.75% 59.66% 66.42% 49.45% 47.40% Tabulka 4.13: Procentuální přesnost určení stoupajícího trendu do vzdálenosti t + 20 na 10-ti modelech 10 Periodická data Aperiodická data Náhodná data Modelů Mandarinky Kyslík CO 2, pacient 1 CO 2, pacient 2 Vzorek 1 Vzorek 2 Ensemble 93.51% 72.73% 65.19% 59.09% 53.77% 50.65% Průměr 91.71% 71.22% 61.12% 57.19% 47.48% 47.09% Tabulka 4.14: Procentuální přesnost určení klesajícího trendu do vzdálenosti t + 20 na 10-ti modelech Grafy na obrázcích 4.15, 4.16 a 4.17 zobrazují odpovědi několika vybraných modelů na celých testovacích množinách. Záznamy odpovědí nejúspěšnějších modelů na všech datových vzorcích jsou rovněž v příloze (obrázky B.7 až B.18). 4.6.3 Vyhodnocení experimentu Z předchozích výsledků je patrné, že metoda je schopna úspěšně predikovat trend na periodických datech a to i v případech, kdy se v nich vyskytnou nepravidelnosti v podobě kratších impulsů před trvalejším stoupajícím trendem, jak je patrné na obrázku 4.15. Na neperiodických datech je již úspěšnost klasifikace správného směru nižší, ale v porovnání s predikcí trendu na náhodných datech stále vede. Na několika modelech trénovaných na náhodných datech to vypadá, že síť je schopna predikovat trend (viz. obrázek 4.17). Může to být způsobeno tím, že i v náhodně vygenerovaných datech se mohou objevit navzájem podobné části průběhu. Na obrázku B.16 je naopak vidět že se model na náhodných datech pravděpodobně vůbec nezvládl
38 KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 1 originalni vystup water_up(t+20) predikovany vystup water_up(t+20) 0.5 0 0 50 100 150 200 250 300 350 400 Obrázek 4.15: Predikce stoupajícího trendu do vzdálenosti t + 20 na periodických datech (spotřeba vody mandarinkovníku) 1 originalni vystup output CO2_DOWN(t+20) predikovany vystup CO2_DOWN(t+20) 0.5 0 0 50 100 150 200 250 300 350 400 Obrázek 4.16: Predikce klesajícího trendu do vzdálenosti t + 20 na neperiodických datech (CO 2, pacient 1) správně vygenerovat. Dále je možno na několika grafech ve výsledcích v příloze vidět, jak odpovědi modelů utečou mimo rozsah < 0, 1 >, což ale klasifikaci do odpovídajícího směru nijak nevadí. V tomto experimentu se ještě více projevil jev, kdy neostré změny směru v průběhu predikovaného signálu nastávají dříve než přijde změna směru v originálním průběhu. Tento jev se výrazněji projevil na reálných datech (viz. obrázek 4.16), zatímco u náhodných dat jsou v predikovaném signálu pouze ostré zlomy v nepatřičnou chvíli (viz. obrázek 4.17). Toto potvrzuje fakt, že narozdíl od reálných dat nejsou v náhodných datech skryté závislosti, ze kterých by se dala změna trendu předpovídat. Tento experiment tedy potvrdil očekávání, že lze predikovat trend do určité vzdálenosti jak na periodických datech tak na datech aperiodických, přičemž predikce trendu na datech s periodickým charakterem je značně přesnější. Naopak na náhodných datech se úspěšnost klasifikace pohybuje kolem 50%, což rovněž potvrdilo předpoklady. Další experimenty by mohly vést k nalezení odpovědi na otázky do jaké vzdálenosti je metoda schopna rozumně predikovat trend, či jak velké okno je třeba nastavit při předzpracování dat, aby byla predikce co nejpřesnější.
KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 39 1 originalni vystup rand_up(t+20) predikovany vystup rand_up(t+20) 0.5 0 0 50 100 150 200 250 300 350 400 Obrázek 4.17: Predikce stoupajícího trendu do vzdálenosti t+20 na náhodných datech (vzorek 1)
40 KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 4.7 Zkoumání vlivu doplňujících informací k časové řadě Jedním z cílů této práce je predikce biologických signálů. V předchozích experimentech bylo dokázáno, že neuronová síť GAME je poměrně dobře schopna predikovat trend budoucího vývoje jak na periodických, tak ne neperiodických datech. Tento experiment bude zaměřen již pouze na neperiodická data. Ve spolupráci s nemocnicí Motol byly k časovým průběhům hladiny CO 2 u pacientů po nehodě dodány také dokumenty popisující manipulaci s pacientem (různé stimulace a podávání léků). Tento experiment si klade za cíl odpovědět na otázku, zda tyto informace souvisí se sledovaným průběhem CO 2 a zda přidání těchto informací ovlivní přesnost predikce trendu. 4.7.1 Nastavení experimentu Aby bylo možno objektivně porovnat, zda přidání doplňujících informací ovlivní přesnost predikce v porovnání s výsledky předchozího experimentu, předzpracování dat s časovými řadami i způsob trénování GAME modelů bylo nastaveno naprosto stejným způsobem. Jsou tedy použity dva datové vzorky s neperiodickými daty, posuvné okno o velikosti 20 hodnot s rozestupem 5 hodnot a predikce trendu do vzdálenosti 20 hodnot. Transformace výstupních hodnot je rovněž stejná, tzn. dva výstupy nabývající hodnot 0 nebo 1 pro určení stoupajícího i klesajícího trendu. Rozdíl zde činí dva nové vstupy představující manipulaci s pacientem v době záznamu hladiny CO 2. Datum Čas Stav/Manipulace 22.11.04 12:35 THP 150mg i.v., převaz CŽK, jug.oxymetrie, převaz operačních ran na hlavě, čidla ICP a Neurotrendu 22.11.04 13:45 Snížení ventilace o 1 dech, při ptio2 1, Okpa 22.11.04 14:10 Zvýšen Noradrenalin na 2,2ml/h, odsávání, toal.d.ú., Manitol 100ml i.v.......... Tabulka 4.15: Záznam několika událostí manipulace s pacientem V dokumentech souvisejících s časovou řadou jsou podrobně rozepsány informace co se v daný čas s pacientem dělo. Ukázku několika událostí z tohoto dokumentu uvádí tabulka 4.15. Každá událost je srovnána s tabulkou A.1, dodanou společně s těmito dokumenty 2. Pokud se událost v této tabulce nachází, je na vstup vygenerován impuls, trvající patřičnou dobu než vliv události odezní. Jednotlivé události jsem rozdělil do dvou hlavních kategorií: podání léku (typ 6 až 8 v tab. A.1) a manipulace (všechny ostatní). Obě kategorie tedy představují samostatný vstup do sítě. K tomuto rozdělení jsem se rozhodl ze dvou důvodů. Prvním je, že události z obou kategorií mohou mít zcela odlišný vliv na průběh časové řady a druhým je, že vstup s léky by měl 2 Události popsané v tabulce A.1 primárně popisují vliv na pacientův vnitrolebeční tlak (ICP), jehož průběh však nebyl k dispozici, z důvodu jeho dosavadní nemožnosti digitálního záznamu. Nicméně po konzultaci s autory této kategorizace je zde předpoklad, že vliv těchto událostí by se měl jistou měrou promítnout rovněž na hladinu CO 2.
KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 41 být o něco posunut v čase zpět, jelikož reakce pacienta může mít na podání léku určité zpoždění, zatímco na přímou manipulaci reaguje pacientovo tělo bezprostředně. Tento předpoklad jsem experimentálně ověřil na několika vygenerovaných modelech, kdy oba vstupy byly bez zpoždění, potom oba se zpožděním a nakonec byl se zpožděním pouze vstup s léky. Poslední varianta vykazovala nejlepší přesnost při určování trendu. Délku zpoždění jsem určil srovnáním s vygenerovaných impulsů s výraznějšími změnami průběhu v reálných datech. Průběhy obou vzorků společně s vygenerovanými impulsy demonstrují obrázky 4.18 a 4.19. Tabulka A.2 zobrazuje malou část trénovací množiny (pacient 1, počínaje indexem 40) s doplňující informací o manipulaci s pacientem. Velikost impulsů ani jejich posunutí po svislé ose nemá na trénování modelů vliv, vzhledem k normalizaci vstupů a výstupů přímo v GAME. Důležitá je jejich délka a správné umístění na vodorovné ose. V druhém vzorku jsou delší impulsy jelikož záznam trvá kratší dobu (půlminutové rozestupy mezi hodnotami oproti minutě a půl u prvního vzorku). 8.5 8 originalni vystup CO2(t+20) vstup leky(t-25) vstup manip(t-0) 7.5 7 6.5 6 0 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 Obrázek 4.18: Průběh hladiny CO 2 (pacient 1) společně s vygenerovanými impulsy manipulace 9 8.5 8 originalni vystup CO2(t+20) vstup leky(t-25) vstup manip(t-0) 7.5 7 6.5 6 5.5 0 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 Obrázek 4.19: Průběh hladiny CO 2 (pacient 2) společně s vygenerovanými impulsy manipulace 4.7.2 Výsledky experimentu Tabulka 4.16 ukazuje procentuální úspěšnost klasifikace stoupajícího a klesajícího trendu do vzdálenosti 20-ti hodnot na testovacích množinách obou vzorků neperiodických dat společně s
42 KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST vygenerovanými impulsy manipulace. Odpovědi jsou brány jednak z ensemble 10-ti modelů a za druhé jako průměr přesnosti klasifikace všech modelů. Procentuální úspěšnosti všech modelů jednotlivě jsou zobrazeny v tabulce B.13 v příloze. 10 CO 2, pacient 1 CO 2, pacient 2 Modelů Stoupající trend Klesající trend Stoupající trend Klesající trend Ensemble 66.05% 64.47% 71.84% 71.84% Průměr 63.76% 59.60% 62.42% 63.08% Tabulka 4.16: Procentuální přesnost určení budoucího trendu hladiny CO 2 s doplňujícími údaji, do vzdálenosti t + 20 na 10-ti modelech 4.7.3 Vyhodnocení experimentu Porovnání výsledků předchozího experimentu, kde byl na neperiodických datech predikován trend do vzdálenosti 20 hodnot jako trefa do správného směru a tohoto experimentu, kde se predikuje trend do stejné vzdálenosti na stejných datech s doplňujícími informacemi, bylo provedeno jednak pomocí procentuální úspěšnosti klasifikace ensemble modelů a za druhé pomocí průměrné úspěšnosti klasifikace všech modelů. Každý z těchto ukazatelů nese jinou informaci. Zatímco ensemble kombinuje výstupy jednotlivých modelů, tak aby bylo dosaženo co největší přesnosti, průměrná hodnota nese informaci o všech modelech dohromady. Jednotlivá porovnání ukazují tabulky 4.17 a 4.18. Obrázek 4.20 obsahuje porovnání úspěšnosti klasifikace jednotlivých modelů, jejichž podrobné výsledky jsou uvedeny v tabulce B.13 v příloze. Vzorek Trend Data s doplňující informací Obyčejná data Zlepšení Pacient 1 Stoupající 66.05% 63.12% 2.93% Klesající 64.47% 65.19% -0.72% Pacient 2 Stoupající 71.84% 78.70% -6.86% Klesající 71.84% 59.09% 12.75% Tabulka 4.17: Porovnání procentuální přesnosti určení trendu dat s doplňující informací a obyčejných dat pomocí odpovědí z ensemble modelů Vzorek Trend Data s doplňující informací Obyčejná data Zlepšení Pacient 1 Stoupající 63.76% 59.66% 4.10% Klesající 59.60% 61.12% -1.52% Pacient 2 Stoupající 62.42% 66.42% -4.0% Klesající 63.08% 57.19% 5.89% Tabulka 4.18: Porovnání procentuální přesnosti určení trendu dat s doplňující informací a obyčejných dat pomocí průměru úspěšnosti jednotlivých modelů Jak je možno vidět z tabulek, přidání informace o manipulaci s pacientem ovlivnilo úspěšnost predikce trendu. Bohužel ne zcela podle očekávání. V některých případech došlo ke zpřesnění, ale společně s tím došlo v jiných případech ke zhoršení přesnosti. Je zajímavé, že vždy se zlepšila přesnost určování trendu v jednom směru, ale zároveň ve druhém směru došlo ke zhoršení.
KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST 43 Pokud se však sečte procentuální zlepšení (resp. zhoršení, v případě záporné hodnoty), je patrné, že k jistému zpřesnění predikce došlo. Řečeno v číslech to znamená, že u prvního pacienta se odpověď z ensemble modelů zpřesnila o 2.21% a průměr přesnosti jednotlivých modelů se zvýšil o 2.58%. U druhého pacienta je změna ještě patrnější: zlepšení o 5.89% u ensemble a 1.89% u průměru. U tohoto datového vzorku je nejvíce zajímavý jev výrazného zvýšení přesnosti predikce klesajícího trendu. Rovněž stojí za povšimnutí, že se ve všech 4 případech zvýšila maximální úspěšnosti klasifikace, jak je patrné z obrázku 4.20. Obrázek 4.20: Box plot: Porovnání úspěšnosti GAME modelů při určování trendu dat s doplňující informací (A) a obyčejných dat (B) V tabulce B.14 v příloze jsou uvedeny významnosti jednotlivých vstupů do GAME. Jedná se o průměrné hodnoty z 10-ti modelů pro každou výstupní hodnotu. Z tabulky je patrné že vstupy s manipulací a léky mají v síti nezanedbatelný vliv. Například pro určení stoupajícího trendu u vzorku 1 je významnost 7.92% pro léky a 3.02% pro manipulaci, zatímco průměrná významnost vstupu CO 2 v celém posuvném okně je 4.45%. U druhého vzorku je již významnost doplňujících informací menší, což je možná způsobeno tím, že popis událostí u tohoto pacienta nebyl zpracován tak důkladně jako u prvního pacienta (jak je patrné i z grafů 4.18 a 4.19). V tabulce je zajímavá ještě jedna skutečnost. Nejvýznamnější vstup v časovém okně je vždy blízko polovině okna. Obrázek 4.21 a) znázorňuje vliv vstupů manipulace a léky na klasifikaci 5 ensemble modelů pro každý výstup. Z tohoto obrázku je možno vyčíst, že pokud se pacientovi podají léky (vstup na svislé ose), hladina CO 2 by mohla začít klesat (modrá plocha představuje třídu výstupu CO2 DOWN, křížky jsou naměřená data). Při větším množství léků však již jejich vliv není moc jasný. Pokud se pacientem fyzicky manipuluje (vstup na vodorovné ose) hladina CO 2
44 KAPITOLA 4. EXPERIMENTÁLNÍ ČÁST Obrázek 4.21: a) Klasifikace s kombinováním modelů, b) Mapování n-dimenzionálních dat do dvou rozměrů stoupá (červená plocha představuje třídu výstupu CO2 UP). Tato pozorování však slouží spíše jako dodatečné informace k vyhodnocení experimentu a jejich obecnou platnost by bylo třeba podložit dalšími experimenty, které již přesahují rámec této práce a mohou posloužit jako návrh pro další výzkum. Obrázek 4.21 b) ukazuje, že není snadné oddělit třídy CO2 UP a CO2 DOWN pomocí vstupů, které jsou k dispozici. Dá se předpokládat že výsledky tohoto experimentu jsou ovlivněny tím, že popisované události nejsou původně určeny přímo k průběhu CO 2. Pokud by byl k dispozici skutečně záznam vnitrolebečního tlaku (ICP), byly by výsledky pravděpodobně mnohem zajímavější.
KAPITOLA 5. IMPLEMENTAČNÍ ČÁST 45 5 Implementační část Při provádění experimentů se sítí GAME často vznikala potřeba na automatizaci určitých procesů, především pak předzpracování dat a vizualizace výsledků. V důsledku těchto potřeb vzniklo několik skriptů, které jsou k dispozici v příloze a dvě ucelenější aplikace napsané v Javě, které se vzhledem k jejich obecnější možnosti použití staly součástí implementace GAME. 5.1 Rozšíření GAME o zpracování časových řad pro predikci Pro predikci časových řad pomocí neuronové sítě GAME s využitím přístupu časového okna je potřeba data s časovými řadami předzpracovat. V rámci této diplomové práce byl vytvořen nástroj pro automatické předzpracování dat pomocí zvolených parametrů. 5.1.1 Popis funkčnosti Aplikace Time Series Preprocessing umožňuje zpracování souboru s jednou či více časovými řadami pro predikci použitím simulátoru GAME. Pracuje s přístupem časového okna tak, že dovoluje pro každou z časových řad definovat kolik historických hodnot a s jakým rozestupem půjde na vstup modelu a kolik budoucích hodnot z vybraných časových řad se bude predikovat. Další funkcí je možnost zpracovat data tak, že se bude předpovídat trend budoucího vývoje, místo skutečné predikované hodnoty. Výstup z aplikace je soubor, který pak lze načíst v GAME, či lze z aplikace exportovat předzpracovaná data rovnou do GAME. Všechny dále zadávané parametry se po ukončení aplikace ukládají do konfiguračního souboru, takže při příštím spuštění je není třeba zadávat znovu. 5.1.2 Návod k použití Návod k použití je ilustrován v postupných krocích na předzpracování neperiodických dat použitých v experimentech (jsou součástí přílohy). Pro lepší orientaci v návodu je přiložen screenshot aplikace, viz. obrázek 5.1. Formát vstupního souboru Jedná se o textový soubor, ve kterém každý sloupec v souboru představuje jednu časovou řadu. Každý řádek tedy obsahuje jednu hodnotu od každé časové řady a tyto hodnoty jsou odděleny mezerou či tabulátorem. První řádek by měl obsahovat místo čísel názvy časových řad (v opačném případě se čísla z prvního řádku použijí jako názvy). Počet hodnot jednotlivých časových řad v souboru musí být stejný. Formát vstupního souboru je vidět názorně na příkladu v tabulce 5.1. Otevření souboru ke zpracování Soubor lze vybrat pomocí tlačítka Browse..., nebo přímo zadat do pole File name. Stisknutím tlačítka Open se tento soubor načte a níže se zobrazí základní statistiky načtených dat (počet hodnot, minimální, maximální a průměrná hodnota v časové řadě) a současně se zpřístupní možnost výběru časové řady. V tuto chvíli také dojde k obnově naposledy použitých parametrů pro zpracování jednotlivých časových řad.
46 KAPITOLA 5. IMPLEMENTAČNÍ ČÁST Obrázek 5.1: Aplikace pro předzpracování časových řad ph O 2 T HCO 3 CO 2 6.72 6.7 37.4 7.8 8.62 6.72 6.6 37.4 7.7 8.61 6.71 6.6 37.4 7.7 8.60 6.71 6.6 37.4 7.7 8.59 6.71 6.5 37.4 7.7 8.60 6.71 6.5 37.4 7.7 8.59 6.71 6.4 37.4 7.7 8.59 6.71 6.4 37.4 7.7 8.58............... Tabulka 5.1: Předzpracování dat: Příklad vstupního souboru s pěti časovými řadami Nastavení parametrů pro zpracování časových řad Výběr časové řady pro nastavení parametrů se provádí pomocí volby Choose the time series for process. Pro každou časovou řadu lze zvolit, zda mají být její hodnoty použity na vstupu (Use input values for prediction) a výstupu predikce (Use output - predicted values). Význam předvoleb pro vstupní hodnoty:
KAPITOLA 5. IMPLEMENTAČNÍ ČÁST 47 Number of values in sliding window - počet historických hodnot které budou použity v časovém okně v jednom kroku predikce. Spacing between values in time series - rozestup mezi použitými hodnotami, tj. bude použita každá n-tá hodnota z časové řady. Tímto parametrem se zvětšuje délka časového okna při zachování počtu vstupů (a tím časové náročnosti trénování modelu) a přitom zvýšení historické informace v okně. Výsledná velikost okna tedy bude součin tohoto a předcházejícího parametru. Význam předvoleb pro výstupní hodnoty: Number of predicted values - počet predikovaných hodnot v různých časových horizontech. Jinými slovy také počet GAME modelů. Spacing between predicted values - rozestup mezi predikovanými hodnotami. Udává vzdálenost první a za ní následujících hodnot, tj. nejzazší predikovaná hodnota bude ve vzdálenosti součinu tohoto a předcházejícího parametru. Generate direction of trend - v případě zaškrtnutí této volby se na výstup bude generovat trend budoucího vývoje. Jinými slovy to znamená, že se provede porovnání průměru referenčních hodnot od okamžiku predikce do vzdálenosti predikce s hodnotou v okamžiku predikce (tzn. v čase t = 0, na konci časového okna). Způsob generování výstupu závisí na nastavení 1 output / 2 outputs. only - jedná se o dodatečné nastavení k předcházejícímu parametru. V případě zaškrtnutí se na výstup bude generovat pouze trend časové řady, v opačném případě společně s budoucí hodnotou. 1 output - Bude se generovat 1 výstup nabývající hodnot -1, 0, 1. V případě že průměr budoucích hodnot bude větší než výchozí hodnota, na výstup se bude generovat hodnota 1 (představuje stoupající trend), v případě rovnosti hodnota 0, jinak hodnota 1 (představuje klesající trend). 2 outputs - Na výstup se budou generovat 2 hodnoty, obě buď 0 nebo 1. První hodnota představuje pouze stoupající trend, v tom případě bude výstup 1, jinak 0. Druhá hodnota představuje klesající trend a generuje se stejným způsobem. V případě rovnosti průměru budoucích hodnot s výchozí hodnotou tedy budou oba výstupy rovny 0. Rovněž nemohou oba výstupy nabývat hodnoty 1 současně. Jednotlivé parametry lze zvolit pro každou časovou řadu zvlášť. Výstup do souboru V okamžiku otevírání souboru se do pole Output file name vygeneroval název výstupního souboru doplněný prefixem out. Tento název lze samozřejmě změnit. Stiskem tlačítka Process se provede samotné předzpracování a výsledek se zapíše do zvoleného souboru. Tlačítkem Load to GAME lze potom tato data nahrát rovnou do GAME. Tabulka 5.2 uvádí výstup předzpracování při vstupních datech uvedených výše, ze kterých byla vybrána pouze řada s CO 2, velikost posuvného okna 4 s rozestupem 2 a jedna predikovaná hodnota ve vzdálenosti 5.
48 KAPITOLA 5. IMPLEMENTAČNÍ ČÁST CO2(t-6) CO2(t-4) CO2(t-2) CO2(t-0)!CO2(t+5) 6.66 6.65 6.64 6.64 6.65 6.66 6.64 6.63 6.65 6.67 6.65 6.64 6.64 6.65 6.67 6.64 6.63 6.65 6.65 6.67 6.64 6.64 6.65 6.67 6.66 6.63 6.65 6.65 6.65 6.66............... Tabulka 5.2: Předzpracování dat: Příklad výstupního souboru s oknem velikosti 4 a jednou predikovanou hodnotou 5.2 Rozšíření GAME o vizualizaci výsledků predikce Jelikož grafické znázornění výsledků je většinou srozumitelnější než čísla v tabulce, bylo často potřeba výsledky predikce vizualizovat. Zatímco implementace Analogues Complexing toto prováděla automaticky, výsledky predikce z GAME bylo potřeba vždy ručně zpracovat a připravit pro vykreslení do grafu. Tato aplikace vizualizaci značně usnadňuje. 5.2.1 Popis funkčnosti Jako vstup do aplikace slouží soubor vyprodukovaný GAME uložením modelů včetně jejich odpovědí. Dovoluje vykreslit průběh časové řady v libovolném historickém okamžiku v rámci časového okna, průběh libovolné predikované hodnoty (že jich je více) z libovolného modelu (v případě že je na jednu predikovanou hodnotu natrénovaných více modelů) a k predikované hodnotě dovoluje pro porovnání vykreslit její originální hodnotu z testovací množiny. Výstup z aplikace je soubor který poslouží jako vstup do programu Gnuplot, pomocí kterého je provedeno samotné vykreslení grafu. Dále aplikace dovoluje nastavit pomocí parametrů základní vzhled výsledného grafu. Všechny dále zadávané parametry se po ukončení aplikace ukládají do konfiguračního souboru, takže při příštím spuštění je není třeba zadávat znovu. 5.2.2 Návod k použití Návod k použití je ilustrován v postupných krocích na vizualizaci predikce neperiodických dat. Pro lepší orientaci v návodu je přiložen screenshot aplikace, viz. obrázek 5.2. Formát vstupního souboru Jako vstup do aplikace slouží soubor uložený z GAME volbou File/Save. Předtím je však nutné se ujistit, že je zaškrtnuta volba File/Save responses, která zajistí uložení odpovědí modelu, tedy vlastní predikované hodnoty, společně s modelem. Otevření souboru ke zpracování Soubor lze vybrat pomocí tlačítka Browse..., nebo přímo zadat do pole File name. Stisknutím tlačítka Open se tento soubor načte a níže se zobrazí počet vstupních a výstupních proměnných a počet modelů na každou výstupní proměnnou. Výběr vstupních a výstupních proměnných
KAPITOLA 5. IMPLEMENTAČNÍ ČÁST 49 Obrázek 5.2: Aplikace pro vizualizaci výsledků predikce V sekci Display time series in graph lze zvolit zda se v grafu zobrazí vstupní a výstupní proměnné, případně referenční (originální) hodnoty z testovací množiny pro srovnání s predikovanými hodnotami. Rovněž lze nastavit které hodnoty budou zobrazeny, tzn. v jakém čase posuvného okna pro vstupní proměnnou a v jaké vzdálenosti predikce výstupní proměnnou (v případě, že jich je více). Nastavení vstupní proměnné má logicky největší smysl na konci posuvného okna, v čase t = 0. Dále lze v případě více modelů na jednu výstupní proměnnou zvolit ze kterého modelu se budou hodnoty zobrazovat. Nastavení grafu Jak bylo zmíněno výše, pro vlastní vykreslení grafu je použit volně šiřitelný program Gnuplot. Soubor generovaný v této aplikaci slouží jako vstup do Gnuplot-u, který nabízí nepřeberné možnosti nastavení vzhledu grafu. Zde popisovaná aplikace umožňuje přímo nastavit několik základních vlastností grafu, přičemž samozřejmě není problém výstupní soubor se zdrojovým kódem grafu editovat a použít pro Gnuplot externě. Lze nastavit rozlišení obrázku s grafem (zvolený formát obrázku je Portable Network Graphics - přípona png), zobrazení mřížky na ose x a y, rozestupy této mřížky a barvy obrázku zapsané v hexadecimálním kódu (xrrggbb). Do pole Name of file for gnu-plot je nutno napsat název výstupního souboru pro zdrojový kód grafu a do pole Name of output picture název výstupního souboru s grafem. Pro usnadnění se oba názvy doplňují automaticky při otevírání vstupního souboru. V případě zaškrtnutí volby Draw with gnu-plot right away je nutno vyplnit do pole