李 偉,王 璠,李 穎,王少凡
(東北石油大學 機械科學與工程學院,黑龍江 大慶 163318)
早期還沒有出現ICA這個名詞,80年代早期,該方法由J.Herault.C.Jutten與B.Ans提出來。在Jutten回顧中,該問題首次出現在1982年的神經生理學框架當中。即在肌肉痙攣中,最簡單運動譯碼模型里,輸出x1(t)和x2(t)表示測量肌肉痙攣傳感器信號,而sl(t)和s2(t)是運動關節的尖角狀態與速率。當時,設想的ICA模型所支撐的信號之間并不是合理的。由測量響應x1(t)和x2(t),神經系統以某種方式可以推出狀態和速率s1(t)與s2(t)。要獲悉可逆模型,一種可能是在簡單的神經網絡中使用非線性去相關原理。Herault和Jutten提出了特殊的反饋網絡解決該問題。
整個80年代,ICA研究主要集中在法國研究者當中,其國際性影響力仍然很有限。在80年代中期,國際性的神經網絡會議上,少有ICA呈文,很大程度上被埋沒在令人感興趣的反向傳播的洪流之中。那個時代,Hopfield網絡,以及Kohonen的自我組織映射(SOM)正活躍地傳播著。另一個相關的領域是高階譜分析,其首次國際性專題研究小組于1989年被組建。該小組中,早期的ICA論文是由J.F Cardoso與P.Comon發表的。Cardosos使用了代數學的方法,尤其是高階累計量張量(tensor),最終導出了JADE算法。四階累計量的效用較早是由J.L.Lacoume提出米的。在信號處理文獻當中,早期的經典論文是法國的一個小組發表。
1987年,利用3階累積量,在某種不同的框架里,Giannak提出了ICA識別問題。然而,這種結果的算法要求窮舉搜索。Lacoume和Ruiz也利用高階統計量簡述了一種數學方法來解決這個問題。Gaeta和Lacoume提出了由最大相似法估計混合矩陣,在這里,也要求一種無遺漏的搜索,決定多數變量的對照函數的獨立最大值。由此,從訓練的觀點來看,這僅僅在二維方面是實用的。
在信號處理中,盲信反卷積的相關問題已有一些早期的處理方法。特別地,該結論使用了多道(multi-channel)盲反卷積非常相似于ICA法。
80年代,科學工作者的著作得到了發展,這些人當中,A.Cichocki和R.Unbehauen首次提出了當前最流行的ICA算法之一。在90年代早期一些有關ICA和信號分離論文相繼發表?!胺蔷€性PCA”法由此也提出來。然而,直到90年代中期,ICA的影響力仍舊相當小。提出的幾種算法在運用時,通常要求某種約束問題,但是統計最優準則的提出,嚴格的約束似乎己經過時了。
Cardoso致力于代數學四階累積量特征,并像線性算子作用于矩陣一樣解釋了它們。一種簡單的解法是運行一個對角化給出ICA估計的累積矩陣的識別率。當運行被定義在一系列矩陣上時,運行獲得提供更多的魯棒性估計的幾個聯合的對角化累積矩陣。其它的代數解法,僅利用四階累積量也有所研究。
Inouye提出了對于兩種信源分離的解法,然而同時Comon提出了對于N大于或等于2的解法。與Cardoso的解法一起,這些是初次直接(在時域多項式)ICA問題的解法。Inouye和他的同事得出了對于ICA問題的識別條件。
ICA獲得較廣泛的注意和興趣的是在A.J.Bell和T.J.Sejnowski發表的基于信息最大準則法之后。90年代中期,S.L.Amari與他的同事使用普通的梯度法改善了該算法,它的基本的關聯是最大似然估計與證實的Cichocki-Unbehauen算法。兩三年之后,當前的作者提出了定點(fixed-point)或稱快速ICA(FICA)算法,由于它的計算上的有效性,對于較大尺度問題的ICA應用上有了很好的作為。
自從九十年代中期以來,致力于ICA的研究論文,專題研究小組和會議已急劇增加。第一個國際性ICA專題研究小組于1999年一月份成立于法國的Aussois,第二個專題研究小組于2000年七月份在芬蘭首都赫爾辛基成立。兩個小組聚集了超過100多位研究者從事ICA與盲源分離研究,從而促成了ICA的變革以及確定了成熟的ICA研究領域[1]。
ICA的模型可描述為:假設N個獨立的源信號s(t)=[s1(t),s2(t),…,sN(t)]T經過線性系統A混合在一起,得到M個觀測信號x(t)=[x1(t),x2(t),…,xM(t)]T,源信號和觀測信號之間滿足關系式:

