电竞比分网-中国电竞赛事及体育赛事平台

分享

詳解獨(dú)立成分分析

 李xinle 2020-03-11

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

目錄

1. 動(dòng)機(jī)(Motivation)

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

2.1 ICA的定義(Definition of ICA)

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

2.3 圖解ICA(Illustration of ICA)

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

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

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

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

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

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

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

4.2.1 峰度(Kurtosis)

4.2.2 負(fù)熵(Negentropy)

4.2.3 負(fù)熵的近似(Approximations of negentropy)

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

4.3.1 互信息(Mutual information)

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

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

4.4.1 似然(The likelihood)

4.4.2 信息最大原則(The infomax principle)

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

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

5 ICA的預(yù)處理(Preprocessing of ICA)

5.1 中心化(Centering)

5.2 白化(whitening)

5.3 進(jìn)一步的預(yù)處理(Further preprocessing)

6 FastICA算法(The FastICA algorithm)

6.1 單元FastICA(FastICA for one unit)

6.2 多元FastICA(FastICA for several unit)

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

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

參考文獻(xiàn)

1. 動(dòng)機(jī)(Motivation)

想象兩個(gè)人在意見(jiàn)房間內(nèi)同時(shí)說(shuō)話(huà),有兩個(gè)位于房間不同位置的麥克風(fēng)記錄時(shí)間信號(hào),記錄的時(shí)間信號(hào)分別用x_{1}(t)x_{2}(t)。被麥克風(fēng)記錄的信號(hào)是兩個(gè)說(shuō)話(huà)者語(yǔ)音信號(hào)的加權(quán)和,分別用s_{1}(t)s_{2}(t)表示。那么我們可以得到下面的等式:

                                     x_{1}(t) = a_{11}s_{1} + a_{12}s_{2}      (1)                      x_{2}(t) = a_{21}s_{1} + a_{22}s_{2}           (2)

其中a_{11},a_{12},a_{21},a_{22}是一些取決于麥克風(fēng)和說(shuō)話(huà)者距離的參數(shù)。如果能用記錄的信號(hào)x_{1}(t)、x_{2}(t)估算出兩個(gè)原始的語(yǔ)音信號(hào)s_{1}(t)s_{2}(t),這將會(huì)是一件非常有用的事。上面說(shuō)的這個(gè)例子被稱(chēng)為“雞尾酒宴會(huì)”問(wèn)題。

                           

                             

以圖1和圖2的波形為例,圖1表示的波形是原始語(yǔ)音信號(hào),圖2表示的波形是混合后即麥克風(fēng)記錄的信號(hào)。我們要做的就是通過(guò)圖2中的信號(hào)來(lái)恢復(fù)圖1中的信號(hào)。實(shí)際上,如果我們知道參數(shù)a_{ij},那么我們就能通過(guò)傳統(tǒng)的方法求解出式(1)和式(2),但是如果我們不知道參數(shù)a_{ij},那么求解就會(huì)變的非常困難。

其中一種方法是我們可以應(yīng)用信號(hào)s_{i}(t)的一些統(tǒng)計(jì)特性來(lái)估計(jì)a_{ii}。我們可以假設(shè)在每個(gè)時(shí)刻t,信號(hào)s_{1}(t)s_{2}(t)是統(tǒng)計(jì)獨(dú)立的。ICA可以獨(dú)立分量的信息來(lái)估計(jì)參數(shù)a_{ij},這使得我們可以從混合信號(hào)x_{1}(t)x_{2}(t)中分離原始信號(hào)s_{1}(t)s_{2}(t)。圖3的信號(hào)是從圖2中信號(hào)通過(guò)ICA方法估計(jì)出的信號(hào),可以看到,通過(guò)ICA得到的信號(hào)的波形和原始信號(hào)的波形(圖1)非常相似。只是幅度是相反的,將估計(jì)得到的信號(hào)取個(gè)負(fù)即可。

                           

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

2.1 ICA的定義(Definition of ICA)

為了嚴(yán)格定義ICA,我們可以使用統(tǒng)計(jì)隱變量模型。假設(shè)我們從n個(gè)獨(dú)立成分觀察到n個(gè)線(xiàn)性混合信號(hào)x_{1},...x_{n}

                                                                 x_{j} = a_{j1}s_{1} + a_{j1}s_{2} + ...a_{jn}s_{n}             (3)

假設(shè)每一個(gè)x_{j}和每一個(gè)獨(dú)立成分s_{k}是隨機(jī)變量,觀測(cè)值x_{j}(t)是隨機(jī)變量的樣本值。在不失一般性的情況下,我們可以假設(shè)混合變量和獨(dú)立分量都具有零均值:如果不是這樣的話(huà),我們可以對(duì)觀察變量x_{i}中心化,使得模型為零均值模型。

用向量-矩陣法表示前面的和式是非常方便的,我們用x表示隨機(jī)向量,其元素為x_{1},...,x_{n},同樣的s表示隨機(jī)向量,其元素為s_{1},...,s_{n}。用A表示矩陣,其元素為a_{ij},通常情況下,小寫(xiě)黑體表示向量,大寫(xiě)黑體表示矩陣。所有的向量都被視為列向量。根據(jù)向量-矩陣表示法,上面的混合模型可被寫(xiě)為:

                                                                                    {\color{Red} \mathbf{x} = \mathbf{As}}                             (4)

有時(shí),我們需要矩陣的列向量,用\mathbf{a}_{i}表示,那么模型可被寫(xiě)為:

                                                                                    \mathbf{x} = \sum_{i = 1}^{n}\mathbf{a}_{i}s_{i}                       (5)

我們稱(chēng)(4)式表示的統(tǒng)計(jì)模型為獨(dú)立成分分析或ICA模型。ICA模型是生成模型,它描述了觀測(cè)數(shù)據(jù)是如何通過(guò)混合元素s_{i}生成的。獨(dú)立成分是隱變量,也就是說(shuō)它們不能被直接觀測(cè);而且混合矩陣\mathbf{A}也被假設(shè)是未知的。所有我們能觀測(cè)到的只有隨機(jī)向量\mathbf{x},我們需要用它去估計(jì)\mathbf{A}\mathbf{s}。

ICA的出發(fā)點(diǎn)是非常簡(jiǎn)單的一個(gè)假設(shè):成分{\color{Red} s_{i}}是統(tǒng)計(jì)獨(dú)立的。而且還假設(shè)獨(dú)立成分是非高斯分布的。在基礎(chǔ)模型中,我們不假設(shè)分布是已知的(如果分布已知,那么問(wèn)題就會(huì)很簡(jiǎn)單了),還假設(shè)混合矩陣\mathbf{A}是方陣。當(dāng)我們估算了矩陣\mathbf{A},那么我們可以求得它的逆\mathbf{W},可以通過(guò)下面的時(shí)候得到獨(dú)立成分:

                                                                                       \mathbf{s} = \mathbf{Wx}                                  (6)

