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

2022-04-05 14:59:18 字數 3219 閱讀 3556

本文介紹獨立成分分析(ica),同 pca 類似,我們是要找到乙個新的來表示資料,但目的就不一樣了。

雞尾酒會問題:n 個人在乙個 party 上同時說話,n 個麥克風放置在房間的不同位置,因為每個麥克風跟每個人的距離都不一樣,所以它們記錄的說話者重疊的聲音也不一樣。根據麥克風記錄的聲音,如何分離出 n 個說話者的聲音呢?

為形式化這個問題,我們想象有一些資料 s∈r 是從 n 個獨立的源生成的,我們觀察到的是

x=as,

矩陣 a 是未知的,被稱作混合矩陣,通過不斷觀察得到的是 ,我們的目標是找到生成資料(x(i)=as(i))的源 s(i)。

在雞尾酒問題中,s(i) 是個 n 維向量,sj(i)

是講話者 j 在時間 i 發出的聲音, x(i) 也是個 n 維向量,xj(i)

是麥克風 j 在時間點 i 記錄的聲音。

設 w=a-1 為乙個分離矩陣,我們的目標就是找到 w,這樣就能根據麥克風記錄的聲音 x(i),來恢復聲源 s(i)=wx(i)。為表示方便起見,使 wit

表示 w 的第 i 行。

所以,wi∈rn, 第 j 個源能夠通過計算 sj(i)

=wj(i)

x(i) 來恢復。

1、ica 的模糊性

w=a-1 能恢復到什麼程度?如果沒有源和混合矩陣的先驗知識,不難看出,只給定 x,a 有一些固有的模糊性是不可能被恢復的。

設 p 為乙個 n×n 的排列矩陣,這意味著 p 的每一行和每一列都只有乙個 1,下面是一些排列矩陣的例子:

如果 z 是乙個向量,那麼 pz 就是 z 的座標重排版本的另乙個向量。只給定 x(i),就沒辦法分辨 w 和 pw。原始訊號的排列也是模糊不清的,幸運的是,這對大部分應用都不重要。

還有,無法恢復 wi 的準確比例,例如,如果 a 換成 2a,每個 s(i) 都換成 (0.5)s(i),那麼我們觀察到的依舊是 x(i)=2a·(0.5)s(i)。同樣,如果 a 的乙個列向量乘以因子 α,相應的源乘以因子 1/α,依然沒有辦法在只給定 x(i) 的情況下決定發生了什麼。所以,我們無法恢復源的準確比例。不過,對於很多應用來說,這種模糊性都無關緊要,包括雞尾酒會問題。

這就是 ica 中模糊性唯一的源了嗎?當 si 是非高斯,就是這樣的。

那麼高斯資料的困難是什麼呢,看乙個例子,n=2,s~n(0,i),其中 i 是 2×2 的單位矩陣。標準正態分佈 n(0,i) 的密度的輪廓是以原點為中心的圓,密度時旋轉對稱的。

現在,假定我們觀察到 x=as,其中 a 是混合矩陣,x 的分布也是高斯,均值為 0,協方差 e[xxt]=e[asstat]=aat。設 r 為乙個任意的正交矩陣,所以 rrt=rtr=i,使 a'=ar,如果資料是通過 a' 而不是 a 來混合的,那麼可觀察到 x'=a's。x 的分布也是高斯的,均值為 0,協方差為 e[x'(x')t]=e[a'sst(a')t]=e[arsst(ar)t]=arrtat=aat。所以,不管混合矩陣是 a 還是 a',都能觀察到資料符合 n(0,aat) 分布。所以,就無法分辨源是通過 a 還是 a' 混合的,所以混合矩陣的旋轉元件無法從資料中找出來,我們不能恢復原始源。

上面的討論是基於多元標準正態分佈是旋轉對稱的,ica 在高斯資料上表現不行,但只要資料不是高斯的,給定足夠的資料,我們就能恢復出 n 個獨立的源。

2、密度和線性轉換

在推導 ica 演算法之前,我們先來討論下密度的線性轉換的影響。

