独立成分分析ICA系列4:ICA的最优估计方法综述
ICA算法的研究可分為基于信息論準則的迭代估計方法和基于統計學的代數方法兩大類,從原理上來說,它們都是利用了源信號的獨立性和非高斯性。基于信息論的方法研究中,各國學者從最大熵、最小互信息、最大似然和負熵最大化等角度提出了一系列估計算法。如FastICA算法, Infomax算法,最大似然估計算法等。基于統計學的方法主要有二階累積量、四階累積量等高階累積量方法。
1.最大似然估計算法
1.1 目標函數部分
假設信號Si有概率密度函數Ps(t),由于我們假定信號源是相互獨立的,其實經過白化處理后就變成獨立的了;那么在給定時刻的聯合分布函數為:
知道了信號源的聯合分布Ps(t),再由分解矩陣S=WX,可以得出信號x的聯合分布函數。
其中|W|為W的行列式。
由于沒有先驗知識,只知道原信號之間特征獨立,且最多有一個是高斯分布,所以沒有辦法確定Ps(t)的分布,所以我們選取一個概率密度函數Ps'(t)來近似估計Ps(t)。
概率密度函數由累積分布函數F(x)求導得到。
F(x)要滿足兩個性質:1單調遞增;2值域在[0 1]范圍
我們發現sigmoid函數的定義域是負無窮到正無窮,值域為0到1,緩慢遞增的性質。基于sigmoid函數良好的性質,我們用sigmoid函數來近似估計F(x),通過求導得到Ps'(t)。
? ? ? ? ? ????
兩函數圖像如圖:
如果我們預先知道Ps(t)的分布函數,那就不用假設了;但是在缺失的情況下,sigmoid函數大多數情況下能夠起到不錯的效果。由于Ps(t)是個對稱函數,所以均值E[s]=0,那么E[x]=E[AS]=0,x的均值也是0。
知道了Ps(t),就剩下W了,在給定訓練樣本{Xi(Xi1,Xi2,........Xin),i=1,2....m個樣本,樣本的對數似然估計如下:
?(W=H')
T=m為獨立同分布觀測數據的樣本數。最大化此似然函數就可獲得關于參數W 的最佳估計。
1.2 優化部分(梯度下降算法)
接下來就是對W求導了,這里牽涉一個問題是對行列式|W|進行求導的方法,屬于矩陣微積分
最終得到的求導后公式如下,logg'(s)的導數為1-2g(s):
當迭代求出W后,便可得到S=WX來還原出原始信號.
2.負熵最大的FastICA算法
2.1目標函數部分
2.1.1負熵判別準則
由極大熵原理可知,在方差相同的條件下,所有概率分布中,高斯分布的熵最大;因而我們可以利用熵來度量分布的非高斯性。因此通過度量分離結果的非高斯性,作為分離結果獨立性的度量;當非高斯性達到最大時,表明已完成對各個分量的分離。因為FastICA算法以負熵最大作為一個搜尋方向,因此先討論一下負熵判決準則。由信息論理論可知:在所有等方差的隨機變量中,高斯變量的熵最大,因而我們可以利用熵來度量非高斯性,常用熵的修正形式,即負熵。
負熵的定義:? ?其中XG是和X具有相同協方差的隨機變量,H()為變量的微分熵
微分熵定義:
聯系極大熵原理,XG為高斯分布,所以J(X)>=0;當且僅當X本身也為高斯分布時=0;所以J(x)的值越大,證明X的非高斯性越強,
2.1.2負熵與獨立性關系
假設n維隨機變量X=[X1,X2……Xn],其互信息為I(X):
互信息即為:獨立分布乘積分布與聯合分布之間的負熵J(X),當Xi相互獨立時,互信息為0;
由于計算J(X)需要聯合分布函數和各個分量的分布函數,這個顯然不切實際;所以采用非線性變換g(x)后的均值期望來近似替代。
由于Xi即為觀測數據X分離后的獨立變量Si,再由中心極限定理可知,若隨機變量X有許多相互獨立的隨機變量信號源Si相互組合而成,則不論Si為何種分布,觀測變量數據X比Si具有更強的高斯性,換言之Xi的非高斯性更強。所以,負熵J(X)的值越小,即此時的互信息I(X)越小,此時分離的變量Si獨立性越好。
2.2 優化部分
快速ICA算法是找一個方向以便WX具有最大的非高斯性,也即最大的相互獨立性;這里的獨立性通過負熵來給出,通過均值近似估計來計算。這里通過白化處理,使W的范數為1,即使WX的方差估計為1;
優化過程推導比較復雜,公式太多!
實踐中,FastICA算法中用的期望必須用它們的估計值代替。當然最好的估計是相應的樣本平均。理想情況下,所有的有效數據都應該參與計算,但這會降低計算速度。所以通常用一部分樣本的平均來估計,樣本數目的多少對最后估計的精確度有很大影響。迭代中的樣本點應該分別選取,假如收斂不理想的話,可以增加樣本的數量。
總結
以上是生活随笔為你收集整理的独立成分分析ICA系列4:ICA的最优估计方法综述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我对C++内存分配方式的一点看法
- 下一篇: 程序员谈谈我的职场观(二)