ICA是和“盲源分離”(BSS)非常相近的一種方法?!霸础笔侵冈夹盘?hào),也就是獨(dú)立成分,比如雞尾酒宴會(huì)中的說(shuō)話(huà)者的語(yǔ)音信號(hào);“盲”是因?yàn)槲覀兛芍男畔⒎浅I?,不知道混合矩?img doc360img-src='http://image109.360doc.com/DownloadImg/2020/03/1122/185153889_26_2020031110382119' alt="\mathbf{A}" src="http://pubimage.360doc.com/wz/default.gif">,而且只能對(duì)源信號(hào)做極有限的假設(shè)。在實(shí)際的應(yīng)用中,我們觀測(cè)到的信號(hào)中還會(huì)包含一些噪聲,為了簡(jiǎn)化,此處忽略噪聲項(xiàng),即便如此,它對(duì)許多應(yīng)用仍然有效。

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

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

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

原因是,\mathbf{A}\mathbf{s}都是未知的,通過(guò)將\mathbf{A}的相應(yīng)列\mathbf{a}_{i}除以相同的標(biāo)量,可以總是取消其中一個(gè)源s_{i}中的任何標(biāo)量乘數(shù)。因此,我們可以很好的確定獨(dú)立成分的大小,因?yàn)樗鼈兪请S機(jī)變量,確定其大小最自然的方式是假設(shè)它們的方差為1,即:E \left \{ s_{i}^{2} \right \} = 1。然后,矩陣\mathbf{A}將在ICA解決方案方法中進(jìn)行調(diào)整,以考慮這種限制。 請(qǐng)注意,這仍然會(huì)留下符號(hào)的模糊性:我們可以將獨(dú)立分量乘以21而不會(huì)影響模型。 幸運(yùn)的是,這種模糊性在大多數(shù)應(yīng)用中都是微不足道的。

2. 我們不能確定獨(dú)立成分的順序

原因同樣是\mathbf{A}\mathbf{s}都是未知的,我們可以隨意的改變式(5)中求和項(xiàng)的順序,然后把任何一個(gè)獨(dú)立成分稱(chēng)為第一個(gè)。形式上,置換矩陣\mathbf{P}及其逆可以在模型中代入以給出\mathbf{x} = \mathbf{A}\mathbf{P}^{-1}\mathbf{Ps}\mathbf{Ps}的元素是原始的獨(dú)立變量s_{j},但是以另一種順序。 矩陣\mathbf{A}\mathbf{P}^{-1}只是一個(gè)新的未知混合矩陣,由ICA算法求解。

2.3 圖解ICA(Illustration of ICA)

為了用統(tǒng)計(jì)學(xué)術(shù)語(yǔ)來(lái)闡明ICA模型,我們假設(shè)兩個(gè)獨(dú)立分量服從下面的均勻分布:

                                                 

選擇均勻分布的取值范圍,使得均值為0,方差為1。s_{1}s_{2}的聯(lián)合密度在正方形內(nèi)是均勻的,這源于聯(lián)合密度的基礎(chǔ)定義:兩個(gè)獨(dú)立變量的聯(lián)合密度是他們邊密度的乘積。聯(lián)合密度如圖4所示,數(shù)據(jù)點(diǎn)是從分布中隨機(jī)抽取。

                                                        

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

                                       

這得出了兩個(gè)混合變量,x_{1}x_{2},很容易得出混合數(shù)據(jù)在一個(gè)平行四邊形上的均勻分布,如圖5所示:

                                                          

我們可以看到,隨機(jī)變量x_{1}x_{2}不再獨(dú)立,換一種說(shuō)法是,是否有可能從一個(gè)值去預(yù)測(cè)另一個(gè)值。假設(shè)x_{1}的值為最大或最小值,那么x_{2}的值就可以確定了。如上圖中紅框圈起來(lái)的數(shù)據(jù)點(diǎn)所示。由此可知,x_{1}x_{2}已經(jīng)不再獨(dú)立了。但是對(duì)于圖4中的隨機(jī)變量s_{1}s_{2}情況就不同了,如果我們知道s_{1}的值,那么無(wú)論通過(guò)什么方式都無(wú)法確定s_{2}的值。

現(xiàn)在估計(jì)ICA模型中數(shù)據(jù)的問(wèn)題變成了用包含在x_{1}x_{2}中僅有的信息估計(jì)混合矩陣\mathbf{A}_{0}的問(wèn)題。實(shí)際上我們可以從圖5中對(duì){\color{Red} \mathbf{A}}有個(gè)更直觀的估計(jì):平行四邊形的邊是矩陣列向量的方向。這意味著我們?cè)瓌t上可以通過(guò)首先估計(jì)x_{1}x_{2}的聯(lián)合密度,然后定位邊緣來(lái)估計(jì)ICA模型。 所以,問(wèn)題似乎有一個(gè)解決方案。

然而,實(shí)際上,這將是一種非常差的方法,因?yàn)樗鼉H適用于具有完全均勻分布的變量。 而且,它在計(jì)算上會(huì)非常復(fù)雜。 我們需要的是一種適用于獨(dú)立成分的任何分布的方法,并且可以快速可靠地工作。 接下來(lái),在開(kāi)始開(kāi)發(fā)用于估計(jì)ICA模型的方法之前,我們將考慮獨(dú)立性的確切定義。

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

在這一小節(jié)我們將會(huì)解決兩個(gè)關(guān)鍵的問(wèn)題:為什么要假設(shè)獨(dú)立成分是統(tǒng)計(jì)獨(dú)立的?為什么獨(dú)立成分必須是非高斯變量

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

為了定義獨(dú)立性,首先考慮兩個(gè)常量隨機(jī)變量y_{1}y_{2}?;旧?,如果關(guān)于y_{1}值的信息沒(méi)有給出關(guān)于y_{2}值的任何信息,則變量y_{1}y_{2}被認(rèn)為是獨(dú)立的,反之亦然。從上一小節(jié)我們知道變量s_{1}s_{2}滿(mǎn)足獨(dú)立性,而混合變量x_{1}x_{2}并不滿(mǎn)足獨(dú)立性。獨(dú)立性可以通過(guò)概率密度定義,用p(y_{1},y_{2})表示y_{1}y_{2}的聯(lián)合概率密度。用p_{1}(y_{1})表示y_{1}的邊緣概率密度函數(shù),單獨(dú)考慮y_{1}概率密度函數(shù)時(shí)有:

                                                                  p_{1}(y_{1}) = \int p(y_{1},y_{2})dy_{2}                                    (9)

對(duì)于y_{2}也是一樣的。當(dāng)且僅當(dāng)聯(lián)合概率密度函數(shù)可以通過(guò)以下方式分解時(shí),我們定義{\color{Red}y_{1}}{\color{Red}y_{2}}是獨(dú)立的

                                                                  {\color{Red}p(y_{1}y_{2}) = p_{1}(y_{1})p_{2}(y_{2}) }                                     (10)

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

                                                   E\left\{h_{1}(y_{1})h_{2}(y_{2})\right\} = E\left\{h_{1}(y_{1}) \right\}E\left\{h_{2}(y_{2})\right\}                  (11)

其證明過(guò)程如下:

                                            

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

