免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
詳解獨立成分分析

最近在學習數(shù)據(jù)降維的一些方法(有關數(shù)據(jù)降維的其他內(nèi)容請看這篇文章),雖然獨立成分分析不算是嚴格意義上的降維方法,但是它和PCA有著千絲萬縷的聯(lián)系,所以打算專門寫一篇文章來學習ICA的相關知識,看了挺多的關于ICA的博文,有些文章講的比較詳細。有句話是這么說的:“論文是詳細版的知識講解”,也就是說如果想深入詳細的了解某個知識,那么去讀相關論文,所以閱讀了一篇經(jīng)典的ICA論文,作者是A. Hyva¨rinen,整篇論文對ICA做出了詳細的解釋。這篇文章按照原論文的結(jié)構,對原論文進行了翻譯概括。

目錄

1. 動機(Motivation)

想象兩個人在意見房間內(nèi)同時說話,有兩個位于房間不同位置的麥克風記錄時間信號,記錄的時間信號分別用

。被麥克風記錄的信號是兩個說話者語音信號的加權和,分別用
表示。那么我們可以得到下面的等式:

                                     

      (1)                      
           (2)

其中

是一些取決于麥克風和說話者距離的參數(shù)。如果能用記錄的信號
、
估算出兩個原始的語音信號
,這將會是一件非常有用的事。上面說的這個例子被稱為“雞尾酒宴會”問題。

                           

                             

以圖1和圖2的波形為例,圖1表示的波形是原始語音信號,圖2表示的波形是混合后即麥克風記錄的信號。我們要做的就是通過圖2中的信號來恢復圖1中的信號。實際上,如果我們知道參數(shù)

,那么我們就能通過傳統(tǒng)的方法求解出式(1)和式(2),但是如果我們不知道參數(shù)
,那么求解就會變的非常困難。

其中一種方法是我們可以應用信號

的一些統(tǒng)計特性來估計
。我們可以假設在每個時刻t,信號
是統(tǒng)計獨立的。ICA可以獨立分量的信息來估計參數(shù)
,這使得我們可以從混合信號
中分離原始信號
。圖3的信號是從圖2中信號通過ICA方法估計出的信號,可以看到,通過ICA得到的信號的波形和原始信號的波形(圖1)非常相似。只是幅度是相反的,將估計得到的信號取個負即可。

                           

2. 獨立成分分析(independent component analysis)

2.1 ICA的定義(Definition of ICA)

為了嚴格定義ICA,我們可以使用統(tǒng)計隱變量模型。假設我們從n個獨立成分觀察到n個線性混合信號

                                                                 

             (3)

假設每一個

和每一個獨立成分
是隨機變量,觀測值
是隨機變量的樣本值。在不失一般性的情況下,我們可以假設混合變量和獨立分量都具有零均值:如果不是這樣的話,我們可以對觀察變量
中心化,使得模型為零均值模型。

用向量-矩陣法表示前面的和式是非常方便的,我們用x表示隨機向量,其元素為

,同樣的s表示隨機向量,其元素為
。用A表示矩陣,其元素為
,通常情況下,小寫黑體表示向量,大寫黑體表示矩陣。所有的向量都被視為列向量。根據(jù)向量-矩陣表示法,上面的混合模型可被寫為:

                                                                                    

                             (4)

有時,我們需要矩陣的列向量,用

表示,那么模型可被寫為:

                                                                                    

                       (5)

我們稱(4)式表示的統(tǒng)計模型為獨立成分分析或ICA模型。ICA模型是生成模型,它描述了觀測數(shù)據(jù)是如何通過混合元素

生成的。獨立成分是隱變量,也就是說它們不能被直接觀測;而且混合矩陣
也被假設是未知的。所有我們能觀測到的只有隨機向量
,我們需要用它去估計

ICA的出發(fā)點是非常簡單的一個假設:成分

是統(tǒng)計獨立的。而且還假設獨立成分是非高斯分布的。在基礎模型中,我們不假設分布是已知的(如果分布已知,那么問題就會很簡單了),還假設混合矩陣
是方陣。當我們估算了矩陣
,那么我們可以求得它的逆
,可以通過下面的時候得到獨立成分:

                                                                                       

                                  (6)

ICA是和“盲源分離”(BSS)非常相近的一種方法?!霸础笔侵冈夹盘枺簿褪仟毩⒊煞?,比如雞尾酒宴會中的說話者的語音信號;“盲”是因為我們可知的信息非常少,不知道混合矩陣

,而且只能對源信號做極有限的假設。在實際的應用中,我們觀測到的信號中還會包含一些噪聲,為了簡化,此處忽略噪聲項,即便如此,它對許多應用仍然有效。

2.2 ICA的不明確性(Ambiguities of ICA)

在ICA模型,也就是式(4)中,我們很容易看到ICA的一些不太明確的地方:

1. 我們不能確定獨立成分的方差(能量)

原因是,

