Využití fraktální dimenze na meteorologických datech

Transkript

Využití fraktální dimenze na meteorologických datech
Technická univerzita Košice
Fakulta elektrotechniky a informatiky
Využití fraktální analýzy na
meteorologických datech
Bakalářská práce
2013
Lenka Šloufová
Technická univerzita Košice
Fakulta elektrotechniky a informatiky
Využití fraktální analýzy na
meteorologických datech
Bakalářská práce
Studijní program:
Inteligentné systémy
Studijní obor:
9.2.7 Kybernetika
Školící pracoviště::
Katedra umelej inteligencie (KKUI)
Školitel:
Ing. Rudolf Jakša, PhD.
Konzultant:
Košice 2013
Lenka Šloufová
Abstrakt
Tak jako mnoho jiných jevů reálného světa počasí vykazuje fraktální charakter.
Metodou box-counting lze aproximovat hodnotu fraktální dimenze aktuálního časového
průběhu sledovaných meteorologických veličin. Zkoumání takto získaných hodnot
fraktální dimenze může sloužit jako dodatečná informace při předpovědi nadcházejícího průběhu hodnot meteorologických veličin.
Klíčová slova
Box-counting, fraktální dimenze, meteorologická data
Abstract
Weather, as many other phenomenons of real world, shows fractal character. By boxcounting method, it is possible to approximate fractal dimension of current progress
of monitored meteorological quantities Examining such values of fractal dimension
can serve as additional information prediction of upcoming values of meteorological
quantities.
Keywords
Box-counting, fractal dimension, meteorological data
Čestné prohlášení
Prohlašuji, že jsem bakalářskou práci vypracovala samostatně s použitím uvedené
odborné literatury.
Košice, 24. 5. 2013
...........................
Vlastnoruční podpis
Poděkování
Chtěla bych srdečně poděkovat mému vedoucímu bakalářské práce Ing. Rudolfu
Jakšovi, PhD., za nesčetné rady a připomínky. Dále bych chtěla poděkovat všem
vyučujícím Technické univerzity v Košicích, za všechny vědomosti, o které se dělí se
svými studenty. Na závěr bych chtěla také poděkovat učitelskému sboru Wichterlova
gymnázia v Ostravě-Porubě, za to, že mě obdařili pevnými základy, na kterých se
dalo během studia na vysoké škole stavět.
Obsah
Úvod
1
1 Formulace úlohy
2
2 Úvod do fraktální analýzy
3
3 Úvod do problematiky meteorologických dat
5
4 Návrh systému pro fraktalní analýzu meteorologických dat
6
5 Implementace navrženého systému
5.1
11
Výpočet fraktální dimenze obrázku . . . . . . . . . . . . . . . . . . . 11
6 Ověření aplikovatelnosti box-counting metody na vybraných meteorologických datech
6.1
13
Použití získaných hodnot fraktálních dimenzí při učení neuronové sítě 16
7 Závěr (zhodnocení řešení)
20
Použitá literatura
21
Seznam příloh
22
Příloha B
23
Příloha C
25
FEI
KKUI
Úvod
Mým úkolem je navrhnout a realizovat systém, který by určoval fraktální dimenzi
průběhu meteorologických veličin.
Ačkoli existuje více softwarů, které jsou schopny vypočítat fraktální dimenzi z obrázku,
jejich výstup není obvykle použitelný pro další hromadné zpracování dat.
Napsala jsem tedy program, který vypočítá fraktální dimenzi obrázku v takové
podobě, aby byla snadno dále zpracovatelná.
Dále jsem napsala skript, který tento program využívá, jako ukázku zpracování dat
z meteostanice, výpočet fraktální dimenze z těchto dat a jejich další využití při
trénování neuronové sítě.
1
FEI
1
KKUI
Formulace úlohy
Zadáním této bakalářské práce byly následující body:
1. Úvod do fraktální analýzy.
2. Úvod do problematiky meteorologických dat.
3. Návrh systému pro fraktální analýzu meteorologických dat.
4. Implementace navrženého systému.
5. Ověření aplikovatelnosti metody box-counting na vybraných meteorologických
datech
Jejich vypracování je následující:
∙ Fraktální analýza je řešena v kapitole 2.
∙ Problematikou meteorologických dat se zabývá kapitola 3.
∙ Popis návrhu systému je v kapitole 4.
∙ Popis implementace navrženého systému je v kapitole 5.
∙ Ověřením aplikovatelnosti metody box-counting se zabývá kapitola 6.
2
FEI
2
KKUI
Úvod do fraktální analýzy
Pro pochopení fraktální analýzy je potřebné nejprve proniknout do základů fraktální
geometrie. Toto relativně mladé odvětví matematiky bylo oficiálně založeno B. B.
Mandelbrotem v 70. letech minulého století, avšak jeho kořeny sahají podle (Zelinka,
Včelař a Čandík, 2006) až do konce století předminulého.
Mějme pomyslnou sněhovou vločku. Můžeme zkoumat její strukturu, určit její hmotnost, měřit elektrickou vodivost a budeme dostávat vcelku uspokojující výsledky.
Pokud se nicméně rozhodneme, že chceme změřit její obvod, zjistíme, že je závislý na
měřítku. Tento fakt je dán skutečností, že sněhová vločka, stejně jako mnoho jiných
přírodních útvarů, vykazuje fraktální charakter. Pokud bychom zvětšili malou část
naší vločky, dostaneme útvar, který se podobá části původní vločky bez zvětšení.
Přírodní fraktály sice mají své limitní hodnoty, nicméně u matematických fraktálů je
jakýkoli výřez přesnou zmenšenou kopií původního útvaru, čímž by obvod takovéto
matematické sněhové vločky se stále se zmenšujícím měřítkem neustále narůstal.
Pro popis útvarů tohoto typu se využívá Hausdorffova-Besicovicova dimenze, též
nazývaná fraktální dimenze, která má tu vlastnost, že pro objekty fraktálního charakteru nabývá hodnost ostře větších, než je hodnota jejich topologické dimenze, přičemž
nemusí být celočíselná. Je vyjádřena vztahem:
𝑑𝑘 = lim
𝜀→0
ln 𝑁 (𝜀)
ln
(︁ )︁
1
𝜀
= lim
𝜀→0
log 𝑁 (𝜀)
log
(︁ )︁
1
𝜀
,
(2.1)
kde 𝜀 je v literatuře uváděno jako měřítko a 𝑁 (𝜀) je nejmenší počet objektů (například v rovině čtverců) o hraně 𝜀, potřebných na pokrytí celého původního objektu.
V praxi to pak znamená, že pokud máme například jednotkový čtverec, a ten
zvětšíme dvakrát, za 𝜀 tedy dosadíme 21 , pak na pokrytí celého původního čtverce
potřebujeme 𝑁 ( 12 ) = 4 čtverců, jak je vidět na Obrázku 2 – 1.
3
FEI
KKUI
Obrázek 2 – 1 Rozdělení čtverce při 𝜀 =
1
2
pro výpočet jeho fraktální dimenze.
Dostaneme tedy:
𝑑𝑘 =
ln 4
(︂ )︂
ln
1
=
ln 22
ln 2
=2
= 2.
ln 2
ln 2
(2.2)
1
2
Jelikož každý takto vzniklý čtverec je přesnou zmenšenou kopií původního čtverce,
bude výsledek stejný pro libovolné zvětšení, avšak při vyšetřování obecných dat nelze
limitu 𝜀 → 0 zanedbat.
Při zjišťování fraktální dimenze z obrázku se využívá metoda nazývaná box-counting,
která pokrývá analyzovaný útvar „krabicemi“ o různé velikosti. Jejich počet a velikost se poté dosadí do vztahu 2.1. Takto vypočítaná krabicová dimenze se poté
používá jako vhodná aproximace fraktální dimenze.
4
FEI
3
KKUI
Úvod do problematiky meteorologických dat
Počasí bylo v zájmu lidské pozornosti už od nepaměti. Zaznamenání pozorovaných
dat pak může sloužit jako zdroj informací, jaký může být nadcházející průběh meteorologických veličin, pokud známe vývoj do současného stavu. Tím se dá například
rozeznat přicházející povodňová aktivita nebo vhodně naplánovat setba a sklizeň.
Průběh těchto veličin má tendenci se do jisté míry v různých intervalech opakovat.
Tyto intervaly můžou být ať už v rámci jednoho dne, několika dnů až týdnů podle
pohybu teplých a studených front, nebo potom v rámci roku, několikaletých chladnějších a teplejších obdobích, respektive i střídání dob ledových a meziledových,
ačkoli to je už pro nás těžko monitorovatelné, má tendenci vykazovat podobný
charakter v rozdílech teplot jako střídání noci a dne, jen tedy samozřejmě v jiném
měřítku. Díky těmto střídavě stoupajícím a klesajícím tendencím v různých časových
i hodnotových měřítkách se tedy i o časovém průběhu meteorologických veličin dá
uvažovat jako o fraktálu.
Meteorologická data, použitá pro experimenty v této práci, byla stažena ze stránky
<http://neuron.tuke.sk/adamcak/0/data/>. Tyto data zachycují průběh jednotlivých veličin, měřených v oblasti ÚVT, Boženy Němcovej 3, Košice, v období od
června 2011 do března 2013. Neumožňují tedy zkoumání fraktální struktury meteorologických dat z dlouhodobějšího hlediska, přesto však jsou pro potřeby této práce
dostačující. Podrobný popis jejich získávání a zpracování je v (Adamčák, 2012). Data
mají intervaly měření 15 minut. Celkově obsahují hodnoty mnoha měřených veličin,
avšak v této práci byla zpracovávána z časových důvodů pouze teplota.
5
FEI
4
KKUI
Návrh systému pro fraktalní analýzu meteorologických dat
Systém byl navrhnut tak, aby byl schopen zpracovávat data, jejichž zdroj je uveden
v kapitole 3. Celkový proces zpracování meteorologických dat je stručně vyobrazen
na Obrázku 4 – 1.
Úloha byla dále rozdělena na dvě dílčí části, a to převedení dat do formy obrázku a
samostatný výpočet fraktální dimenze obrázku.
Pro získání fraktální dimenze meteorologických dat bylo nejprve třeba vytvořit systém, který by ve vhodné podobě vypočítával fraktální dimenzi obrázků. Pro snadnou
zpracovatelnost byl zvolen formát obrázků plain pbm, kde každému pixelu odpovídá
v závislosti na barvě ASCII znak 0 pro bílou, nebo 1 pro černou barvu. (Přesný popis
viz (The PBM format, 2006).) Výsledný program byl napsán v jazyku C a stručný
popis jeho funkce je na Obrázku 4 – 2.
Podle informací v hlavičce vstupního pbm souboru je vytvořeno dvourozměrné pole,
do kterého se postupně zapisují barvy jednotlivých bodů. Poté je toto pole rozděleno
na části, přičemž se začíná u zvětšení s hodnou 2, tedy celý obrázek je rozdělen na
4 části. Každá z těchto částí je poté bod po bodu zkontrolována, jestli obsahuje
černé body. Pokud ano, znamená to, že je součástí obrazce, jehož fraktální dimenzi
chceme vypočítat, a v takovém případě se zvýší počet doposud nalezených částí,
které obrazec pokrývají, o jedna. Jakmile jsou všechny části zkontrolovány, pokud
je počet částí, které obsahují část obrazce, větší než 0, vypočítá se dle vztahu 2.1
hodnota krabicové dimenze, ta se zapíše do pomocné proměnné, a proces se opakuje
pro zvětšení dvakrát větší, než předchozí. Pokud je počet částí, které obsahují část
obrazce, roven 0, znamená to buďto, že se jedná o čistě bílý obrázek, tedy hodnota
fraktální dimenze černého obrazce je též rovna nule, anebo je dané zvětšení natolik
velké, že jednotlivé části jsou menší než jeden bod. V takovém případě už nelze
6
FEI
KKUI
Data
Převedení dat
do formy obrázku
Rozdělení obrázku
na jednotlivé části
Spočítání těch částí,
které obsahují část
obrazce (nejsou prázdné)
Dosazení do vzorce
Vypočítaná
fraktální
dimenze
Obrázek 4 – 1 Blokové schéma procesu výpočtu fraktální dimenze.
měřítko nadále zvětšovat a jako výstup z programu se vrátí hodnota, získaná pro
předchozí zvětšení, jako nejbližší získaná aproximace fraktální dimenze.
Pokud však chceme použít tento postup na data, je potřeba nejdříve z nich udělat
obrázek. Pro tento účel slouží skripty napsané v perlu, který vždy z dat za jeden
den vytvoří obrázek, pro ten nechá spočítat jeho hodnotu fraktální dimenze a tuto
7
FEI
KKUI
Start
Načti obrázek
Zapamatuj si
hodnotu pro
předchozí zvětšení.
Vypočítej hodnotu
pro zvětšení
dvakrát větší
než předchozí.
Ano
Je nová
hodnota
validní?
Ne
Fraktální dimenze =
hodnota vypočítaná
z předchozího
zvětšení
Konec
Obrázek 4 – 2 Vývojový diagram programu na výpočet fraktální dimenze z pbm obrázku.
hodnotu pak zapíše do souboru. Skripty v příloze této bakalářské práce byly určeny
k vytvoření souborů, vhodných jako trénovací, resp. testovací množina pro Stuttgartský simulátor neuronových sítí (Stuttgart Neural Network Simulator, dále SNNS.)
Přibližný vývojový diagram funkce toho skriptu je na Obrázku 4 – 3.
Skripty používají posledních 100 hodnot, což vzhledem k tomu, že použitá data,
8
FEI
KKUI
Start
Načti data
Načti další
naměřenou teplotu.
Z posledních x
hodnot vytvor .pbm
obrázek.
Nech vypočítat
fraktální dimenzi
daného obrázku a
spolu s
odpovídajícími daty
je zapiš ve vhodné
formě do
příslušných souborů.
Ne
Jsou
zpracována
všechna
data?
Ano
Konec
Obrázek 4 – 3 Vývojový diagram skriptu na zpracování většího množství dat a určení fraktální
dimenze pro dané časové okno.
mají periodu 15 minut, odpovídá 25 hodinám. Ačkoli by zpracování delších časových
úseků, ať už v rozmezí více dnů, několika týdnů, nebo dokonce roku, mohlo přinést
také zajímavé výsledky, z časových důvodů bylo od zpracování delších časových
úseků v průběhu této bakalářské práce upuštěno, neboť zpracování takového skriptu
se ukázalo příliš časově náročné.
9
FEI
KKUI
Skripty také vyhodnocují data až po dosažení dat druhého dne v daném měsíci a
nenavazují měsíce na sebe. Tím je sice vypuštěno několik údajů, ze statistického
pohledu je však toto vypuštění zanedbatelné. Tento krok slouží k tomu, aby nedocházelo k chybným vzorům v souboru. To by se mohlo stát například v případě,
ze pořadí názvů datových souborů neodpovídá jejich skutečnému chronologickému
pořadí.
10
FEI
5
KKUI
Implementace navrženého systému
Pro jednoduchou zjistitelnost správnosti výpočtu byl program napsán pro výpočet
fraktální dimenze obrázku pomocí metody box-counting. Po vzoru programu HarFA,
viz (Zmeškal et al., 2001), se v programu počítají hodnoty dimenzí pro části vstupního obrázku čistě bílé, čistě černé, obsahující jak bílou tak černou, obsahující bílou
a obsahující černou, ačkoli z praktických důvodů program v současné době vrací
jako výstup pouze hodnotu dimenze pro části obrázku obsahující černou.
5.1
Výpočet fraktální dimenze obrázku
Program byl nejprve testován na obrázcích známých fraktálů, konkrétně Kochovy
křivky a Sierpinského trojúhelníku.
Pro výpočet dimenze Kochovy křivky byla použita pbm varianta Obrázku 5 – 1.
Obrázek 5 – 1 Kochova křivka. Původní velikost 1000×500 pixelů.
Zatímco matematicky vypočítaná fraktální dimenze Kochovy křivky je rovna
ln 4
ln 3
.
=
1, 261860, dimenze vypočítaná programem je 1,365323.
Při výpočtu dimenze Sierpinského trojúhelníku byla použita pbm varianta Obrázku
5 – 2.
11
FEI
KKUI
Obrázek 5 – 2 Sierpinského trojúhelník. Původní velikost 1024×1024 pixelů.
Pro Sierpinského trojúhelník je hodnota fraktální dimenze rovna
ln 3
ln 2
.
= 1, 584963,
dimenze vypočítaná programem je 1,584963. Rozdíl v přesnosti výsledků je dán
podobou dat. Použitý obrázek Sierpinského trojúhelníku je totiž ideálním zobrazením
tohoto fraktálu pro počítačové výpočty, neboť pro velikost měřítka 2 se útvar nachází
ve 3 částech, přičemž každá tato část znovu odpovídá Sierpinskému trojúhelníku, a
to až do úrovně jednotlivých bodů.
12
FEI
6
KKUI
Ověření aplikovatelnosti box-counting metody
na vybraných meteorologických datech
Nejjednodušším způsobem, jak zjistit fraktální dimenzi z dat, je převést tyto data do
podoby obrázku. Nastává ovšem problém, jaké mají být rozměry obrázku. Zatímco u
dat, která mají dostatečný rozptyl hodnot, se jako vhodné řešení jeví jeden rozměr na
základě délky časového okna, ze kterého data pocházejí, a druhý rozměr odpovídající
rozptylu hodnot v daném časovém úseku, pro hodnoty, jejichž rozptyl je v příliš
malém intervalu, je takovéto řešení nepoužitelné. Názorně to ukazuje Obrázek 6 – 1.
Obrázek 6 – 1 Průběh teploty převedený do podoby obrázku, dva různé dny. Čas přibývá ve
směru shora dolů, velikost teploty roste ve směru zleva doprava. Ukázka možných výsledků při
převedení dat do formy obrázku pomocí skriptu skript_v1. (Zvětšeno z původní výšky 100 pixelů.)
V obou případech byly obrázky vygenerovány skriptem v jazyce Perl, obdobným
tomu, který je v příloze na CD médiu jako skript_v1, ze souboru TUKE_2013_1,
který se rovněž nachází na přiloženém CD médiu, pouze místo celého souboru byl
pro obrázek vlevo zpracován jen případ pro $i=417 a u obrázku vpravo pak pro
$i=2238. Výška obou původních obrázků byla 100 pixelů a je dána počtem údajů,
ze kterých se výsledná dimenze počítá. Šířka je pak dána rozsahem hodnot v daném
časovém intervalu. Jedná se tedy o průběh teploty v daném období, otočený o 90
stupňů. Otočení je dáno způsobem, jakým se obrázky tvoří.
Zatímco Obrázek 6 – 1 vlevo má v originální velikosti šířku 39 pixelů a vypočítanou
13
FEI
KKUI
hodnotu fraktální dimenze 1,356272, Obrázek 6 – 1 vpravo má díky své šířce v originální velikosti pouhých 6 pixelů vypočítanou fraktální dimenzi rovnu 2.
V takovéto formě lze tedy metodu box-counting použít pouze na data, jejichž hodnoty jsou z dostatečně velkého intervalu.
Jedním z možných řešení je rozšíření obrázku zvětšením měřítka pro šířku ve smyslu
skriptu skript_v2, jak ukazuje Obrázek 6 – 2.
Obrázek 6 – 2 Ukázka možných výsledků při převedení dat do formy obrázku pomocí skriptu
skript_v2. (Zvětšeno z původní výšky 100 pixelů.)
Jedná se o stejná data, jaká jsou zpracována na Obrázku 6 – 1. Šířka je u tohoto řešení
pětinásobkem velikosti intervalu, ve kterém se hodnoty nachází, přičemž černě jsou
zbarveny ty body, jimž odpovídající hodnota se od naměřené teploty liší nanejvýš o
0,1 stejně jako v předchozím případě. Takto vychází fraktální dimenze 1,521547 pro
Obrázek 6 – 2 vlevo a 1,729716 pro Obrázek 6 – 2 vpravo.
Jiným řešením je přidání volného místa, jak je tomu u skriptu skript_v3. Výsledné
obrázky opět pro stejná data jsou na Obrázku 6 – 3.
V tomto případě šířka zpracovávaného obrázku odpovídá trojnásobku rozsahu hodnot. Při určování fraktální dimenze dostaneme tentokrát hodnoty 0,972148 pro
Obrázek 6 – 3 vlevo a 1,626949 pro Obrázek 6 – 3 vpravo.
Posledním zkoumaným řešením je kombinace předchozích dvou variant, která je
14
FEI
KKUI
Obrázek 6 – 3 Ukázka možných výsledků při převedení dat do formy obrázku pomocí skriptu
skript_v3. (Zvětšeno z původní výšky 100 pixelů.)
použita u skriptu skript_v4. Výsledné obrázky jsou na Obrázku 6 – 4.
Obrázek 6 – 4 Ukázka možných výsledků při převedení dat do formy obrázku pomocí skriptu
skript_v4. (Zvětšeno z původní výšky 100 pixelů.)
Při tomto řešení je šířka obrázků devítinásobkem intervalu, ve kterém se nachází
naměřené hodnoty. Pro Obrázek 6 – 4 vlevo vychází fraktální dimenze na 1,395840,
pro Obrázek 6 – 4 vpravo je to pak 1,419606.
Ve všech třech případech se jistě jedná o lepší řešení pro data s malým rozptylem
hodnot, než jakým je původní varianta vytvořená skriptem skript_v1, avšak odhadnout, které řešení je nejpřesnější, je velmi obtížné, jelikož zde na rozdíl od obrázků
známých fraktálů správné hodnoty fraktálních dimenzí nepoznáme.
15
FEI
6.1
KKUI
Použití získaných hodnot fraktálních dimenzí při učení
neuronové sítě
Původním předpokladem bylo, že by hodnota fraktální dimenze mohla sloužit jako
dodatečný vstup pro neuronovou síť, která by měla predikovat nadcházející vývoj
meteorologických veličin, respektive ve zkoumaném případě teploty. K tomuto účelu
byl použit již dříve zmiňovaný program SNNS.
Při pokusu o realizaci daného pokusu se však vyskytlo několik problémů. Jelikož
skripty v této práci generují čistě jen vzorky do .pat souborů, určených pro trénování
simulované neuronové sítě, bylo výsledné soubory potřeba ručně upravit do vhodné
podoby. Podle vzorových souborů, které jsou součástí programu SNNS při stažení,
byly vytvořené soubory opatřeny hlavičkou s počtem vzorů a vstupních a výstupních
neuronů. Tímto způsobem se podařilo převést do formy čitelné pro program SNNS
soubory, vygenerované z dat z jednoho měsíce, nicméně při pokusu vytvořit trénovací nebo testovací množinu z hodnot z celého roku program SNNS hlásil chybu za
posledním řádkem souboru.
Parse error in pattern file at line 329246:
to little values in pattern
Co tato chyba přesně vyjadřuje ani proč se nacházela na 329246. řádku souboru,
který měl 329245 řádků, se nepodařilo objasnit, nicméně je pravděpodobné, že chyba
vznikla někde při zpracování příliš velkého souboru dat, nebo že program SNNS má
problémy s načítáním takto velkých souborů.
V dalším testu tedy byly použity soubory, vygenerované pomocí skriptů skript_v2
až skript_v4 pouze z dat v souboru TUKE_2013_1.
Při učení byly pro soubory získané všemi metodami použity stejné podmínky:
16
FEI
KKUI
∙ Postupně byly vyzkoušeny dvě topologie: jedna bez skryté vrstvy a druhá se
šesti neurony ve skryté vrstvě.
∙ Inicializací vah sítě byly vždy náhodná čísla z intervalu (-0,1;0,1).
∙ Jako učící funkce byla vždy vybrána funkce Std_Backpropagation.
∙ Učící parametry byly ponechány na 0,2 a 0.
∙ Počet cyklů byl 10000.
Jediný rozdíl byl při síti, která se učila z dat bez hodnoty fraktálních dimenzí, která
měla na vstupu 24 neuronů, do kterých přicházely jako vstupy teploty za posledních
24 hodin v hodinovém intervalu. U zbylých sítí bylo na vstupu 25 neuronů, kde
prvnímu neuronu přicházela jako vstup hodnota fraktální dimenze za posledních 25
hodin a zbývající neurony dostávaly stejné vstupy, jak sít učící se z dat bez hodnoty
fraktální dimenze.
U všech třech metod se však hodnoty chyby MSE po 10000 iteracích lišily pouze
nepatrně a nebyly ani výrazně odlišné od hodnot chyby MSE sítě, která nevyužívala
hodnotu fraktální dimenze. Konkrétní hodnoty jsou uvedeny v Tabulce 6 – 1.
Tabulka 6 – 1 Výsledky chyby MSE z trénovacích a testovacích množin vytvořených jednotlivými
skripty ze souboru TUKE_2013_1 po 10000 iteracích.
Síť bez skryté vrstvy
Síť se skrytou vrstvou
Typ učících dat Trénovací mn.Testovací mn. Trénovací mn.Testovací mn.
s FD, skript_v2
10,80842
10,79024
10,80512
10,77475
s FD, skript_v3
10,80833
10,79058
10,80615
10,77446
s FD, skript_v4
10,80845
10,79022
10,80502
10,77407
bez FD
10,80849
10,79006
10,80749
(pozn.: FD = hodnota fraktální dimenze.)
10,77612
Při učení sítí bez skrytých vrstev se hodnoty vah lišily jen nepatrně. Jejich srovnání
17
FEI
KKUI
je na Obrázku 6 – 5. U sítí se skrytou vrstvou už byly rozdíly větší, jak ukazuje
Obrázek 6 – 6.
Obrázek 6 – 5 Srovnání vah ze vstupních neuronů do výstupního u neuronových sítí bez skryté
vrstvy z vizualizace vah v programu SNNS. Červeně jsou označeny záporné hodnoty, zeleně kladné,
modře hodnoty blízké nule. Shora: síť s hodnotami fraktálních dimenzí metodou skriptu skript_2,
síť s hodnotami fraktálních dimenzí metodou skriptu skript_3, síť s hodnotami fraktálních dimenzí
metodou skriptu skript_4, síť bez hodnot fraktální dimenze.
Obrázek 6 – 6 Srovnání vah ze vstupních neuronů do výstupního u neuronových sítí se skrytou
vrstvou z vizualizace vah v programu SNNS. Červeně jsou označeny záporné hodnoty, zeleně kladné,
modře hodnoty blízké nule. Pořadí sítí je obdobné jako na Obrázku 6 – 5 .
Dá se tedy předpokládat, že při nalezení vhodnější topologie sítě, nebo při zpracování
18
FEI
KKUI
většího množství dat, by se význam fraktální dimenze při učení neuronové sítě pro
predikci teploty, respektive i jiných meteorologických veličin, mohl projevit lépe,
avšak to už není předmětem této bakalářské práce.
19
FEI
7
KKUI
Závěr (zhodnocení řešení)
Naprogramovaný systém dokáže uspokojivě aproximovat hodnoty fraktální dimenze
pro obrázky některých známých fraktálů, nicméně jeho spolehlivost se ukazuje býti
silně závislá na poskytnutých datech. Při fraktální analýze průběhu teploty neznáme
optimální metodu převodu dat z meteostanice do podoby obrázků. Navrhla jsem
několik suboptimálních metod, jejich spolehlivost se však nepodařilo s jistotou určit.
Při pokusu předložit hodnotu fraktální dimenze jako dodatečný vstup pro neuronovou síť se u žádné z metod neprojevil výrazný rozdíl oproti ostatním metodám,
ani oproti síti bez hodnoty fraktální dimenze, což může být způsobeno nedostatečným
množstvím dat.
20
FEI
KKUI
Reference
ZELINKA, I. – VČELAŘ, F. – ČANDÍK, M. 2006. Fraktální geometrie – principy
a aplikace. Praha : BEN – technická literatura, 2006. 160 s. ISBN 80-7300-191-8
ZMEŠKAL, O. et al. 2001. Fractal Analysis of Image Structures. In HarFA e-journal
[online]. [cit. 30.5.2013]. Dostupné na internetu: <http://www.fch.vutbr.cz/
lectures/imagesci/download_ejournal/01_O.Zmeskal.pdf>.
The PBM format [online]. Aktualizováno 22.9.2006 [cit. 30.5.2013]. Dostupné na
internetu: <http://netpbm.sourceforge.net/doc/pbm.html>.
ADAMČÁK, J. 2012. Predikcia počasia s využitím neurónových sietí. Diplomová
práca. Košice: Technická univerzita v Košiciach, Fakulta elektrotechniky a informatiky, 2012. 57 s. Dostupné na internetu: <http://neuron.tuke.sk/adamcak/
theses/Adamcak-Jaksa-MS-thesis-2012.pdf>.
21
Seznam příloh
Příloha A CD médium - bakalářská práce v elektronické podobě, přílohy v elektronické podobě
Příloha B Uživatelská příručka
Příloha C Systémová příručka
FEI
KKUI
Příloha B
Uživatelská příručka
Upozornění: Veškeré zdrojové kódy a skripty byly vypracovávány na operačním systému Linux, distribuce Ubuntu 13.041 . Pro zkompilování zdrojového kódu programu
pbmBoxCounter byl použit GNU C compiler, skripty pak byly napsány v jazyce Perl
a předpokládají využití GNU Bourne Again SHell-u. Systém nebyl testován na žádném jiném operačním systému. Za problémy s kompatibilitou v rámci využití jiných
softwarových zdrojů autorka práce neručí.
Základní program - pbmBoxCounter
Program je potřeba nejprve zkompilovat příkazem:
gcc pbmBoxCounter*.c -lm
Přičemž symbol * zastupuje konkrétní verzi programu. Lze tedy přímo použít například i příkaz:
gcc pbmBoxCounter0.1.2.c -lm
Pro spuštění programu v takovémto případě bude potom sloužit příkaz ve tvaru
./a.out <název souboru>
kde argumentem musí být název souboru ve formátu plain pbm, jehož fraktální
dimenze se má vypočítat.
1
Verze v době dokončení práce. Během vypracovávání práce bylo postupně využito více verzí
systému Ubuntu Linux.
23
FEI
KKUI
Jedním z možných způsobů pro jednoduchý převod obrázku do tohoto formátu je
otevřít původní obrázek programem GIMP a exportovat do obrázku pbm, přičemž
je třeba zvolit ASCII formátování dat.
Doplňující skripty - skript_v1 až skript_v4
Skripty se spouštějí z terminálu příkazem ve tvaru:
perl skript_v1
Pro skripty skript_v2 až skript_v4 se pouze změní název.
Skripty během svého běhu vytvářejí pomocný soubor temp.pbm, do kterého přepisují
právě zpracovávaná data do formy obrázku a posílají ho na zpracování výše zmíněnému
programu pbmBoxCounter. Skripty vytvoří soubory ttest.pat a ttrain.pat, do kterých
se zapisují vzorky bez hodnoty fraktální dimenze, a fttest.pat a fttrain.pat, do
kterých se zapisují vzorky s hodnotou fraktální dimenze.
Aby bylo možné tyto soubory načíst do programu SNNS, je však ještě třeba tyto
soubory ještě ručně doplnit hlavičkou, například
SNNS pattern definition file V3.2
generated at Mon May 27 09:08:50 2013
No. of patterns : 575
No. of input units : 25
No. of output units : 1
s tím, že počet vzorů a vstupních a výstupních neuronů musí odpovídat.
Jelikož skripty používají stejné soubory, je třeba, aby byly vykonávány v rozdílných
složkách.
24
FEI
KKUI
Příloha C
Systémová příručka
Základní program - pbmBoxCounter
Program byl napsán v jazyce C a zkompilován pomocí GNU C compiler-u na operačním systému Linux.
Hlavní tělo programu načte obrázek podle argumentu, který mu byt zadán při
spuštění, a převede ho do proměnné data, což je struktura typu ANALYSED, jejíž
popis je níže. Dále posílá data do funkce test, která vypočítá hodnoty jednotlivých dimenzí a zapíše je do pomocné proměnné vysledky. Tato proměnná je strukturou typu
HODNOTY a byla původně určena k uchovávání různých typů dimenzí, nicméně v
současnou chvíli se dále nevyužívá, jelikož funkce test byla upravena k tomu, aby
přímo vracela jako svou návratovou hodnotu vypočítanou fraktální dimenzi pro části
obrázku, obsahující černou barvu.
V cyklu se tyto hodnoty posílají na testování se zvyšujícími mocninami dvou, dokud
výsledek není neplatný, poté se vypíše hodnota z předchozí iterace.
Popis jednotlivých struktur:
ANALYSED Struktura, do níž je převeden zpracovávaný obrázek a jeho části
pro snadnou manipulaci s daty. Obsahuje dvě proměnné typu int, vyska pro
výšku obrázku a sirka pro jeho šířku pixelech. Další proměnnou je pole, což je
dvourozměrné pole typu BARVA, ve kterém jsou hodnoty jednotlivých bodů.
Typ BARVA byl vytvořen pro snazší orientaci a může nabývat hodnot cerna
nebo bila.
HODNOTY Struktura na uchovávání hodnoty jednotlivých dimenzí. Obsahuje pět
25
FEI
KKUI
proměnných typu double pro jednotlivé dimenze: b pro černé části, w pro bílé
části, bw pro části obsahující černou i bílou, wbw pro části, které obsahují
bílou, bbw pro části, které obsahují černou. Také obsahuje proměnnou r, která
je typu int a uchovává se do ní informace, na kolik částí byl obrázek rozdělen2 .
Popis jednotlivých funkcí:
box Na vstupu má proměnnou typu ANALYSED, což je analyzovaná část obrázku.
Na výstupu vrací 0 pokud jsou všechny body dané části obrázku černé, 1 pokud
jsou všechny body bílé, 2 pokud daná část obrázku obsahuje černé i bílé body.
priprava Pomocná funkce na alokování paměti pro dvourozměrné pole typu BARVA.
Na vstupu je žádaná výška a šířka daného pole, na výstupu je pak směrník na
alokované pole.
cistka Pomocná funkce pro uvolnění paměti, kterou zabíralo dvourozměrné pole
typu BARVA, jakmile už toho pole neplánujeme dále využívat. Funkce nemá
návratovou hodnotu, na vstupu je směrník na pole, které chceme uvolnit, a
proměnná typu int, ve které je výška daného pole.
prekopiruj Tato funkce má na vstupu směrník na strukturu typu ANALYSED a
tři proměnné typu int, které postupně znamenají souřadnice y a x, odkud se
má vytvořit kopie, a číslo značící jakou část původních rozměrů má mít nový
obrázek. Jako výstup vrací směrník na překopírovanou část obrázku.
test Funkce která s pomocí výše uvedených funkcí počítá fraktální dimenze. Na vstupu má směrník na strukturu, pro kterou chceme vypočítat fraktální dimenzi,
hodnotu počtu rozdělení v jednotlivých rozměrech a směrník na strukturu typu
HODNOTY, do které se jednotlivé hodnoty fraktálních dimenzí zapíší. Jako
výstup má tato funkce hodnotu fraktální dimenze pro části obrázku obsahující
černou.
2
Toto rozdělení je myšleno v každém rozměru, celkový počet částí je tedy r2 .
26
FEI
KKUI
Doplňující skripty - skript_v1 až skript_v4
Všechny skripty mají obdobnou strukturu, liší se pouze počtem hodnot, které zapisují do pomocného souboru temp.pbm, ve smyslu kapitoly 6. Ve složce, ve které
jsou spuštěné, si nechají vypsat všechny názvy souborů začínající na TUKE_. Poté
pro jednotlivé soubory načtou jejich obsah, pro přehlednost vypíší, který soubor
právě začaly zpracovávat, a hodnotu třetího sloupce v každém řádku, což odpovídá
teplotě, přidají do pole hodnot, se kterými pracují. Jakmile má toto pole alespoň
sto hodnot, z těchto hodnot se vytvoří obrázek temp.pbm. Tento obrázek je poté
poslán jako argument souboru a.out, což je zkompilovaný program pbmBoxCounter
popsaný výše. Hodnota fraktální dimenze je zapsána do pomocné proměnné, a poté
jsou tyto hodnoty spolu s hodnotami za každou hodinu v posledních 24 hodinách
zapsány do souborů ttrain.pat a fttrain.pat, respektive ttest.pat a fttest.pat. Do
souborů ttest.pat a fttest.pat se zapisuje každý pátý vzorek, do souborů ttrain.pat
a fttrain.pat potom všechny ostatní. Soubory fttest.pat a fttrain.pat obsahují i hodnoty fraktálních dimenzí, zatímco soubory ttest.pat a ttrain.pat je neobsahují.
Další zpracování pak zahrnovalo ruční doplnění hlavičky a použití takto upravených
souborů v programu SNNS.
27