弱化的獨(dú)立是不相關(guān)。如果兩個(gè)隨機(jī)變量y_{1}y_{2}的協(xié)方差為0,那么說(shuō)這兩個(gè)隨機(jī)變量不相關(guān):

                                                              E\left\{y_{1}y_{2}\right\} - E\left\{ y_{1}\right\}E\left\{ y_{2}\right\} = 0                                     (13)

獨(dú)立一定不相關(guān),但是不相關(guān)不一定獨(dú)立。例如,假設(shè)(y_{1},y_{2})是離散值并遵循這樣的分布,即其為(0,1),(0,-1),(1,0),(-1,0)中任意值的概率為\frac{1}{4}。可以看到,y_{1}的取值為(0,0,1,-1),所以E\left\{y_{1}\right\} = 0,同樣的y_{2}的取值為(1,-1,0,0),所以E\left\{y_{2}\right\} = 0,y_{1}y_{2}的取值總是為0,那么E\left\{y_{1}y_{2}\right\} = 0。根據(jù)式(13)得出,隨機(jī)變量y_{1},y_{2}不相關(guān)。我們令h_{1}(y_{1}) = y_{1}^{2},h_{2}(y_{2}) = y_{2}^{2},可以得到y_{1}^{2}y_{2}^{2}的值總是0,那么E\left\{y_{1}^{2}y_{2}^{2}\right\} = 0;y_{1}^{2}取0和1的概率各為\frac{1}{2},那么E\left\{y_{1}^{2}\right\} = \frac{1}{2},同樣的,y_{2}^{2}取0和1的概率各為\frac{1}{2},得E\left\{y_{2}^{2}\right\} = \frac{1}{2},由此可得:

                                                          E\left\{y_{1}^{2}y_{2}^{2}\right\} = 0 \neq E\left\{y_{1}^{2}\right\}E\left\{y_{2}^{2}\right\} = \frac{1}{4}                                  (14)

由式(11)可以得出隨機(jī)變量y_{1},y_{2}不獨(dú)立。所以,不相關(guān)不一定獨(dú)立。

 

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

在ICA中對(duì)獨(dú)立成分最基礎(chǔ)的限制是:獨(dú)立成分必須為非高斯變量。接下來(lái)我們看看為什么高斯變量對(duì)ICA不適用,我們假設(shè)混合矩陣\mathbf{A}是正交的,且s_{i}是高斯變量。那么x_{1}x_{2}是高斯變量,且不相關(guān)、方差為1。它們的聯(lián)合密度如下:

                                             

其分布如圖6所示:

                                                  

此圖顯示了密度的完全對(duì)稱(chēng)性,因此它不包含混合矩陣{\color{Red} \mathbf{A}}的列向量方向的任何信息。這就是為什么\mathbf{A}不能被估算的原因。更嚴(yán)格地說(shuō),可以證明高斯變量(x_{1},x_{2})的任何正交變換的分布具有與(x_{1},x_{2})完全相同的分布,并且x_{1}x_{2}是獨(dú)立的。因此,在高斯變量的情況下,我們只能估算正交變換的ICA模型。換句話(huà)說(shuō),矩陣\mathbf{A}對(duì)于高斯獨(dú)立分量是不可識(shí)別的。 (實(shí)際上,如果只有一個(gè)獨(dú)立分量是高斯分布,那么仍然可以估計(jì)ICA模型。)

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

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

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

現(xiàn)在假設(shè)數(shù)據(jù)向量\mathbf{x}按照式(4)中ICA數(shù)據(jù)模型分布,即它是獨(dú)立成分的混合。我們假設(shè)所有的獨(dú)立成分有相同的分布,為了估算其中的一個(gè)獨(dú)立成分,我們考慮x_{i}的線(xiàn)性組合(見(jiàn)式(6));我們用y = \mathbf{w}^{T}\mathbf{x} = \sum_{i}w_{i}x_{i}來(lái)表示,其中\mathbf{w}是待求向量。如果\mathbf{w}\mathbf{A}的逆的一行,那么這個(gè)線(xiàn)性組合實(shí)際上就表示一個(gè)獨(dú)立成分?,F(xiàn)在問(wèn)題變成了:如何使用中心極限定理去確定\mathbf{w}使得它等于矩陣\mathbf{A}的逆的一行。實(shí)際上,我們并不能確定這樣一個(gè)向量\mathbf{w},因?yàn)槲覀儗?duì)矩陣\mathbf{A}一無(wú)所知,但是我們可以尋找一個(gè)估計(jì)器來(lái)找到較好的近似。

為了了解這如何引出ICA估計(jì)的基本原理,讓我們換一下變量,定義\mathbf{z} = \mathbf{A}^{T}\mathbf{w}。然后我們可以得出y = \mathbf{w}^{T}\mathbf{x} = \mathbf{w}^{T}\mathbf{A}\mathbf{s} = \mathbf{z}^{T}\mathbf{s}。因此y是s_{i}的線(xiàn)性組合,權(quán)重為z_{i},因?yàn)閮蓚€(gè)獨(dú)立隨機(jī)變量的和比原始的變量更接近高斯分布,所以\mathbf{z}^{T}\mathbf{s}比任意一個(gè)s_{i}更接近高斯分布且當(dāng)它等于其中一個(gè)s_{i}時(shí)變成最小高斯。很明顯,在這種情況下\mathbf{z}只有一個(gè)元素z_{i}非零。因此我們可以取\mathbf{w}為使\mathbf{w}^{T}\mathbf{x}非高斯性最大的向量。(既然隨機(jī)變量的和更接近高斯分布,但是在ICA中我們又不想讓隨機(jī)變量服從高斯分布,那么我們可以只讓{\color{Red}\mathbf{z}}中一個(gè)元素非零,這樣就會(huì)得到最小高斯,從而使得{\color{Red}\mathbf{z}^{T}\mathbf{s}}的非高斯性最大)。這樣的向量對(duì)應(yīng)于只具有一個(gè)非零分量的\mathbf{z}。這意味著\mathbf{w}^{T}\mathbf{x} = \mathbf{z}^{T}\mathbf{s}等于一個(gè)獨(dú)立成分。

最大化\mathbf{w}^{T}\mathbf{x}的非高斯性會(huì)求出一個(gè)獨(dú)立成分,事實(shí)上,向量\mathbf{x}的n維空間中非高斯性的優(yōu)化格局具有2n個(gè)局部最大值,每個(gè)獨(dú)立分量有兩個(gè),對(duì)應(yīng)于s_{i}-s_{i}(回想一下,獨(dú)立分量只能估計(jì)到乘法符號(hào))。為了找到一些獨(dú)立分量,我們需要找到所有的局部最大值,這并不困難,因?yàn)椴煌莫?dú)立分量不相關(guān):我們總是可以將搜索限制在那些給出與以前的估計(jì)不相關(guān)的估計(jì)的空間。這對(duì)應(yīng)于適當(dāng)變換(即白化)空間中的正交化。我們這里的方法頗具啟發(fā)性,但在第4.2節(jié)和第4.3節(jié)中可以看出它具有完全嚴(yán)格的證明。

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