假定隨機變數 s 符合密度函式 ps(s) ,簡單起見,假設 s∈r 是乙個實值,現在,隨機變數 x 為 x=as,其中 s∈r,a∈r。那麼 x 的密度 px 是什麼?

設 w=a-1,為計算特定值 x 的概率,容易想到 s=wx,然後估計該點的 ps,得出 px(x)=ps(wx),當然這是不對的!例如,設 s~uniform[0,1],所以 s 的密度為 ps(s)=1,現在讓 a=2,那麼 x=2s,很明顯,x 是均勻分布在區間 [0,2],所以,它的密度為 px(x)=(0.5),而不是 ps(wx),其中 w=0.5=a-1,正確的公式是 px(x)=ps(wx)|w|。

一般地說,如果 s 是乙個向量值,分布密度為 ps,x=as,其中 a 為可逆矩陣,那麼 x 的密度為:

px(x)=ps(wx)·|w|

其中 w=a-1。

3、ica 演算法

現在來推導 ica 演算法,ica 演算法歸功於 bell 和 sejnowski,這裡使用最大似然估計來解釋演算法,原始**中的解釋是用一種稱為 infomax principal 的複雜思想,已經不適用於當前對 ica 的理解。

假設每個源 si 的概率密度為 ps,源 s 的聯合分布為:

把聯合分布建模為邊緣分布的乘積,這裡假設源是相互獨立的。使用之前的公式,x=as=w-1s 的概率密度為:

剩下的就是給獨立的源 ps 指定乙個密度。

給定乙個實值隨機變數 z,它的累積分布函式(cdf)f 定義為,f(z0)=p(z≤z0)=∫pz(z)dz,z 的密度就是對 f 求導:pz(z)=f'(z)。

所以,要指定 si 的密度,先指定乙個累積分布函式 cdf。乙個 cdf 是從 0 到 1 的單調遞增函式,根據之前的討論,不能選擇高斯累積分布函式,因為 ica 在高斯資料上無效。要選擇乙個合理的能從 0 到 1 緩慢遞增的函式,就選擇 sigmoid 函式:g(s)=1/(1+e-s),所以 ps(s)=g'(s)。

矩陣 w 是模型的引數,給定訓練集 ,log 似然為:

要以 w 為引數最大化該式。求導並使用事實 ▽w|w|=|w|(w-1)t,很容易就匯出隨機梯度下降學習規則。對於乙個訓練例子 x(i),更新規則為:

其中 α 是學習率。演算法收斂後,就能夠通過計算 s(i)=wx(i) 來恢復原始訊號。

寫資料的似然時,x(i) 之間是相互獨立的,所以訓練集的似然為 ∏i p(x(i);w),這個假設對於講話資料和其它 x(i) 依賴的時間序列是明顯不對的,但可以看到,如果有足夠的資料,即使訓練集是相關的,也不會影響演算法的效能。但是,對於連續訓練例子是相關的問題,執行隨機梯度下降時,有時碰到一些隨機排列的訓練集也會加速收斂。

ICA 獨立成分分析 筆記

ica又稱盲源分離 blind source separation,bss 它假設觀察到的隨機訊號x服從模型 其中s為未知源訊號,其分量相互獨立,a為一未知混合矩陣。ica的目的是通過且僅通過觀察x來估計混合矩陣a以及源訊號s。大多數ica的演算法需要進行 資料預處理 data preprocess...

空間獨立成分分析

神經影像學當中的空間獨立成分分析可以將一組被試的大腦影象在空間上分成不同的成分或網路。邏輯上按照以下流程進行 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...

機器學習筆記 主成分分析

在介紹因子分析時,我們把資料 x rn 建模在 k 維子空間上,k 本文介紹主成分分析方法,即 pca,嘗試找出資料依賴的子空間。但 pca 會做得更直接,只需要用到向量計算,不需要使用 em。設有 m 種不同汽車的屬性資料 如最大速度 轉彎半徑等,其中 x i rn n舉乙個自然點的例子,有無線電...