都是未知的,通過將
的相應列
除以相同的標量,可以總是取消其中一個源
中的任何標量乘數(shù)。因此,我們可以很好的確定獨立成分的大小,因為它們是隨機變量,確定其大小最自然的方式是假設它們的方差為1,即:
。然后,矩陣
將在ICA解決方案方法中進行調(diào)整,以考慮這種限制。 請注意,這仍然會留下符號的模糊性:我們可以將獨立分量乘以21而不會影響模型。 幸運的是,這種模糊性在大多數(shù)應用中都是微不足道的。

2. 我們不能確定獨立成分的順序

原因同樣是

都是未知的,我們可以隨意的改變式(5)中求和項的順序,然后把任何一個獨立成分稱為第一個。形式上,置換矩陣
及其逆可以在模型中代入以給出
的元素是原始的獨立變量
,但是以另一種順序。 矩陣
只是一個新的未知混合矩陣,由ICA算法求解。

2.3 圖解ICA(Illustration of ICA)

為了用統(tǒng)計學術語來闡明ICA模型,我們假設兩個獨立分量服從下面的均勻分布:

                                                 

選擇均勻分布的取值范圍,使得均值為0,方差為1。

的聯(lián)合密度在正方形內(nèi)是均勻的,這源于聯(lián)合密度的基礎定義:兩個獨立變量的聯(lián)合密度是他們邊密度的乘積。聯(lián)合密度如圖4所示,數(shù)據(jù)點是從分布中隨機抽取。

                                                        

現(xiàn)在混合這兩個獨立成分,我們?nèi)∠旅娴幕旌暇仃嚕?/p>

                                       

這得出了兩個混合變量,

,很容易得出混合數(shù)據(jù)在一個平行四邊形上的均勻分布,如圖5所示:

                                                       

   

我們可以看到,隨機變量

不再獨立,換一種說法是,是否有可能從一個值去預測另一個值。假設
的值為最大或最小值,那么
的值就可以確定了。如上圖中紅框圈起來的數(shù)據(jù)點所示。由此可知,
已經(jīng)不再獨立了。但是對于圖4中的隨機變量
情況就不同了,如果我們知道
的值,那么無論通過什么方式都無法確定
的值。

現(xiàn)在估計ICA模型中數(shù)據(jù)的問題變成了用包含在

中僅有的信息估計混合矩陣
的問題。實際上我們可以從圖5中對
有個更直觀的估計:平行四邊形的邊是矩陣列向量的方向。
這意味著我們原則上可以通過首先估計
的聯(lián)合密度,然后定位邊緣來估計ICA模型。 所以,問題似乎有一個解決方案。

然而,實際上,這將是一種非常差的方法,因為它僅適用于具有完全均勻分布的變量。 而且,它在計算上會非常復雜。 我們需要的是一種適用于獨立成分的任何分布的方法,并且可以快速可靠地工作。 接下來,在開始開發(fā)用于估計ICA模型的方法之前,我們將考慮獨立性的確切定義。