為了在ICA估計(jì)中使用費(fèi)高斯性,我們必須對(duì)隨機(jī)變量y的非高斯性進(jìn)行定量的度量。為了簡(jiǎn)化,我們假設(shè)y的均值為0,方差為1。實(shí)際上,通過(guò)ICA算法的預(yù)處理過(guò)程可以使這個(gè)假設(shè)成真。

4.2.1 峰度(Kurtosis)

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

                                                           kurt(y) = E\left\{y^{4}\right\} - 3(E\left\{y^{2}\right\})^{2}                               (16)

實(shí)際上,我們假設(shè)過(guò)y的方差為1,那么等式右邊可簡(jiǎn)化為:E\left\{y^{4}\right\} - 3。這表明峰度只是四階矩的標(biāo)準(zhǔn)化版本。對(duì)于高斯隨機(jī)變量y,四階矩等于3(E\left\{y^{2}\right\})^{2}。因此對(duì)于高斯隨機(jī)變量其峰度為0 。而對(duì)于大多數(shù)(并非所有)非高斯變量,其峰度非零。峰度可正可負(fù);具有負(fù)峰度的隨機(jī)變量稱(chēng)為亞高斯,具有正峰度的隨機(jī)變量稱(chēng)為超高斯。超高斯隨機(jī)變量通常具有帶有重尾的“尖峰”概率密度函數(shù),即概率密度函數(shù)在零和變量的較大值處相對(duì)較大,而對(duì)于中間值較小。典型的例子是拉普拉斯分布,其概率密度函數(shù)的定義如下:                               

                                          

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

                                                     

亞高斯隨機(jī)變量通常具有“平坦”概率密度函數(shù),其在零附近相當(dāng)恒定,并且對(duì)于較大的變量值而言非常小。 典型的例子是的均勻分布。非高斯性通常通常通過(guò)峰度的絕對(duì)值或平方來(lái)度量,高斯隨機(jī)變量的峰度為了,而非高斯z_{1},z_{2}變量的峰度不為0,但是也有極少數(shù)的非高斯變量的峰度為0。 

峰度或其絕對(duì)值在ICA或其它領(lǐng)域度量非高斯性時(shí)廣泛應(yīng)用。主要原因是它的計(jì)算和理論分析都比較簡(jiǎn)單:計(jì)算簡(jiǎn)單是因?yàn)榉宥戎恍枰?jì)算樣本數(shù)據(jù)的四階矩;而理論分析簡(jiǎn)單是因?yàn)橐韵碌木€(xiàn)性特性:

                                                       kurt(x_{1} + x_{2}) = kurt(x_{1}) + kurt(x_{2})                    (18)

                                                       kurt(\alpha x_{1}) = \alpha^{4}kurt(x_{1})                                          (19)

其中x_{1}x_{2}是獨(dú)立的隨機(jī)變量,\alpha是常數(shù)。以上性質(zhì)由定義很容易證明。為了在一個(gè)簡(jiǎn)單的例子中說(shuō)明峰度的優(yōu)化格局是什么樣的,以及如何通過(guò)峰度最小化或最大化找到獨(dú)立的組件,讓我們看一下二維模型\mathbf{x} = \mathbf{A}\mathbf{s}。假設(shè)獨(dú)立成分s_{1},s_{2}的峰值分別為kurt(s_{1}),kurt(s_{2})且都不等于0,我們之前假設(shè)過(guò)隨機(jī)變量的方差都為1,我們要求一個(gè)獨(dú)立成分y = \mathbf{w}^{T}\mathbf{x}。我們?cè)僖淮螒?yīng)用轉(zhuǎn)換\mathbf{z} = \mathbf{A}^{T}\mathbf{w},接著有y = \mathbf{w}^{T}\mathbf{x} = \mathbf{w}^{T}\mathbf{A}\mathbf{s} = \mathbf{z}^{T}\mathbf{s} = z_{1}s_{1} + z_{2}s_{2},現(xiàn)在根據(jù)峰度的線(xiàn)性特性我們可以得到:kurt(y) = kurt(z_{1}s_{1}) + kurt(z_{2}s_{2}) = z_{1}^{4}kurt(s_{1}) + z_{2}^{4}kurt(s_{2}),因?yàn)殡S機(jī)變量是s_{1},s_{2},而z_{1},z_{2}可看做是常數(shù)。另一方面,我們使y的方差為1。這意味著對(duì)\mathbf{z}有個(gè)約束:E\left\{y^{2}\right\} = z_{1}^{2} +z_{2}^{2} = 1。在對(duì)上式進(jìn)行推導(dǎo)之前首先要明確幾個(gè)問(wèn)題,s_{1},s_{2}是均值為0方差為1的獨(dú)立變量,z_{1},z_{2}是常數(shù),其推導(dǎo)如下:

                                                          \begin{align*} E\left\{y^{2}\right\} &= E\left\{(z_{1}s_{1} + z_{2}s_{2})^{2}\right\}\\ &= E\left\{z_{1}^{2}s_{1}^{2}+z_{2}^{2}s_{2}^{2}+2z_{1}z_{2}s_{1}s_{2}\right\}\\ &= z_{1}^{2}E\left\{s_{1}^{2}\right\} +z_{2}^{2}E\left\{s_{2}^{2}\right\} + 2z_{1}z_{2}E\left\{s_{1}s_{2}\right\}\\ &= z_{1}^{2} + z_{2}^{2} +2z_{1}z_{2}E\left\{s_{1}\right\}E\left\{s_{2}\right\}\\ & = z_{1}^{2} +z_{2}^{2} = 1 \end{align*}

這在幾何上意味著\mathbf{z}被約束在二維平面的單位圓上,現(xiàn)在優(yōu)化問(wèn)題變成了:函數(shù)|kurt(y)| = |z_{1}^{4}kurt(s_{1}) +z_{1}^{4}kurt(s_{1})|在單位圓上的最大值是什么。為簡(jiǎn)單起見(jiàn),可以認(rèn)為峰度具有相同的符號(hào),在這種情況下,可以省略絕對(duì)值運(yùn)算符。 該函數(shù)的圖形是問(wèn)題的“優(yōu)化”。

當(dāng)向量\mathbf{z}的一個(gè)元素恰好為零而另一個(gè)非零時(shí),不難顯示最大值位于這些點(diǎn); 由于單位圓約束,非零元素必須等于1或-1。實(shí)際上,我們可以從權(quán)值向量\mathbf{w}開(kāi)始,基于混合向量\mathbf{x}的樣本\mathbf{x}(1),...,\mathbf{x}(T)計(jì)算方向,即峰度增長(zhǎng)最快的方向(如果峰度為正)或減少最快(如果峰度為負(fù))的方向,并使用梯度方法或其中一個(gè)擴(kuò)展來(lái)尋找新的矢量w。這個(gè)例子可以一般化到任意維度來(lái)表明峰度可以作為ICA問(wèn)題的優(yōu)化準(zhǔn)則。

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

4.2.2 負(fù)熵(Negentropy)