Podobné dokumenty

Stručná historie fraktální geometrie

Stručná historie fraktální geometrie připomnělo matematickou konstrukci Cantorova diskontinua. Podruhé se s takovou „soběpodobností“ setkal při studiu kolísání cen na trhu, kde si jejich krátkodobý a dlouhodobý průběh byly nápadně pod...

Více

Počítačové metody analýzy fraktálních množin

Počítačové metody analýzy fraktálních množin 5.3.Program pro generování IFS fraktálů a měření jejich dimenze..............................................59

Více

elmag.org - Katedra elektromagnetického pole

elmag.org - Katedra elektromagnetického pole elektromagnetického pole. Tyto práce jsou určeny pro libovolnou formu výstupu odpovídající nejrůznějším projektům dále diplomové, nebo bakalářské práci. Odpovídající forma a náročnost zadání bude p...

Více

Stáhnout aktuální číslo v nízkém rozlišení vhodném pro prohlížení i

Stáhnout aktuální číslo v nízkém rozlišení vhodném pro prohlížení i t?eba pokládat za state?né lidi. Trasa m??ila jako ka?doro?n? necelou stovku kilometr? a vedla z centra Tábora p?es Jistebnici a dlouhý okruh malebnými postranními silni?kami a? do táborského p?edm...

Více

formátu PDF

formátu PDF Krátké příklady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Více

Minimovka Lucia K - Conference system

Minimovka Lucia K - Conference system shodně vymezen během celého sledovaného období. Ve třicátých letech dvacátého století se Ralph Nelson Elliott zabýval podrobným studiem cenových grafů akciových indexů a uvědomil si, že se ceny poh...

Více