目前比較成熟的線性盲源分離算法有很多,FastICA是其中之一。
1 ICA算法流程
(1) 歸一化
首先將觀測數據x
歸一化,即減去其均值m=E{x}使其具有零均值。這意味着s也是零均值的。
歸一化預處理能簡化ICA算法,在估計出歸一後的混合矩陣A後,將計算出的分離信號s再加上s的均值A-1m。
(2) 白化
在歸一化之後,線性變換觀測向量x使其各成分不相關且有單位方差,即白化爲新向量x',其協方差矩陣等於單位矩陣:E{x'x'T}=I。
一種常用的白化方法對數據協方差進行特徵值分解(Eigen-ValueDecomposition,EVD),即E{xxT}=EDET,其中E是E{xxT}特徵向量的正交矩陣,D是其特徵值的對角矩陣,D=diag(d1,…,dn)。因而白化操作可寫爲
x'=ED-1/2ETx
其中D-1/2=diag(d1-1/2,…,dn-1/2)。同理,白化混合矩陣得A',則A‘是正交的。
白化操作能減少待估計的參數。估計矩陣A要估計n2個參數,而估計正交矩陣A'只需估計n(n-1)/2個參數,這大大減小了ICA算法的計算複雜度。
(3) FastICA算法
在討論了的ICA估計幾種目標函數中,實際應用中需要一種最大化目標函數的算法,一種常用的算法就是FastICA算法。這裏假設數據已經經過歸一化和白化,z'和A’和分別用x和A表示。
首先討論算法的一次處理過程。FastICA算法基於定點迭代結構的算法,目的是使wTx具有最大非高斯性,其中w是W的一行。採用式J(y) ∝ [E{G(y)} – E{G(v)}]2爲目標函數,定義g爲非二次函數G的導數。則式G1(u) = 1/a1logcosh(a1u) ,G2(u) = - exp(-u2/2)中函數的導數爲
g1(u) = tanh(a1u), g2(u) = u exp(-u2/2)
其中1≦a1≦2爲一個合適的常量,通常選a1=1。
E{xg(wTx)}-βw=0
用牛頓方法解此方程。定義方程左邊爲F,得到它的雅克比矩陣JF(w)爲
JF(w) = E{xxTg’(wTx)}- βI上式右邊第一項可簡化爲E{xxTg’(wTx)}≈E{xxT}E{g’(wTx)}= E{g’(wTx)}I,雅克比矩陣變成對角的、可逆的。因此獲得近似牛頓迭代:
w+ =w – [E{xg(wTx)}- βw]/[ E{g’(wTx)}- β]
兩邊同乘β-E{g’(wTx)},進一步簡化爲w+ =E{xg(wTx)}– E{g’(wTx)}w。
綜上,一次FastICA算法的基本形式爲:
1)初始化(如隨機)向量w;
2)令w+ = E{xg(wTx)} – E{g’(wTx)}w;
3)令w= w+/||w+||;
4)若未收斂,則回到2)。
其中收斂意味着前後兩次向量w在同一方向上,即它們的點積爲1。
一次FastICA算法能估計出一個獨立成分,爲了估計出若干個獨立成分,需要進行若干次FastICA算法得到向量w1,…,wn。爲了防止這些向量收斂在同一個最大值,需要對每次迭代後的輸出w1Tx,…,wnTx去相關。
一種簡單的方法是Gram-Schmidt-like去相關,即一個接一個地估計獨立成分。在估計出p個獨立成分w1,…,wp之後,當估計wp+1時先減去先前預測的p個向量的投影wp+1Twjwj,j=1,…,p,然後標準化wp+1,即
1)
2)
有時希望對稱去相關,這樣所有獨立成分都是平等的,這可通過矩陣平方根完成,即
其中W=[w1,…,wn]T,逆平方根(WWT)-1/2通過特徵值分解獲得,(WWT)-1/2=(FDFT)-1/2=FD-1/2FT。一個很簡單的方法是通過如下迭代算法
1)2) 令W= 3/2W – 1/2WWTW
3) 重複2),直至收斂。
2 算法仿真效果
(1)對模擬信號分離
首先用matlab產生4個相互獨立的語音信號,分別爲正弦曲線、不規則曲線、鋸齒形曲線和脈衝噪聲,波形如圖1所示。然後用一個隨機矩陣將它們混合,產生4個混合信號,如圖2所示
圖2 4個混合信號
運用FastICA算法對混合信號進行獨立成分分析,分離結果如圖3所示。
圖3 獨立成分分析結果
比較圖3和圖1可以看出,FastICA算法成功分離出了4種獨立信號,效果明顯。唯一不同之處在於分離順序是不確定的,這是線性混合的必然結果。
(2) 聲音信號分離
語音信號來自赫爾辛基工業大學官網,分別爲警笛聲、樂器聲、男語音和女語音,波形如圖4所示。然後對其進行線性混合,得到4個混合聲音信號,波形如圖5所示。
圖4 4個聲音信號
圖5 4個混合信號
運用FastICA算法對混合語音信號進行分離,分離結果如圖6所示。
圖6 盲源分離語音信號
比較圖6和圖4可以看出,FastICA算法成功對4種聲音信號進行了分離,而且對警笛聲和樂器聲的分離效果很好,分離出的人聲信號依然存在一些干擾,但是可以很明顯分辨出人聲。