負(fù)熵是另一種非常重要的非高斯性量度。 負(fù)熵是信息論中熵量的一種概念。熵是信息論中的基本概念,隨機(jī)變量的熵可以被解釋為觀察變量包含的信息量。變量越隨機(jī),越不可預(yù)測(cè),那么它的熵越大,更嚴(yán)格的說(shuō),熵和隨機(jī)變量的編碼長(zhǎng)度相關(guān),實(shí)際上在某些簡(jiǎn)單的假設(shè)下,熵就是隨機(jī)變量的編碼長(zhǎng)度。隨機(jī)變量Y的熵H的定義如下:

                                                         H(Y) = -\sum_{i}P(Y = a_{i})logP(Y = a_{i})                     (20)

其中a_{i}Y可能取到的值。此定義可以推廣到連續(xù)值的隨機(jī)變量和隨機(jī)向量,這種情況下其被稱(chēng)為“差分熵”。密度函數(shù)為f(\mathbf{y})的隨機(jī)向量\mathbf{y}的差分熵H定義如下:

                                                        H(\mathbf{y}) = -\int f(\mathbf{y})log(f(\mathbf{y}))d\mathbf{y}                                     (21)

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

                                                         J(\mathbf{y}) = H(\mathbf{y}_{gauss}) - H(\mathbf{y})                                              (22)

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

4.2.3 負(fù)熵的近似(Approximations of negentropy)

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

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

                                                             J(y) \approx \frac{1}{12}E\left\{y^{3}\right\}^{2} + \frac{1}{48}kurt(y)^{2}                                (23)

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

                                                            J(y) \approx \sum_{i= 1}^{p}k_{i}[E\left\{G_{i}(y)\right\} - E\left\{G_{i}(v)\right\} ]^{2}                       (24)

其中k_{i}是正常數(shù),v是均值為0,方差為1的高斯變量,y也是均值為0,方差為1的變量,G_{i}是非二次函數(shù)。即使在近似不是非常準(zhǔn)確的情況下,式(24)仍然可以構(gòu)建非高斯性的度量。當(dāng)我們只用一個(gè)非二次函數(shù)時(shí),近似如下:

                                                             J(y) \propto [E\left\{G(y)\right\} - E\left\{G(v)\right\}]^{2}                                   (25)

如果y是對(duì)稱(chēng)的,這顯然是基于矩的近似推廣(如式(23))。取G(y) = y^{4}就會(huì)得到式(23),也就是基于峰度的近似。在這里,我們通過(guò)G(y)的選擇,會(huì)獲得一個(gè)比式(23)的更好負(fù)熵的近似。選擇增長(zhǎng)不是太快的G,會(huì)得到一個(gè)比較穩(wěn)定的估計(jì)量。下面的G選擇被證明比較有效:

                                             G_{1}(u) = \frac{1}{a_{1}}log(cosh a_{1}u)                      G_{2}(u) = -exp(\frac{-u^{2}}{2})                (26)

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

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

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

4.3.1 互信息(Mutual information)

根據(jù)差分熵的概念,我們定義m個(gè)隨機(jī)變量y_{i}(i = 1,2,...,m)之間的互信息,如下:

                                                             I(y_{1},y_{2},...,y_{m}) = \sum_{i = 1}^{m}H(y_{i}) - H(\mathbf y)                            (27)

互信息是衡量隨機(jī)變量之間獨(dú)立性的方法,事實(shí)上,它等于聯(lián)合密度f(\mathbf{y})和其邊緣密度乘積之間的散度,它總是非負(fù)的,只有當(dāng)變量之間統(tǒng)計(jì)獨(dú)立時(shí)為0。因此互信息考慮變量的整體依賴(lài)結(jié)構(gòu),而不是像PCA等方法一樣僅僅考慮協(xié)方差。互信息可以用熵作為碼長(zhǎng)來(lái)解釋?zhuān)?img alt="H(y_{i})" src="http://image109.360doc.com/DownloadImg/2020/03/1122/185153889_135_20200311103907409">給出了當(dāng)y_{i}分別編碼時(shí)的碼長(zhǎng),H(\mathbf y)給出了當(dāng)\mathbf y被編碼為隨機(jī)向量時(shí)的碼長(zhǎng)。因此,互信息顯示了通過(guò)編碼整個(gè)向量而不是單獨(dú)的分量來(lái)減少代碼長(zhǎng)度的效果。一般來(lái)說(shuō),對(duì)整個(gè)向量進(jìn)行編碼可以得到更好的編碼。但是,如果y_{i}是獨(dú)立的,那么它們彼此之間就沒(méi)有任何信息,即互信息為0。

互信息一個(gè)重要的特性是:我們有一個(gè)可逆的線(xiàn)性變換\mathbf{y} = \mathbf{Wx}:

                                                        I(y_{1},y_{2},...,y_{n}) = \sum_{i}H(y_{i}) - H(\mathbf{x}) - log|det\mathbf{W}|                 (28)

我們?cè)囅胍幌氯绻?img alt="y_{i}" src="http://image109.360doc.com/DownloadImg/2020/03/1122/185153889_136_20200311103907691">是不相關(guān)的,而且它們的方差為1會(huì)發(fā)生什么,這意味著E\left\{\mathbf{y}\mathbf{y}^{T}\right\} = \mathbf{W}E\left\{\mathbf{x}\mathbf{x}^{T} \right\}\mathbf{W}^{T} = \mathbf{I},這意味著:

                                                      \begin{align*} det\mathbf{I} &= 1 = det(\mathbf{W}E\left\{\mathbf{x}\mathbf{x}^{T}\right\}\mathbf{W}^{T})\\ & = (det\mathbf{W})(detE\left\{\mathbf{x}\mathbf{x}^{T}\right\})(det\mathbf{W}^{T}) \end{align*}                                      (29)

這意味著\mathbf{W}的行列式必須是常量,而且,對(duì)于單位方差的y_{i},熵和負(fù)熵只差一個(gè)常數(shù)和符號(hào),因此我們可以得到:

                                                      I(y_{1},y_{2},...,y_{n}) = C - \sum_{i}J(y_{i})                                                  (30)

其中C是不依賴(lài)\mathbf{W}的常數(shù)。上面的式子表示了負(fù)熵和互信息之間的關(guān)系。

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

因?yàn)榛バ畔⑹切畔⒄撝须S機(jī)變量獨(dú)立性的度量方式,我們可以用它作為尋找ICA變換的準(zhǔn)則。此方法是模型估計(jì)的替代方法,我們將隨機(jī)向量\mathbf{x}的ICA定義為可逆變換,就想式(6)中那樣,確定了矩陣\mathbf{W},使變換后的元素s_{i}的互信息最小化。很明顯,在式(30)中找到最小化互信息的逆變換\mathbf{W},就相當(dāng)于負(fù)熵最大的方向。更精確的說(shuō),它相當(dāng)于找到了一維子空間,使得在這些子空間上的投影具有最大熵。式(30)表明,當(dāng)估計(jì)被約束為不相關(guān)時(shí),通過(guò)最大互信息估計(jì)相當(dāng)于最大化非高斯估計(jì)的和。非相關(guān)性的約束其實(shí)是不必要的,是為了簡(jiǎn)化計(jì)算考慮。因此,我們看到ICA作為互信息最小化的公式給出了另一個(gè)嚴(yán)格的理由,即我們更具啟發(fā)性地引入了尋找最大非高斯方向的想法。

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

