Implementace algoritmu matching pursuit pomocí genetických algoritmů
|
|
- Jaroslava Dušková
- před 9 lety
- Počet zobrazení:
Transkript
1 Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Bakalářská práce Implementace algoritmu matching pursuit pomocí genetických algoritmů Plzeň, 2012 Vít Bábel
2 Prohlášení Prohlašuji, že jsem bakalářskou práci vypracoval samostatně a výhradně s použitím citovaných pramenů. V Plzni dne... Vít Bábel
3 Abstract Implementation of matching pursuit algorithm using genetic algorithm Matching pursuit is an algorithm that iteratively decomposes an input signal into a set of simple functions called atoms. The atoms are taken from a redundant dictionary to approximate the signal as well as possible. In each iteration, the selected atom is subtracted from the signal and the residuum becomes the input of following iteration. After specified number of iterations it completes a linear expansion of atoms, which can approximately reconstruct the input signal. The biggest difficulty of matching pursuit is computational cost of seeking the best fitting atom in the dictionary. The task of this bachelor thesis is to prove possibility of using Genetic Algorithms to this approach. This thesis also deals with using the fast Fourier transform to reduce the searching space. This considerably decreases computational cost to seek though it.
4 Poděkování Velice rád bych poděkoval svému vedoucímu bakalářské práce Ing. Pavlu Mautnerovi, Ph. D. za jeho pomoc a velkou trpělivost při vedení mé práce. Dále bych poděkoval svému bratrovi Bc. Ladislavu Bábelovi za téměř každodenní konzultace ohledně zpracování signálu a další cenné informace. Vít Bábel
5 Obsah 1 Úvod 1 2 Matching pursuit (MP) Teorie Slovník funkcí Způsob výběru optimálního atomu Fourierova transformace (FT) 6 4 Genetické algoritmy (GA) Základní princip Kódování chromozomu a reprezentace řešení Fitness funkce Přírodní výběr Genetické operátory Neduhy genetických algoritmů Předčasná konvergence Pomalé dokončování Genetický matching pursuit (GMPA) Reprezentace chromozomu Reprezentace genů Kódování genů a velikost prostoru Pořadí genů v chromozomu Fitness funkce Využití FT pro urychlení GMPA Způsoby vylepšení Obecná FFT akcelerace FFT akcelerace po jednom Extrakce dominantních frekvencí
6 OBSAH OBSAH 6.3 Nevýhoda FFT akcelerací Implementace GMPA Knihovny použité k implementaci EEGDSP JGAP Realizace Nové schéma MP Nová verze báze Konfigurace pro GMPA Porovnání různých implementací MP Srovnání výkonu a přesnosti Zjištění algoritmické složitosti Závěr 38 Přehled zkratek 39 Obsah CD 40 Literatura 41 A Příloha: Obrázky 42 B Příloha: UML diagramy 44 C Příloha: Uživatelská dokumentace ERP-Classifier 47 5
7 1 Úvod Matching pursuit je algoritmus, který iterativně rozkládá vstupní signál na jednoduché funkce neboli atomy. Ty vybírá z redundantního slovníku tak, aby vybraný atom co nejlépe aproximoval signál. Vybraný atom se od signálu odečte a zbytek je vstupem další iterace. Tak se po určitém počtu iterací získá lineární rozvoj, kterým se dá signál více či méně přesně rekonstruovat. Toho se dá využít ke kompresi vstupního signálu, nebo k vyhlazení a odstranění šumu. Na oddělení neuroinformatiky 1 experimentují s využitím matching pursuit při detekci tzv. evokovaných potenciálů v EEG signálu. Největším problémem tohoto algoritmu je náročnost prohledání často rozsáhlého slovníku atomů a nalezení atomu, který by nejlépe odpovídal vstupnímu signálu. Úkolem této bakalářské práce je ověřit možnost využití genetického algoritmu k tomuto účelu. Genetický algoritmus je adaptivní metoda inspirovaná vývojem druhů v přírodě. Je založená na genetických procesech a principu přežití silnějšího. Napodobováním přírodního výběru, křížení a reprodukce je schopna efektivně prohledat prostor řešení a vyvinout dobré řešení problému. Nemusí to být vždy optimální řešení, ale téměř vždy řešení uspokojivé. Část této práce je věnovaná vývoji algoritmu, který k nalezení nejlepšího atomu využívá kromě genetického algoritmu ještě Fourierovu transformaci. Jejich kombinací by se měl výběr optimálního atomu ze slovníku zrychlit. Dalším úkolem bakalářské práce je různé verze genetického algoritmu matching pursuit implementovat a porovnat jejich vlastnosti s klasickým algoritmem matching pursuit. 1 Katedry informatiky a výpočetní techniky Fakulty aplikovaných věd ZČU v Plzni 1
8 2 Matching pursuit (MP) Matching pursuit je metoda, kterou jako první prezentovali Mallat a Zhang[5]. Tento hladový (greedy) algoritmus dekomponuje předložený signál do lineárního rozvoje jednoduchých funkcí z redundantního slovníku. Tyto funkce (dále též atomy) jsou iterativně vybírány podle nejlepší shody se vstupním signálem. V každé iteraci se vybraný atom od aktuálního vstupního signálu odečte a zbytek je vstupem další iterace. Tak se od původního signálu stále ukrajuje a předpokládá se, že zbytek konverguje k nulové funkci. Dobře je to vidět na obrázku A.1 v přílohách (str. 42). V následující kapitole si podrobněji objasníme zákonitosti hlavní iterativní části algoritmu. Dále se stručně podíváme na slovníky funkcí. Kritickou částí algoritmu, na které závisí rychlost MP především, je ale výběr optimálního atomu ze slovníku. K tomuto tématu se váže oddíl Teorie Mějme redundantní slovník D = {g γ } jako množinu vektorů 1, které mají jednotkovou normu. Tato vlastnost je velmi důležitá, protože vyžadujeme, aby skalární součin vstupního signálu f a libovolného vektoru g n ze slovníku D byl délkou jejího průmětu do směru vektoru. Délka tohoto průmětu je pak zároveň modulem (váhou atomu) a n v lineární kombinaci. Takto můžeme signál pomocí všech N vektorů a jejich vah rekonstruovat. N f = a n g n (2.1) n=0 Ale vraťme se zpět na začátek. V algoritmu matching pursuit budeme muset často provádět projekci vstupního signálu na vektor a počítat residuum Rf. f = f g γ0 g γ0 + Rf (2.2) Takže Rf je zbytkový vektor po aproximaci. A protože Rf je ortogonální k 1 Pro vysvětlení, proč je řeč o vektorech, viz začátek oddílu
9 Matching pursuit (MP) Slovník funkcí g γ0, podle Pythagorovy věty platí: f 2 = f g γ0 2 + Rf 2 (2.3) Dále jednoduše převedeme na levou stranu prvek, který potřebujeme minimalizovat. Rf 2 = f 2 f g γ0 2 (2.4) Vidíme, že prvek g γ0 D musíme vybrat takový, aby maximalizoval f g γ0. Někdy ale není možné kvůli časové náročnosti výpočtu nalézt optimální vektor. Proto se musíme spokojit s nedokonalým odhadem optimálního řešení: f g γ0 α sup f g γ, (2.5) γ kde α (0, 1 je míra optimalizace, která je 1 pro nejlepší možnou aproximaci. V našem případě bude míru optimalizace zajišťovat genetický algoritmus a bude záviset na jeho parametrech. Matching pursuit je iterativní algoritmus, který dekomponuje zbytek R n f tak, že ho projektuje na nejvhodnější vektor slovníku D. Pokud dosadíme: R 0 f = f, dostaneme finální iterační formuli: R n f = R n f g γn g γn + R n+1 f (2.6) To se dá opakovat do nekonečna a je-li slovník D navržen správně, bude nám zbytek konvergovat: lim M R M f = 0. Takto rozložený signál by se pak rozhodně dal opět složit (vztah 2.1) beze ztráty informace, ale taková krajnost nebývá předmětem pro matching pursuit. Nám bude obecně stačit rozložení nanejvýš na desítky atomů. 2.2 Slovník funkcí Vstupní signál f(t) je v praktických úlohách vzorkován. Hodnota t nabývá hodnot t = 0, 1,... N 1, kde N je počet vzorků. Signál f reprezentujeme vektorem f = (f 0, f 1,... f N 1 ). Funkce slovníku pak musejí být reprezentovány obdobným způsobem a musí mít stejný počet vzorků. Jsou též prvky Hilbertova L 2 prostoru a proto pro ně platí: g = N 1 < + (2.7) i=0 3 g 2 i
10 Matching pursuit (MP) Způsob výběru optimálního atomu Nyní jsme zároveň definovali Eukleidovskou normu, kterou využijeme i dále. Pro aplikace MP se používají různé druhy slovníků. První MP, který představili Mallat a Zhang [5], pracuje s jedno dimenzionálním časově frekvenčním (time frequency) slovníkem. My budeme používat slovník Gaborových atomů, který se hodí pro aproximaci EEG signálu a identifikaci ERP komponent [6]. Atom Gaborova slovníku tvarem odpovídá Gaussově funkci modulované kosinovou funkcí. Obecné Gaborovy atomy mají následující předpis: g(s,u,v,w)(t) t u π( = e s )2 cos(vt + w) (2.8) kde parametry znamenají: s měřítko, u posunutí, v frekvence 2 a w fáze atomu. Parametry Gaborova atomu se pro zjednodušení zapisují jako γ = (s, u, v, w). Aby metoda matching pursuit fungovala správně, musíme zaručit normované Gaborovy atomy. Důvod je vysvětlen na začátku oddílu 2.1. g γ = g γ g γ g γ = Způsob výběru optimálního atomu Přestože již známe iterační formuli algoritmu matching pursuit a víme, jaké atomy budeme ve slovníku formovat, stále ještě neumíme nejlépe odpovídající atom ze slovníku vybrat. Tato část je ve skutečnosti velmi důležitá, protože určuje algoritmickou složitost i přesnost aproximace. Musíme tedy prohledat prostor slovníku a nalézt ten atom, který bude nejlépe aproximovat zadaný signál. Prohledávaný prostor je dán parametry Gaborových atomů. Rozsah každého z těchto parametrů v praxi nějak závisí na délce vstupního signálu. A protože máme čtyři parametry, velikost prostoru můžeme řádově odhadnout jako N 4 atomů. Je to velmi přibližné a 2 Ve skutečnosti se jedná o normovanou úhlovou rychlost. Nicméně v publikacích o algoritmu matching pursuit se už označení frekvence vžilo. 4
11 Matching pursuit (MP) Způsob výběru optimálního atomu většina metod si snaží nějakým způsobem ulehčit práci, takže tento odhad nemusí platit vždy. Použijeme-li k řešení metodu brutální síly, prostě postupně vytvoříme průběhy všech atomů (dosazením všech kombinací parametrů) a spočítáme jejich skalární součiny se vstupním signálem. Vybrán je atom s největším skalárním součinem. Ale tato metoda vede k algoritmické složitosti O(N 5 ), což ji činí naprosto nepoužitelnou. Mnohem lepším řešením je metoda, kterou publikovali S. E. Ferrando, L. A. Kolasa a N. Kovačević. Já čerpám informace z implementace a diplomové práce Ing. Tomáše Řondíka [8]. Tento přístup omezuje počet dosazených parametrů měřítka a posunutí a pro získání frekvence a fáze je využita rychlá Fourierova transformace. Složitost tak snižuje na O(Nlog 2 N) a aproximace je kvalitní. To byly dvě deterministické metody, které nám vždy najdou nejlepší dostupný atom ze slovníku. Když se ale vzdáme jistoty optimálního řešení, můžeme zvážit použití některé optimalizační metody, jako jsou horolezecký algoritmus (hill climbing), náhodné hledání (random search), simulované žíhání (simulated annealing) nebo genetické algoritmy (genetic algorithms). Implementaci MP za pomoci genetického algoritmu už se věnovali například Dan Stefanoiu a Florin Ionescu [2]. Jejich práce byla inspirací i pro mou implementaci algoritmu matching pursuit. 5
12 3 Fourierova transformace (FT) Každá transformace vytváří obraz originální funkce. V případě Fourierovi transformace je obrazem frekvenční spektrum S(ω) originálu s(t). Originál je funkce času, zatímco obraz je funkce úhlové rychlosti. Fourierova transformace je definována následujícím vzorcem. S(ω) = s(t)e iωt dt (3.1) Protože při digitálním zpracování nemůžeme použít spojitou Fourierovu transformaci, musíme si vystačit s její diskrétní variantou. Diskrétní Fourierova transformace (DFT) převádí navzorkovaný diskrétní signál na diskrétní frekvenční spektrum. X(k) = N 1 n=0 x(n) e i 2π N kn (3.2) V tomto vzorci je x(n) diskrétní vstupní signál. Index k je přirozené číslo, které určuje frekvenci jako násobek základní frekvence. To je taková, která má délku periody shodnou s délkou navzorkovaného signálu (první harmonická). Nultá harmonická frekvence (k = 0) je stejnosměrná složka (vertikální posunutí signálu). Každá další frekvence je k-násobek první harmonické. X(k) je komplexní číslo, jehož absolutní hodnota představuje amplitudu a úhel fázi dané frekvence. Oproti spojité variantě musíme počítat s jistými omezeními. Jednak v navzorkovaném signálu nejsou frekvence vyšší, než je polovina vzorkovací frekvence. Dále pak DFT dává správný výsledek jen u frekvencí, které v délce navzorkovaného signálu mají celý počet period (proto k N). Z toho vyplývá že nemůžeme transformovat frekvence, jejichž perioda je delší než vstupní signál. Tím je pak jasně určeno jaké frekvence dostaneme na výstupu DFT. Celé spektrum je pak sloupcová matice komplexních čísel X. Pro každé k, vznikne ze vzorce dva jeden řádek ve čtvercové transformační matici A. Sloupcová matice x je vstupní signál. 6
13 Fourierova transformace (FT) X = Ax (3.3) W 0... W (N 1) 0 A = [W nk W W (N 1) ] =..... W 0 (N 1)... W (N 1)2 (3.4) W = e i 2π N (3.5) Vztah (3.3) ukazuje rovnici transformace. Vstupní signál x o délce N násobíme transformační maticí A. Výstupem je sloupcová matice X. Její výška odpovídá délce vstupního signálu. Druhý vztah (3.4) ukazuje transformační matici A. Index k je zde číslo řádku. Index n je číslo sloupce v matici A a zároveň číslo vzorku v x. Oba indexy mají maximální hodnotu N 1. W je základní frekvence vyjádřená komplexním číslem, které je pro dané N konstantní. Počet frekvencí, které DFT transformuje, je N/2, a proto je spodní polovina matic A a X zbytečná. Dále při výpočtu této matice dochází k redundantním výpočtům. Proto má algoritmickou složitost O(N 2 ). Pro jejich odstranění a urychlení výpočtu byl vytvořen algoritmus rychlá Fourierova transformace (FFT), který má složitost jen O(Nlog 2 N). Více informací o FFT naleznete ve skriptech [3]. 7
14 4 Genetické algoritmy (GA) Informace o genetických algoritmech jsem čerpal z [1] a [7]. Genetické algoritmy jsou adaptivní metody, které se používají pro vyhledávání a optimalizaci řešení problémů. Jsou založeny na genetických procesech živých organismů a principech přirozeného výběru a přežití silnějších. Genetické algoritmy simulují život populace řešení, která evolučním cyklem přechází z generace do generace a pomalu sílí. Obdobou boje o přežití jsou v GA selekce na konci každého evolučního cyklu, při kterých jsou špatná řešení (slabí jedinci) odstraněni a jejich místa v populaci jsou zaplněna novými řešeními. Generací bývá zpravidla několik desítek až set a z té poslední se vybírá nejlépe přizpůsobený jedinec, kterého považujeme za řešení problému. Řešení nebývá zcela optimální, ale většinou je přijatelné. GA obsahuje i obdobu soupeření o možnost zplození potomků. Přitom platí, že ta nejlepší řešení mají relativně velký počet potomků, zatímco ta horší mají potomků málo, nebo vůbec žádné. Tento fakt vede k tomu, že geny dobrých možností řešení se šíří populací a zvyšují svůj počet v každé následující generaci. Přírodní výběr - nahrazení starých jedinců novými Množina potomků Populace Reprodukce Selekce - výběr rodičů pro křížení Reprodukční jezírko Obrázek 4.1: Evoluční cyklus Přirozeně pak křížením dvou dobrých rodičovských chromozomů může 8
15 Genetické algoritmy (GA) Základní princip vzniknout vynikající potomek, jenž svou silou převyšuje oba své rodiče. To je důvod, proč GA tak dobře fungují. Dobré geny se neztratí, ale přežijí v kombinaci s dobrými geny od jiných jedinců. Jedinci populace jsou ohodnoceni takzvanou silou jedince (fitness score), což je číselná hodnota, která ohodnocuje kvalitu řešení problému (míru přizpůsobení). 4.1 Základní princip Abychom mohli problém úspěšně řešit genetickým algoritmem, musíme zvolit vhodné kódování a reprezentaci řešení. Pracujeme také s funkcí síly (fitness function), která nám ohodnotí každé řešení. V každém cyklu algoritmu provádíme výběr rodičů pro reprodukci, abychom získali nové potomky a přírodní výběr do další populace. Následuje tradiční algoritmus podle [1]. BEGIN /* genetický algoritmus */ generování počáteční populace výpočet síly všech jedinců WHILE NOT hotovo DO BEGIN /* evoluční cyklus - tvorba další generace */ FOR velikost_populace / 2 DO BEGIN /* reprodukce */ výběr dvou jedinců staré generace /* preferují se ty silnější */ rekombinace dvou rodičů nám dává dva potomky výpočet síly potomků vložení potomků do populace END END END výběr jedinců do další generace IF ukončující_podmínka_splněna THEN hotovo := TRUE 9
16 Genetické algoritmy (GA) Základní princip Kódování chromozomu a reprezentace řešení Reprezentací jednoho možného řešení úlohy bývá nejčastěji množina parametrů. Parametry řešení považujeme za geny, které spojené do řetězce tvoří chromozom. Gen je základním nositelem genetické informace. V genetice je soubor všech genetických informací označován jako genotyp. Genotyp obsahuje informace potřebné pro sestavení organismu. Skutečným projevem genotypu po sestavení je fenotyp. Fenotyp je soubor všech pozorovatelných vlastností organismu. Síla jedince pak úzce souvisí s vlastnostmi fenotypu. S porušením (mutací) kódu jednoho genu se přenášená informace pravděpodobně výrazně změní. Dopad této změny na informaci přenášenou celým chromozomem a tedy i na fenotyp bude mít zejména v závislosti na funkci tohoto genu. Například změna parametru posunutí (na ose x) u periodické funkce, nebude mít zdaleka takový dopad jako posun funkce neperiodické Fitness funkce Funkce síly (Fitness function) musí být definována pro všechny relevantní genotypy. Ve výsledku nám ohodnotí zvolený chromozom reálným číslem hodnotou síly (fitness), která nám poslouží při porovnávání kvality různých řešení. Kdyby úlohou GA bylo najít globální maximum nějaké funkce, fitness bychom získali prostým dosazením hodnot genů za vstupní parametry funkce. Pro takovou úlohu ale existují mnohem spolehlivější a jednodušší metody, proto pro komplexnější úlohy musíme často zvolit vhodné otestování výsledného fenotypu. Pokud to jde, vyzkoušíme ho přímo v praxi, nebo co nejpřesvědčivější simulaci. Přitom jednoduše platí, že výstupní hodnota fitness funkce je vyjádření vlastnosti (nebo vlastností) které budeme maximalizovat Přírodní výběr Přírodní výběr je základním nástrojem GA pro vytvoření tlaku na populaci. Přísnější výběr nechává přežít jen ty opravdu nejsilnější, na kterých je, aby svými potomky zaplnily místo v populaci, které museli slabší jedinci uvolnit. 10
17 Genetické algoritmy (GA) Základní princip To má pochopitelně vliv na poměr prohledávání prostoru a zlepšování řešení. Oba tyto aspekty jsou pro GA důležité a při volbě tlaku na populaci bychom měli mít na paměti, že jejich nevyváženost povede k podpoře neduhů GA, jako jsou předčasná konvergence a pomalý závěr (oddíl 4.2). Rozlišujeme dva základní druhy přírodních výběrů před a po aplikaci genetických operátorů. Některé konkrétní způsoby výběru se používají v obou případech, některé jsou specifické pro jeden z nich. První druh (před genetickými operátory) je určen k vybrání jedinců do takzvaného rozmnožovacího jezírka a ten představuje vliv konkurence mezi členy populace. Z něho se vybírají jedinci pro křížení, dokud není jezírko prázdné. Obvykle se do jezírka vytvářejí kopie jedinců, jejichž počet nějak závisí na jejich síle. Otázkou ale je podle jakého pravidla. Má mít čtyřikrát silnější jedinec čtyřikrát více potomků nebo má počet příležitostí k rozmnožení záviset pouze na pořadí? V každém případě se ukázalo, že značná převaha silnějších vede k předčasné konvergenci. Druhou podskupinou jsou selektory aplikované na přemnoženou populaci po sloučení původní generace rodičů s množinou potomků. Tyto selektory představují vliv prostředí. Selekcí by se měla velikost populace vrátit na stanovenou velikost. Výběr nejlepších Nejjednodušší způsob je asi selekce nejlepších. Jedinci se seřadí podle síly a určité procento (nebo přesně tolik, kolik přebývá) se z populace vyřadí. Je to možná až příliš striktní selekce, která ignoruje vliv náhody na přírodní výběr. Výběr ruletou Dalším způsobem je selekce ruletou. Po seřazení se fitness hodnoty všech jedinců přetransformují tak, aby jejich součet dával jedna. Náhodně vygenerované číslo od nuly do jedné pak určí vybraného jedince do další generace. 11
18 Genetické algoritmy (GA) Základní princip Výběr soutěží Třetí způsob, výběr soutěží, vybírá zcela náhodně několik jedinců do soutěže. Jejich počet bývá dva, nebo o něco více. Nejlepší z nich postupuje do další generace. Volbou větších turnajů zvyšujeme tlak na přizpůsobení jedinců a tím klademe důraz zlepšování na úkor prohledávání prostoru. Můžeme ale také vítěze turnaje vybrat jen s určitou pravděpodobností (typicky kolem 0,9) a tak naopak dát šanci slabším jedincům. Vzhledem k tomu, že poslední zmiňovaný nevyžaduje pro svou funkci řazení, bude patřit k těm rychlejším implementacím přírodního výběru Genetické operátory Během fáze reprodukce jsou vybírány dvojice a jejich chromozomy jsou zkombinovány za účelem získání potomků, kteří budou mít možnost stát se součástí další generace. Rodiče jsou vybráni náhodně, ale většinou existuje určité zvýhodnění těch s vyšší silou. Dva chromozomy vybraných jedinců poté křížíme. Nejtypičtější konfigurace reprodukce je dvojice genetických operátorů crossover a mutace. Křížení (crossover) Křížení je většinou hlavní genetický operátor. Při běžném křížení se náhodně zvolí takzvaný bod křížení. Ten udává začátek sekvence v chromozomu, kterou si chromozomy vymění. Tím vzniknou nové chromozomy dvou potomků a každý z nich má části genetické informace obou rodičů. Tomuto způsobu se říká v originále single-point crossover. Většinou se aplikuje na všechny dvojice, ale lze ho použít i s určitou pravděpodobností. Tak může docházet k tomu, že se rodiče jen replikují bez porušení jejich genotypů a ke zkřížení vlastně nedojde. Bodů křížení můžeme použít i více. Druhý bod pak označuje místo konce vyměňované sekvence. Třetí označuje začátek další výměny a tak to stále pokračuje. 12
19 Genetické algoritmy (GA) Neduhy genetických algoritmů bod křížení rodiče potomci Obrázek 4.2: Grafické znázornění křížení (nahoře) a mutace (dole) binárního genu Mutace Mutace se provádí obvykle ihned po křížení, ale jen u malého procenta jedinců (typicky 0,001). Je jen doplňkovým mechanismem prohledávání prostoru. Mutace jen zaručuje, že žádná část prostoru nemá nulovou šanci na prohledání a částečně brání přílišné unifikaci jedinců populace. 4.2 Neduhy genetických algoritmů Na začátku každého GA pracujeme s náhodně vygenerovanou počáteční populací. I jejich fitness hodnoty jsou více méně náhodné a jejich rozsah poměrně veliký. Po několika generacích začne populace konvergovat (ze začátku pravděpodobně k několika vhodným místům v prostoru). Jak populace konverguje, rozdíl mezi maximální a průměrnou fitness hodnotou se zmenšuje a to je znakem dvou častých nedokonalostí GA. 13
20 Genetické algoritmy (GA) Neduhy genetických algoritmů Předčasná konvergence Předčasná konvergence je poměrně běžný problém, se kterým je třeba při návrhu počítat. V populaci vznikne skupina jedinců poměrně silnějších než většina ostatních, která přirozeně dostane více příležitostí k rozmnožení a začne v populaci jednoznačně dominovat. To zní jako normální princip GA, ale tento proces nesmí nastávat příliš rychle. Dominantní skupina totiž může ovládnout populaci a tak ji stáhnou do lokálního maxima, ze kterého se těžko dostává ven. Tento jev není nepodobný tomu, který nastává u horolezeckého algoritmu. Má-li se populace dostat z lokálního maxima, musí zapůsobit mutace, protože křížení předčasnou konvergenci způsobuje. Pokud předčasná konvergence nastává často, GA degraduje náhodné prohledávání. Několik zajímavých návrhů jak předčasné konvergenci předcházet naleznete ve článku [1] od strany Pomalé dokončování Pomalé dokončování je do jisté míry opačným jevem k předčasné konvergenci. V případě, že GA je těsně před nalezením globálního maxima, musí mutace pravděpodobně generovat pouze horší řešení, která nejsou k ničemu. Algoritmu pak trvá dlouho nalézt to opravdu nejlepší řešení, přesto že ho má na dosah. 14
21 5 Genetický matching pursuit (GMPA) Základní princip GMPA je shodný s algoritmem matching pursuit. GMPA, stejně jako MP, v každé iteraci provádí výběr atomu ze slovníku funkcí. Vybrané atomy si s jejich vahami ukládá a odečítá od vstupního signálu, dokud neprovede určený počet iterací. Jediný rozdíl je v tom, jaký algoritmus GMPA využívá k výběru nejvhodnějšího atomu ze slovníku. K tomuto účelu používá genetický algoritmus, který pracuje s populací chromozomů, kde každý chromozom reprezentuje jeden atom. My budeme používat slovník Gaborových atomů. Populace GA se na začátku naplní náhodně vygenerovanými chromozomy, několika prvotními nástřely aproximace vstupního signálu Gaborovým atomem. Atomy (resp. jejich chromozomy) jsou ohodnoceny podle míry shody se signálem a následně populace projde několika evolučními cykly. Evoluční cyklus se skládá ze tří základních procesů (výběr, reprodukce a nahrazení) a jimi populaci vyvíjí. Když přejde populace do poslední generace, vybere se z ní nejlépe ohodnocený chromozom, který považujeme za řešení úlohy Gaboruv atom, který bude vybrán ze slovníku. Nyní se budu věnovat částem GA, které musí korespondovat s řešenou úlohou. Jedná se o reprezentaci chromozomu a fitness funkci. Ukážeme si, jak by se měly řešit v kontextu GMPA, protože na nich závisí, jestli bude GA řešit úlohu výběru atomu správně a efektivně. 5.1 Reprezentace chromozomu Jak bylo řečeno, populace je tvořena chromozomy, které reprezentují Gaborovy atomy. Gaboruv atom je určen čtyřmi parametry. Tedy i chromozom atomu bude tvořen čtyřmi geny, z nichž každý bude obsahovat číselnou hodnotu pro určení měřítka, pozice, frekvence nebo fáze atomu. Takto vypadá chromozom pro reprezentaci Gaborova atomu: θ = (měřítko pozice frekvence fáze) 15
22 Genetický matching pursuit (GMPA) Reprezentace chromozomu V následující části se budeme zabývat tím, z jakých typů genů se dá takový chromozom složit. Vhodná reprezentace chromozomu zaručuje dostatečnou přesnost aproximace a také rychlost řešení dané úlohy Reprezentace genů Parametry atomu mají přirozeně vymezené rozsahy hodnot, které závisí na délce vstupního signálu, takže od reprezentace genů budeme vyžadovat možnost snadného nastavení rozsahu. Dalším kritériem je velikost prostoru, kterou může reprezentace genů ovlivnit. Parametry atomu jsou reálné hodnoty a my máme tři možnosti reprezentace genů: gen reprezentovaný proměnnou typu double binární gen gen reprezentovaný proměnnou typu integer Gen reprezentovaný proměnnou typu double Takovýto gen by mohl jako jediný přímo nést hodnoty parametrů a to s obrovskou přesností. Dají se mu také snadno nastavit omezující hranice. Nevýhodou takových genů ale je, že vytváří obrovský prohledávaný prostor. Naším cílem je, mít prostor co nejmenší, aby bylo jeho prohledání snadné a rychlé. Binární gen Binární gen je nejtradičnější reprezentací genu a na rozdíl od obou zbývajících typů umožňuje provádění operace křížení, která nejvíce připomíná křížení v přírodě. Bod křížení může padnout i doprostřed genu. To má výhodu i nevýhodu zároveň. Zasažený gen je roztržen na dvě části a tak vlastně dojde k porušení informace, kterou gen nesl. Výhodou je, že výsledek v narušeném genu je tak napůl náhodné číslo, což samozřejmě přispívá k prohledávání prostoru. Binární gen by ale byl pro GMPA použitelný jen s omezeními. U binárního genu se totiž nedají snadno nastavit omezující hranice. Ze spodu je vždy omezen nulou a shora se dá nastavit maximální hodnota jen na 2 b 1, kde můžeme volit toliko b počet využitých bitů. Použitelnost binárního genu také předurčuje jeho vhodná implementace. Část knihoven pro implementaci GA binární gen pojímají jako řetězec 32 intergerů, což musí být extrémně neúsporné jak datově, tak časově. 16
23 Genetický matching pursuit (GMPA) Reprezentace chromozomu Gen reprezentovaný proměnnou typu integer Gen reprezentovaný proměnnou typu integer také není zcela ideální, ale převažují u něj dobré vlastnosti. Možnost nastavení rozsahu genu omezena pouze rozsahem integeru. Nevýhodou je, že stejně jako gen reprezentovaný doublem umožňuje pouze omezené křížení. Tím myslím, že bod křížení může být umístěn jen mezi geny. Schopnost prohledávání prostoru je tak operátoru křížení omezena. Tento nedostatek se dá ale vyvážit zvýšením četnosti mutace. Pro reprezentaci parametrů Gaborova atomu bych tedy preferoval gen reprezentovaný proměnnou typu integer. Ještě by se dal použít binární gen ve správné implementaci, tj. jedním integerem. Binární gen by nám ale znepříjemňoval nastavování rozsahu genu. Řešením pro tento problém by mohla být podmínka, že délka vstupního signálu musí být vždy mocnina dvou Kódování genů a velikost prostoru Kódováním genu je myšleno, jakým způsobem přepočteme číslo uložené (zakódované) v genu na parametr, který má představovat. Rozhodl jsem se použít pro použití genu reprezentovaného proměnnou typu integer. Je také vhodné, předtím než budeme pokračovat, podívat se znovu na vzorec Gaborova atomu (vztah (2.8)). Frekvence a fáze Tyto dva parametry ovlivňují vlastnosti kosinové modulace. Ale parametr, který se obecně v kontextu MP nazývá frekvence, ve skutečnosti frekvencí není. Jedná se o normovanou úhlovou rychlost (ω N ). f = ω Nf vz 2π kde f vz je vzorkovací frekvence. Protože na následujících řádcích budu nucen používat i pojem frekvence f, je vhodné vrátit se na okamžik k obecně uznávaným názvům jednotek a předejít tak nedorozumění. Mějme vstupní signál x = (x 0, x 1,... x N 1 ), který má N vzorků. Nejmenší možnou frekvencí f min ve vstupním signálu je frekvence, jejíž počet vzorků na periodu je N. Tak můžeme zjistit i minimální ω N (ω N,min ), což je změna 17,
24 Genetický matching pursuit (GMPA) Reprezentace chromozomu úhlu na jeden vzorek signálu pro f min. Dá se spočítat jako ω N,min = 2π/N a je konstantní pro danou délku signálu. Minimální úhlovou změnou a číslem harmonické frekvence k N pak můžeme určit libovolnou ω N podle vztahu: ω N (k) = k ω N,min Normovaná úhlová rychlost (pro danou harmonickou k) je změna úhlu na vzorek. Když je ω N vysoká, je perioda signálu krátká. Pro nízkou ω N je delší. Číslo k mi tedy jednoznačně určuje ω N a tím i frekvenci. Je to proto vhodná veličina k umístění do jednoho z genů chromozomu. Zbývá určit horní hranici genu pro danou délku signálu. Nejvyšší pozorovatelná frekvence v signálu má dva vzorky na periodu, tj. ω N rovnou π. Hodnota k pro takovou frekvenci je rovna N/2. Tak jsme definovali rozsah a kódování genu. Ponese číslo harmonické, které může nabývat hodnot od 1 do N/2. Fáze (ϕ) může nabývat hodnot od 0 do 2π, proto využijeme minimální úhlové změny a podobného vzorce jako pro normovanou úhlovou rychlost: ϕ(l) = l ω N,min, kde l = 0, 1,... N. Docílili jsme tak potřebného rozsahu fáze a vytvořili proměnou l, která bude kódována dalším genem. Měřítko a posunutí Měřítko (s) a posunutí (p) jsou parametry, které ovlivňují Gaussovu funkci. Čím je měřítko větší, tím je atom roztaženější do stran. Zvětšující se posunutí pohybuje atomem doprava. Maximální hodnota obou těchto vlastností je obvykle N. Spodní hranice posunutí je nula. Nulové posunutí znamená, že je střed atomu úplně na začátku. Pro měřítko se volí minimální hodnota 2. Atom s tak malým měřítkem už je opravdu úzký. Měřítko a posunutí jsou sice ve skutečnosti reálné hodnoty, přesnost na celá čísla ale úplně stačí. Můžeme dokonce zavést krok těchto parametrů a tím zmenšit prostor na úkor přesnosti. s(m) = m s p(n) = n p Když nastavíme kroky obou například na 4, prohledávaný prostor se zmenší 16krát a to bez znatelného dopadu na přesnost aproximace. Krok větší než 18
25 Genetický matching pursuit (GMPA) Fitness funkce 10 už by se asi na kvalitě mohl podepsat. Proměnné m a n budou tedy kódovány zbylými geny, ale jejich rozsahy se musí změnit podle velikosti kroků. Proměnná m začíná od jedné, aby nejnižší možné měřítko bylo co nejblíže 2 a vždy větší než nula. m = 1, 2,... N s n = 0, 1, 2... N p Pokud N je číslo nedělitelné s či p beze zbytku, zaokrouhlujeme dolů Pořadí genů v chromozomu Pořadí genů v chromozomu nemá vliv na rekonstruovaný atom, může ale ovlivnit efektivitu vývoje jedinců. Platí, že geny, které mají jistou souvislost, by měly být umístěny blízko sebe, aby dobré kombinace genů měly větší šanci přejít do další generace pohromadě. Chromozom Gaborova atomu je tvořen dvěma logickými dvojicemi genů. Dvojice měřítko a posunutí nastavují Gaussovu funkci a frekvence s fází určují průběh kosinové funkce. Žádné další logické vztahy nejsou zřejmé, a proto chromozom reprezentující atom může vypadat takto: θ = (m, n, k, l) 5.2 Fitness funkce Fitness funkce je nástroj GA, který ohodnocuje chromozom hodnotou síly (fitness). V kontextu GMPA je posuzovanou vlastností míra podobnosti Gaborova atomu se vstupním signálem. Z iterační formule MP (vzorec (2.6)) víme, že úkolem GA bude vyřešit následující maximalizační problém: max x g γ, γ kde x je vstupní signál a g γ je normovaný Gaborův atom, který je určen vektorem parametrů γ. Ten zase závisí na chromozomu θ. 19
26 Genetický matching pursuit (GMPA) Fitness funkce Fitness funkce bude založená na skalárním součinu. Jako skalární součin ale může vycházet i záporné číslo. Co to znamená, když algoritmus najde atom, jehož skalární součin je zcela minimální? To znamená, že algoritmus nalezl řešení, ale s přesně opačnou fází. Ve vztahu (2.1), je proměnná modulus ( a n ) reálné číslo. Proto princip MP nezakazuje použití přesně opačných řešení, pokud bude vynásoben správným (záporným) modulem. Takže ohodnocovat řešení genetického algoritmu můžeme pomocí skalárního součinu v absolutní hodnotě: max x g γ γ Velice špatná řešení tedy od teď považujeme naopak za velice dobrá. Kromě toho křížení záporných řešení s kladnými genetickému algoritmu nijak neuškodí a to nás vede ještě k malému bonusu. Jsou-li řešení se záporným a kladným skalárním součinem ekvivalentní, jeden z poloprostorů daných hodnotou fáze (0 π a π 2π) nepotřebujeme. Dále už můžeme používat rozsah fáze jen od 0 do π, a tím se nám prohledávaný prostor ještě 2krát zmenší. 20
27 6 Využití Fourierovy transformace pro urychlení algoritmu matching pursuit Velikost prohledávaného prostoru (a tím i rychlost prohledání) udávají parametry Gaborových atomů. Cílem je tedy vždy prostor co nejvíce zmenšit. Kdybychom měli metodu, která dokáže ze signálu rychle a přesně vypočítat některé parametry, předali bychom je GA jako konstanty a ten už by jen doladil ty zbývající. Prostor by se tak radikálně zmenšil. Vhodná metoda existuje, jmenuje se diskrétní Fourierova transformace (viz kapitolu 3). Já ale použiji její rychlejší variantu FFT. Fourierova transformace převádí signál z časové do frekvenční oblasti. To znamená, že v jejím výstupu se dají nalézt frekvence s vysokou amplitudou a k frekvencím také získat příslušné fáze. To jsou dva parametry ze čtyř, které bych získal rychlou deterministickou metodou a při prohledávání slovníku genetickým algoritmem bych je považoval za konstantní. GA by měl na jejich základě rycleji najít atom, který by velmi dobře aproximoval vstupní signál. Na mě bylo zjistit, jestli takový algoritmus může fungovat, jestli je frekvence s vysokou amplitudou vhodná pro formování nejlepšího atomu a jestli to vůbec vede k urychlení algoritmu. Podařilo se mi vymyslet dva podobné algoritmy založené na tomto principu: GMPA s obecnou FFT akcelerací GMPA s FFT akcelerací po jednom. Pro jejich fungování potřebujeme algoritmus, který umí z výstupu FFT získat určitý počet dominantních frekvencí (frekvencí s vysokou amplitudou). Tomuto algoritmu se věnuje oddíl
28 Využití FT pro urychlení GMPA Způsoby vylepšení START Inicializace Z pole vyber dvojici parametrů, která je na řadě Použij FFT k získání frekvenčního spektra sinálu Předej signál a parametry slovníku, ten vrátí nejpodobnější atom Z výstupu FFT se pokus získat tolik frekvencí a fází, aby to stačilo pro všechny iterace, a ulož je do pole Vlož atom do kolekce a odečti ho od signálu Spotřebovali jsme všechny parametry? ne Spusť tento algoritmus rekurzivně k získání zbytku atomů ano Sluč kolekce do jedné ne Máme dost atomů? ano KONEC Obrázek 6.1: Vývojový diagram genetického algoritmu matching pursuit s obecnou FFT akcelerací 6.1 Způsoby vylepšení Obecná FFT akcelerace Hlavní část tohoto vylepšení probíhá těsně před iteračním cyklem MP. Nejprve se spustí FFT, která přetransformuje vstupní signál na frekvenční spektrum. Dalším úkolem je ve spektru nalézt dominantní frekvence. MP potřebuje tolik frekvencí (a k nim příslušných fází), kolik má vytvořit atomů. Když získá pole frekvencí a fází, začne je postupně předkládat algoritmu na prohledání prostoru, který těmto dvěma parametrům vždy dohledá měřítko a posunutí. Tím má značně ulehčenou práci a mělo by dojít k výraznému urychlení a dokonce i zpřesnění výsledků. 22
29 Využití FT pro urychlení GMPA Způsoby vylepšení Co se stane v případě, že tento algoritmus ve výstupu FFT nenalezne dostatečný počet dominantních frekvencí? V tom případě použije ty, co má, a spustí tentýž algoritmus rekurzivně s residuem na vstupu pro vytvoření zbývajících atomů. Po jeho skončení výsledky sloučí. Předpokládá se, že všechny frekvence jsou v signálu od začátku obsaženy. To je samozřejmě pravda, ale nedostatečná přesnost frekvence způsobuje, že při aproximaci určité části signálu atomem vzniká v signálu atom trochu jiné frekvence, na který už algoritmus není schopen zareagovat. Tento jev ukazuje obrázek A.2 v přílohách. A to je zdrojem chyb, které znatelně kazí celkovou aproximaci FFT akcelerace po jednom V reakci na chyby GMPA s obecnou FFT akcelerací jsem navrhl ještě další metodu. Ta se od předchozí liší zejména tím, že výpočet frekvenčního spektra probíhá pro každý atom zvlášť. START Inicializace Předej signál slovníku Použij FFT k získání frekvenčního spektra signálu Z výstupu FFT získej jednu frekvenci s fází Vlož atom do kolekce a odečti ho od signálu Spusť genetický algoritmus, který najde suboptimální atom s danou frekvencí a fází ne Máme dost atomů? ano KONEC Obrázek 6.2: Vývojový diagram genetického algoritmu matching pursuit s FFT akcelerací po jednom 23
30 Využití FT pro urychlení GMPA Extrakce dominantních frekvencí MP běžným způsobem spustí iterační cyklus a přejde k hledání atomu ze slovníku. Před spuštěním GA se použije FFT k vytvoření diskrétního frekvenčního spektra a v něm se vyhledá pouze jedna nejdominantnější frekvence. Dopočítá se fáze a tyto dva parametry se použijí pro snadnější nalezení atomu genetickým algoritmem. V další iteraci se vše opakuje. Hledáme-li k atomů, FFT a analýza frekvenčního spektra poběží k-krát, ale to není velká časová zátěž. Tento algoritmus vykazuje také dobré výsledky a k tomu ještě řeší problém svého předchůdce. 6.2 Extrakce dominantních frekvencí Výstup FFT je pole komplexních čísel o délce N (N je také délka vstupního signálu), ale stačí prozkoumat jen první polovinu, protože výstup se od poloviny opakuje zrcadlově obrácený. Z každého prvku pole můžeme získat všechny potřebné informace. Když máme n = 1, 2,... N/2, pak pro komplexní číslo c n = (r n, i n ) platí: ϕ n = ϕ(c n ) = f n = f(n) = n 2π N NaN pokud r n = 0 i n = 0 π/2 pokud r n = 0 i n > 0 π/2 pokud r n = 0 i n < 0 arctg in r n pokud r n > 0 π + arctg in r n pokud r n < 0 A n = A(c n ) = r 2 n + i 2 n Amplitudy, absolutní hodnoty komplexních čísel, tvoří průběh od A 1 do A N/2 (na indexu nula je tzv. stejnosměrná složka). První část algoritmu zjistí indexy lokálních maxim v tomto průběhu. Ukazuje to obrázek 6.3 na straně 27 a následující pseudokód. 24
31 Využití FT pro urychlení GMPA Extrakce dominantních frekvencí BEGIN /* najdi lokání maxima mezi amplitudami */ INPUT c /* pole komplexních čísel, výstup FFT */ count := 0 current := c[1].abs() next := c[2].abs() IF current > next THEN BEGIN maxs[count] := 1 count := count + 1 END i := 2 FOR i < N/2 DO BEGIN previous = current current = next next = c[i+1].abs() IF previous < current AND current > next THEN BEGIN maxs[count] := i count := count + 1 END i := i + 1 END OUTPUT maxs o délce count END Získal jsem pole indexů lokálních maxim v průběhu amplitud. Nyní potřebuji nalézt určitý počet těch největších amplitud. K tomu mohu použít modifikaci algoritmu Selection sort 1. Nechám si seřadit pouze k indexů podle velikosti amplitudy. Za k se může dosadit třeba počet atomů, které má MP vytvořit. Průběžně se pomocí vybraných indexů vytváří pole frekvencí a fází. 1 Tento způsob řazení v každé iteraci vybere nejlepší prvek z aktuálního rozsahu a vymění ho s prvním prvkem rozsahu. Rozsah na začátku zahrnuje celé pole a po každé iteraci se zkracuje, jak se z leva zvětšuje seřazená část, až je pole seřazené celé. 25
32 Využití FT pro urychlení GMPA Nevýhoda FFT akcelerací BEGIN /* najdi k největších */ INPUT k /* požadovaný počet frekvencí */ j := 0 IF k > maxs_length THEN count := maxs_length ELSE count := k FOR count DO BEGIN index := najdi v poli maxs (v rozmezí od j do konce) index, který označuje nejdominantnější frekvenci vyměň ho s j-tým v poli maxs /* aby byl příště mimo rozmezí */ j := j + 1 /* frekvenci ulož */ dominants <= index * (2PI / N) /* ulož také fázi*/ dominants <= vypočti fázi z c[index] END v poli dominants máme count frekvencí a fází /* většinou je count = k */ END 6.3 Nevýhoda FFT akcelerací FFT akcelerace jsou velmi prostá vylepšení a z toho vyplývá nevýhoda, která se může občas projevit. Tyto metody analyzují signál pomocí FFT poměrně málokrát a vždy po celé délce. Algoritmy příbuzné Fourierově transformaci zjišťují, jakou amplitudu a fázi mají jednotlivé harmonické frekvence, ale ne v jakém místě. Výsledné amplitudy a fáze jsou vlastně průměrované. 26
33 Využití FT pro urychlení GMPA Nevýhoda FFT akcelerací amplituda maxs - pole indexů lokálních maxim = N/2-1 číslo harmonické frekvence Obrázek 6.3: Vyznačená lokální maxima v průběhu amplitud harmonických frekvencí; Jejich indexy (čísla harmonické) se uloží do pole. Mějme situaci, kdy se ve vstupním signálu na různých místech nacházejí dva atomy stejné frekvence a rozdílné fáze. Transformace pravděpodobně odhalí výskyt frekvence, ale fázi určí chybně jako průměr obou. GA pak obdrží nepřesný parametr, a kvůli tomu se mu nepodaří spolehlivě aproximovat ani jeden z atomů vstupního signálu. Tento případ je sice na naměřených datech dost nepravděpodobný, ale je nutno přiznat, že to riziko existuje. 27
34 7 Implementace GMPA Při implementaci genetického matching pursuit jsem se z velké části opíral o informace z diplomové práce ing. Tomáše Řondíka [8], webových stránek JGAP ( a semestrální práce Petra Kellnhofera [4]. 7.1 Knihovny použité k implementaci K implementaci byly použity dvě knihovny, které my výrazně usnadnily návrh tříd a struktury. Většinu tříd jsem mohl oddědit a převzít zavedené principy EEGDSP Následující odstavec je převzat ze stránky ( research/downloads/product-detail-en.html?produkt_id=101) a mírně upraven. EEGDSP je knihovna pro zpracování signálů zaměřená na EEG/ERP signály. Poskytuje jednotné rozhraní pro práci s rychlou Fourierovou transformací, waveletovou transformací (diskrétní i spojitou variantou) a matching pursuit algoritmem, které obsahuje. Výstupy jednotlivých metod jsou ukládány do autory navržených kolekcí, které umožňují jejich efektivní zpracování. Autorem většiny kódu je Ing. Tomáš Řondík. Kódy přepracoval do podoby univerzální snadno použitelné a rozšiřitelné knihovny Petr Kellnhofer, který také navrhl strukturu a rozhraní metod zpracování signálu. V současnosti je EEGDSP jedním z projektů Katedry informatiky a výpočetní techniky na Fakultě aplikovaných věd ZČU v Plzni, který je stále vyvíjen studenty a pracovníky KIV. Pro mou práci jsem využil především zkušeností autorů se zpracováním signálu pomocí metody matching pursuit, kterou jsem rozšiřoval a modifikoval. Využil jsem také rychlou Fourierovu transformaci jako součást vylepšení 28
35 Implementace GMPA Knihovny použité k implementaci GMPA. UML diagram MP algoritmu, části EEGDSP, naleznete v příloze B (Obrázek B.1) JGAP JGAP je nástroj na vytváření genetických algoritmů a genetického programování. Poskytuje nástroje k řešení úloh pomocí evolučních a genetických principů. Jeho základní užívání je v zásadě velmi jednoduché. Stačí splnit několik jednoduchých kroků: 1. Vytvořit instanci třídy DefaultConfiguration 2. Vytvořit vzorový chromozom (instanci Chromosome) a vložit do ní vzorové geny (instance Double/Interger/BinaryGen - existují i další typy a chromozom může obsahovat více typů najednou) 3. Implementovat vlastní fitness funkci (dědit od třídy FitnessFunction) 4. Nastavit velikost populace a konfiguraci předat instance fitness funkce a vzorového chromozomu konfiguraci 5. Založit novou populaci (typu Genotype) a spustit evoluci na určený počet generací A předpřipravený genetický algoritmus řeší vaši úlohu. Pokročilí uživatelé ocení, že je JGAP modulární. Je tedy možné složit si vlastní konfiguraci GA jako ze stavebnice. Pro ještě pokročilejší uživatele, kteří nejsou spokojeni s nabídkou modulů, je v mnoha případech snadné knihovnu modifikovat a doplnit o vlastní části. Popravdě, některé části se ale svému přepsání sveřepě brání. Zejména tím, že mají pro nezasvěceného uživatele příliš složitou metodu clone(), bez které nemůže nová implementace správně fungovat. Nicméně, knihovna obsahuje mnoho příkladů, ze kterých se začátečník naučí JGAP používat a může se inspirovat pro vlastní projekty. UML diagram základních tříd knihovny naleznete v příloze B (Obrázek B.2). 29
36 Implementace GMPA Realizace 7.2 Realizace Metodu GMPA jsem naprogramoval v jazyce Java SE (verze 1.7) za pomoci vývojového prostředí NetBeans. Implementace algoritmu je součástí projektu ERP-Classifier. ISignalProcessor +processsignal(double[]): MatchingPursuitResult EEGDSP MatchingPursuit +MatchingPursuit() +getbases(): List<Base> +getiterationcount(): int +setiterationcount(): int +processsignal(double[]): MatchingPursuitResult +MPFFT() +getbases(): blocked MPFFT +GMPA() +getbases(): blocked +getmode(): int +setmode(int): void GMPA Obrázek 7.1: Nové schéma algoritmů matching pursuit Nové schéma MP Jako první jsem si musel přizpůsobit hlavní třídu MatchingPursuit, protože v knihovně EEGDSP je tato třída implementována podle návrhového vzoru singleton. Což se vylučuje s použitím metody ve více vláknech a také znemožňuje od této třídy dědit. Singleton totiž nemá veřejný konstruktor. Zkopíroval jsem si tedy celou třídu do svého projektu a vše upravil. Z UML diagramu na obrázku B.1 je vidět, že třída MPFFT a obalující třída MatchingPursuit plní téměř stejný účel, a tak jsem je tedy spojil dohromady. Tato třída má obecný název, měla by to tedy být i třída obecného MP. MPFFT a GMPA jsou pak její potomci, konkrétní způsoby implementace. Podívejte se do schématu na obrázku 7.1. Třída GMPA díky dědičnosti všechny důležité části, jako je základní algoritmus MP, získala od svého rodiče. Pro správné fungovaní stačí založit v 30
37 Implementace GMPA Realizace GMPA returns MatchingPursuitResult +MatchingPursuitResult(DecompositionCollection) +getatoms(): List<Atom> +getdecompositioncollection(): DecompositionCollection +getreconstuction(): double[] EEGDSP +getbases(): List<Base> +getiterationcount(): int +setiterationcount(): int +processsignal(double[]): MatchingPursuitResult uses GA_GaborBase +getoptimalatom(double[]): Atom +getoptimalatom(double[], double, double): Atom +get/setpopulationsize() +get/setevolutioncount() finds MyGaborsAtom +MyGaborsAtom(double, double, double, double) +evaluate(double, double, double, double) +getsignal(int): double[] +getnormalizedsignal(int): double[] creates <<interface>> Base +getoptimalatom(double[]): Atom GaborsAtom +evaluate(double): double +GaborBase() +GaborBase(double, double, double, double) +get/setfrequency() +get/setphase() +get/setmodulus() finds DecompositionCollection +DecompositionCollection(double[]) +addatom(atom): void +getatom(int): Atom +getatomhistory(int): double[] +getinputsignal(): double[] +getreconstruction(int): double[] +iterator(): Iterator<Atom> Atom +evaluate(double): double +get/setdifference() +get/setposition() +get/setscale() +getvalues(int): double[] Obrázek 7.2: Schéma tříd genetického algoritmu matching pursuit konstruktoru instanci nově implementované báze 1 a zrušit fungování funkce getbases(), která dovolovala modifikaci seznamu bází. Vše ostatní funguje podle zaběhnutého schématu. Bylo ale třeba naprogramovat nové verze zmíněné báze (GA_GaborBase) a Gáborova atomu (MyGaborsAtom). Ten jsem obohatil hlavně o funkci, která vrací normovaný průběh atomu. Schéma GMPA naleznete na obrázku Nová verze báze V této kapitole bych vysvětlil schéma nejdůležitější části, báze s genetickým algoritmem. Popíšu problémy, se kterými jsem se setkal, a pokusím se navrhnout možná řešení. Kapitola se věnuje třídě GA_GaborBase, ve které probíhá výběr Gáborova atomu pomocí genetického algoritmu. Configuration je třída knihovny JGAP, do které se ukládají všechny důležité parametry a součásti GA. Do Configugation nastavujeme velikost populace, genetické operátory (GeneticOperator), vlastnosti přírod- 1 Báze je v implementaci totéž, co slovník funkcí, který známe z teorie MP 31
38 Implementace GMPA Realizace GA_GaborBase +getoptimalatom(double[]): Atom +getoptimalatom(double[], double, double): Atom +get/setpopulationsize() +get/setevolutioncount() creates evolves creates Genotype +Genotype(Configuration) +evolve(int): void +getfittestchromosome(): IChromosome uses Chromosome +get/setfitnessvalur() +isselectedfornextgeneration() +Chromosome(Configuration, Gene[]) * * JGAP Population Gene +getallele(): Object GMPA_Configuration Configuration MP_FitnesFunction +MP_FitnessFunction(GA_GaborBase) -evaluate(ichromosome): double +setsignal(double[]) FitnessFunction -evaluate(ichromosome): double +getvalue(ichromosome): double Obrázek 7.3: Schéma báze, která využívá genetický algoritmus ního výběru (NaturalSelector), algoritmus, podle kterého probíhá vývoj GA (Breeder), generátor náhodných čísel a mnoho dalších. Konfigurace také před spuštěním potřebuje vzorový chromosom a připravenou fitness funkci. Chromosom vytváří třída GA_GaborBase a umístí do něho čtyři instance typu IntegerGen, kterým nastaví rozsahy podle pravidel z kapitoly Jedinou instancí, která se dá používat opakovaně, je MP_FitnessFunction. Tu budeme při každém spuštění aktualizovat novým vstupním signálem, aby mohla počítat skalární součin signálu a průběhu atomu. Průběhy atomů fitness funkci počítá GA_GaborBase, ačkoli to není dobré řešení. Mnohem srozumitelnější by bylo, kdyby chromosom sám předal fitness funkci svůj průběh (resp. průběh reprezentovaného atomu). Bylo by tedy vhodné realizovat potomka třídy. Zde jsem ale narazil na složitost implementace třídy Chromosome, kterou ostatní třídy během evoluce klonují, ale zatím pouze jako typ Chromosome. Fitness funkci jsou pak nové funkce nedostupné, protože špatně naklonované chromozomy je prostě nemají. To by se však dalo po hlubším prozkoumání knihovny vyřešit. Třída Genotype obsahuje populaci a spouští evoluci. Tu je třeba na začátku naplnit náhodně vygenerovanými jedinci a může se přejít k nejzajíma- 32
39 Implementace GMPA Realizace vější části GA evoluci. Tuto část zajišťuje třída GABreeder, kterou také při konstrukci ukládáme do konfigurace. Právě v této třídě stráví algoritmus drtivou většinu času. Tuto třídu by se tedy vyplatilo naprogramovat znovu a zvýšit tak rychlost algoritmu. Samotný průběh evoluce nabízený autory knihovny je poměrně neortodoxní. Například se v něm nepoužívá reprodukční jezírko a velikost populace mezi generacemi mírně kolísá. Prostor pro vylepšování jistě existuje, ale v rámci bakalářské práce na to nezbyl čas Konfigurace pro GMPA V programu jsem vytvořil a použil vlastní konfiguraci GA. Třída této konfigurace se jmenuje GMPA_Configuration a většinu nastavení provede už při konstrukci. Následující nastavení je přizpůsobeno velikosti prohledávaného prostoru (závislé na a délce signálu). velikost populace = délka signálu / 10 počet generací = délka signálu / 15 výběr před rozmnožováním žádný, jezírko nepoužito křížení (1/6 populace) mutace (1/15 populace) výběr do další generace soutěží (3 ch. v soutěži, ppst. 0,9) elitismus: 1 nejlepší jedinec vždy přežívá Tato konfigurace, přesto že funguje docela dobře, by se dala ještě hodně vylepšit. Také by se měl změnit algoritmus třídy GABreeder, aby více odpovídal tradiční verzi a byl výkonnější. 33
40 8 Porovnání různých implementací MP Tato kapitola se zabývá zejména ověřením funkčnosti všech implementovaných algoritmů. Implementoval jsem celkem tři algoritmy: Genetický matching pursuit (GMPA) GMPA a FFT akcelerací po jednom (GMPA1) GMPA s obecnou FFT akcelerací (GMPA2) Mohu prozradit, že všechny verze úspěšně řeší úlohu MP, tedy poměrně efektivně dekomponují signál na atomy, kterými se dá následně aproximovat vstupní signál. 8.1 Srovnání výkonu a přesnosti Je načase ověřit předpoklady předchozích kapitol o chybách a přednostech vytvořených algoritmů a porovnat zcela nové algoritmy (GMPA1 a GMPA2) s klasickým algoritmem matching pursuit využívajícím FFT (MPFFT), který je součástí knihovny EEGDSP. Testování probíhalo na reálných datech. Jedná se o EEG signál naměřený v laboratoři neuroinformatiky na KIV. Délka vstupního signálu se v průběhu testování měnila, aby byl naznačen vliv algoritmické složitosti na dobu výpočtu a vzrůstající náročnost aproximace delšího signálu. Zvolil jsem délky 128, 256, 512, 1024 a 2048 vzorků, protože algoritmy používající FFT umí bez úprav pracovat pouze se signály délky mocniny dvou. V ostatních případech si signál doplňují nulami na délku mocniny dvou, což by bylo znevýhodňující. V následujících tabulkách naleznete průměrnou dobu výpočtu v milisekundách a kvalitu aproximace signálu danou metodou. Doby výpočtů jsou v tabulce 8.3. Kvalitu aproximace ukazují tabulky 8.1 a 8.2. Jedná se o průměry z 93 měření (resp. z 50 pro 1024 vzorků nebo z 15 měření pro 2048 vzorků). Všechny testované algoritmy rozkládaly signál na 10 atomů. 34
41 Porovnání různých implementací MP Srovnání výkonu a přesnosti N MPFFT GMPA GMPA1 GMPA , , , , , , , , , , , , , , , , , , , ,6206 Tabulka 8.1: Průměrná chyba na vzorek (µv ) N MPFFT GMPA GMPA1 GMPA ,9330 0,7677 0,8769 0, ,8595 0,7735 0,8141 0, ,8412 0,8100 0,8159 0, ,8226 0,8134 0,8145 0, ,7879 0,7896 0,7764 0,7209 Tabulka 8.2: Průměrná korelace Pro měření přesnosti aproximace jsem použil korelaci a chybu na vzorek. Korelace nabývá hodnot od 0 do 1. Čím více se blíží jedničce, tím jsou si signály podobnější. Chyba na vzorek je v jednotkách měřeného signálu (v našem případě µv ) a získáme jí pomocí následujícího vztahu: c = N 1 i=0 s i a i c = c N, kde c je celková chyba, c chyba na vzorek, a je vektor aproximace a s je vektor vzorového signálu. Tento způsob je dle mého názoru o něco průkaznější, ale hodnoty obou tabulek zjevně nejsou v rozporu. Nejpřesnější metodou je jistě klasický MP z knihovny EEGDSP. Když se ale podíváme do tabulky doby výpočtu (tabulka 8.3), zjistíme, že ostatní metody sice nedosahují takové kvality, ale zato jsou mnohonásobně rychlejší. Nejvýraznější je to na krátkých signálech. S rostoucí délkou se rozdíl zmenšuje. Test dále ukazuje, že problémy GMPA2 s přesností se projevují poměrně značně. Proto je nejméně přesnou metodou ze všech. Je pro mě překvapením, že ani v rychlosti nepřekoná příbuznou metodu GMPA1, přestože předpoklad byl opačný. GMPA dosahuje stabilně celkem přijatelných přesností a do délky 1024 je rychlejší než MPFFT. Od délky 2048 už je o dost pomalejší. 35
42 Porovnání různých implementací MP Zjištění algoritmické složitosti N MPFFT GMPA GMPA1 GMPA Tabulka 8.3: Průměrná doba na zpracování jedné epochy (ms) GPMA1 (tj. s FFT akcelerací po jednom) dosahuje téměř stejných přesností jako GMPA a rychleji než GMPA. Na nejčastěji používaných délkách 512 a 1024 vzorků je jen o něco málo méně přesný než MPFFT, za to je ale 9krát resp. 5krát rychlejší. Pokud jede o poměr rychlosti a přesnosti, hodnotil bych pro tyto délky GMPA1 z porovnávaných algoritmů jako nejlepší. 8.2 Zjištění algoritmické složitosti Z testu také vyplývá, že náskok GMPA1 nad metodou MPFFT se zmenšuje s rostoucí délkou signálu. To naznačuje, že by GMPA1 přes svou slušnou rychlost na malém počtu vzorků měl mít horší algoritmickou složitost než MPFFT. Klasický algoritmus matching pursuit má složitost O(Nlog 2 N). Rozhodl jsem se tedy pečlivěji prozkoumat výkon metody GMPA1 a odhadnout její složitost. Na rozdíl od předchozího testu jsem měřil dobu výpočtů pro více různých délek signálu a zajímal jsem se pouze o GMPA1. Výsledky najdete v tabulce 8.4. Protože GA je velmi složitý, rozhodl jsem se pro experimentální zjištění algoritmické složitosti. N je počet vzorků signálu a T (N) je průměrná doba trvání zpracování jednoho signálu algoritmem. Složitost pak zjišťuji tak, že zkouším T (N) dělit různými funkcemi f(n). Vyjde-li průběh T (N)/f(N) konstantní, f(n) je pravděpodobně funkce algoritmické složitosti. Tabulka 8.4 ukazuje, že určení složitosti GMPA1 bude jen přibližné. Složitost vychází určitě větší než O(N 2 log 2 N) a menší než O(N 3 ). Lépe to bude vidět z grafů (obrázek A.3 v přílohách). Spíše se ale přiklání k O(N 3 ), protože od N = 1024 je průběh podílu téměř dokonale konstantní. 36
43 Porovnání různých implementací MP Zjištění algoritmické složitosti N T(N) T (N)/N 2 0, , , T (N)/N 2 log 2 N 7,36679E-05 8,83496E-05 0, T (N)/N 3 1,66893E-06 1,2666E-06 1,20047E-06 T (N)/N 4 6,51926E-09 2,47383E-09 1,17234E-09 N T(N) T (N)/N 2 0, , , T (N)/N 2 log 2 N 0, , ,00064 T (N)/N 3 1,20141E-06 1,19882E-06 1,2E-06 T (N)/N 4 5,86624E-10 2,9268E-10 1,46E-10 Tabulka 8.4: Hodnoty podílu T (N)/f(N) pro různá N Ani jedna z možností není dobrý výsledek. Je ale možné, že GA je pro delší signály předimenzovaný a zbytečně běží na prázdno, přestože už výsledek vylepšit nejde. Možná, kdyby se upravil způsob výpočtu počáteční populace a počtu generací, algoritmická složitost by se mohla snížit bez zásadního vlivu na přesnost. 37
44 9 Závěr Ve své bakalářské práci jsem ukázal, že je možné využít genetického algoritmu pro implementaci matching pursuit. Po vhodné volbě fitness funkce a vyřešením reprezentace genů genetický algoritmus spolehlivě řeší úlohu výběru nejlepšího atomu ze slovníku. Po prostudování literatury a zhodnocení faktů jsem naprogramoval celkem tři různé druhy genetického matching pursuit. Základní GMPA používá k optimalizaci všech čtyř parametrů Gaborových atomů pouze genetický algoritmus. Tento algoritmus sice úlohu řeší, ale docela pomalu. Proto jsem s pomocí mého vedoucího Ing. Pavla Mautnera, Ph.D. navrhl a naprogramoval další dva algoritmy, které usnadňují práci genetickému algoritmu tím, že pro nalezení optimální frekvence a fáze využívají rychlé Fourierovy transformace. První z metod, GMPA s obecnou FFT akcelerací, si vytvoří frontu frekvencí a fází ještě před iteračním cyklem, zatímco druhý způsob, GMPA s FFT akcelerací po jednom, hledá dvojici parametrů v každé iteraci z aktuálního signálu. Testování algoritmů dopadlo nejednoznačně. Algoritmy, které jsem naprogramoval, sice nedosahují tak výborných aproximací jako běžný matching pursuit, ale zato byly rychlejší. Nejlepší z mých algoritmů, GMPA s FFT akcelerací po jednom, pracuje velice rychle a s dobrou přesností i v porovnání s klasickým matching pursuit. Jeho algoritmická složitost je ale O(N 3 ). Přesto je pro běžně užívané délky signálu ( vzorků) několikrát rychlejší než klasický algoritmus. Mám už několik návrhů na jeho vylepšení, která by mohla nepříznivou složitost zmenšit. Například by se mohl změnit způsob výpočtu počáteční populace a počtu generací tak, aby tyto parametry rostly logaritmicky místo lineárně vzhledem k délce vstupního signálu. Implementace samotného genetického algoritmu by potřebovala výrazně upravit evoluční cyklus, aby více odpovídal tradiční verzi a byl výkonnější. Dále bych vyzkoušel kódování parametrů atomu binárními geny a několik dalších úprav. Pro další práci obdobného charakteru bych rozhodně doporučil využití FFT akcelerací, protože testy potvrdily, že urychlení výpočtu je za stejné přesnosti značné. Navrhoval bych vytvořit FFT s vyšší přesností frekvence a vyzkoušet akcelerace s dalšími optimalizačními metodami, jako je simulované žíhání nebo hillclimbing. 38
45 Přehled zkratek EEG Elektroencefalografie (z angl. electroencephalography) ERP Evokovaný potenciál (z angl. event-related potential) FT Fourierova transformace (z angl. Fourier transform) DFT Diskrétní Fourierova transformace (z angl. discrete Fourier transform) FFT Rychlá Fourierova transformace (z angl. fast Fourier transform) MP Matching pursuit MPFFT Matching pursuit využívající FFT GMPA Genetický algoritmus matching pursuit (z angl. Genetic matching pursuit algorithm) EEGDSP Knihovna pro zpracování signálů zaměřená na EEG/ERP signály JGAP Knihovna na vytváření genetických algoritmů a genetického programování (z angl. Java genetic algorithms package) 39
46 Obsah CD build Adresář obsahuje spustitelnou verzi programu. data Adresář obsahuje naměřená data. doc Adresář obsahuje pdf s textem bakalářské práce, pdf s uživatelskou dokumentací programu ERP-Classifier, soubory pro vygenerování bakalářské práce programem pdfcslatex.exe, použité obrázky a vygenerovanou programátorskou dokumentaci JavaDoc. src Adresář obsahuje zdrojové soubory pro překlad programu ve formě projektu pro vývojové prostředí NetBeans. Nachází se zde i soubor build.xml pro překlad programu z příkazové řádky. Pro vytvoření spustitelného jar souboru je možno použít příkaz ant jar. 40
47 Literatura [1] BEASLEY, D. BULL, D. R. MARTIN, R. R. An Overview of Genetic Algorithms: Part 1, Fundamentals. University Computing, [2] DAN, S. FLORIN, I. A genetic matching pursuit algorithm.signal Processing and Its Applications,2003,1: [3] DAVÍDEK, V. SOVKA, P. Číslicové zpracování signálů a implementace, Skripta. 1. vydání. Praha: Vydavatelství ČVUT, ISBN [4] KELLNHOFER, P. Knihovna pro zpracování signálů, Semestrální práce KIV-AZS. Verze 1.0, Fakulta aplikovaných věd ZČU v Plzni, [5] MALLAT, S. G. ZHANG, Z. Matching Pursuit with Time-Frequency Dictionaries. IEEE Trans. On Signal Proc., Vol. 41, No. 12 [6] MAUTNER, P. MOUČEK, R. Využití metody matching pursuit pro detekci ERP vln, sborník IX. konference Kognice a umělý život. Stará Lesná, Slovensko: pp [7] MITCHELL, M. An Intoduction to Genetic Algorithms. The MIT Press, Cambridge, Massachusetts, [8] ŘONDÍK, T. Metody zpracování ERP signálů, diplomová práce. Fakulta aplikovaných věd ZČU v Plzni,
48 A Příloha: Obrázky Obrázek A.1: Ukázka dekompozice vstupního signálu a residua (levý sloupec) na čtyři atomy (prostřední sloupec) a složení aproximace (pravý sloupec) 42
49 6,05 Hz 6 Hz Obrázek A.2: Ukázka dopadů nedokonalé aproximace; tmavý signál je rozdíl dvou světlých signálů T(N)/(N 2 log 2 N) 0,0007 0,0006 0,0005 0,0004 0,0003 0,0002 0, počet vzorků (N) T(N)/N 3 0, , , , , , , , , počet vzorků (N) Obrázek A.3: Grafy průběhu T(N)/f(N)
50 B Příloha: UML diagramy 44
51 class matchingpursuit UserClass calls gets MatchingPursuit + getbases() : List<Base> + getinstance() : MatchingPursuit + getiterationcount() : int + processsignal(double[]) : MatchingPursuitResult -instance returns MatchingPursuitResult + getatoms() : List<Atom> + getdecompositioncollection() : DecompositionCollection + getreconstruction() : double[] + MatchingPursuitResult(DecompositionCollection) algorithm::mpfft + domp(double[], int) : DecompositionCollection + MPFFT(Base) uses calls gets creates -decompositioncollection integrates algorithm::decompositioncollection + addatom(atom) : void + DecompositionCollection(double[]) + getatom(int) : Atom + getatomhistory(int) : double[] + getinputsignal() : double[] + getreconstruction(int) : double[] Iterable -bases «interface» algorithm::base + getoptimalatom(double[]) : Atom finds algorithm::atom + evaluate(double) : double + getdifference() : double + getposition() : double + getscale() : double algorithm::gaborbase + getoptimalatom(double[]) : Atom finds algorithm::gaborsatom + evaluate(double) : double + GaborsAtom(double, double, double, double) + GaborsAtom() + getfrequency() : double + getmodulus() : double + getphase() : double algorithm::usersatom + evaluate(double) : double + getname() : String + getstretch() : double + getvalues(int) : double[] + setname(string) : void Obrázek B.1: Schéma algoritmu matching pursuit z knihovny EEGDSP, převzato z [4]
52 Genotype Population 1 1..* Chromosome * 1..* <<interface>> Gene StringGene 1 <<interface>> IInitializer BaseChromosome NumberGene BaseGene CompositeGene <<interface>> IHandler <<interface>> IChromosome 1 IntegerGene DoubleGene BooleanGene FixedBinaryGene Configuration FitnessFunction 1 1..* 1 INaturalSelector TournamentSelector 1..* <<interface>> GeneticOperator GreedyCrossover NaturalSelector CrossoverOperator ReproductionOperator AveragingCrossoverOperator MutationOperator BestChromosomeSelector WeightedRouletteSelector Obrázek B.2: Schéma základních tříd knihovny JGAP
53 C Příloha: Uživatelská dokumentace ERP-Classifier 47
54 Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky ERP-CLASSIFIER UŽIVATELSKÁ PŘÍRUČKA Plzeň, 2012 Jan Strejc
55 Obsah 1 Program Překlad Instalace Požadavky Spuštění Uživatelské rozhraní Menu Načtení signálu Extrakce epoch Filtry a průměrování epoch Průměrování epoch Prahový filtr FIR filtr Filtr pohybujícím se okénkem Filtr pro průměrování signálu Atomizace Klasifikace Tvorba komponent...13
56 KAPITOLA 1 PROGRAM 1 Program 1.1 Překlad Pro překlad jsou k dispozici zdrojové soubory a Ant skript v souboru build.xml. Pro vytvoření spustitelného.jar souboru použijte cíl jar. Je také přiložena celá složka s projektem z NetBeans a tak je možné program snadno upravit a přeložit pomocí NetBeans. 1.2 Instalace Program není nutné instalovat, je možné nakopírovat do vlastního počítače a spouštět jej odtamtud. Na přiloženém CD je k dispozici přeložená verze programu pro Javu 1.7. Kromě souboru erp-classifier.jar je nutné do stejné složky nakopírovat složku lib s knihovnami. 1.3 Požadavky Program pro svůj běh vyžaduje nainstalovanou aktuální verzi Javy 1.7 (mělo by být možné spustit jej na starší verzi 1.6, ale bezchybná funkčnost není zaručena a bude nutné provést rekompilaci). Pro bezproblémový chod je doporučeno mít alespoň 1 GB volné paměti RAM. Hlavní platformou pro použití je MS Windows, ale program je možné používat i na Linuxu, nebo Mac Os (testováno na Windows 7 a Ubuntu 12.04). 1.4 Spuštění Pokud je správně nainstalována Java tak je možné spouštět program dvojklikem na soubor erp-classifier.jar. Jinak lze spuuštění provést z příkazové řádky příkazem java -jar erp-classifier.jar. 1
57 KAPITOLA 2 UŽIVATELSKÉ ROZHRANÍ 2 Uživatelské rozhraní 2.1 Menu Menu slouží jako hlavní ovládací prvek aplikace a jsou z něj přístupné všechny funkce, ty nejčastější jsou umístěny na toolbaru pod menu (Obrázek 2.1). Aktuálně nepoužitelné položky menu jsou šedivé a nejde je použít. Seznam jednotlivých položek menu: File New Project vytvoří nový projekt z VHDR souboru. Open Project otevře uložený projekt z XML souboru. Save Project uloží rozpracovaný projekt do XML souboru. Exit ukončí aplikaci. View View Signal zobrazí načtený neupravený signál. View Epochs and Atoms zobrazí extrahované epochy a jejich atomy vytvořené matching pursuitem. View Clusters zobrazí neuronovou sítí vytvořené shluky atomů. View Components zobrazí okno s tvorbou komponent. Signal Obrázek 2.1: Menu a toolbar Epoch Extraction zobrazí panel pro extrakci epoch. Epoch Averaging zobrazí panel s filtry a přepne na záložku pro průměrování epoch. Treshold Fitrer zobrazí panel s filtry a přepne na záložku pro prahový fitr. FIR Fitrer zobrazí panel s filtry a přepne na záložku pro FIR filtr. Moving Window Fitrer zobrazí panel s filtry a přepne na záložku pro filtr pohybujícím se okénkem. 2
58 KAPITOLA 2 UŽIVATELSKÉ ROZHRANÍ Signal Averaging Fitrer zobrazí panel s filtry a přepne na záložku pro filtr na průměrování signálu. Atomization GMPA přepnutí modulu atomizace na Genetický matching pursuit. MPFFT přepnutí modulu atomizace na obyčejný matching pursuit z EEGDSP. Settings nastavení aktuálně vybraného modulu atomizace. Atomize spustí atomizaci aktuálně vybraným modulem. Classification Kohonen neural network Kohonenovu neuronovou síť. přepnutí modulu klasifikace na ART2 neural network přepnutí modulu klasifikace na ART2. Settings nastavení aktuálně vybraného modulu klasifikace. Classify spustí klasikaci aktuálně vybraným modulem. Atomize and Classify spustí atomizaci a pak klasikaci aktuálně vybranými moduly. Help Help zobrazí nápovědu k programu. 3
59 KAPITOLA 2 UŽIVATELSKÉ ROZHRANÍ 2.2 Načtení signálu Pomocí File New Project vybereme VHDR soubor, který chceme načíst. Poté se nám objeví okno s načteným signálem, později je možné signál zobrazit pomocí View Signal (Obrázek 2.2). V pravé části je možno si vybrat kanál, který chceme zobrazit dole se můžeme pomocí šipek posouvat v signálu. Obrázek 2.2: Zobrazení signálu 2.3 Extrakce epoch Pro extrakci epoch musí být načtený signál. Pro nastavení extrakce klikneme na Signal Epoch Extraction a zobrazí se nám následující panel (Obrázek 2.3). Obrázek 2.3: Extrakce epoch 4
60 KAPITOLA 2 UŽIVATELSKÉ ROZHRANÍ První dvě políčka určují kde bude epocha začínat a končit (vzhledem k markeru), druhá dvě určují úsek epochy, který bude použit pro korekci baseline. Skupinu je možné pojmenovat zadáním jména do políčka Name. Políčko Channel slouží pro výběr kanálu (elektrody), jehož signál se použije a políčko Marker pro výběr markeru (stimulu), od kterého chceme epochy vytvořit. Extrakci spustíme tlačítkem Extract, tlačítko Reset vrátí hodnoty do původního stavu a šipka zpět panel schová. Po dokončení extrakce se zobrazí okno s epochami (Obrázek 2.4). V dolní části se nachází ovládání pro přepínání epoch a možnost odebrání epochy, která se nám nelíbí. V pravo je seznam zobrazených signálů (zde později přibudou atomy a signál epochy aproximovaný matching pursuitem) a pod ním je ovládání grafu (zoom, vyhlazování, možnost otočit osu Y a informace aktuální pozici v signálu). Svislá oranžová čára na grafu představuje marker, osa Y představuje napětí v μv a osa X čas v milisekundách. Obrázek 2.4: Zobrazení epoch 5
61 KAPITOLA 2 UŽIVATELSKÉ ROZHRANÍ 2.4 Filtry a průměrování epoch Průměrování epoch Pro průměrování epoch vybereme Signal Epoch Averaging. Předem musíme mít vytvořeny epochy a pak se nám zobrazí následující panel (Obrázek 2.5). Obrázek 2.5: Průměrování epoch Zde je možné nastavit kolik epoch má být průměrováno. Tlačítko Apply provede průměrování Prahový filtr Pro prahový filtr vybereme Signal Treshold Filter. Předem musíme mít vytvořeny epochy a pak se nám zobrazí následující panel (Obrázek 2.6). Obrázek 2.6: Prahový filtr Zde je možno nastavit minimální a maximální hranici, která je přípustná pro signál v epochách, po spuštění tlačítkem Apply filtr odstraní ty epochy, které se do tohoto limitu nevejdou. 6
62 KAPITOLA 2 UŽIVATELSKÉ ROZHRANÍ FIR filtr Pro FIR filtr vybereme Signal FIR Filter. Předem musíme mít vytvořeny epochy a pak se nám zobrazí následující panel (Obrázek 2.7). Obrázek 2.7: FIR filtr Zde je možno nastavit řád filtru (vyšší řád znamená lepší filtraci, ale způsobí posunutí fáze signálu o řád filtru), typ filtru, typ okénka a dolní a horní frekvenci pro jednotlivé filtry. Tlačítkem Apply spustíme filtraci. 7
63 KAPITOLA 2 UŽIVATELSKÉ ROZHRANÍ Filtr pohybujícím se okénkem Pro filtr pohybujícím se okénkem vybereme Signal Moving Window Filter. Předem musíme mít vytvořeny epochy a pak se nám zobrazí následující panel (Obrázek 2.8). Obrázek 2.8: Filtr pohybujícím se okénkem Zde můžeme nastavit krok po jakém se bude okénko posouvat, jeho délku a maximální rozdíl hodnot signálu v okénku. Po spuštění tlačítkem Apply filtr odstraní ty epochy, které se do tohoto limitu nevejdou. 8
64 KAPITOLA 2 UŽIVATELSKÉ ROZHRANÍ Filtr pro průměrování signálu Pro filtr průměrování signálu vybereme Signal Signal Averaging Filter. Předem musíme mít vytvořeny epochy a pak se nám zobrazí následující panel (Obrázek 2.9). Obrázek 2.9: Filtr pro průměrování signálu Zde si můžeme vybrat počet hodnot pro průměrování a počet iterací filtru. Nastavení příliš velkého počtu hodnot a iterací může ze signálu odstranit důležité detaily. Tlačítkem Apply spustíme filtraci. 9
65 KAPITOLA 2 UŽIVATELSKÉ ROZHRANÍ 2.5 Atomizace V menu Atomization můžeme vybrat, který modul pro atomizaci chceme použít. Pak si můžeme zobrazit jeho nastavení. Na obrázku 2.10 je nastavení pro Genetický matching pursuit, zde je k dispozici nastavení počtu atomů na epochu a mód matching pursuitu. Obrázek 2.10: Nastavení matching pursuitu Tlačítkem Save uložíme nastavení. V menu pak nejdeme ještě položku Atomize, která spustí tvorbu atomů. Na obrázku 2.11 jsou vidět výsledné atomy, ovládání se shoduje s dříve uvedeným oknem pro zobrazení epoch. Obrázek 2.11: Zobrazení výsledných atomů 10
1. Úvod do genetických algoritmů (GA)
Obsah 1. Úvod do genetických algoritmů (GA)... 2 1.1 Základní informace... 2 1.2 Výstupy z učení... 2 1.3 Základní pomy genetických algoritmů... 2 1.3.1 Úvod... 2 1.3.2 Základní pomy... 2 1.3.3 Operátor
IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)
IB108 Sada 1, Příklad 1 ( ) Složitost třídícího algoritmu 1/-Sort je v O n log O (n.71 ). Necht n = j i (velikost pole, které je vstupním parametrem funkce 1/-Sort). Lehce spočítáme, že velikost pole předávaná
Filtrace snímků ve frekvenční oblasti. Rychlá fourierova transformace
Filtrace snímků ve frekvenční oblasti Rychlá fourierova transformace semestrální práce z předmětu KIV/ZVI zpracoval: Jan Bařtipán A03043 bartipan@students.zcu.cz Obsah Úvod....3 Diskrétní Fourierova transformace
Masarykova univerzita. Fakulta informatiky. Evoluce pohybu
Masarykova univerzita Fakulta informatiky Evoluce pohybu IV109 Tomáš Kotula, 265 287 Brno, 2009 Úvod Pohyb je jedním ze základních projevů života. Zdá se tedy logické, že stejně jako ostatní vlastnosti
Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.
Intervalové stromy Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme průběžně provádět tyto dvě operace: 1. Změna jednoho čísla v posloupnosti. 2. Zjištění součtu čísel
Evoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi
Evoluční algoritmy Použítí evoluční principů, založených na metodách optimalizace funkcí a umělé inteligenci, pro hledání řešení nějaké úlohy. Populace množina jedinců, potenciálních řešení Fitness function
Matice se v některých publikacích uvádějí v hranatých závorkách, v jiných v kulatých závorkách. My se budeme držet zápisu s kulatými závorkami.
Maticové operace Definice Skalár Představme si nějakou množinu, jejíž prvky lze sčítat a násobit. Pěkným vzorem jsou čísla, která už známe od mala. Prvky takové množiny nazýváme skaláry. Matice Matice
KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni
KTE/TEVS - Rychlá Fourierova transformace Pavel Karban Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni 10.11.011 Outline 1 Motivace FT Fourierova transformace
VLIV GEOMETRICKÉ DISPERZE
VLIV GEOMETRICKÉ DISPERZE NA ŠÍŘENÍ NAPĚŤOVÝCH VLN Petr Hora Centrum diagnostiky materiálu, Ústav termomechaniky AV ČR, Veleslavínova, 3 4 Plzeň, e-mail: hora@cdm.it.cas.cz Abstrakt The effect geometrical
Gramatická evoluce a softwarový projekt AGE
Gramatická evoluce a softwarový projekt AGE Adam Nohejl Matematicko-fyzikální fakulta Univerzita Karlova v Praze http://nohejl.name/ 4. 4. 2010 Poznámka: Prezentace založené na variantách těchto slajdů
y = Spočtěte všechny jejich normy (vektor je také matice, typu n 1). Řádková norma (po řádcích sečteme absolutní hodnoty prvků matice a z nich
Normy matic Příklad 1 Je dána matice A a vektor y: A = 2 0 3 4 3 2 y = Spočtěte všechny jejich normy (vektor je také matice, typu n 1). Ověřte, že platí Ay A y (1) Ay = (4, 14, 2) T 2 2 Frobeniova norma
Genetické algoritmy. Vysoká škola ekonomická Praha. Tato prezentace je k dispozici na: http://www.utia.cas.cz/vomlel/
Genetické algoritmy Jiří Vomlel Laboratoř inteligentních systémů Vysoká škola ekonomická Praha Tato prezentace je k dispozici na: http://www.utia.cas.cz/vomlel/ Motivace z Darwinovy teorie evoluce Přírodní
Genetické algoritmy a jejich praktické využití
Genetické algoritmy a jejich praktické využití Pavel Šturc PB016 Úvod do umělé inteligence 21.12.2012 Osnova Vznik a účel GA Princip fungování GA Praktické využití Budoucnost GA Vznik a účel GA Darwinova
Břetislav Fajmon, UMAT FEKT, VUT Brno. Poznámka 1.1. A) první část hodiny (cca 50 minut): představení všech tří metod při řešení jednoho příkladu.
Břetislav Fajmon, UMAT FEKT, VUT Brno Poznámka 1.1. A) první část hodiny (cca 50 minut): představení všech tří metod při řešení jednoho příkladu. Na jiných příkladech je téma podrobně zpracováno ve skriptech
(n, m) (n, p) (p, m) (n, m)
48 Vícerozměrná kalibrace Podobně jako jednorozměrná kalibrace i vícerozměrná kalibrace se používá především v analytické chemii Bude vysvětlena na příkladu spektroskopie: cílem je popis závislosti mezi
v Praze mezi kanály EEG Ondřej Drbal 5. ročník, stud. sk. 9
České vysoké učení technické v Praze Algoritmy pro měření zpoždění mezi kanály EEG Ondřej Drbal 5. ročník, stud. sk. 9 31. března 23 Obsah 1 Zadání 1 2 Uvedení do problematiky měření zpoždění signálů 1
Součin matice A a čísla α definujeme jako matici αa = (d ij ) typu m n, kde d ij = αa ij pro libovolné indexy i, j.
Kapitola 3 Počítání s maticemi Matice stejného typu můžeme sčítat a násobit reálným číslem podobně jako vektory téže dimenze. Definice 3.1 Jsou-li A (a ij ) a B (b ij ) dvě matice stejného typu m n, pak
Petr Chvosta. vlevo, bude pravděpodobnost toho, že se tyč na počátku intervalu τ B nachází nad vpravo
MOLEKULÁRNÍ MOTORY Petr Chvosta. Automobil v krupobití aneb brzděním k pohybu Uvažme automobil stojící na mírném svahu a bombardovaný rovnoměrně ze všech stran obrovskými kroupami. Svah stoupá směrem doprava
Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr
Seminář z IVT Algoritmizace Slovanské gymnázium Olomouc Tomáš Kühr Algoritmizace - o čem to je? Zatím jsme se zabývali především tím, jak určitý postup zapsat v konkrétním programovacím jazyce (např. C#)
GRAFY A GRAFOVÉ ALGORITMY
KATEDRA INFORMATIKY PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO GRAFY A GRAFOVÉ ALGORITMY ARNOŠT VEČERKA VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ
8. Posloupnosti, vektory a matice
. jsou užitečné matematické nástroje. V Mathcadu je často používáme například k rychlému zápisu velkého počtu vztahů s proměnnými parametry, ke zpracování naměřených hodnot, k výpočtům lineárních soustav
zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.
Kapitola Ohodnocené grafy V praktických aplikacích teorie grafů zpravidla graf slouží jako nástroj k popisu nějaké struktury. Jednotlivé prvky této struktury mají často přiřazeny nějaké hodnoty (může jít
Skalární součin je nástroj, jak měřit velikost vektorů a úhly mezi vektory v reálných a komplexních vektorových prostorech.
Kapitola 9 Skalární součin Skalární součin je nástroj, jak měřit velikost vektorů a úhly mezi vektory v reálných a komplexních vektorových prostorech. Definice 9.1 Je-li x = (x 1,..., x n ) T R n 1 reálný
(Auto)korelační funkce. 2. 11. 2015 Statistické vyhodnocování exp. dat M. Čada www.fzu.cz/ ~ cada
(Auto)korelační funkce 1 Náhodné procesy Korelace mezi náhodnými proměnnými má široké uplatnění v elektrotechnické praxi, kde se snažíme o porovnávání dvou signálů, které by měly být stejné. Příkladem
+ ω y = 0 pohybová rovnice tlumených kmitů. r dr dt. B m. k m. Tlumené kmity
Tlumené kmit V praxi téměř vžd brání pohbu nějaká brzdicí síla, jejíž původ je v třecích silách mezi reálnými těles. Matematický popis těchto sil bývá dosti komplikovaný. Velmi často se vsktuje tzv. viskózní
VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů
VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE FAKULTA INFORMATIKY A STATISTIKY Hlavní specializace: Ekonometrie a operační výzkum Název diplomové práce Optimalizace trasy při revizích elektrospotřebičů Diplomant: Vedoucí
A0M15EZS Elektrické zdroje a soustavy ZS 2011/2012 cvičení 1. Jednotková matice na hlavní diagonále jsou jedničky, všude jinde nuly
Matice Matice typu (m, n) je uspořádaná m-tice prvků z řádky matice.. Jednotlivé složky této m-tice nazýváme Matice se zapisují Speciální typy matic Nulová matice všechny prvky matice jsou nulové Jednotková
BAKALÁŘSKÁ PRÁCE. Numerické metody jednorozměrné minimalizace
UNIVERZITA PALACKÉHO V OLOMOUCI PŘÍRODOVĚDECKÁ FAKULTA KATEDRA MATEMATICKÉ ANALÝZY A APLIKACÍ MATEMATIKY BAKALÁŘSKÁ PRÁCE Numerické metody jednorozměrné minimalizace Vedoucí bakalářské práce: RNDr. Horymír
Jak pracovat s absolutními hodnotami
Jak pracovat s absolutními hodnotami Petr Matyáš 1 Co to je absolutní hodnota Absolutní hodnota čísla a, dále ji budeme označovat výrazem a, je jeho vzdálenost od nuly na ose x, tedy je to vždy číslo kladné.
Skalár- veličina určená jedním číselným údajem čas, hmotnost (porovnej životní úroveň, hospodaření firmy, naše poloha podle GPS )
LINEÁRNÍ ALGEBRA Úvod vektor Skalár- veličina určená jedním číselným údajem čas, hmotnost (porovnej životní úroveň, hospodaření firmy, naše poloha podle GPS ) Kartézský souřadnicový systém -je taková soustava
Heuristické řešení problémů. Seminář APS Tomáš Müller 6. 7. 2002
Heuristické řešení problémů Seminář APS Tomáš Müller 6. 7. 00 Heuristické řešení problémů Popis několika základních metod lokální prohledávání branch and bound simulated annealing, TABU evoluční algoritmy
9 Impedanční přizpůsobení
9 Impedanční přizpůsobení Impedančním přizpůsobením rozumíme situaci, při níž činitelé odrazu zátěže ΓL a zdroje (generátoru) Γs jsou komplexně sdruženy. Za této situace nedochází ke vzniku stojatého vlnění.
5 Rekurze a zásobník. Rekurzivní volání metody
5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení
3. Matice a determinanty
. Matice a determinanty Teorie matic a determinantů představuje úvod do lineární algebry. Nejrozsáhlejší aplikace mají matice a determinanty při řešení systémů lineárních rovnic. Pojem determinantu zavedl
Úvod do zpracování signálů
1 / 25 Úvod do zpracování signálů Karel Horák Rozvrh přednášky: 1. Spojitý a diskrétní signál. 2. Spektrum signálu. 3. Vzorkovací věta. 4. Konvoluce signálů. 5. Korelace signálů. 2 / 25 Úvod do zpracování
Poslední nenulová číslice faktoriálu
Poslední nenulová číslice faktoriálu Kateřina Bambušková BAM015, I206 Abstrakt V tomto článku je popsán a vyřešen problém s určením poslední nenulové číslice faktoriálu přirozeného čísla N. Celý princip
ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH
0. Obsah Strana 1 z 12 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION
Geometrie zakřiveného prostoru aplikace s fyzikální tématikou
Gymnázium Přírodní škola, o p s Geometrie zakřiveného prostoru aplikace s fyzikální tématikou Jan Pokorný Petr Martiška, Vojtěch Žák 1 11 2012 Obsah 1 Úvod 3 2 Teoretické základy a použité metody 4 21
Jazyk matematiky. 2.1. Matematická logika. 2.2. Množinové operace. 2.3. Zobrazení. 2.4. Rozšířená číslená osa
2. Jazyk matematiky 2.1. Matematická logika 2.2. Množinové operace 2.3. Zobrazení 2.4. Rozšířená číslená osa 1 2.1 Matematická logika 2.1.1 Výrokový počet logická operace zapisujeme čteme česky negace
FAKULTA INFORMAČNÍCH TECHNOLOGIÍ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÝCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS GENEROVÁNÍ MATEMATICKÝCH
Gymnázium, Brno. Matice. Závěrečná maturitní práce. Jakub Juránek 4.A Školní rok 2010/11
Gymnázium, Brno Matice Závěrečná maturitní práce Jakub Juránek 4.A Školní rok 2010/11 Konzultant: Mgr. Aleš Kobza Ph.D. Brno, 2011 Prohlášení Prohlašuji, že jsem předloženou práci zpracoval samostatně
2 Spojité modely rozhodování
2 Spojité modely rozhodování Jak již víme z přednášky, diskrétní model rozhodování lze zapsat ve tvaru úlohy hodnocení variant: f(a i ) max, a i A = {a 1, a 2,... a p }, kde f je kriteriální funkce a A
2.2. SČÍTÁNÍ A NÁSOBENÍ MATIC
22 SČÍTÁNÍ A NÁSOBENÍ MATIC V této kapitole se dozvíte: jak je definováno sčítání matic a jaké má základní vlastnosti jak je definováno násobení matic číslem a jaké má základní vlastnosti zda a proč se
Transformace obrazu Josef Pelikán KSVI MFF UK Praha
Transformace obrazu 99725 Josef Pelikán KSVI MFF UK Praha email: Josef.Pelikan@mff.cuni.cz WWW: http://cgg.ms.mff.cuni.cz/~pepca/ Transformace 2D obrazu dekorelace dat potlačení závislosti jednotlivých
NPRG030 Programování I 3/2 Z --- NPRG031 Programování II --- 2/2 Z, Zk
NPRG030 Programování I 3/2 Z --- NPRG031 Programování II --- 2/2 Z, Zk Pavel Töpfer Katedra softwaru a výuky informatiky MFF UK MFF Malostranské nám., 4. patro, pracovna 404 pavel.topfer@mff.cuni.cz http://ksvi.mff.cuni.cz/~topfer
Implementace numerických metod v jazyce C a Python
Fakulta elektrotechnická Katedra matematiky Dokumentace k semestrální práci Implementace numerických metod v jazyce C a Python 2013/14 Michal Horáček a Petr Zemek Vyučující: Mgr. Zbyněk Vastl Předmět:
2. RBF neuronové sítě
2. RBF neuronové sítě Kapitola pojednává o neuronových sítích typu RBF. V kapitole je popsána základní struktura tohoto typu neuronové sítě. Poté následuje definice a charakteristika jednotlivých radiálně
SPECIFICKÝCH MIKROPROGRAMOVÝCH ARCHITEKTUR
EVOLUČNÍ NÁVRH A OPTIMALIZACE APLIKAČNĚ SPECIFICKÝCH MIKROPROGRAMOVÝCH ARCHITEKTUR Miloš Minařík DVI4, 2. ročník, prezenční studium Školitel: Lukáš Sekanina Fakulta informačních technologií, Vysoké učení
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA INFORMAČNÍCH TECHNOLOGIÍ. Uživatelská příručka k programu FloodFilling Art
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA INFORMAČNÍCH TECHNOLOGIÍ Uživatelská příručka k programu FloodFilling Art Autor: Jan Bílek e-mail: xbilek14@stud.fit.vutbr.cz 8. 4. 2009 Obsah 1 Princip vytváření
3. D/A a A/D převodníky
3. D/A a A/D převodníky 3.1 D/A převodníky Digitálně/analogové (D/A) převodníky slouží k převodu číslicově vyjádřené hodnoty (např. v úrovních TTL) ve dvojkové soustavě na hodnotu nějaké analogové veličiny.
Řešení problému batohu dynamickým programováním, metodou větví a hranic a aproximativním algoritmem
2. 1. 213 MI-PAA úkol č. 2 Antonín Daněk Řešení problému batohu dynamickým programováním, metodou větví a hranic a aproximativním algoritmem 1 SPECIFIKACE ÚLOHY Cílem tohoto úkolu bylo naprogramovat řešení
Algoritmus pro hledání nejkratší cesty orientovaným grafem
1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval
ELEKTŘINA A MAGNETIZMUS
EEKTŘINA A MAGNETIZMUS XII Střídavé obvody Obsah STŘÍDAÉ OBODY ZDOJE STŘÍDAÉHO NAPĚTÍ JEDNODUHÉ STŘÍDAÉ OBODY EZISTO JAKO ZÁTĚŽ 3 ÍKA JAKO ZÁTĚŽ 5 3 KONDENZÁTO JAKO ZÁTĚŽ 6 3 SÉIOÝ OBOD 7 3 IMPEDANE 3
6. Střídavý proud. 6. 1. Sinusových průběh
6. Střídavý proud - je takový proud, který mění v čase svoji velikost a smysl. Nejsnáze řešitelný střídavý proud matematicky i graficky je sinusový střídavý proud, který vyplývá z konstrukce sinusovky.
České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská. Matematika ve starověké Babylónii
České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská Matematika ve starověké Babylónii Vít Heřman Praha, 22.2.2008 Obsah: 1. Úvod 2. Historický kontext 3. Dostupné historické zdroje
Maticové operace projekt č. 3
Dokumentace k projektu pro předměty IZP a IUS Maticové operace projekt č. 3 9.12.2007 Autor: Václav Uhlíř, xuhlir04@stud.fit.vutbr.cz Fakulta Informačních Technologii Vysoké Učení Technické v Brně Obsah
0. Lineární rekurence Martin Mareš, 2010-07-04
0 Lineární rekurence Martin Mareš, 2010-07-04 V tomto krátkém textu se budeme zabývat lineárními rekurencemi, tj posloupnostmi definovanými rekurentní rovnicí typu A n+k = c 0 A n + c 1 A n+1 + + c k 1
Několik poznámek na téma lineární algebry pro studenty fyzikální chemie
Několik poznámek na téma lineární algebry pro studenty fyzikální chemie Jiří Kolafa Vektory. Vektorový prostor Vektor je často zaveden jako n-tice čísel, (v,..., v n ), v i R (pro reálný vektorový prostor);
5. Maticová algebra, typy matic, inverzní matice, determinant.
5. Maticová algebra, typy matic, inverzní matice, determinant. Matice Matice typu m,n je matice složená z n*m (m >= 1, n >= 1) reálných (komplexních) čísel uspořádaných do m řádků a n sloupců: R m,n (resp.
Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín
Kolekce ArrayList napsal Pajclín Tento článek jsem se rozhodl věnovat kolekci ArrayList, protože je to jedna z nejpoužívanějších. Tento článek není kompletním popisem třídy ArrayList, ale budu se snažit
6. Kde v DNA nalézáme rozdíly, zodpovědné za obrovskou diverzitu života?
6. Kde v DNA nalézáme rozdíly, zodpovědné za obrovskou diverzitu života? Pamatujete na to, co se objevilo v pracích Charlese Darwina a Alfreda Wallace ohledně vývoje druhů? Aby mohl mechanismus přírodního
LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: 4.10.2011 8:01:48
LED_007.c Strana: 1/5 Nyní již umíme používat příkazy k větvení programu (podmínky) "if" a "switch". Umíme také rozložit program na jednoduché funkce a používat cyklus "for". Co se týče cyklů, zbývá nám
UNIVERSITA PALACKÉHO V OLOMOUCI PŘÍRODOVĚDECKÁ FAKULTA. KATEDRA MATEMATICKÉ ANALÝZY A APLIKACÍ MATEMATIKY školní rok 2009/2010 BAKALÁŘSKÁ PRÁCE
UNIVERSITA PALACKÉHO V OLOMOUCI PŘÍRODOVĚDECKÁ FAKULTA KATEDRA MATEMATICKÉ ANALÝZY A APLIKACÍ MATEMATIKY školní rok 2009/2010 BAKALÁŘSKÁ PRÁCE Testy dobré shody Vedoucí diplomové práce: RNDr. PhDr. Ivo
Virtuální instrumentace v experimentech jaderné fyziky - Vzorové úlohy
Jiří Pechoušek, Milan Vůjtek Virtuální instrumentace v experimentech jaderné fyziky - Vzorové úlohy V tomto dokumentu jsou uvedeny základy úloh probíraných v předmětu KEF/VIJF. KATEDRA EXPERIMENTÁLNÍ FYZIKY
Dekapling, koherentní transfer polarizace, nukleární Overhauserův jev
Dekapling Dekapling, koherentní transfer polarizace, nukleární Overhauserův jev Dekaplingem rozumíme odstranění vlivu J-vazby XA na na spektra jader A působením dalšího radiofrekvenčního pole ( ω X )na
Západočeská univerzita v Plzni. Fakulta aplikovaných věd Katedra matematiky. Geometrie pro FST 1. Pomocný učební text
Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra matematiky Geometrie pro FST 1 Pomocný učební text František Ježek, Marta Míková, Světlana Tomiczková Plzeň 29. srpna 2005 verze 1.0 Předmluva
Regulární matice. Věnujeme dále pozornost zejména čtvercovým maticím.
Regulární matice Věnujeme dále pozornost zejména čtvercovým maticím. Věta. Pro každou čtvercovou matici A = (a ij ) řádu n nad tělesem (T, +, ) jsou následující podmínky ekvivalentní: (i) Řádky matice
Genetický polymorfismus
Genetický polymorfismus Za geneticky polymorfní je považován znak s nejméně dvěma geneticky podmíněnými variantami v jedné populaci, které se nachází v takových frekvencích, že i zřídkavá má frekvenci
Determinant. Definice determinantu. Permutace. Permutace, vlastnosti. Definice: Necht A = (a i,j ) R n,n je čtvercová matice.
[] Definice determinantu BI-LIN, determinant, 9, P Olšák [2] Determinant je číslo jistým způsobem charakterizující čtvercovou matici det A 0 pro singulární matici, det A 0 pro regulární matici používá
Reference 10. Předpokládejme stavový popis spojitého, respektive diskrétního systému
Módy systému Teorie dynamických systémů Obsah Úvod 2 Příklady 2 3 Domácí úlohy 8 Reference Úvod Řešení stavových rovnic Předpokládejme stavový popis spojitého, respektive diskrétního systému ẋ(t)=ax(t)+bu(t)
Laboratorní měření 1. Seznam použitých přístrojů. Popis měřicího přípravku
Laboratorní měření 1 Seznam použitých přístrojů 1. Generátor funkcí 2. Analogový osciloskop 3. Měřící přípravek na RL ČVUT FEL, katedra Teorie obvodů Popis měřicího přípravku Přípravek umožňuje jednoduchá
KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky
KOMPLEXNÍ ČÍSLA Gymnázium Jiřího Wolkera v Prostějově Výukové materiály z matematiky pro vyšší gymnázia Autoři projektu Student na prahu 21. století - využití ICT ve vyučování matematiky na gymnáziu INVESTICE
Anotace. Dynamické programování, diskrétní simulace.
Anotace Dynamické programování, diskrétní simulace. Problémy, které byly Přednášející jde tentokrát do M1, počet platných uzávorkování pomocí n párů závorek, počet rozkladů přirozeného čísla na součet
Digitální paměťový osciloskop (DSO)
http://www.coptkm.cz/ Digitální paměťový osciloskop (DSO) Obr. 1 Blokové schéma DSO Konstrukce U digitálního paměťového osciloskopu je obrazovka čistě indikační zařízení. Vlastní měřicí přístroj je rychlý
Západočeská univerzita. Lineární systémy 2
Západočeská univerzita FAKULTA APLIKOVANÝCH VĚD Lineární systémy Semestrální práce vypracoval: Jan Popelka, Jiří Pročka 1. květen 008 skupina: pondělí 7-8 hodina 1) a) Jelikož byly měřící přípravky nefunkční,
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 23 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 2 / 23 biologové často potřebují najít často se opakující sekvence DNA tyto sekvence bývají relativně krátké,
Ele 1 elektromagnetická indukce, střídavý proud, základní veličiny, RLC v obvodu střídavého proudu
Předmět: Ročník: Vytvořil: Datum: ELEKTROTECHNIKA PRVNÍ ZDENĚK KOVAL Název zpracovaného celku: 30. 9. 203 Ele elektromagnetická indukce, střídavý proud, základní veličiny, RLC v obvodu střídavého proudu
3.2 Rovnice postupné vlny v bodové řadě a v prostoru
3 Vlny 3.1 Úvod Vlnění můžeme pozorovat například na vodní hladině, hodíme-li do vody kámen. Mechanické vlnění je děj, při kterém se kmitání šíří látkovým prostředím. To znamená, že například zvuk, který
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
Vícekriteriální hodnocení variant metody
Katedra aplikované matematiky a informatiky Jihočeská Univerzita v Českých Budějovicích, Ekonomická fakulta 2010 Metody vícekriteriální hodnocení variant (VHV) Jak jsme již zmiňovali, VHV obecně neposkytuje
V praxi pracujeme s daty nominálními (nabývají pouze dvou hodnot), kategoriálními (nabývají více
9 Vícerozměrná data a jejich zpracování 9.1 Vícerozměrná data a vícerozměrná rozdělení Při zpracování vícerozměrných dat, hledáme souvislosti mezi dvěmi, případně více náhodnými veličinami. V praxi pracujeme
Funkce zadané implicitně
Kapitola 8 Funkce zadané implicitně Začneme několika příklady. Prvním je známá rovnice pro jednotkovou kružnici x 2 + y 2 1 = 0. Tato rovnice popisuje křivku, kterou si však nelze představit jako graf
Pasivní Koherentní Lokace. Duben 2008
Pasivní Koherentní Lokace Duben 2008 Obsah Koncepce systému PCL Princip Bistatický radar Problémy Základy zpracování PCL signálů Eliminace clutter Vzájemná funkce neurčitosti Detekce cílů Asociace měření
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 40 regula Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague regula 1 2 3 4 5 regula 6 7 8 2 / 40 2 / 40 regula Iterační pro nelineární e Bud f reálná funkce
Unstructured data pre-processing using Snowball language
Unstructured data pre-processing using Snowball language Předzpracování nestrukturovaných dat pomocí jazyka Snowball Bc. Pavel Řezníček, doc. Ing. František Dařena, PhD., Ústav informatiky, Provozně ekonomická
MATEMATIKA Charakteristika vyučovacího předmětu 2. stupeň
MATEMATIKA Charakteristika vyučovacího předmětu 2. stupeň Obsahové, časové a organizační vymezení Předmět Matematika se vyučuje jako samostatný předmět v 6. až 8. ročníku 4 hodiny týdně, v 9. ročníku 3
Populační genetika II
Populační genetika II 4. Mechanismy měnící frekvence alel v populaci Genetický draft (genetické svezení se) Genetický draft = zvýšení frekvence alely díky genetické vazbě s výhodnou mutací. Selekční vymetení
Základní radiometrické veličiny
Základní radiometrické veličiny Radiometrické veličiny se v textech, se kterými jsem se setkal, zavádějí velmi formálně, např. iradiance E= dφ da.pokusiljsemsepřesnějipopsat,cojednotlivéfunkceznamenají.formálnízápisyjsouzde
Informatika Algoritmy
Informatika Algoritmy Radim Farana Podklady předmětu Informatika pro akademický rok 2010/2011 Obsah Algoritmus. Vlastnosti algoritmu. Popis algoritmu. Hodnocení algoritmů. Příklady algoritmů. Algoritmus
9. Úvod do teorie PDR
9. Úvod do teorie PDR A. Základní poznatky o soustavách ODR1 Diferenciální rovnici nazveme parciální, jestliže neznámá funkce závisí na dvou či více proměnných (příslušná rovnice tedy obsahuje parciální
Regresní a korelační analýza
Přednáška STATISTIKA II - EKONOMETRIE Katedra ekonometrie FEM UO Brno kancelář 69a, tel. 973 442029 email:jiri.neubauer@unob.cz Regresní analýza Cíl regresní analýzy: stanovení formy (trendu, tvaru, průběhu)
Implementace seznamů do prostředí DELPHI pomocí lineárního seznamu
Implementace seznamů do prostředí DELPHI pomocí lineárního seznamu Ukazatel a dynamické datové struktury v prostředí DELPHI Důležitým termínem a konstrukčním programovým prvkem je typ UKAZATEL. Je to vlastně
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky
A0M33EOA: Evoluční optimalizační algoritmy
A0M33EOA: Evoluční optimalizační algoritmy Zkouškový test Pátek 8. února 2011 Vaše jméno: Známka, kterou byste si z předmětu sami dali, a její zdůvodnění: Otázka: 1 2 3 4 5 6 7 8 Celkem Body: 1 3 2 1 4
StatSoft Odkud tak asi je?
StatSoft Odkud tak asi je? Ukážeme si, jak bychom mohli vypočítat pravděpodobnosti, na které jsme se ptali v minulém newsletteru Úkolem bylo zjistit, z kterého kraje nejpravděpodobněji pochází náš výherce
ELEKTRONIZACE VEŘEJNÉ SPRÁVY
ELEKTRONIZACE VEŘEJNÉ SPRÁVY ANDREA SCHELLEOVÁ Právnická fakulta Masarykovy univerzity Abstract in original language Článek se zaobírá problematikou elektronizace veřejné správy s důrazem na elektronické
Interpret jazyka IFJ2011
Dokumentace projektu Interpret jazyka IFJ2011 Tým číslo 093, varianta b/3/i: 20 % bodů: Cupák Michal (xcupak04) vedoucí týmu 20 % bodů: Číž Miloslav (xcizmi00) 20 % bodů: Černá Tereza (xcerna01) 20 % bodů:
K přednášce NUFY028 Teoretická mechanika prozatímní učební text, verze 01 10. Spojitá prostředí: rovnice struny Leoš Dvořák, MFF UK Praha, 2014
K přednášce NUFY8 Teoretická mechanika prozatímní učební text, verze 1 1 Spojitá prostředí: rovnice strun Leoš Dvořák, MFF UK Praha, 14 Spojitá prostředí: rovnice strun Dosud jsme se zabývali pohbem soustav
Matematika pro kombinované studium BOZO. Konzultace pátá. RNDr. Libuše Samková, Ph.D. e-mail: lsamkova@ pf.jcu.cz
Učební texty ke konzultacím předmětu Matematika pro kombinované studium BOZO Konzultace pátá RNDr. Libuše Samková, Ph.D. e-mail: lsamkova@ pf.jcu.cz webová stránka: home.pf.jcu.cz/ lsamkova/ Obsah konzultace:
Programování. Debugging a testování. Martin Urza
Programování Debugging a testování Martin Urza Co je debugging? V počítačích nulté generace byly důvodem některých chyb zkraty, které způsoboval mimo jiné hmyz, jenž do těchto strojů zalézal. Odstraňování