3. 什么是獨立性(What's independence?)

在這一小節(jié)我們將會解決兩個關鍵的問題:為什么要假設獨立成分是統(tǒng)計獨立的?為什么獨立成分必須是非高斯變量

3.1 定義和基本屬性(Definition and fundamental properties)

為了定義獨立性,首先考慮兩個常量隨機變量

?;旧?,如果關于
值的信息沒有給出關于
值的任何信息,則變量
被認為是獨立的,反之亦然。從上一小節(jié)我們知道變量
滿足獨立性,而混合變量
并不滿足獨立性。獨立性可以通過概率密度定義,用
表示
的聯(lián)合概率密度。用
表示
的邊緣概率密度函數(shù),單獨考慮
概率密度函數(shù)時有:

                                                                  

                                    (9)

對于

也是一樣的。當且僅當聯(lián)合概率密度函數(shù)可以通過以下方式分解時,我們定義
是獨立的

                                                                  

                                     (10)

式(10)對n個隨機變量同樣適用,此時聯(lián)合概率密度函數(shù)等于n個部分的邊緣概率密度函數(shù)的乘積。該定義可用于推導獨立隨機變量的一個最重要的性質(zhì)。給定h1和h2兩個函數(shù),我們總是有:

                                                   

                  (11)

其證明過程如下:

                                            

3.2 不相關變量是部分獨立的(Uncorrelated variables are only partly independent)

弱化的獨立是不相關。如果兩個隨機變量

的協(xié)方差為0,那么說這兩個隨機變量不相關:

                                                              

                                     (13)

獨立一定不相關,但是不相關不一定獨立。例如,假設

是離散值并遵循這樣的分布,即其為
中任意值的概率為
??梢钥吹剑?div id="fu8ihs5fyo3" class='imgcenter'>
的取值為(0,0,1,-1),所以
,同樣的
的取值為(1,-1,0,0),所以
,
的取值總是為0,那么
。根據(jù)式(13)得出,隨機變量
不相關。我們令
,可以得到
的值總是0,那么
;
取0和1的概率各為
,那么
,同樣的,
取0和1的概率各為
,得
,由此可得:

                                                          

                                  (14)

由式(11)可以得出隨機變量

不獨立。所以,不相關不一定獨立。

 

3.3 為什么獨立成分不能是高斯變量(Why Gaussian variables are forbidden)

在ICA中對獨立成分最基礎的限制是:獨立成分必須為非高斯變量。接下來我們看看為什么高斯變量對ICA不適用,我們假設混合矩陣

是正交的,且
是高斯變量。那么
是高斯變量,且不相關、方差為1。它們的聯(lián)合密度如下:

                                             

其分布如圖6所示:

                                                  

此圖顯示了密度的完全對稱性,因此它不包含混合矩陣

的列向量方向的任何信息。這就是為什么
不能被估算的原因。更嚴格地說,可以證明高斯變量
的任何正交變換的分布具有與
完全相同的分布,并且
是獨立的。因此,在高斯變量的情況下,我們只能估算正交變換的ICA模型。換句話說,矩陣
對于高斯獨立分量是不可識別的。 (實際上,如果只有一個獨立分量是高斯分布,那么仍然可以估計ICA模型。)

4 ICA估計原理(Principles of ICA estimation)

4.1 非高斯獨立(“Non-Gaussian is independent”)

直觀的說,非高斯分布是ICA估計的關鍵,實際上,沒有非高斯性,估計是不可能完成的,正如3.3 中所說的那樣。這也可能是ICA后期復蘇的主要原因:在傳統(tǒng)統(tǒng)計學理論中,大多假設隨機變量服從高斯分布,因此這將任何與ICA有關的方法都排除在外了。中心極限定理是概率論中的經(jīng)典,它表明在一定條件下,獨立隨機變量之和的分布傾向于高斯分布。 因此,兩個獨立隨機變量的總和通常具有比兩個原始隨機變量中的任何一個更接近高斯的分布。

現(xiàn)在假設數(shù)據(jù)向量

按照式(4)中ICA數(shù)據(jù)模型分布,即它是獨立成分的混合。我們假設所有的獨立成分有相同的分布,為了估算其中的一個獨立成分,我們考慮
的線性組合(見式(6));我們用
來表示,其中
是待求向量。如果
的逆的一行,那么這個線性組合實際上就表示一個獨立成分?,F(xiàn)在問題變成了:如何使用中心極限定理去確定
使得它等于矩陣
的逆的一行。實際上,我們并不能確定這樣一個向量
,因為我們對矩陣
一無所知,但是我們可以尋找一個估計器來找到較好的近似。

為了了解這如何引出ICA估計的基本原理,讓我們換一下變量,定義

。然后我們可以得出
。因此y是
的線性組合,權重為
,因為兩個獨立隨機變量的和比原始的變量更接近高斯分布,所以
比任意一個
更接近高斯分布且當它等于其中一個
時變成最小高斯。很明顯,在這種情況下
只有一個元素
非零。因此我們可以取
為使
非高斯性最大的向量。(既然隨機變量的和更接近高斯分布,但是在ICA中我們又不想讓隨機變量服從高斯分布,那么我們可以只讓
中一個元素非零,這樣就會得到最小高斯,從而使得
的非高斯性最大)。
這樣的向量對應于只具有一個非零分量的
。這意味著
等于一個獨立成分。

最大化

的非高斯性會求出一個獨立成分,事實上,向量
的n維空間中非高斯性的優(yōu)化格局具有2n個局部最大值,每個獨立分量有兩個,對應于
(回想一下,獨立分量只能估計到乘法符號)。為了找到一些獨立分量,我們需要找到所有的局部最大值,這并不困難,因為不同的獨立分量不相關:我們總是可以將搜索限制在那些給出與以前的估計不相關的估計的空間。這對應于適當變換(即白化)空間中的正交化。我們這里的方法頗具啟發(fā)性,但在第4.2節(jié)和第4.3節(jié)中可以看出它具有完全嚴格的證明。

4.2 非高斯性的度量(Measures of non-Gaussianity)

為了在ICA估計中使用費高斯性,我們必須對隨機變量

的非高斯性進行定量的度量。為了簡化,我們假設
的均值為0,方差為1。實際上,通過ICA算法的預處理過程可以使這個假設成真。

4.2.1 峰度(Kurtosis)

非高斯性的傳統(tǒng)度量方式是峰度和四階累積量。

的峰度的定義如下:

                                                           

                               (16)

實際上,我們假設過

的方差為1,那么等式右邊可簡化為:
。這表明峰度只是四階矩的標準化版本。對于高斯隨機變量
,四階矩等于
。因此對于高斯隨機變量其峰度為0 。而對于大多數(shù)(并非所有)非高斯變量,其峰度非零。峰度可正可負;具有負峰度的隨機變量稱為亞高斯,具有正峰度的隨機變量稱為超高斯。超高斯隨機變量通常具有帶有重尾的“尖峰”概率密度函數(shù),即概率密度函數(shù)在零和變量的較大值處相對較大,而對于中間值較小。典型的例子是拉普拉斯分布,其概率密度函數(shù)的定義如下:                               

                                          

其概率密度函數(shù)如圖7所示:

                                                     

亞高斯隨機變量通常具有“平坦”概率密度函數(shù),其在零附近相當恒定,并且對于較大的變量值而言非常小。 典型的例子是的均勻分布。非高斯性通常通常通過峰度的絕對值或平方來度量,高斯隨機變量的峰度為了,而非高斯

變量的峰度不為0,但是也有極少數(shù)的非高斯變量的峰度為0。 

峰度或其絕對值在ICA或其它領域度量非高斯性時廣泛應用。主要原因是它的計算和理論分析都比較簡單:計算簡單是因為峰度只需要計算樣本數(shù)據(jù)的四階矩;而理論分析簡單是因為以下的線性特性:

                                                       

                    (18)

                                                       

                                          (19)

其中

是獨立的隨機變量,
是常數(shù)。以上性質(zhì)由定義很容易證明。為了在一個簡單的例子中說明峰度的優(yōu)化格局是什么樣的,以及如何通過峰度最小化或最大化找到獨立的組件,讓我們看一下二維模型
。假設獨立成分
的峰值分別為
且都不等于0,我們之前假設過隨機變量的方差都為1,我們要求一個獨立成分
。我們再一次應用轉(zhuǎn)換
,接著有
,現(xiàn)在根據(jù)峰度的線性特性我們可以得到:
,因為隨機變量是
,而
可看做是常數(shù)。另一方面,我們使
的方差為1。這意味著對
有個約束:
。在對上式進行推導之前首先要明確幾個問題,
是均值為0方差為1的獨立變量,
是常數(shù),其推導如下:

                                                          

這在幾何上意味著

被約束在二維平面的單位圓上,現(xiàn)在優(yōu)化問題變成了:函數(shù)
在單位圓上的最大值是什么。為簡單起見,可以認為峰度具有相同的符號,在這種情況下,可以省略絕對值運算符。 該函數(shù)的圖形是問題的“優(yōu)化”。

當向量

的一個元素恰好為零而另一個非零時,不難顯示最大值位于這些點; 由于單位圓約束,非零元素必須等于1或-1。實際上,我們可以從權值向量
開始,基于混合向量
的樣本
計算方向,即峰度增長最快的方向(如果峰度為正)或減少最快(如果峰度為負)的方向,并使用梯度方法或其中一個擴展來尋找新的矢量w。這個例子可以一般化到任意維度來表明峰度可以作為ICA問題的優(yōu)化準則。

但是,峰度在實際應用中也存在一些缺陷,主要原因是峰度對異常值非常敏感。其值可能僅取決于分布尾部的少數(shù)觀測值,這可能是錯誤的或不相關的觀測。 換句話說,峰度是一種不穩(wěn)定的非高斯性度量。接下來,介紹另一種比峰度優(yōu)越的非高斯性度量方法:負熵。

4.2.2 負熵(Negentropy)

負熵是另一種非常重要的非高斯性量度。 負熵是信息論中熵量的一種概念。熵是信息論中的基本概念,隨機變量的熵可以被解釋為觀察變量包含的信息量。變量越隨機,越不可預測,那么它的熵越大,更嚴格的說,熵和隨機變量的編碼長度相關,實際上在某些簡單的假設下,熵就是隨機變量的編碼長度。隨機變量

的熵
的定義如下:

                                                         

                     (20)

其中

可能取到的值。此定義可以推廣到連續(xù)值的隨機變量和隨機向量,這種情況下其被稱為“差分熵”。密度函數(shù)為
的隨機向量
的差分熵H定義如下:

                                                        

                                     (21)

在信息論中有個基本的結(jié)論:在所有方差相等的隨機變量中,高斯變量的熵最大。這意味著熵可以作為非高斯性的一種度量,實際上,這表明高斯分布是所有分布中最“隨機”的。隨機變量的分布越集中,其熵越小。為了獲得對于高斯變量為零并且總是非負的非高斯性度量,通常使用負熵。負熵

的定義如下:

                                                         

                                              (22)

是與
有相同協(xié)方差矩陣的高斯隨機變量。根據(jù)上面提到的特性,負熵總是非負的,且只有
是高斯分布的時候為0,而且負熵對于可逆線性變換是不變的。使用負熵作為非高斯性度量的優(yōu)勢是:統(tǒng)計理論能夠很好的證明它。實際上,對統(tǒng)計性質(zhì)而言,負熵在某種意義上是對非高斯性的最優(yōu)估計。但是負熵的計算非常復雜,用定義估計負熵需要估計概率密度函數(shù)。因此我們可以尋找負熵的近似。

4.2.3 負熵的近似(Approximations of negentropy)

像上面提到的,負熵的計算非常困難,因此對比函數(shù)仍然是理論函數(shù)。所以在實際應用中經(jīng)常會使用一些負熵的近似,接下來介紹具有不錯性質(zhì)的負熵的近似。

傳統(tǒng)的負熵近似是使用高階矩,像下面這種形式:

                                                             

                                (23)

假設

是零均值方差為1的隨機變量。然而這種近似的有效性可能是有限的,這些近似受到了峰度的非魯棒性的影響。為了避免這種問題,一種新的負熵的近似被提出,這種近似是基于最大熵原理的,其近似如下:

                                                            

                       (24)

其中

是正常數(shù),
是均值為0,方差為1的高斯變量,
也是均值為0,方差為1的變量,
是非二次函數(shù)。即使在近似不是非常準確的情況下,式(24)仍然可以構建非高斯性的度量。當我們只用一個非二次函數(shù)時,近似如下:

                                                             

                                   (25)

如果

是對稱的,這顯然是基于矩的近似推廣(如式(23))。取
就會得到式(23),也就是基于峰度的近似。在這里,我們通過
的選擇,會獲得一個比式(23)的更好負熵的近似。選擇增長不是太快的
,會得到一個比較穩(wěn)定的估計量。下面的
選擇被證明比較有效:

                                             

                      
                (26)

其中

是1到2之間的常數(shù)。因此,我們得到了負熵的近似值,它在由峰度和負熵給出的兩個經(jīng)典非高斯性度量的性質(zhì)之間給出了非常好的折衷。它們的概念簡單,計算速度快,而且還有些比較不錯的統(tǒng)計特性,尤其是魯棒性。

4.3 互信息最小化(Minimization of mutual information)

另外一種基于信息論的估計ICA的方法是互信息最小化。接下來將解釋這種方法,并說明它跟上面描述尋找大多數(shù)非高斯方向的方法相似。

4.3.1 互信息(Mutual information)

根據(jù)差分熵的概念,我們定義m個隨機變量

之間的互信息,如下:

                                                             

                            (27)

互信息是衡量隨機變量之間獨立性的方法,事實上,它等于聯(lián)合密度

和其邊緣密度乘積之間的散度,它總是非負的,只有當變量之間統(tǒng)計獨立時為0。因此互信息考慮變量的整體依賴結(jié)構,而不是像PCA等方法一樣僅僅考慮協(xié)方差。互信息可以用熵作為碼長來解釋,
給出了當
分別編碼時的碼長,
給出了當
被編碼為隨機向量時的碼長。因此,互信息顯示了通過編碼整個向量而不是單獨的分量來減少代碼長度的效果。一般來說,對整個向量進行編碼可以得到更好的編碼。但是,如果
是獨立的,那么它們彼此之間就沒有任何信息,即互信息為0。

互信息一個重要的特性是:我們有一個可逆的線性變換

:

                                                        

                 (28)

我們試想一下如果

是不相關的,而且它們的方差為1會發(fā)生什么,這意味著
,這意味著:

                                                      

                                      (29)

這意味著

的行列式必須是常量,而且,對于單位方差的
,熵和負熵只差一個常數(shù)和符號,因此我們可以得到:

                                                      

                                                  (30)

其中

是不依賴
的常數(shù)。上面的式子表示了負熵和互信息之間的關系。

4.3.2 通過互信息定義ICA(Defining ICA by mutual information)

因為互信息是信息論中隨機變量獨立性的度量方式,我們可以用它作為尋找ICA變換的準則。此方法是模型估計的替代方法,我們將隨機向量

的ICA定義為可逆變換,就想式(6)中那樣,確定了矩陣
,使變換后的元素
的互信息最小化。很明顯,在式(30)中找到最小化互信息的逆變換
,就相當于負熵最大的方向。更精確的說,它相當于找到了一維子空間,使得在這些子空間上的投影具有最大熵。式(30)表明,當估計被約束為不相關時,通過最大互信息估計相當于最大化非高斯估計的和。非相關性的約束其實是不必要的,是為了簡化計算考慮。因此,我們看到ICA作為互信息最小化的公式給出了另一個嚴格的理由,即我們更具啟發(fā)性地引入了尋找最大非高斯方向的想法。

4.4 最大似然估計(Maximum likelihood estimation)

4.4.1 似然(The likelihood)

一種非常流行的估計ICA模型的方法是最大似然估計,它和信息最大化原則相似。接下來將討論這種方法,并表明它的本質(zhì)是和最小化互信息是一樣的。在無噪聲的ICA模型中可以直接表示似然,然后通過最大似然估計來估計模型。

表示矩陣
的逆,log似然函數(shù)如下:

                                             

   

其中

的密度函數(shù),
的實現(xiàn)。對于任何密度為
的隨機變量
和任意的矩陣
,
的密度由
給出。      

4.4.2 infomax原則(The infomax principle)

另一個相關的對比函數(shù)是從神經(jīng)網(wǎng)絡的觀點中推導出來的。這是基于最大化具有非線性輸出的神經(jīng)網(wǎng)絡的輸出熵(或信息流)。假設

是神經(jīng)網(wǎng)絡的輸入,它的輸出是
,其中
是非線性的標量函數(shù),
是神經(jīng)元的權重矩陣。想最大化輸出的熵為:

                                                      

                                      (32)

如果

選擇的合適,這個框架也可以估計ICA模型,實際上,一些研究者已經(jīng)證明了infomax原則相當于最大似然估計。這種等價要求神經(jīng)網(wǎng)絡中的非線性
是密度函數(shù)
的積分,也就是說
。

4.4.3 互信息連接(Connection to mutual information)

為了研究似然和互信息之間的關系,考慮log似然函數(shù)的期望,如下:

                                            

                            (33)

如果

的分布,那么上式右邊的第一部分可以寫為
。因此似然將會和式(28)中的互信息的負相等(只是相差一個常數(shù))。在實際應用這種聯(lián)系會更強,因為在實際中我們不知道獨立成分的分布。比較合理的一種方法是把
估計作為最大似然估計方法的一部分,并且把它作為
密度函數(shù)的一部分。在這種情況下,似然和互信息是等價的。

在實際情況下,我們有很多關于獨立成分的先驗知識,我們不需要根據(jù)數(shù)據(jù)來估計它們的性質(zhì)。在任何情況下,如果獨立成分的性質(zhì)是錯誤了,那么最大似然估計也會給完全錯誤的結(jié)果。

4.5 ICA與投影跟蹤(ICA and projection pursuit)

如何明確ICA與投影跟蹤之間的聯(lián)系。投影跟蹤是在統(tǒng)計學中發(fā)展起來的一種技術,用于發(fā)現(xiàn)多維數(shù)據(jù)的“有趣的”投影。這樣的投影可用于數(shù)據(jù)的最佳可視化,以及密度估計和回歸等目的。在基本的(1-D)投影跟蹤中,我們試圖找到方向,使數(shù)據(jù)在這些方向上的投影具有有趣的分布,即顯示某種結(jié)構。研究者認為,高斯分布是最沒有意思的分布,最有趣的方向是那些顯示最低高斯分布的方向,而這正是我們估計ICA模型的方法。

在圖8中可以看到找到這種投影的有用性,其中投影追蹤方向上的投影是水平的,清楚地顯示了數(shù)據(jù)的聚類結(jié)構。

                                                    

在第一個主成分(垂直方向)上的投影沒有顯示出這種結(jié)構。 在一般公式中,投影跟蹤可以看做是ICA的變體。特別是,投影追蹤使我們能夠解決獨立分量

比原始變量
少的情況。假設空間的那些未被獨立分量跨越的維度被高斯噪聲填充,我們看到計算非高斯投影追蹤方向,我們有效地估計了獨立分量。 當找到所有非高斯方向時,估計了所有獨立分量。 這樣的過程可以被解釋為投影跟蹤和ICA的混合。然而,應該注意的是,在投影跟蹤的公式中,沒有關于獨立分量的數(shù)據(jù)模型或假設。 如果ICA模型成立,優(yōu)化ICA非高斯度量度量會產(chǎn)生獨立的分量; 如果模型不成立,那么我們得到的是投影跟蹤方向。

5 ICA的預處理(Preprocessing of ICA)

在上一節(jié)中,我們討論了ICA方法的基本統(tǒng)計原理。 基于這些原理的實用算法將在下一節(jié)中討論。 但是,在對數(shù)據(jù)應用ICA算法之前,進行一些預處理通常非常有用。 在本節(jié)中,我們將討論一些預處理技術,這些技術可以使ICA估計問題更簡單,條件更好。

5.1 中心化(Centering)

最基礎也是最有必要的預處理是對

中心化,也就是說用原始數(shù)據(jù)減去它們的均值
使得
的均值為0。因為
的均值也是零,所以可以對式(4)兩邊同時取期望。這只是為了簡化ICA算法,并不是說不能估計平均值。用中心化后的數(shù)據(jù)估計完混合矩陣
之后,我們把
的均值向量加回到
中心估計值以完成完全估計。均值向量由
給出,其中
是預處理過程中減去的均值。

5.2 白化(whitening)

ICA另一個有用的預處理策略是對觀測數(shù)據(jù)白化。這意味著在應用ICA算法之前(中心化之后),我們對觀測數(shù)據(jù)

進行線性變換,因此我們可以獲得白化的新的向量
,也就是說,它的元素是不相關的且方差是一致的。換句話說,
的協(xié)方差矩陣是單位矩陣:

                                                                           

                               (34)

一種比較流行的白化的方法是協(xié)方差矩陣

的特征分解,其中
的特征向量組成的正交矩陣,
是由特征值組成的對角矩陣,
可以根據(jù)已知的值
算出來,白化可以通過下式完成:

                                                                          

                              (35)

其中

,現(xiàn)在很容易發(fā)現(xiàn)
。

通過白化將混合矩陣轉(zhuǎn)換為

,由式(4)和式(35)可得到:

                                                                    

                        (36)

白化的作用在于可以使新的混合矩陣

變成正交的,這可以從下式中看到:

                                                           

       (37)

我們可以看到,通過白化減少了要估計的參數(shù)的數(shù)量,現(xiàn)在我們不需要估計原始矩陣

中的
個參數(shù)(即矩陣
中的元素),而只需要估計新的正交混合矩陣
。一個正交矩陣包含
的自由度,例如,在二維空間中正交變換可由單個的角參數(shù)確定,在更高的維度中,正交矩陣只包含任意矩陣參數(shù)數(shù)目的一半左右。因此我們可以這樣說,白化解決了ICA一半的問題。因為白化是非常簡單且標準的流程(比任何的ICA算法都簡單),用這種方法減少問題的復雜性是個不錯的主意。在我們白化的同時,減少數(shù)據(jù)的維度也是件非常有用的,我們可以舍棄
的較小的特征值,正如PCA所做的那樣,這有去噪的效果,而且維度的減少會防止過擬合(個人建議,不要通過降維的方式防止過擬合,盡量通過正則化來防止過擬合)。

圖9對圖5中的數(shù)據(jù)進行了白化,如下所示:

                                                                

定義分布的正方形現(xiàn)在顯然是圖4中原始正方形的旋轉(zhuǎn),剩下的就是估計給出旋轉(zhuǎn)的單個角度。 在接下來的分析中,我們都假設數(shù)據(jù)經(jīng)過了預處理:中心化和白化。為了簡單起見,預處理的數(shù)據(jù)就用

表示,變換的混合矩陣用
表示。

5.3 進一步的預處理(Further preprocessing)

給定數(shù)據(jù)集的ICA成功與否可能會跟特定應用的預處理步驟有關。比如數(shù)據(jù)中包含時間信號,那么帶通濾波也將會是很有用的。如果我們對觀測信號

進行線性濾波得到新的信號
,具有相同混合矩陣的ICA模型仍然適用于
。觀測
是矩陣
的列,對于
也是如此,那么ICA模型可被表示為:

                                                                                 

                                       (38)

現(xiàn)在,

的時間濾波相當于
從右邊乘以一個矩陣
,如下:

                                                                

                         (39)

這表明ICA模型依然有效。

6 FastICA算法(The FastICA algorithm)

在前面的小節(jié)中,介紹了非高斯性的不同度量方式,也就是ICA估計的目標函數(shù)。在實際中,還需要一種最大化對比函數(shù)的算法,如式(25)那樣。這一小節(jié)介紹一種非常有效的最大化方法,這里假設數(shù)據(jù)都是經(jīng)過預處理的。

6.1 單元FastICA(FastICA for one unit)

首先來看單元FastICA,通過“單元”,我們指的是計算單元,最終是人工神經(jīng)元,具有神經(jīng)元能夠通過學習規(guī)則更新的權值向量

。FastICA學習規(guī)則尋找方向,也就是使投影
最大化非高斯性的單位向量
,非高斯性通過負熵
的近似度量?;叵胍幌?div id="fu8ihs5fyo3" class='imgcenter'>
的方差必須是統(tǒng)一的,對于白化的數(shù)據(jù),這相當于將
的范數(shù)統(tǒng)一。FastICA是基于定點迭代的方案的尋找
非高斯性的最大值,像式(25)那樣。這也可以用近似牛頓迭代法推導出來,用g表示式(25)中非二次函數(shù)G的導數(shù),例如,式(26)中函數(shù)的導數(shù)為:

                                          

                     
                       (40)

其中

是介于1到2之間的常數(shù),通常取
。FastICA算法的基本形式如下:

               1. 選擇初始的權值向量

(隨機選擇)

               2. 令

               3. 令

               4. 如果不收斂,就返回步驟2

收斂是指

的新舊值指向同一個方向,也就是,它們的點積等于1,向量不一定收斂到同一個點,因為
定義的方向是相同的,這也是因為獨立分量只能定義為乘法符號。     

FastICA推導如下,首先

的負熵的近似的最大值是從
獲得的,在約束
下的
的最優(yōu)值是從下式中獲得的:

                                          

                                             

用牛頓法來解上面的等式,令等式左邊為

,然后可以獲得雅可比矩陣
: 

                                        

                              

為了簡化矩陣,我們對上式中的第一部分取近似,由于數(shù)據(jù)是球形的,一個合理的近似是

 因此雅可比矩陣變成了對角矩陣,并且很容易求其逆,從而得到下面的近似牛頓迭代:

                                        

通過對上式兩邊同時乘以

可以進一步簡化。實際上,F(xiàn)astICA的期望必須由他們的估計來代替。 自然估計當然是相應的樣本均值。 理想情況下,應該使用所有可用數(shù)據(jù),但這通常不是一個好主意,因為計算可能變得過于苛刻。 然后可以使用較小的樣本估計平均值,其大小可能對最終估計的準確性具有相當大的影響。 應在每次迭代時單獨選擇樣本點。 如果收斂不令人滿意,則可以增加樣本量。

6.2 多元FastICA(FastICA for several unit)

前面講的單單元算法只是估計一個獨立成分或者一個投影追蹤的方向,為了估計幾個獨立成分,我們需要使用具有權重向量

的若干單元(例如,神經(jīng)元)來運行單單元FastICA算法。為了防止不同的向量收斂到相同的最大值,需要在每次迭代后對輸出
去相關,有3種方法可以做到這一點,對于白化的
這種去相關相當于正交化。

實現(xiàn)去相關的簡單方法是基于類似Gram-Schmidt的去相關的放縮方案。這意味著需要一個個的估計獨立成分,當我們已經(jīng)估計了

個獨立成分或者
個向量
,對
運行單單元定點算法,在每一次迭代之后,從
中減去投影
,其中
,最后重新標準化

                                            

然而,在某些應用程序中,可能需要使用對稱的去相關,其中沒有向量比其他向量具有“特權”,這可以通過矩陣平方根法做到,令:

                                                                

                                                 (45)

其中

是向量
組成的矩陣,平方根的倒數(shù)
可以從
特征值分解得到,
,一個更簡單的迭代方法如下:

                               1. 令

                                重復步驟2直到收斂       

                               2. 令 

步驟一中的范數(shù)可以使用矩陣的任意范數(shù),比如2-范數(shù)。

6.3 FastICA 和最大似然(FastICA and maximum likelihood)

最后,給出FastICA和最大似然估計的聯(lián)系。如果我們使用式(43)中的中間公式表達FastICA,并以矩陣形式寫,我們看到FastICA采用以下形式:

                                            

其中

,
,
,矩陣
在每一步后都需要正交化。上述版本的FastICA可以與隨機梯度法的最大似然比較:

                                            

其中

是學習速率。
是獨立成分的額概率密度函數(shù)的函數(shù):
,其中
是獨立成分的概率密度函數(shù)。比較式(47)和(48)可以看出,F(xiàn)astICA可以作為ICA數(shù)據(jù)模型最大似然估計的定點算法。在FastICA中,通過選擇矩陣
來優(yōu)化收斂速度。 FastICA的另一個優(yōu)點是它可以估計子和超高斯獨立分量,這與普通ML算法形成對比,普通ML算法僅適用于給定的分布類別。

6.4 FastICA的屬性(Properties of the FastICA algorithm)

與現(xiàn)有的ICA方法相比,F(xiàn)astICA算法和底層對比度函數(shù)具有許多所需的特性。

1. 在ICA數(shù)據(jù)模型的假設下,收斂是立方的(或至少是二次的)。 這與基于(隨機)梯度下降方法的普通ICA算法形成對比,其中收斂僅是線性的。 這意味著非??焖俚氖諗?,正如通過對真實數(shù)據(jù)的模擬和實驗所證實的那樣

2. 與基于梯度的算法相反,沒有選擇步長參數(shù)。這意味著該算法易于使用。

3. 該算法使用任何非線性g直接找到(實際上)任何非高斯分布的獨立分量。 這與許多算法形成對比,其中必須首先獲得概率分布函數(shù)的一些估計,并且必須相應地選擇非線性。

4. 可以通過選擇合適的非線性g來優(yōu)化該方法的性能。 特別地,可以獲得穩(wěn)健和/或最小方差的算法。 實際上,式(40)中的兩個非線性具有一些最佳性質(zhì)

5. 可以逐個估計獨立分量,這大致相當于進行投影追蹤。 這在探索性數(shù)據(jù)分析中很有用,并且在僅需要估計某些獨立組件的情況下減少了該方法的計算負荷

6. FastICA具有神經(jīng)算法的大部分優(yōu)點:它是并行的,分布式的,計算簡單的,并且需要很少的存儲空間。 只有在不斷變化的環(huán)境中需要快速適應性時,隨機梯度法似乎才是優(yōu)選的。

原論文中還涉及到了ICA算法的應用:在腦磁圖去除數(shù)據(jù)偽跡中的應用;在金融數(shù)據(jù)中發(fā)現(xiàn)隱藏因子;為自然圖像去噪。有興趣的可以去閱讀原文。

參考文獻

1. Independent component analysis: algorithms and applications

2. 一個簡單的FastICA示例    http://www.endolith.com/wordpress/2009/11/22/a-simple-fastica-example/

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
獨立成分分析(Independent Component Analysis)
降維算法原理篇:主成分分析PCA、奇異值分解SVD、因子分析法FA、獨立成分分析ICA等原理詳推
獨立成分分析 (ICA) 與主成分分析 (PCA) 的區(qū)別在哪里?
基于聲發(fā)射和ICA信號處理的軋機齒輪箱故障診斷
獨立成分分析
基于ICA的混合圖像盲分離算法 - 新聞資訊中心 - 星星電子網(wǎng)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服