4.4.1 似然(The likelihood)

一種非常流行的估計(jì)ICA模型的方法是最大似然估計(jì),它和信息最大化原則相似。接下來(lái)將討論這種方法,并表明它的本質(zhì)是和最小化互信息是一樣的。在無(wú)噪聲的ICA模型中可以直接表示似然,然后通過(guò)最大似然估計(jì)來(lái)估計(jì)模型。\mathbf{W} = (\mathbf{w}_{1},...,\mathbf{w}_{n})^{T}表示矩陣\mathbf{A}的逆,log似然函數(shù)如下:

                                                 

其中f_{i}s_{i}的密度函數(shù),\mathbf{x}(t),t = 1,2,...,T\mathbf{x}的實(shí)現(xiàn)。對(duì)于任何密度為p_{i}的隨機(jī)變量\mathbf{x}和任意的矩陣\mathbf{W},\mathbf{y} = \mathbf{Wx}的密度由p_{x}(\mathbf{W}^{-1}\mathbf{y})|det\mathbf{W}^{-1}|給出。      

4.4.2 infomax原則(The infomax principle)

另一個(gè)相關(guān)的對(duì)比函數(shù)是從神經(jīng)網(wǎng)絡(luò)的觀點(diǎn)中推導(dǎo)出來(lái)的。這是基于最大化具有非線(xiàn)性輸出的神經(jīng)網(wǎng)絡(luò)的輸出熵(或信息流)。假設(shè)\mathbf{x}是神經(jīng)網(wǎng)絡(luò)的輸入,它的輸出是\phi _{i}(\mathbf{w}_{i}^{T}\mathbf{x}),其中\phi_{i}是非線(xiàn)性的標(biāo)量函數(shù),\mathbf{w}_{i}是神經(jīng)元的權(quán)重矩陣。想最大化輸出的熵為:

                                                      L_{2} = H(\phi_{1}(\mathbf{w}_{1}^{T}\mathbf{x}),...,\phi_{n}(\mathbf{w}_{n}^{T}\mathbf{x}))                                      (32)

如果\phi_{i}選擇的合適,這個(gè)框架也可以估計(jì)ICA模型,實(shí)際上,一些研究者已經(jīng)證明了infomax原則相當(dāng)于最大似然估計(jì)。這種等價(jià)要求神經(jīng)網(wǎng)絡(luò)中的非線(xiàn)性\phi_{i}是密度函數(shù)f_{i}的積分,也就是說(shuō)\phi_{i}^{'}(\cdot ) = f_{i}(\cdot)。

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

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

                                            \frac{1}{T}E\left\{L\right\} = \sum_{i = 1}^{n}E\left\{logf_{i}(\mathbf{w}_{i}^{T}\mathbf{x})\right\} + log|det \mathbf{W}|                            (33)

如果f_{i}\mathbf{w}_{i}^{T}\mathbf{x}的分布,那么上式右邊的第一部分可以寫(xiě)為-\sum_{i}H(\mathbf{w}_{i}^{T}\mathbf{x})。因此似然將會(huì)和式(28)中的互信息的負(fù)相等(只是相差一個(gè)常數(shù))。在實(shí)際應(yīng)用這種聯(lián)系會(huì)更強(qiáng),因?yàn)樵趯?shí)際中我們不知道獨(dú)立成分的分布。比較合理的一種方法是把\mathbf{w}_{i}^{T}\mathbf{x}估計(jì)作為最大似然估計(jì)方法的一部分,并且把它作為s_{i}密度函數(shù)的一部分。在這種情況下,似然和互信息是等價(jià)的。

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

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

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

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

                                                    

在第一個(gè)主成分(垂直方向)上的投影沒(méi)有顯示出這種結(jié)構(gòu)。 在一般公式中,投影跟蹤可以看做是ICA的變體。特別是,投影追蹤使我們能夠解決獨(dú)立分量s_{i}比原始變量x_{i}少的情況。假設(shè)空間的那些未被獨(dú)立分量跨越的維度被高斯噪聲填充,我們看到計(jì)算非高斯投影追蹤方向,我們有效地估計(jì)了獨(dú)立分量。 當(dāng)找到所有非高斯方向時(shí),估計(jì)了所有獨(dú)立分量。 這樣的過(guò)程可以被解釋為投影跟蹤和ICA的混合。然而,應(yīng)該注意的是,在投影跟蹤的公式中,沒(méi)有關(guān)于獨(dú)立分量的數(shù)據(jù)模型或假設(shè)。 如果ICA模型成立,優(yōu)化ICA非高斯度量度量會(huì)產(chǎn)生獨(dú)立的分量; 如果模型不成立,那么我們得到的是投影跟蹤方向。

5 ICA的預(yù)處理(Preprocessing of ICA)

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

5.1 中心化(Centering)

最基礎(chǔ)也是最有必要的預(yù)處理是對(duì)\mathbf{x}中心化,也就是說(shuō)用原始數(shù)據(jù)減去它們的均值\mathbf{m} = E\left\{\mathbf{x}\right\}使得\mathbf{x}的均值為0。因?yàn)?img alt="\mathbf{s}" src="http://image109.360doc.com/DownloadImg/2020/03/1122/185153889_28_202003111038223">的均值也是零,所以可以對(duì)式(4)兩邊同時(shí)取期望。這只是為了簡(jiǎn)化ICA算法,并不是說(shuō)不能估計(jì)平均值。用中心化后的數(shù)據(jù)估計(jì)完混合矩陣\amthbf{A}之后,我們把\mathbf{s}的均值向量加回到\mathbf{s}中心估計(jì)值以完成完全估計(jì)。均值向量由\mathbf{A}^{-1}\mathbf{m}給出,其中\mathbf{m}是預(yù)處理過(guò)程中減去的均值。

5.2 白化(whitening)

ICA另一個(gè)有用的預(yù)處理策略是對(duì)觀測(cè)數(shù)據(jù)白化。這意味著在應(yīng)用ICA算法之前(中心化之后),我們對(duì)觀測(cè)數(shù)據(jù)\mathbf{x}進(jìn)行線(xiàn)性變換,因此我們可以獲得白化的新的向量\widetilde{\mathbf{x}},也就是說(shuō),它的元素是不相關(guān)的且方差是一致的。換句話(huà)說(shuō),\widetilde{\mathbf{x}}的協(xié)方差矩陣是單位矩陣:

                                                                           E\left\{\widetilde{\mathbf{x}}\widetilde{\mathbf{x}}^{T}\right\} = \mathbf{I}                               (34)

