FastICA - FastICA - Wikipedia
FastICA je efektivní a populární algoritmus pro analýza nezávislých komponent vynalezl Aapo Hyvärinen v Helsinská technická univerzita.[1][2] Jako většina ICA algoritmů, FastICA hledá ortogonální rotaci předbělený data prostřednictvím pevného bodu iterační schéma, což maximalizuje míru ne-gaussiánství otočených komponent. Non-gaussianity slouží jako proxy pro statistická nezávislost, což je velmi silná podmínka a k ověření vyžaduje nekonečná data. FastICA lze také alternativně odvodit jako přibližnou Newtonovu iteraci.
Algoritmus
Předbělení data
Nech označte matici vstupních dat, - počet sloupců odpovídající počtu vzorků smíšených signálů a - počet řádků odpovídající počtu nezávislých zdrojových signálů. Matice vstupních dat musí být předbělený, nebo na střed a vybělené, než na něj použijete algoritmus FastICA.
- Vycentrování dat znamená ponižování každé složky vstupních dat , to znamená,
- pro každého a . Po centrování, každá řada má očekávaná hodnota z .
- Bělení data vyžadují a lineární transformace soustředěných dat tak, aby komponenty nesouvisí a mají rozptyl jedna. Přesněji řečeno, pokud je centrovaná datová matice, kovariance je -dimenzionální matice identity, to znamená,
- Běžnou metodou bělení je provedení rozklad vlastních čísel na kovarianční matice soustředěných dat , , kde je matice vlastních vektorů a je diagonální matice vlastních čísel. Takto zbarvená datová matice je definována pomocí
Extrakce jedné složky
Iterativní algoritmus najde směr vektoru hmotnosti který maximalizuje míru negaussianity projekce , s označující a předbělený datová matice, jak je popsáno výše je sloupcový vektor. Pro měření non-Gaussianity se FastICA spoléhá na nonquadratic nelineární funkce , jeho první derivát a jeho druhý derivát . Hyvärinen uvádí, že funguje
jsou užitečné pro obecné účely, zatímco
může být vysoce robustní.[1] Kroky pro extrahování váhového vektoru pro jednotlivé komponenty ve FastICA jsou následující:
- Náhodný výběr vektoru počáteční hmotnosti
- Nechat , kde znamená průměrování přes všechny sloupcové vektory matice
- Nechat
- Pokud není konvergovaná, vraťte se zpět na 2
Extrakce více složek
Jednotkový iterační algoritmus odhaduje pouze jeden váhový vektor, který extrahuje jednu složku. Odhad dalších vzájemně „nezávislých“ komponent vyžaduje opakování algoritmu pro získání lineárně nezávislých projekčních vektorů - všimněte si, že pojem nezávislost zde se odkazuje na maximalizaci non-Gaussianity v odhadovaných složkách. Hyvärinen poskytuje několik způsobů extrakce více komponent, přičemž nejjednodušší je následující. Tady, je sloupcový vektor 1 dimenze .
Algoritmus FastICA
- Vstup: Počet požadovaných komponent
- Vstup: Předbělá matice, kde každý sloupec představuje -dimenzionální vzorek, kde
- Výstup: Un-míchání matice, kde každý sloupec projekty na nezávislou složku.
- Výstup: Matice nezávislých komponent, s sloupce představující vzorek s rozměry.
pro str v 1 až C: Náhodný vektor délky N zatímco Změny
výstup
výstup
Hlučná extrakce
Je pozoruhodné poznamenat, že Fast ICA je extrémně robustní vůči aditivnímu šumu ve smíšeném signálu. Zvažte následující hlučný model.
Po předbělení , dopad aditivního hluku při extrakci je výrazně snížena. Odhad ICA na rekonstrukci , řekněme pro dva případy vysokého a nízkého šumu je uveden obrázek, který jasně podtrhuje robustnost Fast ICA pro aditivní šum.
Viz také
- Učení bez dozoru
- Strojové učení
- The IT ++ knihovna obsahuje implementaci FastICA ve Windows C ++
- Infomax
Reference
- ^ A b Hyvärinen, A .; Oja, E. (2000). "Analýza nezávislých komponent: Algoritmy a aplikace" (PDF). Neuronové sítě. 13 (4–5): 411–430. CiteSeerX 10.1.1.79.7003. doi:10.1016 / S0893-6080 (00) 00026-5. PMID 10946390.
- ^ Hyvarinen, A. (1999). „Rychlé a robustní algoritmy s pevným bodem pro nezávislou analýzu komponent“ (PDF). Transakce IEEE na neuronových sítích. 10 (3): 626–634. CiteSeerX 10.1.1.297.8229. doi:10.1109/72.761722. PMID 18252563.