1 Analýza nezávislých komponent
Transkript
Analýza nezávislých komponent Vytvořil: Ondřej Konopka Vedoucí práce: Ing. Jakub Šťastný Analýza nezávislých komponent Ondřej Konopka 1 Analýza nezávislých komponent V této práci provedeme úvod do problematiky analýzy nezávislých komponent. Pokusíme se vysvětlit v čem tato metoda spočívá. Zkusíme vysvětlit jaké signály lze separovat a jaké komponenty nelze od sebe separovat a proč. Pokusíme se na příkladech tato tvrzení dokázat a to za použití FastICA toolboxu [13]. Shrneme výhody a nevýhody ICA vlastnosti a chování algoritmu FastICA, použitého k separaci nezávislých komponent. 1.1 Úvod Independent Component Analysis ( ICA ) je metoda separace signálů, která se snaží oddělit nezávislé signály, které byly nějakým způsobem smíchány. Klasickým příkladem na aplikaci ICA je takzvaný „Cocktail – party problem “. Ten můžeme popsat jako situaci na večírku, kdy je více mluvících osob (zdrojů hlasů) a snažíme se z davů hlasů vnímat jenom jeden tzn. separovat jeden zdroj (1). Pro příklad můžeme uvažovat jenom dva mluvčí s1 a s2, kteří vydávají zvuky s1(t) a s2(t). Uši jako snímače těchto hlasů zachycují signály x1(t) a x2(t). Ty můžeme zjednodušeně vyjádřit následujícími rovnicemi x1 (t ) = a11 s1 + a12 s 2 x 2 (t ) = a 21 s1 + a 22 s 2 ( 1.1 ) Předpokladem úspěšné separace signálu s1 a s2 ze signálu x1 a x2 je úvaha, že signály s1 a s2 byly statisticky nezávislé. Podobný problém jako Cocktail-party problém nastává při měření povrchového potenciálu při měření mozkové aktivity - tzn. elektroencephalogramu (EEG). Tyto potenciály jsou pravděpodobně smíchané signály jednotlivých center aktivit v mozku. Narozdíl od předcházejícího případu v tomto případě nemáme k dispozici zdrojové signály z mozku. Při separaci jednotlivých signálů z EEG se ICA snaží najít nejzajímavější informace. -1- Analýza nezávislých komponent Ondřej Konopka S s[1,t] s[M,t] A prostředí (lineární kombinace) x[1,t] x[k,t] x[N,t] A-1=W ICA y[1,t] y[k,t] y[N,t] Obrázek 1 Zjednodušené schema “Coctail party problem” -2- Analýza nezávislých komponent Ondřej Konopka 1.2 Independent Component Analysis (ICA) Nezávislé komponenty jsou skryté proměnné, které nemohou být přímo měřeny nebo pozorovány. Například na obrázku (1), to jsou hlasy lidí. Předpokládáme, že matice A je neznámá, takže z pozorovaného vektoru X musíme odhadnout A i S pomocí ICA. Pro náš příklad z obrázku (1) matice A popisuje prostředí na party. Pro zjednodušení budeme předpokládat, že matice A je čtvercová. Po odhadu matice A můžeme počítat inverzní matici W a nezávislé komponenty získáme jednoduše. Pro obrázek (1) jsou nezávislé komponenty jednotlivé hlasy lidí. S = W⋅X ( 1.2 ) S = ( s1 ,..., sn )T ( 1.3 ) ICA je velice těsně spojena s metodou zvanou slepá separace zdrojů (blind source separation – BSS) nebo slepá separace signálů (blind signal separation). Základním omezením pro ICA je, aby nezávislé komponenty neměly normální rozložení (Gaussovské) hustoty pravděpodobnosti jednotlivých vzorků. 1.2.1 Definice ICA V této kapitole se pokusíme nadefinovat ICA. Budeme uvažovat pouze lineární analýzu nezávislých komponent (ICA). Definice ICA může mít více podob, což může být v jistých ohledech problém, protože nemusí být hned na první pohled jasné, kterou z definic uvažujeme. V definicích bude značen m-rozměrný náhodný vektor takto X = ( x1 ,..., xm )T ( 1.4 ) Jedny z nejpoužívanějších definic jsou v následujících kapitolách. 1.2.1.1 Definice 1 Obecná definice (General definition) [2] – ICA náhodného vektoru X spočívá v nalezení takové lineární transformace S = W⋅X ( 1.5 ) aby komponenty si byly nezávislé jak jen je to možné. Toho dosáhneme maximalizací funkce F(s1,…,sm), která měří nezávislost komponent si. Tato definice je mnohem obecnější než následující definice, protože nepředpokládá apriorní znalost modelu generovaných dat. Tato definici nemusí být úplně jasná, když pro výpočet jednotlivých -3- Analýza nezávislých komponent Ondřej Konopka komponent si potřebujeme znát F(s1,…,sm), která měří statistickou nezávislost komponent si. Rozdílný případ je uveden v následující definici, která je mnohem teoretičtější v odhadu modelu dat, protože uvažuje gausovský šum. 1.2.1.2 Definice 2 Šumový model ICA (Noisy ICA model) [2] - ICA náhodného vektoru X spočívá v odhadu následujícího modelu pro data X = A ⋅S + N ( 1.6 ) kde skryté komponenty si jsou ve vektoru ( 1.3 ) a jsou předpokládány jako nezávislé. Matice A je matice rozměru m x n, která provádí smíchání signálů a N je m-rozměrný náhodný vektor šumu.Tato definice redukuje běžný odhad skrytých proměnných modelu dat. Nicméně tento problém odhadu není tak jednoduchý a proto většina výzkumů v oblasti ICA se zaměřuje na následující definici. 1.2.1.3 Definice 3 Bezšumový model (Noise – free ICA model) [2] - ICA náhodného vektoru X spočívá v odhadu následujícího modelu pro data X = A ⋅S ( 1.7 ) kde A a S jsou stejné jako v definici 2. Oproti definici 2 zde byl vynechán pouze náhodný vektor N. Označme si sloupce v matici A jako aj. Pak můžeme psát n X = ∑ ai ⋅ si ( 1.8 ) i =1 Pro příklad uvádíme vyobrazení dvou typů proměnných. Z obrázku 2 je vidět, že náhodné veličiny s jednotkovým rozptylem jsou nezávislé. To se pozná podle toho, že v XY vyobrazení odpovídá jedné hodnotě na ose x více hodnotám na ose y. Na obrázku 5 jsou vidět časové průběhy veličin, které jsou také nezávislé a mají jednotkový rozptyl. -4- Analýza nezávislých komponent Ondřej Konopka Obrázek 2 X-Y zobrazení náhodné veličiny Obrázek 3 Časový průběh náhodných veličin s jednotkovým rozptylem z obrázku 3 Obrázek 4 X-Y zobrazení veličiny s jednotkovým Obrázek 5 Časový průběh veličin s jednotkovým rozptylem z obrázku 5 rozptylem Zvolení směšovací matice A následovně 2 3 A= − 1 2 jsme provedli smísení signálů z obrázku 2 a obrázku 5 a provedli vybělení. Vybělené signály jsou na obrázcích 6 a 9. Po aplikaci FastICA [1,2,13] algoritmu dostaneme obnovenou směšovací matici následující -5- Analýza nezávislých komponent Ondřej Konopka − 1.88 − 3.03 W= 1.03 − 1.97 To že v matici neodpovídají znaménka bude vysvětleno později. Může také nastat případ, kdy budou sloupce v matici W prohozeny, což bude vysvětleno také později . Na obrázku 2 je vidět, že proměnné jsou statisticky nezávislé, protože jedné hodnotě v signálu s1 nemůžeme jednoznačně určit odpovídající hodnotu v signálu s2. Což je naznačeno šipkami na obrázku 2. Další možnost jak můžou vypadat statisticky nezávislé veličiny je na obrázku 21. Kdežto statistickou závislost můžeme pozorovat po vybělení signálů z obrázku 3 na obrázku 6. Kde je šipkami z plných čar naznačeno, že v krajích dochází k závislosti signálů. Čerchovanými šipkami na obrázku 6 je naznačen směr projekce. Obrázek 6 X-Y zobrazení vybělených signálů Obrázek 7 Časový průběh vybělených náhodných z obrázku 3 veličin z obrázku 3 Obrázek 8 X-Y zobrazení vybělených signálů Obrázek 9 Časové zobrazení vybělených signálů z obrázku 5 z obrázku 5 -6- Analýza nezávislých komponent Ondřej Konopka 1.2.2 Nejednoznačnost ICA Analýza nezávislých komponent neposkytuje jednoznačný výsledek. V zásadě se můžeme setkat se dvěmi nejednoznačnostmi: 1. Nemůžeme určit energie nezávislých komponent Protože jsou obě matice S a A neznámé, jakékoliv násobení skalární hodnotou v jednom ze zdrojů si může být vždy zrušeno dělením stejnou skalární hodnotou v odpovídajícím sloupcem ai matice A [1,7]; viz rovnice ( 1.8 ) Díky tomu můžeme celkem dobře opravit velikost amplitudy nezávislých komponent si. Jelikož jsou to náhodné proměnné, je nejlepší cestou jak opravit velikost amplitudy, { } předpokládat, že každá náhodná proměnná má rozptyl roven jedné: E si2 = 1 . Potom bude matice A upravena tak, aby mohla byt použita v metodách, které slouží k výpočtu ICA např.: FastICA a berou v úvahu omezení na jednotkový rozptyl. To určuje velikost absolutní hodnoty amplitudy zdrojů, ale problém s určením znaménka přetrvává. Můžeme klidně vynásobit jeden ze zdrojů -1, ale nebude to mít žádný vliv na model ICA popsaný rovnicí ( 1.7 ) [1,7]. Toto je naštěstí v mnoha aplikacích bezvýznamnou vlastností. 2. Pořadí nezávislých komponent Můžeme volně měnit pořadí zdrojů v matici S a pořadí odpovídajících sloupců v matici A [7]. X = A ⋅ S = A ⋅ P −1 ⋅ P ⋅ S = A′S′ A′ = A ⋅ P −1 S′ = P ⋅ S ( 1.9 ) Část rovnice ( 1.9 ) P.S je rovna původním nezávislým proměnným sj, ale v jiném pořadí. Matice A.P1 je právě ona neznámá směšovací matice a P je permutační matice. 1.2.3 Co znamená nezávislost komponent? V následujícím textu se zamysleme nad pojmem statistické nezávislosti. Zadefinujeme si statistickou nezávislost náhodných veličin. Pokusme se vysvětlit jak se zjistí zda jsou veličiny statisticky nezávislé a jak se odhaduje jejich nezávislost. Vysvětlíme si, proč nesmí být proměnné gaussovského typu a proč nekorelované veličiny jsou jenom částečně nezávislé. -7- Analýza nezávislých komponent Ondřej Konopka 1.2.3.1 Definice Nezávislost náhodných veličin může být definována pomocí jejich hustot pravděpodobnosti. Označme si p(y1,y2) jako vzájemnou hustotu pravděpodobnosti (probability density function - pdf) y1 a y2. Dále označme p(y1) mezní hustotou pravděpodobnosti y1, když uvážíme p1 ( y1 ) = ∫ p(y1 , y 2 )dy2 ( 1.10 ) p 2 ( y 2 ) = ∫ p(y1 , y 2 )dy1 ( 1.11 ) a podobně pro y2 Pak definujeme, že y1 a y2 jsou nezávislé právě tehdy a jenom když vzájemnou hustotu pravděpodobnosti lze rozložit následovně p ( y1 , y 2 ) = p1 ( y1 ) ⋅ p2 ( y 2 ) ( 1.12 ) Tato definice může být použita k odvození mnoha zajímavých vlastností nezávislých náhodných proměnných. Například pro dvě funkce h1 a h2 vždy dostáváme vlastnost [1] E{h1 ( y1 )h2 ( y2 )} = E{h1 ( y1 )}E{h2 ( y2 )} ( 1.13 ) 1.2.3.2 Nekorelované proměnné jsou jenom částečně nezávislé Redukovanou formou nezávislosti je nekorelovanost. Dvě náhodné proměnné y1 a y2 jsou nekorelované, když je jejich kovariance nulová. E{y1 y2 }− E{y1}E{y2 } = 0 ( 1.14 ) Jestliže jsou proměnné nezávislé, jsou také nekorelované. To plyne přímo z rovnice ( 1.14 ), vezmeme-li h1(y1)=y1 a h2(y2)=y2. Obráceně platí, že nekorelovanost neimplikuje nezávislost. Mnoho metod výpočtu ICA omezuje odhad tak, že vždycky dává nekorelovaný odhad nezávislých komponent. Toto redukuje počet volných parametrů a zjednodušuje celý problém. 1.2.3.3 Proměnné gaussova typu nemůžou být odhadnuty Základní omezení ICA je, že nezávislé komponenty nesmí být Gausova typu. Předpokládejme, že směšovací matice A je ortogonální a si jsou gausovské. Pak x1 a x2 jsou gausovské, nekorelované a mají jednotkový rozptyl. Jejich vzájemná hustota je dána -8- Analýza nezávislých komponent p ( x1 , x 2 ) = z≡ (x1 − µ1 )2 σ1 2 Ondřej Konopka 1 2πσ 1σ 2 1 − ρ 2 exp(− z ) 2 1− ρ 2 ( ) 2 ρ (x1 − µ1 )( x 2 − µ 2 ) ( x 2 − µ 2 ) − + 2 σ 1σ 2 σ2 ρ = cor ( x1 , x 2 ) = ( 1.15 ) 2 σ 12 σ 1σ 2 ( 1.16 ) ( 1.17 ) Pro náš případ je σ 1 = σ 2 = 1, µ1 = µ 2 = 0 . Na obrázku 10 je vidět vzájemná hustota proměnných x1 a x2. Z obrázku je vidět, že hustota je symetrická. Tudíž neobsahuje žádnou informaci o směru sloupce mixážní matice A. To je důvod, proč nemůže být matice A odhadnuta. Obrázek 10 Vzájemná hustota dvou proměnných -9- Analýza nezávislých komponent Ondřej Konopka 1.2.4 Odhad nezávislosti Centrální limitní věta říká, že součet několika nezávislých náhodných proměnných jako jsou zde S, se blíží ke Gausovskému rozdělení. Takže xi=a1s1+a2s2 je více gausovské než rozdělení s1 nebo s2. Z centrální limitní věty plyne, že můžeme najít jakovou kombinaci měřených signálů z X, které budou mít minimální gausovské vlastnosti, pak tento signál bude jeden z nezávislých signálů. Aby mohl být nalezen tento signál, je potřeba měřit nenormality součinu wX. 1.2.4.1 Špičatost (kurtosis) Špičatost měří, je-li hustota rozdělení „špičatější“ nebo „plošší“, než hustota normálního rozdělení [9]. Špičatost se vypočítá podle následujícího vztahu [1] . kurt ( y ) = E ( y 4 ) − 3 ⋅ E ( y 2 ) 2 ( 1.18 ) Dodejme, že pro normální rozdělení a parametry µ=0 a σ2=1 platí γ2=0 (obrázek 11b). Proměnné, které mají zápornou špičatost jsou nazývány jako subgaussian nebo platykurtické (obrázek 11b a 11c) a ty, které mají kladnou špičatost jsou nazývány jako supergaussian či leptokurtické (obrázek 11a). Špičatost je velice jednoduchá na výpočet, avšak je velice citlivá na extrémy a chyby při měření dat. Špičatost není tudíž dost robustní pro ICA. 1.2.4.2 Negativní entropie (negentropy) Druhou možností jak měřit nenormalitu je užitím negativní entropie. Negativní entropie je založena na informačním-teoretickém množství entropie. Entropie je základní koncept informační teorie. Entropie náhodné veličiny může být interpretována jako střední počet bitů, pomocí niž lze informaci zakódovat. Entropie H je pro diskrétní signál Y definována jako H (Y ) = −∑ P (Y = ai ) log P (Y = ai ) i ( 1.19 ) kde ai jsou možné hodnoty Y. Tato definice může být zobecněna na veličiny spojité v čase. V tomto případě pak hovoříme o rozdílové entropii (differential entropy) . Rozdílová entropie H náhodného vektoru y s hustotou f(y) je definována jako H ( y ) = − ∫ f ( y ) log( f ( y ))dy - 10 - ( 1.20 ) Analýza nezávislých komponent Ondřej Konopka Entropie dosahuje malých hodnot pro rozdělení, která jsou jasně koncentrována na jistých hodnotách. Což je vidět z obrázku 11a. To jest když je proměnná jasně rozdělena nebo má pdf, které je velice ostré. K získání měřené nenormality, která je obvykle nulová pro gaussovskou proměnnou a vždy kladná se často používá nepatrně modifikovaná verze definice rozdílové entropie zvané negativní entropie ( negentropy ). Negativní entropie J je definována jako J ( y ) = H ( y gauss ) − H ( y ) ( 1.21 ) kde ygauss je gausovská náhodná veličina se stejnou kovarianční maticí jako y. Negentropie je vždy nezáporná a je nulová pouze a jenom tehdy, když y má Gaussovské rozdělení. Nevýhodou použití negentropie je v tom, že se velice těžko počítá. Odhadování negentropie užitím definice vyžaduje odhad pdf. Proto jednodušší aproximace negentropie jsou velice užitečné. - 11 - Analýza nezávislých komponent Ondřej Konopka a) koncentrované rozdělení - normální rozdělení s parametry µ = 1, σ = 0,001 (supergaussian) b) normální rozdělení s parametry µ = 0, σ = 1 (subgaussian) c) distribuční funkce f(x)=sin(x) pro x ∈ − π π ; (subgaussian) 2 2 Obrázek 11 Histogramy různých distribučních funkcí . - 12 - Analýza nezávislých komponent Ondřej Konopka 1.2.4.3 Odhad hodnoty negativní entropie (negentropy approximation) Odhadování negativní entropie je velice obtížné. Klasická metoda aproximace negativní entropie je užitím vyšších momentů, například [1]: J ( y) ≈ { } 2 1 1 E y 3 + kurt ( y ) 2 12 48 ( 1.22 ) Předpokladem je, že y má nulovou střední hodnotu a jednotkový rozptyl. V praxi, tato aproximace dosahuje stejných výsledků jako s kurtosis, ale má lepší robustnost. Další možnou aproximací je [1] p J ( y ) ≈ ∑ ki [E{Gi ( y )} − E{Gi (v )}] 2 ( 1.23 ) i =1 kde ki je kladná konstanta a v je Gausovská proměnná s nulovou střední hodnotou a jednotkovým rozptylem. U proměnné y je předpokládáno, že má také nulovou střední hodnotou a jednotkový rozptyl. Gi jsou nějaké nekvadratické funkce. Následující funkce, které mohou být užity jako funkce Gi, dávají dobrou aproximaci negativní entropie a jsou mnohem méně citlivé na chyby měření než špičatost. G1 (u ) = 1 log(cosh(a1u )) a1 u2 G2 (u ) = − exp(− ) 2 ( 1.24 ) kde 1 ≤ a1 ≤ 2 je vhodná konstanta. 1.3 Předzpracování signálů pro ICA Dříve než začneme používat ICA algoritmus na data, je vhodné provést předzpracování signálu. V této kapitole budeme diskutovat různé techniky předzpracování signálů, které mohou zjednodušit problém odhadování komponent pomocí ICA nebo zlepšit podmínky pro odhad. - 13 - Analýza nezávislých komponent Ondřej Konopka 1.3.1 Centrování Nejzákladnější a nejdůležitější předzpracování je centrování x. Provádí se odečtením střední hodnoty x od vzorků signálu x. Z toho vyplývá, že s má také střední hodnotu nulovou. Toto předzpracování pouze zjednodušuje ICA algoritmus. To neznamená, že by střední hodnota nemohla být odhadnuta. Po odhadnutí směšovací matice A s centrovanými daty můžeme přidat zpět k centrovanému odhadu s střední hodnotu s. 1.3.2 Bělení (whitening) Další užitečné předzpracování signálů je vybělení pozorovaných proměnných. To znamená, že před použitím ICA algoritmu a po použití centrování, transformujeme pozorovaný vektor x lineárně tak, že x , který je vybělený. Jeho komponenty jsou nekorelované a mají jednotkový získáme nový vektor ~ rozptyl. Jinými slovy řečeno, kovarianční matice ~ x je rovna jednotkové matici. { } E~ x⋅~ xT = I ( 1.25 ) Transformace bělení je vždy možná. Jedna z nejpopulárnějších metod pro bělení je užitím vlastní { } hodnoty rozkladu (EVD) kovarianční matice E x ⋅ x T = EDE T , kde E je ortogonální matice { vlastních vektorů E x ⋅ x T { E x ⋅ xT } a D je diagonální matice, D = diag (d1 ,..., d n ) . Poznamenejme, že } může být odhadnuta standardní cestou z dostupných vzorků x(1),..,x(T). Bělení teď může být provedeno podle 1 − ~ x = ED 2 ET x kde matice D { − 1 2 je počítána jako D − 1 2 ( 1.26 ) − 1 − 1 = diag (d1 2 ,..., d n 2 ) . Je velice jednoduché ověřit, že } E~ x⋅~ xT = I . ~ Bělení transformuje směšovací matici A na novou A . 1 − ~ ~ x = ED 2 ET A.s = As - 14 - ( 1.27 ) Analýza nezávislých komponent Ondřej Konopka ~ Užitečnost bělení vyplývá z faktu, že nová směšovací matice A je ortogonální. To lze ukázat následovně { } { } ~ ~ ~~ E~ x~ x T = AE ssT AT = AAT = I ( 1.28 ) Je zřejmé, že bělení redukuje počet odhadnutých parametrů. Místo odhadnutí n2 (obrázek 12)prvků ~ originální matice A, potřebujeme odhadnout novou ortogonální směšovací matici A . Ortogonální matice obsahuje pouze n(n-1)/2 stupňů volnosti, obrázek 13. Například, pro dvě dimenze a nějakou ortogonální transformaci je určena jedním parametrem úhlu. Ve více dimenzích, ortogonální matice ~ A obsahuje jenom polovinu z počtu parametrů libovolné matice. Bělení se často používá, protože se jedná o velice jednoduchou a častou část předzpracování dat, která je mnohem jednodušší než jakýkoliv algoritmus řešící ICA. a11 a 21 A= aN1 a12 a1N aNN Obrázek 12 Počet stupňů volnosti je n2 a11 a = a 21 12 ~ A = a31 = a13 aN1 = aN1 a12 = a21 a22 a13 = a31 a33 a1N = aN1 aNN Obrázek 13 Počet stupňů volnosti je n(n-1)/2 1.4 FastICA algoritmus V předcházejících kapitolách jsme provedli úvod do měření nenormálnosti tj.: účelové funkce pro odhadování pomocí ICA. V praxi však potřebujeme algoritmus pro maximalizování cenové funkce. V této sekci uděláme úvod do velice efektivní metody vhodné pro realizování toho úkolu. Budeme také předpokládat, že data jsou předzpracována, což znamená vycentrovaná a vybělená. - 15 - Analýza nezávislých komponent Ondřej Konopka Obrázek 14 Jednoduchý neuron Obrázek 15 Aktivační funkce hardlimit Obrázek 16 Aktivační funkce logsig Obrázek 17 Aktivační funkce purelin 1.4.1 FastICA (pro odhad jedné komponenty) Na začátek budeme uvažovat „one-unit“ verzi FastICA. Jednotkou („unit“) myslíme vypočtenou jednotku např.: uměle vytvořený neuron, obrázek 14. Máme-li váhový vektor w pak neuron může být aktualizován podle učícího pravidla. FastICA učící algoritmus hledá směr tj. váhový vektor w takový, že projekce w T x je maximálně nenormální. Nenormálnost je zde měřena pomocí aproximace ( ) negativní entropie J w T x . - 16 - Analýza nezávislých komponent Ondřej Konopka FastICA algoritmus je založený na iteračním schématu s aritmetikou s pevnou řádovou čárkou sloužícím pro nalezení maxima nenormálnosti w T x . To však může být odvozeno aproximačně, Newtonovou iterační metodou. Označme g jako derivaci nekvadratické funkce G. Například derivace funkcí ( 1.24 ) g1 (u ) = tanh(a1u ) u2 g 2 (u ) = −u exp(− ) 2 ( 1.29 ) kde 1 ≤ a1 ≤ 2 je vhodná konstanta, často braná jako a1=1. Základní kostra FastICA algoritmu je následující 1) Výběr počátečního (třeba náhodného) váhovacího vektoru w { ( )} { ( )} 2) Nechť w + = E xg w T x − E xg ′ w T x w 3) Nechť w = w+ w+ 4) Jestliže nekonverguje, tak zpět na bod 2) Poznamenejme, že konvergencí myslíme, že staré a nové hodnoty w jsou ve stejném směru tj. skalární součin je skoro roven jedné. Není nezbytné, aby vektor konvergoval k izolovanému bodu, protože w a -w definuje stejný směr. To je proto, že nezávislé komponenty mohou být odhadnuty krom znaménka. Poznamenejme však, že zde je předpokládáno, že data jsou předvybělena. Odvození FastICA algoritmu je následující. Nejprve poznamenejme, že maxima aproximace negativní { ( )} [1]. V souladu s Kuhn-Tucker podmínkou [5], je optimum E {G (w x )} za podmínky E {(w x ) }= w = 1 nalezeno pomocí rovnice ( 1.30 ). entropie w T x jsou získána nalezením optima E G w T x T T { ( 2 )} E xg w T x − βw = 0 Řešení této rovnice pomocí Newtonovy metody je - 17 - 2 ( 1.30 ) Analýza nezávislých komponent w+ = w − Ondřej Konopka { ( )} { ( ) } E xg w T x − βw E g ′ wT x − β ( 1.31 ) 1.4.2 FastICA (současný odhad více komponent) Algoritmus rozebíraný v předcházející sekci odhaduje jednu z nezávislých komponent nebo jeden směr projekce. Pro odhad několika nezávislých komponent potřebujeme rozeběhnout „one-unit“ FastICA algoritmus užitím několika jednotek (např.: neuronů) s váhovacími vektory w1,..,wn. Abychom předešli konvergenci různých vektorů ke stejnému maximu musíme dekorelovat výstupy w1T x,.., wnT x po každé iteraci [1]. Budeme zde prezentovat tři metody jak toho dosáhnout. Jednoduchou cestou k dosažení dekorelace je použití Gramm-Schmittovu ortogonalizaci [10]. To znamená, že budeme odhadovat komponenty jednu po druhé. Když máme odhadnuto p nezávislých komponent nebo p vektorů w1 ,.., w p , spustíme „one-unit“ algoritmus pro wp+1 a po každém iteračním kroku nahradíme wp+1 projekce w Tp +1w j w j , j = 1,.., p předchozího odhadu p vektorů a následně normalizujeme wp+1 : 1) Nechť w p +1 = w p +1 − ∑ j =1 w Tp +1w j w j p ( 1.32 ) 2) Nechť w p +1 = w p +1 w Tp +1w p +1 ( 1.33 ) V jistých aplikacích může být požadováno použití symetrické dekorelace, ve které nejsou žádné vektory upřednostňovány [1]. Nechť − 1 W = ( WWT ) 2 W ( 1.34) kde W je matice (w1,…,wn)T vektorů. Jednodušší alternativou je následující iterační algoritmus. - 18 - Analýza nezávislých komponent Ondřej Konopka 1) Nechť W= W ( 1.35 ) WWT Opakuj druhý krok dokud nedojde ke konvergenci 2) Nechť W= 3 1 W − WW T W 2 2 ( 1.36 ) 1.4.3 Vlastnosti FastICA algoritmu FastICA algoritmus má několik žádoucích vlastností [1] ve srovnání s ostatními existujícími metodami ICA. 1 Rychlost konvergence je kubická (nebo nejméně kvadratická), podle předpokladu pro ICA data model. To je opakem oproti běžným algoritmům ICA založených na gradientních spádových metodách, kde je konvergence pouze lineární. To znamená, že FastICA má velice rychlou konvergenci. 2 Na rozdíl od gradientních algoritmů, zde nejsou parametry nastavující velikost kroku. To znamená, že algoritmus je velice jednoduchý na použití. 3 Algoritmus hledá přímo nezávislé komponenty s negaussovským rozložením za pomoci nelinearity g. Tím se liší od mnoha algoritmů, které odhadnou rozdělení pravděpodobnosti a nelinearita musí být určena podle této funkce. 4 Provedení metody může být optimalizováno výběrem vhodné nelinearity g. V praxi to znamená, že můžeme získat velice robustní algoritmus. Prakticky obě nelinearity v rovnici ( 1.24 ) mají jisté optimální vlastnosti. 5 Nezávislé komponenty mohou být odhadovány jedna po druhé, jenž jsou přibližně rovnocenné k provedení předběžného odhadu. Toto je užitečné k informativnímu analyzování dat a snižuje výpočetní nároky metody v případech kde potřebujeme odhadnout jenom některé komponenty. - 19 - Analýza nezávislých komponent 6 Ondřej Konopka FastICA má mnoho výhod v neuronových aplikacích: je paralelní, distribuovatelná, výpočetně jednoduchá, a potřebuje málo paměťového místa. Stochastické gradientní metody se zdají být výhodnější jenom tehdy, jsou-li v prostředí rychlé adaptivní změny. 1.5 Experimenty s FastICA toolboxem pro Matlab Pro experimenty bylo vybráno osm vstupních signálů, ze kterých jsme vybrali pro demonstraci pouze čtyři signály. Signály mají vzorkovací frekvenci fs=44kHz. s1=square(2*pi*f1/fs*n), kde f1=5Hz s2=sawtooth(2*pi*f2/fs*n), kde f2=10Hz s3=sin(2*pi*f3/fs*n), kde f3=15Hz s4=0.5*randn(1,length(n)); s5=sin(2*pi*10/fs*n)+sin(2*pi*14/fs*n)+sawtooth(2*pi*5/fs*n)+s4; s6=sinc(2*pi*f3/fs*n), kde f3=15Hz s7=rectpuls(2*pi*f3/fs*n), kde f3=15Hz s8=chirp(5/fs*n,5,50/fs*length(n),50); Všechny signály jsou vyobrazeny na obrázku 19. Z těchto signálu jsme provedli všechny možné kombinace tak, aby vstupní data měly čtyři nezávislé komponenty. Jako příklad uvedeme kombinaci signálu, které měly úspěšný výsledek a FastICA separovala jednotlivé komponenty. Na obrázku 20 je vidět příklad vstupních signálů. Jedná se o umělé signály (signál podobný EEG se šumem, signál sinc, rectpuls, a chirp signál). Obrázek 21 znázorňuje vstupní signály v závislosti jeden na druhém. Číslo sloupečku a číslo řádku říká jaké dva signály jsou porovnávány. Na obrázcích 22 a 23 jsou vidět vstupní signály po smíchání směšovací maticí W, která byla vygenerována funkci randn. − 0.18 − 0.50 0.22 − 0.90 − 0.17 − 0.70 − 0.96 0.14 W = − 0.12 0.50 − 0.15 − 0.24 0.17 − 0.42 0.75 − 0.08 Obrázky 24 a 25 znázorňují smíchané signály po té co byly vyběleny a centrovány. Na obrázcích 26 a 27 jsou vidět signály po zpracování FastICA toolboxem. Na obrázku 18 je znázorněno blokové schéma celého procesu. Parametry funkce Aproach=´def1´,Nonlin=´pow3´ a stabilization=’On’. - 20 - fastica byly zvoleny následovně: Analýza nezávislých komponent s1 s2 s3 s4 vstupní signály X=W.S lineární prostředí Ondřej Konopka x1 x2 x3 x4 Centrování, Bělení předzpracování FastICA slepá separace Obrázek 18 Blokové schéma celého procesu - 21 - y1 y2 y3 y4 separované komponenty Ondřej Konopka Obrázek19 Vstupní signály Analýza nezávislých komponent - 22 - Analýza nezávislých komponent Ondřej Konopka Obrázek 20 Příklad vyobrazení vstupních signálů Obrázek 21 Zobrazení X-Y signálů pro vstupní signály - 23 - Analýza nezávislých komponent Ondřej Konopka Obrázek 22 Smíchání vstupních signálů Obrázek 23 Zobrazení X-Y signálů pro smíchané signály - 24 - Analýza nezávislých komponent Ondřej Konopka Obrázek 24 Vybělení smíchaných signálů Obrázek 25 X-Y zobrazení pro vybělené signály - 25 - Analýza nezávislých komponent Ondřej Konopka Obrázek 26 Výstup FastICA Na obrázku je vidět „téměř“ dokonalé oddělení komponent. Při separaci došlo ke změně měřítka komponent Obrázek 27 X-Y zobrazení signálů pro výstupu z FastICA - 26 - Analýza nezávislých komponent Ondřej Konopka Další obrázky ukazují jak fastica toolbox nemohl separovat komponenty, protože nedošlo ke konvergenci v požadovaných krocích. Nastavení funkce fastica bylo následující: Aproach=´symm´,Nonlin=´tanh´ a stabilization=’Off’ - 27 - Analýza nezávislých komponent Ondřej Konopka Obrázek 28 Vstupní signály pro nekonvergující příklad Obrázek 29 Zobrazení X-Y signálů pro nekonvergující příklad - 28 - Analýza nezávislých komponent Ondřej Konopka Obrázek 30 Časový průběh smíchaných signálů Obrázek 31 X-Y zobrazení smíchaných signálu pro nekonvergující příklad - 29 - Analýza nezávislých komponent Ondřej Konopka Obrázek 32 Vybělené signály Obrázek 33 X-Y zobrazení vybělených signálů - 30 - Analýza nezávislých komponent Ondřej Konopka Všechny kombinace vstupních signálů jsou uloženy i s výsledky fastica funkce v souboru report.html. V případě že došlo k tomu, že iterační metoda nekonvergovala, je řádek v tabulce vyznačen červeně. 1.5.1 Závěry z prvních pokusů • Nelze nikterak určit pořadí separovaných komponent na výstupu • Pořadí separovaných komponent nezávisí ani na pořadí v jakém jsou na vstupu viz.: obrázky 34,35,36 a 37. Obrázek 34 Vstupní komponenty Obrázek 35 1.příklad výstupu FastICA Obrázek 36 2.příklad výstupu FastICA Obrázek 37 3.příklad výstupu FastICA - 31 - Analýza nezávislých komponent Ondřej Konopka 1.5.2 Vyhodnocení experimentů V následujících kapitolách se pokusíme ve stručnosti shrnout výsledky prvních pokusů, které byly prováděny na uměle generovaných signálech. Pro separaci komponent byl použit toolbox FastICA [13]. V další kapitole budou uvedeny některé parametry fastica.m souboru, který je základním souborem toolboxu pro pro separaci komponent. 1.5.2.1 Některé parametry v fastica.m souboru Soubor fastica.m je jedním ze základních souborů toolboxu FastICA[13]. Podobný soubor jako je tento je soubor fasticag.m, kde je jeste navíc implementováno grafické rozhraní pro lepší a rychlejší volbu parametrů. My se v popisu zaměříme na skriptovou podobu souboru fastica tzn.: fastica.m. Mezi nejzákladnější parametry funkce fastica patří volba metody výpočty a počtu nezávislých komponent: 1. Approach : tento parametr nám říka, jak se budou komponety separovat. Zda budou komponety separovány jedna po druhé nebo k separaci dojde najednou. Tento parametr má tedy jenom dva přepínače. 1.1. Deflation ('defl') – tento přepínač říka, že komponenty budou separovány jedna po druhé 1.2. Symmetric ('symm') – tento přepínač říka, že k separaci komponent bude docházet najednou 2. numOfIC – tento parametr říká, kolik komponent bude separováno dalšími parametry jsou například 3. ‘g’ – parametr umožňuje vybrat nelinaritu( 1.29 ), která bude použita ve výpočetním algoritmu. Ta se vybírá pomocí následujících čtyř přepínačů 3.1. 'pow3' g (u ) = u 3 3.2. 'tanh' g (u ) = tanh(a1 ⋅ u ) 3.3. 'gauss' g (u ) = u ⋅ e − a2u 2 2 3.4. 'skew' g (u ) = u 2 4. 'stabilization' – tento parametr říka, zda bude použita stabilizovaná verze výpočetního programu nebo nebude použita. 4.1. 'on' – jestliže je zvolen tento přepínač může program ovlivňovat velikost kroku. Jestliže program zjistí, že uvázl mezi dvěma body, dojde k rozpůlení iteračního kroku. Ale nedojde-li ke konvergenci do poloviny počtu konvergenčních kroků, program opět rozpůlí iterační krok na půlku pro zbytek výpočtu. 4.2. 'off' – tento přepínač je říká, že byla vypnuta změna konvergenčního kroku 5. 'only' – tento parametr říka, zda bude proveden výpočet pouze PCA tzn. redukce dimenze nebo PCA s bělení - 32 - Analýza nezávislých komponent Ondřej Konopka 5.1. 'pca' – tato volba pro fastica funkci vrací ortogování matici E a diagonální matici D 5.2. 'white' – jestliže je zvolena tato možnost, funkce fastica vrací pouze vybělené signály, vybělenou matici W a rekonstruovanou matici W 1.5.2.2 Pro různé zdroje signálů Z celkových 1120 nastavení a kombinací signálu tzn.: různých vstupů pro funkci fastica, vzniklo 37 chyb. Chyby vznikly při nastavení parametrů následovně: (chybou je myšleno to, že algoritmus pro dané případy nekonvergoval) Stabilization On Off 6 Aproach Defl 31 Symm 23 Nelinearita pow3 14 tanh 7 gauss 8 skew 5 17 Tabulka 1 Výsledky testu konvergence fastica algoritmu pro různé zdroje signálů Z tabulky je vidět, že nejhorších výsledků bylo dosaženo při zvolení nelinearity typu skew. Dále je vidět, že stabilizace algoritmu je velice užitečná a že nezáleží na tom, zda jsou komponenty separovány jednotlivě nebo paralelně. Z pozorování výstupů algoritmu bylo vidět, že se dobře separují komponenty sin(x)/x, obdélník či dirak. 1.5.2.3 Pro stejný zdroj s různou frekvencí V tomto experimentu jsem zkoušel zvolit šest typů zdrojů. Jednalo se o sinusové průběhy s frekvencemi od 5Hz do 10Hz odstupňované po 1Hz. Stabilization On Off 2 Aproach Defl 10 Symm 6 Nelinearity pow3 6 tanh 1 gauss 1 skew 1 9 Tabulka 2 Výsledky testu konvergence fastica algoritmu pro stejné zdroje s různou frekvencí Z celkového počtu 240 nastavení vzniklo pouze 12chyb konvergence výpočtu. Z tabulky uvedené výše můžeme dojit k podobným závěrům jako v předcházející kapitole. Nejhorší se jeví použití nelinearity typu skew. Naopak velice užitečné se jeví použití stabilizace algoritmu výpočtu. Z pozorování - 33 - Analýza nezávislých komponent Ondřej Konopka separace komponent docházíme k závěru, že pokud algoritmus konvergoval, došlo k rozdělení komponent. 1.5.2.4 Různé zdroje se stejnou frekvencí Při tomto experimentu jsem si zvolil šest různých zdrojů a nastavil jim stejnou frekvenci na f=10Hz. Popis signálů v prostředí matlab byl následující : f1=10Hz; fs=500Hz; n=0:3*(fs/f1)-1; s1=square(2*pi*f1/fs*n); s2=sawtooth(2*pi*f1/fs*n); s3=sin(2*pi*f1/fs*n); s8=sinc(2*pi*f1/fs*n); s9=rectpuls(2*pi*f1/fs*n); s10=chirp(5/fs*n,5,f1/fs*length(n),50); s1 s2 s3 s8 s9 s10 s1 s2 s3 s8 s9 s10 Obrázek 38 Na obrázku jsou vyobrazeny zdroje signálů v xy zobrazení. Místo diagonálního vyobrazení závislosti signálu sama na sobě je daný histogram daného signálu - 34 - Analýza nezávislých komponent Ondřej Konopka Výsledek pokusu je opět shrnut v tabulce, kde z celkového počtu 240 nastavení vznikla v 17 případech chyba v konvergenci výpočetního algoritmu. Stabilization On Off 1 Aproach Defl Nelinearity pow3 16 Symm 14 3 tanh 7 gauss 3 skew 3 4 Tabulka 3 Výsledky testu konvergence fastica algoritmu pro různé zdroje signálů se stejnou frekvencí I v tomto případě docházelo k dobrému oddělení komponent typu sin(x)/x, obdélník či dirak. Horší to bylo u trojúhelníkového průběhu, kdy se ne vždy dobře podařilo z trojúhelníku odseparovat sinusovku. 1.5.2.5 Stejný typ zdroje, ale různá fáze V tomto experimentu jsem si zvolil jako zdroje signálů sinusovky o stejné frekvenci, ale různé fázi a to od π/6 do π po π/6. Stabilization On Off 10 Aproach Defl 10 Symm 20 Nelinearity pow3 0 tanh 0 gauss 0 skew 0 20 Tabulka 4 Výsledky testu konvergence fastica algoritmu pro stejný zdroj signálu a různou fázi Z celkového počtu 240 nastavení nastala ve 20 případech chyba. I v posledním pokusu je vidět, že nejhorší konvergence nastává při použití nelinearity typu skew. Dále je zde vidět, že velice závisí na tom, zda byl použit paralelní algoritmus odhadu komponent nebo metody odhadu po jedné komponentě. Naopak si můžeme všimnout, že nezáleží na tom, zda byla použita stabilizace či nikoliv. 1.5.3 Co plyne z experimentů? Z předcházejících kapitol jsme došli k závěru, že jako vstupní parametry pro fastica toolbox je velice vhodné volit stabilizaci algoritmu, protože přispívá ke konvergenci algoritmu. Jako další parametr se vyplácí volit přepínač symmetric, tak aby docházelo k odhadu komponent najednou. Jako nevhodné nám přijde volit na výpočet nelinearitu typu skew, protože má nejhorší výsledky konvergence. - 35 - Analýza nezávislých komponent Ondřej Konopka Konvergence algoritmu je jednou stránkou věci, ale ještě je tu, jak daná kombinace přepínačů dokáže dané komponenty oddělit. To se velice špatně klasifikuje a proto jsme provedli zhodnocení vizuálně a došli jsme k závěru, že nejlepší bude zvolit následující kombinaci: [Komponenty,A,W]=FASTICA (SmichanaData, 'approach', 'symm','g', 'skew','stabilization', 'on'); - 36 - Analýza nezávislých komponent Ondřej Konopka 2 Literatura [1] Independent Component Analysis : A Tutoriál, Aapo Hyvärinen, Erkki Oja, Helsinki University of Technology - Laboratory of Computer and Information Science (http://www.cis.hut.fi/projects/ica/) [2] Survey on Independent Component Analysis, Aapo Hyvärinen, Helsinki University of Technology - Laboratory of Computer and Information Science (http://www.cis.hut.fi/projects/ica/) [3] Independent Component Analysis Applied in Biomedical Signal Processing, M. Ungureanu, C. Bigan, R. Strungaru, V. Lazareseu (http://www.measurement.sk/2004/S2/UNGUREANU.pdf) [4] Case Studies of Independent Component Analysis, Alan Oursland, Juda De Paula, Nasim Marhmood (http://www.oursland.net/tutorials/ica/ica-report.pdf) [5] Constrained Optimization: Kuhn-Tucker conditions, Brian Wallace,Economics dept (http://personal.rhul.ac.uk/ukte/148/teaching/ec5555/kt.pdf) [6] Independent Component Analysis of Evoked Potentials in EEG, Michael Vinther (http://www.logicnet.dk/reports/EEG/ICA.pdf) [7] Independent Component Analysis (ICA), Paul Cristea (www.dsp.pub.ro/articles/spie/ICA_course.PDF) [8] http://mathworld.wolfram.com/Kurtosis.html [9] Pravděpodobnost a statistika pro inženýry, Vladimír Rogalewitcz [10] (http://www.csc.uvic.ca/~dolesky/csc449-540/3.4a.pdf) [11] Elektroencephalograph based Brain Computer Interface , Raymond Carl Smith (http://ee.ucd.ie/~ray/thesis/thesis.pdf) [12] Analýza stavů v EEG signálech, Ing. Jakub Šťastný [13] FastICA toolbox version 2.3, published on 27.7.2004 (http://www.cis.hut.fi/projects/ica/fastica/code/FastICA_2.3.zip ) [14] What (not where) are the Sources of the EEG,Scott Makeig (http://www-psych.stanford.edu/~dara/pubs/Makeig_ICA_cogsci96.ps) [15] Imaging Brain Dynamic Using Independent Component Analysis, Scott Makeig, Martin J. Mckeown, Anthony J.Bell, Te-won Lee [16] Oscillatory cortical activity and movement-related potentionals in proximal and distal movements, Andrej Stančák Jr., Bernd Feige, Carl H. Lücking, Rumyana Kristeva-Feige - 37 -
Podobné dokumenty
Návod k použití vědeckého kalkulátoru HP10s
Pokud bychom chtěli, aby pracoval pouze s číslem jak je
zobrazeno, je třeba použít funkci zaokrouhlení:
diplomová práce
Dalším kritériem je tvar výpočtových buňek. Sestavili jsme jednak sítě využívající hexagonální základní buňky a dále pak sítě postavené na tetraedrickém základu. Dále jsme k tomuto
připočetli rozdí...
Nástroje pro modelování rozptylu těžkého plynu určených pro
nástroje, jako např. HEDAGAS (Shell Oil's), ALOHA (US EPA a NOAA) nebo
SLAB (Lawrence Livermore National Laboratory). V Evropě byly vyvinuty holandské
programy EFFECTS (TNO) a SAVE II (SAVE Consult...
TITULNČ LIST PERIODICKÉ ZPRĘVY 2010 PROJEKTU LC528
Práce Centra laserového plazmatu v roce 2010 probíhaly za součinnosti všech pracovišť a ve spolupráci s jejich
zahraničními partnery a za vydatné účasti studentů a doktorandů v souladu se zpřesněný...
Katedra řídicí techniky 2013
P. - Hanzálek, Z.: Vylepšená podpora
automobilových sběrnic LIN a CAN v Linuxu
– hospodářská smlouva se společností
Volkswagen za 1 milion Kč
Hanzálek, Z. - Němeček, P. - Táborský,
Z. - Beneš, D...
SUDARŠIN KRIJA: Dechem ke zdraví
strach během spánku. Obecně řečeno byli klidnější.[29] S ohledem na pozitivní dopad SK
v případě různých psychosociálních onemocnění, lze přepokládat, že SK může být užitečným
doplňkem při léčbě fo...