其中A是一個M*N維的矩陣,源信號s(t)和混合矩陣A都是未知的,只有混合后的x(t)可以觀測到??梢宰C明在M叟N的條件下,當混合矩陣A列滿秩,源信號s(t)的各分量相互獨立,且最多只有一個分量是高斯分布時,可以求得一個分離矩陣W使得:

其中 y(t)是 s(t)的一個估計,其各分量盡可能互相獨立,且逼近 s(t),只是 y(t)各分量的排列次序和幅度可能與s(t)不同,這又稱為ICA解的不確定性問題。假設是ICA的一個解,那么PDW也是ICA的一個解,其中P為置換矩陣(每一行和每一列都只有一個元素1),D為對角矩陣(對角元素非0,其它元素為0)。通常只考慮M=N的情況,當源信號完全分離出來時,有WA=PD,為了簡化分析,木文在以后的分析中不妨假設PD=I,此時有WA=I。
為了求解分離矩陣W,通常是先設置一個目標函數L(W),選擇不同的目標函數可以得到不同的ICA算法,其中最大熵(Maximum Entropy,ME)算法和最大似然(Maximum Likelihood.ML)算法的目標函數可統一為[2~3]

其中p(iy(it))是輸出信號,y(it)的概率密度函數(pdf),是分離矩陣W的行列式的絕對值。
建立目標函數后再確定一種學習算法,通過迭代使式(2-3)中的L(W)達到最小值的即是ICA的解。學習算法大致分為兩類,離線批處理方式和在線自適應方式[3]。前者是對一段時間內的信號進行迭代,后者對每一時刻的信號進行迭代。Beth和Sejnoeski提出了隨機梯度學習算法[4],其離線批處理迭代公式為

其中η(k)為學習率,T為每次處理的向量個數,φ(y(t))與源信號的分布及其假設有關,根據不同的情況有多種選取方法。該算法的缺點是收斂速度慢,需要對分離矩陣求逆。Amari在隨機梯度的基礎上提出了自然梯度學習算法,避免了矩陣求逆,加快了收斂速度,其離線批處理迭代公式為

某些ICA算法要求數據x的預白化,甚至這些算法不是必須要白化的,但通常白化的數據有更好的收斂性。前面說到的數據己假設為定中心化,即使其有零均值,白化就是將觀察變量x線性變換為變量ν

上述ν的協方差矩陣等于單位矩陣:E{ννT}=I。該變換通常是可能的,真正地,它能夠由傳統的PCA方法來實現。除了白化外,PCA可能允許我們決定獨立分量的數目(如果m>n):若噪聲標準低,x能量基本上集中在由最先n個主分量組成的子空間上n是模型中的獨立分童個數。估計信號(這兒指獨立分量)數目己存在一些估計方法。因此局部維數降低的假設m=n將在這兒仍舊保持:

式中B=QA是一正交矩陣,因為

回憶我們假設獨立分量si有單位方差,因此簡化得到模型的任意矩陣A可轉化為更簡單的得到正交矩陣B的問題。一旦得到矩陣B,從觀察到的ν,利用等式(3-3)解決獨立分量如下:

