1 Analýza nezávislých komponent

Transkript

1 Analýza nezávislých komponent
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

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í:

Více

diplomová práce

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í...

Více

Nástroje pro modelování rozptylu těžkého plynu určených pro

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...

Více

TITULNČ LIST PERIODICKÉ ZPRĘVY 2010 PROJEKTU LC528

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ý...

Více

Katedra řídicí techniky 2013

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...

Více

SUDARŠIN KRIJA: Dechem ke zdraví

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...

Více