李 偉,王 璠,李 穎,王少凡
(東北石油大學(xué) 機械科學(xué)與工程學(xué)院,黑龍江 大慶 163318)
早期還沒有出現(xiàn)ICA這個名詞,80年代早期,該方法由J.Herault.C.Jutten與B.Ans提出來。在Jutten回顧中,該問題首次出現(xiàn)在1982年的神經(jīng)生理學(xué)框架當中。即在肌肉痙攣中,最簡單運動譯碼模型里,輸出x1(t)和x2(t)表示測量肌肉痙攣傳感器信號,而sl(t)和s2(t)是運動關(guān)節(jié)的尖角狀態(tài)與速率。當時,設(shè)想的ICA模型所支撐的信號之間并不是合理的。由測量響應(yīng)x1(t)和x2(t),神經(jīng)系統(tǒng)以某種方式可以推出狀態(tài)和速率s1(t)與s2(t)。要獲悉可逆模型,一種可能是在簡單的神經(jīng)網(wǎng)絡(luò)中使用非線性去相關(guān)原理。Herault和Jutten提出了特殊的反饋網(wǎng)絡(luò)解決該問題。
整個80年代,ICA研究主要集中在法國研究者當中,其國際性影響力仍然很有限。在80年代中期,國際性的神經(jīng)網(wǎng)絡(luò)會議上,少有ICA呈文,很大程度上被埋沒在令人感興趣的反向傳播的洪流之中。那個時代,Hopfield網(wǎng)絡(luò),以及Kohonen的自我組織映射(SOM)正活躍地傳播著。另一個相關(guān)的領(lǐng)域是高階譜分析,其首次國際性專題研究小組于1989年被組建。該小組中,早期的ICA論文是由J.F Cardoso與P.Comon發(fā)表的。Cardosos使用了代數(shù)學(xué)的方法,尤其是高階累計量張量(tensor),最終導(dǎo)出了JADE算法。四階累計量的效用較早是由J.L.Lacoume提出米的。在信號處理文獻當中,早期的經(jīng)典論文是法國的一個小組發(fā)表。
1987年,利用3階累積量,在某種不同的框架里,Giannak提出了ICA識別問題。然而,這種結(jié)果的算法要求窮舉搜索。Lacoume和Ruiz也利用高階統(tǒng)計量簡述了一種數(shù)學(xué)方法來解決這個問題。Gaeta和Lacoume提出了由最大相似法估計混合矩陣,在這里,也要求一種無遺漏的搜索,決定多數(shù)變量的對照函數(shù)的獨立最大值。由此,從訓(xùn)練的觀點來看,這僅僅在二維方面是實用的。
在信號處理中,盲信反卷積的相關(guān)問題已有一些早期的處理方法。特別地,該結(jié)論使用了多道(multi-channel)盲反卷積非常相似于ICA法。
80年代,科學(xué)工作者的著作得到了發(fā)展,這些人當中,A.Cichocki和R.Unbehauen首次提出了當前最流行的ICA算法之一。在90年代早期一些有關(guān)ICA和信號分離論文相繼發(fā)表。“非線性PCA”法由此也提出來。然而,直到90年代中期,ICA的影響力仍舊相當小。提出的幾種算法在運用時,通常要求某種約束問題,但是統(tǒng)計最優(yōu)準則的提出,嚴格的約束似乎己經(jīng)過時了。
Cardoso致力于代數(shù)學(xué)四階累積量特征,并像線性算子作用于矩陣一樣解釋了它們。一種簡單的解法是運行一個對角化給出ICA估計的累積矩陣的識別率。當運行被定義在一系列矩陣上時,運行獲得提供更多的魯棒性估計的幾個聯(lián)合的對角化累積矩陣。其它的代數(shù)解法,僅利用四階累積量也有所研究。
Inouye提出了對于兩種信源分離的解法,然而同時Comon提出了對于N大于或等于2的解法。與Cardoso的解法一起,這些是初次直接(在時域多項式)ICA問題的解法。Inouye和他的同事得出了對于ICA問題的識別條件。
ICA獲得較廣泛的注意和興趣的是在A.J.Bell和T.J.Sejnowski發(fā)表的基于信息最大準則法之后。90年代中期,S.L.Amari與他的同事使用普通的梯度法改善了該算法,它的基本的關(guān)聯(lián)是最大似然估計與證實的Cichocki-Unbehauen算法。兩三年之后,當前的作者提出了定點(fixed-point)或稱快速ICA(FICA)算法,由于它的計算上的有效性,對于較大尺度問題的ICA應(yīng)用上有了很好的作為。
自從九十年代中期以來,致力于ICA的研究論文,專題研究小組和會議已急劇增加。第一個國際性ICA專題研究小組于1999年一月份成立于法國的Aussois,第二個專題研究小組于2000年七月份在芬蘭首都赫爾辛基成立。兩個小組聚集了超過100多位研究者從事ICA與盲源分離研究,從而促成了ICA的變革以及確定了成熟的ICA研究領(lǐng)域[1]。
ICA的模型可描述為:假設(shè)N個獨立的源信號s(t)=[s1(t),s2(t),…,sN(t)]T經(jīng)過線性系統(tǒng)A混合在一起,得到M個觀測信號x(t)=[x1(t),x2(t),…,xM(t)]T,源信號和觀測信號之間滿足關(guān)系式:
其中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解的不確定性問題。假設(shè)是ICA的一個解,那么PDW也是ICA的一個解,其中P為置換矩陣(每一行和每一列都只有一個元素1),D為對角矩陣(對角元素非0,其它元素為0)。通常只考慮M=N的情況,當源信號完全分離出來時,有WA=PD,為了簡化分析,木文在以后的分析中不妨假設(shè)PD=I,此時有WA=I。
為了求解分離矩陣W,通常是先設(shè)置一個目標函數(shù)L(W),選擇不同的目標函數(shù)可以得到不同的ICA算法,其中最大熵(Maximum Entropy,ME)算法和最大似然(Maximum Likelihood.ML)算法的目標函數(shù)可統(tǒng)一為[2~3]
其中p(iy(it))是輸出信號,y(it)的概率密度函數(shù)(pdf),是分離矩陣W的行列式的絕對值。
建立目標函數(shù)后再確定一種學(xué)習(xí)算法,通過迭代使式(2-3)中的L(W)達到最小值的即是ICA的解。學(xué)習(xí)算法大致分為兩類,離線批處理方式和在線自適應(yīng)方式[3]。前者是對一段時間內(nèi)的信號進行迭代,后者對每一時刻的信號進行迭代。Beth和Sejnoeski提出了隨機梯度學(xué)習(xí)算法[4],其離線批處理迭代公式為
其中η(k)為學(xué)習(xí)率,T為每次處理的向量個數(shù),φ(y(t))與源信號的分布及其假設(shè)有關(guān),根據(jù)不同的情況有多種選取方法。該算法的缺點是收斂速度慢,需要對分離矩陣求逆。Amari在隨機梯度的基礎(chǔ)上提出了自然梯度學(xué)習(xí)算法,避免了矩陣求逆,加快了收斂速度,其離線批處理迭代公式為
某些ICA算法要求數(shù)據(jù)x的預(yù)白化,甚至這些算法不是必須要白化的,但通常白化的數(shù)據(jù)有更好的收斂性。前面說到的數(shù)據(jù)己假設(shè)為定中心化,即使其有零均值,白化就是將觀察變量x線性變換為變量ν
上述ν的協(xié)方差矩陣等于單位矩陣:E{ννT}=I。該變換通常是可能的,真正地,它能夠由傳統(tǒng)的PCA方法來實現(xiàn)。除了白化外,PCA可能允許我們決定獨立分量的數(shù)目(如果m>n):若噪聲標準低,x能量基本上集中在由最先n個主分量組成的子空間上n是模型中的獨立分童個數(shù)。估計信號(這兒指獨立分量)數(shù)目己存在一些估計方法。因此局部維數(shù)降低的假設(shè)m=n將在這兒仍舊保持:
式中B=QA是一正交矩陣,因為
回憶我們假設(shè)獨立分量si有單位方差,因此簡化得到模型的任意矩陣A可轉(zhuǎn)化為更簡單的得到正交矩陣B的問題。一旦得到矩陣B,從觀察到的ν,利用等式(3-3)解決獨立分量如下:
這也是值得做的,雖然僅考慮球化解決不了分離問題,這是因為僅定義球化等于另外的旋轉(zhuǎn):若Qi是球化矩陣,然后當且僅當U為正交矩陣時,Q2=UQ1也是球化矩陣。因而,分離獨立分量,必須得到正確的球化矩陣。首先得到任意球化矩陣Q,而后從合適的非二次標準決定合適的正交變換。
接下來,我們將假設(shè)在下面某些節(jié)中數(shù)據(jù)是白化數(shù)據(jù)。為簡單起見,白化數(shù)據(jù)將表示為x,變換混合矩陣表示為A,前面章節(jié)有定義。如果算法必須預(yù)白化,這會在相應(yīng)的章節(jié)中提出來,若沒有提及到,說明該數(shù)據(jù)己白化過的。
該算法的先期工作由神經(jīng)網(wǎng)絡(luò)激發(fā)靈感而來,他們算法是基于消去非線性相關(guān)。矩陣W的非對角項修正由下式給出:
式g1與g2是某些奇的非線性函數(shù),每次迭代像y=(I+W)-1x 計算 yi.。對角項 Wij置零。收斂之后,yi給出獨立分量的估計。不幸的是,該算法的收斂僅僅在相當嚴格的約束下。
比較Jutten-Herault算法,非線性去相關(guān)算法簡化了計算量,避免了任何矩陣的逆與提高了穩(wěn)定性。例如有下面的算法:
式中 y=Wx,非線性函數(shù) g1(·)與 g2(·)被用來分離向量y每一個分量,恒等可以由任意正的有界限的對角矩陣代替、EASI算法如下:
選取非線性函數(shù)的基本方法是利用后面小節(jié)中的描述的最大似然(或信息最大化)提出的學(xué)習(xí)規(guī)則。
非線性PCA算法是神經(jīng)PCA算法的非線性擴展,它的分級PCA學(xué)習(xí)規(guī)則的非線性形式如下所示
式中g(shù)是一個合適的非線性尺度函數(shù)。一般地,非線性的引入即是學(xué)習(xí)規(guī)則利用了高階信息。因此學(xué)習(xí)規(guī)則可能完成了某些更相關(guān)的高階表述技術(shù)(投影追蹤、盲反卷積、ICA)。非線性PCA算法的一種有趣的簡化形式是半梯度算法,學(xué)習(xí)規(guī)則(3-10)里的反饋項由更多簡單的項代替,即
式中 μ(t)為學(xué)習(xí)率(步長)序列,α 為〔0.5,1〕范圍內(nèi)的常數(shù),函數(shù)g被用來分離向量y=Wx的每一個分量,假設(shè)數(shù)據(jù)已白化。另外一種半梯度算法的分等級形式也是可能的。
利用隨機梯度下降原理,由前面的單一單元對照函數(shù)可以得出一種簡單的算法。假設(shè)考慮白化數(shù)據(jù)。例如,獲得關(guān)于w的一般式
的對照函數(shù)的瞬間梯度,獲得標準化w即||w||2=1,獲得下面的Hebbian-like學(xué)習(xí)規(guī)則
式中可能定義的常數(shù),例如
因此非線性函數(shù)g可以是大多數(shù)任意非線性函數(shù)。實際上正確估計:符號就足夠。這樣單一單元算法首次引入峰度,相應(yīng)的 g(u)=u3。
其它神經(jīng)算法包括:·探測投影追蹤算法。由于ICA與投影追蹤之間的緊密聯(lián)系,投影追蹤算法可以直接用來解決ICA問題并不覺得奇怪的;·基于非線性PCA標準的最小均方型算法;·與累計張量相關(guān)的自適應(yīng)算法等。
這節(jié)中,引進一種非常有效的方法,即適合該任務(wù)的最(極)大值化。同時這里假設(shè)數(shù)據(jù)實己經(jīng)經(jīng)過定中心和白化預(yù)處理。
(1)一個單元(one unit)快速ICA
起初,將說明單元快速ICA變換。這個“單元”是指計算上的單位,最后是一個人工神經(jīng)元,有權(quán)向量w的神經(jīng)元能夠通過學(xué)習(xí)規(guī)則修正??焖買CA學(xué)習(xí)規(guī)則得到一種趨勢,即單位化向量w以至預(yù)測wTx使非高斯最大化。在這里,非高斯式(3-10)給出的負嫡J(wTx)的近似值測得的?;叵雡Tx的方差必需是單位化抑制對于白化數(shù)據(jù)等同于抑制w的范數(shù)的單位化。
快速ICA是基于為得到wTx非高斯最大值的定點迭代法。也可以是源于近似牛頓迭代法。用g表示非二次函數(shù)G公式推導(dǎo)用于是(3-11);例如,式G1(u)=1/a1log cosh a1u與G2(u)=-exp(-u2/2)函數(shù)的公式推導(dǎo)是
式中1≤a1≤2是某一合適的常數(shù),通常取a1=1??焖買CA算法的基本結(jié)構(gòu)如下:
(1)權(quán)向量w的初始化選擇:
(2)假設(shè)w+=E{xg(wTx)}-E{g'(wTx)}w;
(3)假設(shè)w=w+/||w+||;
(4)若不收斂,返回2。
注意,收斂意思是新的和舊w值在同樣的趨勢上,即它們的點積(幾乎)等于1。既然w和-w定義在相同的趨勢上,向量收斂到單個點并不必要的。這又因為獨立分量可以僅僅等于乘以符號來定義。這里假設(shè)的數(shù)據(jù)是經(jīng)過預(yù)白化。
快速ICA公式推導(dǎo)如下:首先注意到,在E{G(wTx)}最優(yōu)值上獲得wTx負熵近似值的最大值。根據(jù)Kuhn-Tucker條件,在約束E{(wTx)2}=||W||2=1下,E{G(wTx)}的最優(yōu)值由以下獲得
通過牛頓法來解決這個等式。(3-15)左邊的函數(shù)用F表示,可得到它的Jacobian矩陣JF(w)為
為了簡化該矩陣的變換,我們決定近似式(3-14)的第一項。既然數(shù)據(jù)是限制在球形范圍內(nèi),看起來合理的近似為:E{xxTg'(wTx)}≈E{xxT}E{g'(wTx)}=E{g'(wTx)}I。因此Jacobian矩陣變成對角矩陣,且能夠容易轉(zhuǎn)化。從而得到如下的近似牛頓迭代法:
該算法可以通過在等式兩邊同乘以β-E{g'(wTx)}更加簡單化。代數(shù)簡化后,這里給出了快速ICA迭代法。
實際上,快速ICA中的期望必須由它們的估計所取代。正常的估計具有的期間內(nèi)等于樣本的均值。真正地,雖然所有的數(shù)據(jù)應(yīng)該利用到,但是這常常不是一種好的方法,因為計算量可能要求太大。然后用較少的樣本估計平均數(shù),樣本的數(shù)量在最后的估計上可能有不可忽視的影響。應(yīng)該在每一次迭代分離的選擇樣本值。如果收斂不滿足,而后可能要增加樣本的數(shù)量。
(2)幾個單元(several units)快速ICA
前述小節(jié)中的一個單元估計只是獨立分量之一,或者一個預(yù)測追蹤趨勢。為估計幾個獨立分量,我們有必要運行一個單元的快速ICA算法使用有權(quán)值 w1,…,wn的幾個單元(例如多個神經(jīng)元)。
為了避免不同的向量收斂于同一個最大值,每一次迭代之后,必須使輸出wTx,…,wTx去相關(guān)。這里我們提出二種方法來實現(xiàn)。
一種簡單的方法是基于Gram-Schmid-like去相關(guān)的緊縮法。意思是一個一個地估計獨立分量。當估計了p個獨立分量,或P個向量w1,…,wP,對wp+1運行一個單元定點算法,且每次迭代步驟從wp+l減去“預(yù)測”,,即前 p 個估計向量,然后標準化wp+1,
然而某些應(yīng)用中,可能希望使用對稱去相關(guān)。例如,這可以由把矩陣開平方根的方法實現(xiàn),
式中 W 使向量矩陣(w1,…,wn)T,從 WWT=F△FT(當(WWT)-1/2W=F△-1/2FT)特征值分解包含了平方根的逆(WWT)-1/2。一種更簡單的選取是下面的迭代算法,
1.設(shè) W=W/sqrt(‖WWT‖)
2.設(shè)W=3/2W-1/2WWTW
第一步中的范數(shù)幾乎可以是任何普通的矩陣范數(shù),例如,二維范數(shù)或最大絕對值的行(或列)的和(但不是Frobenius范數(shù))。
快速ICA有神經(jīng)算法的大多數(shù)優(yōu)點:并行,分布式,計算最簡單,且要求較少的內(nèi)存空間。隨機梯度法看起來是更可取的,如果僅當環(huán)境改變時要求快速自適應(yīng)。
總之,ICA算法的選擇是基于自適應(yīng)與匹配模式算法之間的選擇。
自適應(yīng)情形通過隨機梯度法獲得算法,這種方法同時估計出所有的獨立分量,大多數(shù)流行的算法是這類基于似然或相關(guān)對照函數(shù)的神經(jīng)梯度上升,如信息最大化(infomax)。對于單一單元情形,簡單的隨機梯度法給出了自適應(yīng)算法(最大化負熵或它的近似)。
匹配模式情形在計算上是更有效的算法,對于低維數(shù)據(jù),基于張量法是有效的,但是使用于高維情形?;诙c迭代的快速ICA算法是一種非常有效的匹配算法,它既可用于最大化單個單元對照函數(shù),也可用于多單元對照函數(shù),還包括似然。
(1)盲源分離(BBS)
最簡單的盲源分離問題即假設(shè)M未知,獨立信號為 s1(t),s2(t),…,sm(t)。信源混合一未知線性M*M矩陣A產(chǎn)生觀察信號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稱為混合系統(tǒng)(或矩陣)。
觀察信號 x(t)通過該系統(tǒng)后得到近似于 s(t)的輸出y(t)。該過程可由下式表示:
衡量一組信號是否接近互相獨立,現(xiàn)在出現(xiàn)了多種準則,即優(yōu)化判據(jù)。因為問題沒有唯一解,只能在某種優(yōu)化判據(jù)下尋求它的近似解答,使y(t)中各分量盡可能互相獨立。
考慮這樣一種情形,有幾個信號,由幾個自然的對象或信源發(fā)出。例如,這些自然的信源可能是不同腦區(qū)域發(fā)出的電信號[5];人們在同一房間中說話發(fā)出的語音信號[6];或移動電話發(fā)出的無線波等。
(2)特征提取
另一個應(yīng)用是特征提取。其主要應(yīng)用于水印圖像的提取[7]。另外應(yīng)用于數(shù)據(jù)壓縮和模式識別[8]等特征也是重要的研究課題。
(3)盲反卷積
ICA方法很少直接應(yīng)用于盲反卷積。盲反卷積廣泛用于通信、雷達、地震[9]和圖像等各個方面。例如,在數(shù)字無線通信系統(tǒng)中,由于多徑或信道衰落引起的碼間干擾(ISI)可用自適應(yīng)均衡技術(shù)消除。對時變信道,往往需要定時發(fā)送訓(xùn)練序列,以便跟蹤信道參數(shù)的變化,這大大降低了信道的利用率,而盲均衡可以較好地解決這一問題[10]。
(4)其它方面
一方面由于ICA和投影追蹤,一方面由于ICA與因子分析之間的緊密聯(lián)系,投影追蹤與因子分析的應(yīng)用也可以利用ICA來實現(xiàn)成為可能。這包括諸如經(jīng)濟領(lǐng)域[11]、心理學(xué)以及其它社會科學(xué)領(lǐng)域,以及密度估計和回歸(初步)數(shù)據(jù)分析。
現(xiàn)在獨立分量分析方法已經(jīng)廣泛的應(yīng)用于醫(yī)學(xué),圖像處理和機械故障診斷等方面。并且已有很多的研究人員將獨立分量分析方法于小波分析方法、神經(jīng)網(wǎng)絡(luò)及主分量分析等其他信號分析方法結(jié)合使用,在實際應(yīng)用中取得了良好的效果,而這種多種分析方法相結(jié)合的分析方法也必將成為未來獨立分量分析方法的發(fā)展方向。
盡管目前獨立分量分析方法仍存在一定的局限性,但隨著研究的進一步深入,相信獨立分量分析方法必將在更多的領(lǐng)域有所應(yīng)用。
[1]張新軍.獨立分量分析及其在多通道信號處理中的應(yīng)用研究[D].汕頭大學(xué)碩士學(xué)位論文,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]楊行峻,鄭君里.人工神經(jīng)網(wǎng)絡(luò)與盲信號處理[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].現(xiàn)代制造工程 2006(2):90
[6]趙彩華,劉 琚,孫建德,閆 華.基于小波變換和獨立分量分析的含噪混疊語音盲分離[J].電子與信息學(xué)報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]王 巖.基于獨立分量分析與神經(jīng)網(wǎng)絡(luò)的電子鼻模式識別[D].西南交通大學(xué)碩士學(xué)位論文.2006:41.
[9]李國福,曹思遠,周 鵬,韓瑞東.地震去噪中的P-ICA方法[C].中國地球物理第二十一屆年會論文集,2005:87-89.
[10]李鴻燕,王華奎,獨立分量分析在混疊通信信號分離中的應(yīng)用[J].儀器儀表學(xué)報,2006(s1):66
[11]黨 紅.權(quán)益結(jié)合法的發(fā)展路徑分析[J].財會通訊(學(xué)術(shù)版),2006(4):21.