這也是值得做的,雖然僅考慮球化解決不了分離問題,這是因為僅定義球化等于另外的旋轉:若Qi是球化矩陣,然后當且僅當U為正交矩陣時,Q2=UQ1也是球化矩陣。因而,分離獨立分量,必須得到正確的球化矩陣。首先得到任意球化矩陣Q,而后從合適的非二次標準決定合適的正交變換。
接下來,我們將假設在下面某些節中數據是白化數據。為簡單起見,白化數據將表示為x,變換混合矩陣表示為A,前面章節有定義。如果算法必須預白化,這會在相應的章節中提出來,若沒有提及到,說明該數據己白化過的。
該算法的先期工作由神經網絡激發靈感而來,他們算法是基于消去非線性相關。矩陣W的非對角項修正由下式給出:

式g1與g2是某些奇的非線性函數,每次迭代像y=(I+W)-1x 計算 yi.。對角項 Wij置零。收斂之后,yi給出獨立分量的估計。不幸的是,該算法的收斂僅僅在相當嚴格的約束下。
比較Jutten-Herault算法,非線性去相關算法簡化了計算量,避免了任何矩陣的逆與提高了穩定性。例如有下面的算法:

式中 y=Wx,非線性函數 g1(·)與 g2(·)被用來分離向量y每一個分量,恒等可以由任意正的有界限的對角矩陣代替、EASI算法如下:

選取非線性函數的基本方法是利用后面小節中的描述的最大似然(或信息最大化)提出的學習規則。
非線性PCA算法是神經PCA算法的非線性擴展,它的分級PCA學習規則的非線性形式如下所示

式中g是一個合適的非線性尺度函數。一般地,非線性的引入即是學習規則利用了高階信息。因此學習規則可能完成了某些更相關的高階表述技術(投影追蹤、盲反卷積、ICA)。非線性PCA算法的一種有趣的簡化形式是半梯度算法,學習規則(3-10)里的反饋項由更多簡單的項代替,即

式中 μ(t)為學習率(步長)序列,α 為〔0.5,1〕范圍內的常數,函數g被用來分離向量y=Wx的每一個分量,假設數據已白化。另外一種半梯度算法的分等級形式也是可能的。
利用隨機梯度下降原理,由前面的單一單元對照函數可以得出一種簡單的算法。假設考慮白化數據。例如,獲得關于w的一般式

的對照函數的瞬間梯度,獲得標準化w即||w||2=1,獲得下面的Hebbian-like學習規則

式中可能定義的常數,例如

因此非線性函數g可以是大多數任意非線性函數。實際上正確估計:符號就足夠。這樣單一單元算法首次引入峰度,相應的 g(u)=u3。
其它神經算法包括:·探測投影追蹤算法。由于ICA與投影追蹤之間的緊密聯系,投影追蹤算法可以直接用來解決ICA問題并不覺得奇怪的;·基于非線性PCA標準的最小均方型算法;·與累計張量相關的自適應算法等。
這節中,引進一種非常有效的方法,即適合該任務的最(極)大值化。同時這里假設數據實己經經過定中心和白化預處理。
(1)一個單元(one unit)快速ICA
起初,將說明單元快速ICA變換。這個“單元”是指計算上的單位,最后是一個人工神經元,有權向量w的神經元能夠通過學習規則修正。快速ICA學習規則得到一種趨勢,即單位化向量w以至預測wTx使非高斯最大化。在這里,非高斯式(3-10)給出的負嫡J(wTx)的近似值測得的。回想wTx的方差必需是單位化抑制對于白化數據等同于抑制w的范數的單位化。
快速ICA是基于為得到wTx非高斯最大值的定點迭代法。也可以是源于近似牛頓迭代法。用g表示非二次函數G公式推導用于是(3-11);例如,式G1(u)=1/a1log cosh a1u與G2(u)=-exp(-u2/2)函數的公式推導是