一種比較流行的白化的方法是協(xié)方差矩陣E\left\{\widetilde{\mathbf{x}}\widetilde{\mathbf{x}}^{T}\right\} = \mathbf{ED}\mathbf{E}^{T}的特征分解,其中\mathbf{E}E\left\{\widetilde{\mathbf{x}}\widetilde{\mathbf{x}}^{T}\right\}的特征向量組成的正交矩陣,\mathbf{D}是由特征值組成的對(duì)角矩陣,\mathbf{D} = diag(d_{1},...,d_{n})。E\left\{\widetilde{\mathbf{x}}\widetilde{\mathbf{x}}^{T}\right\}可以根據(jù)已知的值\mathbf{x}(1),...,\mathbf{x}(T)算出來(lái),白化可以通過(guò)下式完成:

                                                                          \widetilde{\mathbf{x}} = \mathbf{E}\mathbf{D}^{-\frac{1}{2}}\mathbf{E}^{T}\mathbf{x}                              (35)

其中\mathbf{D}^{-\frac{1}{2}} = diag(d_{1}^{-\frac{1}{2}},...,d_{n}^{-\frac{1}{2}}),現(xiàn)在很容易發(fā)現(xiàn)E\left\{\widetilde{\mathbf{x}}\widetilde{\mathbf{x}}^{T}\right\} = \mathbf{I}。

通過(guò)白化將混合矩陣轉(zhuǎn)換為\widetilde{\mathbf{A}},由式(4)和式(35)可得到:

                                                                    \widetilde{\mathbf{x}} = \mathbf{E}\mathbf{D}^{-\frac{1}{2}}\mathbf{E}^{T}\mathbf{As} = \widetilde{\mathbf{A}}\mathbf{s}                        (36)

白化的作用在于可以使新的混合矩陣\widetilde{\mathbf{A}}變成正交的,這可以從下式中看到:

                                                           E\left\{\widetilde{\mathbf{x}}\widetilde{\mathbf{x}}^{T}\right\} = \widetilde{\mathbf{A}}E\left\{\mathbf{s}\mathbf{s}^{T}\right\}\widetilde{\mathbf{A}}^{T} = \widetilde{\mathbf{A}}\widetilde{\mathbf{A}}^{T} = \mathbf{I}       (37)

我們可以看到,通過(guò)白化減少了要估計(jì)的參數(shù)的數(shù)量,現(xiàn)在我們不需要估計(jì)原始矩陣\mathbf{A}中的n^{2}個(gè)參數(shù)(即矩陣\mathbf{A}中的元素),而只需要估計(jì)新的正交混合矩陣\widetilde{\mathbf{A}}。一個(gè)正交矩陣包含\frac{n(n-1)}{2}的自由度,例如,在二維空間中正交變換可由單個(gè)的角參數(shù)確定,在更高的維度中,正交矩陣只包含任意矩陣參數(shù)數(shù)目的一半左右。因此我們可以這樣說(shuō),白化解決了ICA一半的問(wèn)題。因?yàn)榘谆欠浅:?jiǎn)單且標(biāo)準(zhǔn)的流程(比任何的ICA算法都簡(jiǎn)單),用這種方法減少問(wèn)題的復(fù)雜性是個(gè)不錯(cuò)的主意。在我們白化的同時(shí),減少數(shù)據(jù)的維度也是件非常有用的,我們可以舍棄E\left\{\widetilde{\mathbf{x}}\widetilde{\mathbf{x}}^{T}\right\}的較小的特征值,正如PCA所做的那樣,這有去噪的效果,而且維度的減少會(huì)防止過(guò)擬合(個(gè)人建議,不要通過(guò)降維的方式防止過(guò)擬合,盡量通過(guò)正則化來(lái)防止過(guò)擬合)。

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

                                                                

定義分布的正方形現(xiàn)在顯然是圖4中原始正方形的旋轉(zhuǎn),剩下的就是估計(jì)給出旋轉(zhuǎn)的單個(gè)角度。 在接下來(lái)的分析中,我們都假設(shè)數(shù)據(jù)經(jīng)過(guò)了預(yù)處理:中心化和白化。為了簡(jiǎn)單起見(jiàn),預(yù)處理的數(shù)據(jù)就用\mathbf{x}表示,變換的混合矩陣用\mathbf{A}表示。

5.3 進(jìn)一步的預(yù)處理(Further preprocessing)

給定數(shù)據(jù)集的ICA成功與否可能會(huì)跟特定應(yīng)用的預(yù)處理步驟有關(guān)。比如數(shù)據(jù)中包含時(shí)間信號(hào),那么帶通濾波也將會(huì)是很有用的。如果我們對(duì)觀測(cè)信號(hào)x_{i}(t)進(jìn)行線(xiàn)性濾波得到新的信號(hào)x_{i}^{*}(t),具有相同混合矩陣的ICA模型仍然適用于x_{i}^{*}(t)。觀測(cè)\mathbf{x}(1),...,\mathbf{x}(T)是矩陣\mathbf{X}的列,對(duì)于\mathbf{S}也是如此,那么ICA模型可被表示為:

                                                                                 \mathbf{X} = \mathbf{AS}                                       (38)

現(xiàn)在,\mathbf{X}的時(shí)間濾波相當(dāng)于\mathbf{X}從右邊乘以一個(gè)矩陣\mathbf{M},如下:

                                                                \mathbf{X}^{*} = \mathbf{XM} = \mathbf{ASM} = \mathbf{A}\mathbf{S}^{*}                         (39)

這表明ICA模型依然有效。

6 FastICA算法(The FastICA algorithm)

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

6.1 單元FastICA(FastICA for one unit)

首先來(lái)看單元FastICA,通過(guò)“單元”,我們指的是計(jì)算單元,最終是人工神經(jīng)元,具有神經(jīng)元能夠通過(guò)學(xué)習(xí)規(guī)則更新的權(quán)值向量\mathbf{w}。FastICA學(xué)習(xí)規(guī)則尋找方向,也就是使投影\mathbf{w}^{T}\mathbf{x}最大化非高斯性的單位向量\mathbf{w},非高斯性通過(guò)負(fù)熵J(\mathbf{w}^{T}\mathbf{x})的近似度量?;叵胍幌?img alt="\mathbf{w}^{T}\mathbf{x}" src="http://image109.360doc.com/DownloadImg/2020/03/1122/185153889_86_20200311103838113">的方差必須是統(tǒng)一的,對(duì)于白化的數(shù)據(jù),這相當(dāng)于將\mathbf{w}的范數(shù)統(tǒng)一。FastICA是基于定點(diǎn)迭代的方案的尋找\mathbf{w}^{T}\mathbf{x}非高斯性的最大值,像式(25)那樣。這也可以用近似牛頓迭代法推導(dǎo)出來(lái),用g表示式(25)中非二次函數(shù)G的導(dǎo)數(shù),例如,式(26)中函數(shù)的導(dǎo)數(shù)為:

                                          g_{1}(u) = tanh(a_{1}u)                      g_{2}(u) = u\ exp^{-\frac{u^{2}}{2}}                       (40)

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

               1. 選擇初始的權(quán)值向量\mathbf{w}(隨機(jī)選擇)

               2. 令\mathbf{w}^{+} = E\left\{\mathbf{x}g(\mathbf{w}^{T}\mathbf{x})\right\} - E\left\{g'(\mathbf{w}^{T}\mathbf{x})\right\}\mathbf{w}

               3. 令\mathbf{w} = \mathbf{w}^{+} / \ ||\mathbf{w}^{+}||

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

收斂是指\mathbf{w}的新舊值指向同一個(gè)方向,也就是,它們的點(diǎn)積等于1,向量不一定收斂到同一個(gè)點(diǎn),因?yàn)?img alt="\mathbf{w}" src="http://image109.360doc.com/DownloadImg/2020/03/1122/185153889_80_2020031110383666">和-\mathbf{w}定義的方向是相同的,這也是因?yàn)楠?dú)立分量只能定義為乘法符號(hào)。     

