ICA 獨立成分分析 筆記

2022-06-28 12:06:10 字數 1392 閱讀 3986

ica又稱盲源分離(blind source separation, bss)

它假設觀察到的隨機訊號x服從模型

,其中s為未知源訊號,其分量相互獨立,a為一未知混合矩陣。

ica的目的是通過且僅通過觀察x來估計混合矩陣a以及源訊號s。

大多數ica的演算法需要進行「資料預處理」(data preprocessing):先用pca得到y,再把y的各個分量標準化(即讓各分量除以自身的標準差)得到z。預處理後得到的z滿足下面性質:

「ica基本定理」:

定理(pierre comon, 1994)

假設隨機訊號z服從模型

,其中s的分量相互獨立,且其中至多可以有乙個為高斯;b為滿秩方陣。

那麼若z的分量相互獨立當且僅當b=pd,其中p為排列矩陣(permutation matrix),d為對角矩陣。

這個定理告訴我們,對於原訊號x做線性變換得到的新隨機向量

,若z的分量相互獨立,那麼z的各個分量

一定對應於某個源訊號分量

乘以乙個係數。到這裡,我們可以看到ica的解具有內在的不確定性(inherent indeterminacy)。實際上,因為

,即具備相同統計特徵的x可能來自兩個不同的系統,這意味著單從觀察x我們不可能知道它來自於哪乙個,從而我們就不可能推斷出源訊號s的強度(方差)。為了在技術上消除這種不確定性,人們乾脆約定源訊號s的方差為1。有了這個約定,再通過資料預處理的方法,我們可以把原混合矩陣a化為乙個自由度更低的正交矩陣:

資料預處理的過程又稱為「資料白化」(data whitening)。這裡預處理以後得到的z和源訊號s的關係為

。取,則它可以看做乙個新的混合矩陣。容易看出這是乙個正交矩陣,它僅有

個自由度;而原混合矩陣一般有

個自由度。

在ica之前,往往會對資料有乙個預處理過程,那就是pca與白化。白化在這裡先不提,pca本質上來說就是乙個降維過程,大大降低ica的計算量。

總的來說,ica認為觀測訊號是若干個統計獨立的分量的線性組合,ica要做的是乙個解混過程。而pca是乙個資訊提取的過程,將原始資料降維,現已成為ica將資料標準化的預處理步驟。

大部分演算法都用兩步來實現ica:第一步做白化預處理(whitening),讓輸出訊號不相關而且同方差。第二步找乙個旋轉(就是正交變換)讓輸出訊號不只不相關(uncorrelated),進而在統計意義上獨立(statistically independent)。

更進一步,每當我們做回歸(regression),不管是線性回歸還是非線性回歸,雜訊和predictor都是不相關的。但很多情況下,它們卻不是獨立的。這個性質最近十年內在因果關係分析中得到很重要的應用。

其他詳細內容請參考:

空間獨立成分分析

神經影像學當中的空間獨立成分分析可以將一組被試的大腦影象在空間上分成不同的成分或網路。邏輯上按照以下流程進行 begin a a cdots a a a cdots a vdots vdots ddots vdots a a cdots a end begin m m cdots m m m cdo...

機器學習筆記 獨立成分分析

本文介紹獨立成分分析 ica 同 pca 類似,我們是要找到乙個新的基來表示資料,但目的就不一樣了。雞尾酒會問題 n 個人在乙個 party 上同時說話,n 個麥克風放置在房間的不同位置,因為每個麥克風跟每個人的距離都不一樣,所以它們記錄的說話者重疊的聲音也不一樣。根據麥克風記錄的聲音,如何分離出 ...

入門版python實現獨立成分分析法ICA

只講用法,不講原理。前提條件 安裝好python,並安裝好numpy matplotlib sklearn庫。import numpy as np import matplotlib.pyplot as plt from sklearn.decomposition import fastica 匯入...