式中1≤a1≤2是某一合適的常數,通常取a1=1??焖買CA算法的基本結構如下:
(1)權向量w的初始化選擇:
(2)假設w+=E{xg(wTx)}-E{g'(wTx)}w;
(3)假設w=w+/||w+||;
(4)若不收斂,返回2。
注意,收斂意思是新的和舊w值在同樣的趨勢上,即它們的點積(幾乎)等于1。既然w和-w定義在相同的趨勢上,向量收斂到單個點并不必要的。這又因為獨立分量可以僅僅等于乘以符號來定義。這里假設的數據是經過預白化。
快速ICA公式推導如下:首先注意到,在E{G(wTx)}最優值上獲得wTx負熵近似值的最大值。根據Kuhn-Tucker條件,在約束E{(wTx)2}=||W||2=1下,E{G(wTx)}的最優值由以下獲得

通過牛頓法來解決這個等式。(3-15)左邊的函數用F表示,可得到它的Jacobian矩陣JF(w)為

為了簡化該矩陣的變換,我們決定近似式(3-14)的第一項。既然數據是限制在球形范圍內,看起來合理的近似為:E{xxTg'(wTx)}≈E{xxT}E{g'(wTx)}=E{g'(wTx)}I。因此Jacobian矩陣變成對角矩陣,且能夠容易轉化。從而得到如下的近似牛頓迭代法:

該算法可以通過在等式兩邊同乘以β-E{g'(wTx)}更加簡單化。代數簡化后,這里給出了快速ICA迭代法。
實際上,快速ICA中的期望必須由它們的估計所取代。正常的估計具有的期間內等于樣本的均值。真正地,雖然所有的數據應該利用到,但是這常常不是一種好的方法,因為計算量可能要求太大。然后用較少的樣本估計平均數,樣本的數量在最后的估計上可能有不可忽視的影響。應該在每一次迭代分離的選擇樣本值。如果收斂不滿足,而后可能要增加樣本的數量。
(2)幾個單元(several units)快速ICA
前述小節中的一個單元估計只是獨立分量之一,或者一個預測追蹤趨勢。為估計幾個獨立分量,我們有必要運行一個單元的快速ICA算法使用有權值 w1,…,wn的幾個單元(例如多個神經元)。
為了避免不同的向量收斂于同一個最大值,每一次迭代之后,必須使輸出wTx,…,wTx去相關。這里我們提出二種方法來實現。
一種簡單的方法是基于Gram-Schmid-like去相關的緊縮法。意思是一個一個地估計獨立分量。當估計了p個獨立分量,或P個向量w1,…,wP,對wp+1運行一個單元定點算法,且每次迭代步驟從wp+l減去“預測”,,即前 p 個估計向量,然后標準化wp+1,


然而某些應用中,可能希望使用對稱去相關。例如,這可以由把矩陣開平方根的方法實現,

式中 W 使向量矩陣(w1,…,wn)T,從 WWT=F△FT(當(WWT)-1/2W=F△-1/2FT)特征值分解包含了平方根的逆(WWT)-1/2。一種更簡單的選取是下面的迭代算法,
1.設 W=W/sqrt(‖WWT‖)

2.設W=3/2W-1/2WWTW
第一步中的范數幾乎可以是任何普通的矩陣范數,例如,二維范數或最大絕對值的行(或列)的和(但不是Frobenius范數)。
快速ICA有神經算法的大多數優點:并行,分布式,計算最簡單,且要求較少的內存空間。隨機梯度法看起來是更可取的,如果僅當環境改變時要求快速自適應。
總之,ICA算法的選擇是基于自適應與匹配模式算法之間的選擇。
自適應情形通過隨機梯度法獲得算法,這種方法同時估計出所有的獨立分量,大多數流行的算法是這類基于似然或相關對照函數的神經梯度上升,如信息最大化(infomax)。對于單一單元情形,簡單的隨機梯度法給出了自適應算法(最大化負熵或它的近似)。
匹配模式情形在計算上是更有效的算法,對于低維數據,基于張量法是有效的,但是使用于高維情形。基于定點迭代的快速ICA算法是一種非常有效的匹配算法,它既可用于最大化單個單元對照函數,也可用于多單元對照函數,還包括似然。
(1)盲源分離(BBS)
最簡單的盲源分離問題即假設M未知,獨立信號為 s1(t),s2(t),…,sm(t)。信源混合一未知線性M*M矩陣A產生觀察信號x1(t),x2(t),…,xn(t)。該過程可由下面等式表示:

式中,s(t)=[s1(t),s2(t),…,sm(t)]是M*1的源信號列向量;x(t)=[x1(t),x2(t),…,xn(t)]是觀察混合信號向;A稱為混合系統(或矩陣)。
觀察信號 x(t)通過該系統后得到近似于 s(t)的輸出y(t)。該過程可由下式表示:

衡量一組信號是否接近互相獨立,現在出現了多種準則,即優化判據。因為問題沒有唯一解,只能在某種優化判據下尋求它的近似解答,使y(t)中各分量盡可能互相獨立。
考慮這樣一種情形,有幾個信號,由幾個自然的對象或信源發出。例如,這些自然的信源可能是不同腦區域發出的電信號[5];人們在同一房間中說話發出的語音信號[6];或移動電話發出的無線波等。
(2)特征提取
另一個應用是特征提取。其主要應用于水印圖像的提取[7]。另外應用于數據壓縮和模式識別[8]等特征也是重要的研究課題。
(3)盲反卷積
ICA方法很少直接應用于盲反卷積。盲反卷積廣泛用于通信、雷達、地震[9]和圖像等各個方面。例如,在數字無線通信系統中,由于多徑或信道衰落引起的碼間干擾(ISI)可用自適應均衡技術消除。對時變信道,往往需要定時發送訓練序列,以便跟蹤信道參數的變化,這大大降低了信道的利用率,而盲均衡可以較好地解決這一問題[10]。
(4)其它方面
一方面由于ICA和投影追蹤,一方面由于ICA與因子分析之間的緊密聯系,投影追蹤與因子分析的應用也可以利用ICA來實現成為可能。這包括諸如經濟領域[11]、心理學以及其它社會科學領域,以及密度估計和回歸(初步)數據分析。
現在獨立分量分析方法已經廣泛的應用于醫學,圖像處理和機械故障診斷等方面。并且已有很多的研究人員將獨立分量分析方法于小波分析方法、神經網絡及主分量分析等其他信號分析方法結合使用,在實際應用中取得了良好的效果,而這種多種分析方法相結合的分析方法也必將成為未來獨立分量分析方法的發展方向。
盡管目前獨立分量分析方法仍存在一定的局限性,但隨著研究的進一步深入,相信獨立分量分析方法必將在更多的領域有所應用。
[1]張新軍.獨立分量分析及其在多通道信號處理中的應用研究[D].汕頭大學碩士學位論文,2003:15-16.
[2]Amari S,Chen T P,Cichocki A.Stability analysis of learning algorithms for blind source separation[J].Neural Networks,1997,10(8):1345-1351.
[3]楊行峻,鄭君里.人工神經網絡與盲信號處理[A].2003:21.
[4]Bell A,Sejnowski T J.An information-maximization approach to blind separation and blind deconvolution[J].Neural Computation,2005,7(6):1129-1159.
[5]翟 葵,吳小培.基于獨立分量分析的腦電信號消噪[J].現代制造工程 2006(2):90
[6]趙彩華,劉 琚,孫建德,閆 華.基于小波變換和獨立分量分析的含噪混疊語音盲分離[J].電子與信息學報2006(09):78.
[7]Jian Ji,Zheng Tian.Robust ICA Neural Network and Application on Synthetic Aperture Radar(SAR)Image Analysis[A].Lecture Notes in Computer Science.2006:108-110
[8]王 巖.基于獨立分量分析與神經網絡的電子鼻模式識別[D].西南交通大學碩士學位論文.2006:41.
[9]李國福,曹思遠,周 鵬,韓瑞東.地震去噪中的P-ICA方法[C].中國地球物理第二十一屆年會論文集,2005:87-89.
[10]李鴻燕,王華奎,獨立分量分析在混疊通信信號分離中的應用[J].儀器儀表學報,2006(s1):66
[11]黨 紅.權益結合法的發展路徑分析[J].財會通訊(學術版),2006(4):21.