FastICA推導(dǎo)如下,首先\mathbf{w}^{T}\mathbf{x}的負(fù)熵的近似的最大值是從E\left\{G(\mathbf{w}^{T}\mathbf{x})\right\}獲得的,在約束E\left\{(\mathbf{w}^{T}\mathbf{x})^{2}\right\} = ||\mathbf{w}||^{2} = 1下的E\left\{G(\mathbf{w}^{T}\mathbf{x})\right\}的最優(yōu)值是從下式中獲得的:

                                                                                       

用牛頓法來(lái)解上面的等式,令等式左邊為F,然后可以獲得雅可比矩陣JF(\mathbf{w}): 

                                                                      

為了簡(jiǎn)化矩陣,我們對(duì)上式中的第一部分取近似,由于數(shù)據(jù)是球形的,一個(gè)合理的近似是 因此雅可比矩陣變成了對(duì)角矩陣,并且很容易求其逆,從而得到下面的近似牛頓迭代:

                                        

通過(guò)對(duì)上式兩邊同時(shí)乘以可以進(jìn)一步簡(jiǎn)化。實(shí)際上,F(xiàn)astICA的期望必須由他們的估計(jì)來(lái)代替。 自然估計(jì)當(dāng)然是相應(yīng)的樣本均值。 理想情況下,應(yīng)該使用所有可用數(shù)據(jù),但這通常不是一個(gè)好主意,因?yàn)橛?jì)算可能變得過(guò)于苛刻。 然后可以使用較小的樣本估計(jì)平均值,其大小可能對(duì)最終估計(jì)的準(zhǔn)確性具有相當(dāng)大的影響。 應(yīng)在每次迭代時(shí)單獨(dú)選擇樣本點(diǎn)。 如果收斂不令人滿(mǎn)意,則可以增加樣本量。

6.2 多元FastICA(FastICA for several unit)

前面講的單單元算法只是估計(jì)一個(gè)獨(dú)立成分或者一個(gè)投影追蹤的方向,為了估計(jì)幾個(gè)獨(dú)立成分,我們需要使用具有權(quán)重向量\mathbf{w}的若干單元(例如,神經(jīng)元)來(lái)運(yùn)行單單元FastICA算法。為了防止不同的向量收斂到相同的最大值,需要在每次迭代后對(duì)輸出\mathbf{w}^{T}_{1}\mathbf{x},...,\mathbf{w}^{T}_{n}\mathbf{x}去相關(guān),有3種方法可以做到這一點(diǎn),對(duì)于白化的\mathbf{x}這種去相關(guān)相當(dāng)于正交化。

實(shí)現(xiàn)去相關(guān)的簡(jiǎn)單方法是基于類(lèi)似Gram-Schmidt的去相關(guān)的放縮方案。這意味著需要一個(gè)個(gè)的估計(jì)獨(dú)立成分,當(dāng)我們已經(jīng)估計(jì)了p個(gè)獨(dú)立成分或者p個(gè)向量\mathbf{w}_{1},...,\mathbf{w}_{p},對(duì)\mathbf{w}_{p+1}運(yùn)行單單元定點(diǎn)算法,在每一次迭代之后,從\mathbf{w}_{p+1}中減去投影\mathbf{w}^{T}_{p+1}\mathbf{w}_{j}\mathbf{w}_{j},其中j = 1,...,p,最后重新標(biāo)準(zhǔn)化\mathbf{w}_{p+1}

                                            

然而,在某些應(yīng)用程序中,可能需要使用對(duì)稱(chēng)的去相關(guān),其中沒(méi)有向量比其他向量具有“特權(quán)”,這可以通過(guò)矩陣平方根法做到,令:

                                                                \mathbf{W} = (\mathbf{W}\mathbf{W}^{T})^{-\frac{1}{2}}\mathbf{W}                                                 (45)

其中\mathbf{W}是向量(\mathbf{w}_{1},...,\mathbf{w}_{n})^{T}組成的矩陣,平方根的倒數(shù)(\mathbf{W}\mathbf{W}^{T})^{-\frac{1}{2}}可以從\mathbf{W}\mathbf{W}^{T} = \mathbf{F}\Lambda\mathbf{F}^{T}特征值分解得到,(\mathbf{W}\mathbf{W}^{T})^{-\frac{1}{2}} = \mathbf{F}\Lambda^{\frac{1}{2}}\mathbf{F}^{T},一個(gè)更簡(jiǎn)單的迭代方法如下:

                               1. 令

                                重復(fù)步驟2直到收斂       

                               2. 令 

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

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

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

                                            

其中\mathbf{y} = \mathbf{Wx},\beta_{i} = -E\left\{y_{i}g(y_{i})\right\},\alpha_{i} = -\frac{1}{\beta_{i} + E\left\{g'(y_{i})\right\}},矩陣\mathbf{W}在每一步后都需要正交化。上述版本的FastICA可以與隨機(jī)梯度法的最大似然比較:

                                            

其中\mu是學(xué)習(xí)速率。g是獨(dú)立成分的額概率密度函數(shù)的函數(shù):g = \frac{f_{i}'}{f_{i}},其中f_{i}是獨(dú)立成分的概率密度函數(shù)。比較式(47)和(48)可以看出,F(xiàn)astICA可以作為ICA數(shù)據(jù)模型最大似然估計(jì)的定點(diǎn)算法。在FastICA中,通過(guò)選擇矩陣diag(\alpha_{i})diag(\beta_{i})來(lái)優(yōu)化收斂速度。 FastICA的另一個(gè)優(yōu)點(diǎn)是它可以估計(jì)子和超高斯獨(dú)立分量,這與普通ML算法形成對(duì)比,普通ML算法僅適用于給定的分布類(lèi)別。

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

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

1. 在ICA數(shù)據(jù)模型的假設(shè)下,收斂是立方的(或至少是二次的)。 這與基于(隨機(jī))梯度下降方法的普通ICA算法形成對(duì)比,其中收斂?jī)H是線(xiàn)性的。 這意味著非??焖俚氖諗浚缤ㄟ^(guò)對(duì)真實(shí)數(shù)據(jù)的模擬和實(shí)驗(yàn)所證實(shí)的那樣

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

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

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

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

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

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

參考文獻(xiàn)

1. Independent component analysis: algorithms and applications

2. 一個(gè)簡(jiǎn)單的FastICA示例    http://www./wordpress/2009/11/22/a-simple-fastica-example/

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多