乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      詳解獨立成分分析

       李xinle 2020-03-11

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

      目錄

      1. 動機(Motivation)

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

      2.1 ICA的定義(Definition of ICA)

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

      2.3 圖解ICA(Illustration of ICA)

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

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

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

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

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

      4.1 非高斯獨立(“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 通過互信息定義ICA(Defining ICA by mutual information)

      4.4 最大似然估計(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 進一步的預(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. 動機(Motivation)

      想象兩個人在意見房間內(nèi)同時說話,有兩個位于房間不同位置的麥克風(fēng)記錄時間信號,記錄的時間信號分別用x_{1}(t)x_{2}(t)。被麥克風(fēng)記錄的信號是兩個說話者語音信號的加權(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)和說話者距離的參數(shù)。如果能用記錄的信號x_{1}(t)、x_{2}(t)估算出兩個原始的語音信號s_{1}(t)s_{2}(t),這將會是一件非常有用的事。上面說的這個例子被稱為“雞尾酒宴會”問題。

                                 

                                   

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

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

                                 

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

      2.1 ICA的定義(Definition of ICA)

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

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

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

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

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

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

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

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

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

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

      ICA是和“盲源分離”(BSS)非常相近的一種方法?!霸础笔侵冈夹盘?,也就是獨立成分,比如雞尾酒宴會中的說話者的語音信號;“盲”是因為我們可知的信息非常少,不知道混合矩陣\mathbf{A},而且只能對源信號做極有限的假設(shè)。在實際的應(yīng)用中,我們觀測到的信號中還會包含一些噪聲,為了簡化,此處忽略噪聲項,即便如此,它對許多應(yīng)用仍然有效。

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

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

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

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

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

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

      2.3 圖解ICA(Illustration of ICA)

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

                                                       

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

                                                              

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

                                             

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

                                                                

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

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

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

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

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

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

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

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

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

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

      式(10)對n個隨機變量同樣適用,此時聯(lián)合概率密度函數(shù)等于n個部分的邊緣概率密度函數(shù)的乘積。該定義可用于推導(dǎo)獨立隨機變量的一個最重要的性質(zhì)。給定h1和h2兩個函數(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)

      其證明過程如下:

                                                  

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

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

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

      獨立一定不相關(guān),但是不相關(guān)不一定獨立。例如,假設(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)得出,隨機變量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)可以得出隨機變量y_{1},y_{2}不獨立。所以,不相關(guān)不一定獨立。

       

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

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

                                                   

      其分布如圖6所示:

                                                        

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

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

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

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

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

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

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

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

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

      4.2.1 峰度(Kurtosis)

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

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

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

                                                

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

                                                           

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

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

                                                             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}是獨立的隨機變量,\alpha是常數(shù)。以上性質(zhì)由定義很容易證明。為了在一個簡單的例子中說明峰度的優(yōu)化格局是什么樣的,以及如何通過峰度最小化或最大化找到獨立的組件,讓我們看一下二維模型\mathbf{x} = \mathbf{A}\mathbf{s}。假設(shè)獨立成分s_{1},s_{2}的峰值分別為kurt(s_{1}),kurt(s_{2})且都不等于0,我們之前假設(shè)過隨機變量的方差都為1,我們要求一個獨立成分y = \mathbf{w}^{T}\mathbf{x}。我們再一次應(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ù)峰度的線性特性我們可以得到:kurt(y) = kurt(z_{1}s_{1}) + kurt(z_{2}s_{2}) = z_{1}^{4}kurt(s_{1}) + z_{2}^{4}kurt(s_{2}),因為隨機變量是s_{1},s_{2},而z_{1},z_{2}可看做是常數(shù)。另一方面,我們使y的方差為1。這意味著對\mathbf{z}有個約束:E\left\{y^{2}\right\} = z_{1}^{2} +z_{2}^{2} = 1。在對上式進行推導(dǎo)之前首先要明確幾個問題,s_{1},s_{2}是均值為0方差為1的獨立變量,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)化問題變成了:函數(shù)|kurt(y)| = |z_{1}^{4}kurt(s_{1}) +z_{1}^{4}kurt(s_{1})|在單位圓上的最大值是什么。為簡單起見,可以認(rèn)為峰度具有相同的符號,在這種情況下,可以省略絕對值運算符。 該函數(shù)的圖形是問題的“優(yōu)化”。

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

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

      4.2.2 負(fù)熵(Negentropy)

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

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

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

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

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

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

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

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

      像上面提到的,負(fù)熵的計算非常困難,因此對比函數(shù)仍然是理論函數(shù)。所以在實際應(yīng)用中經(jīng)常會使用一些負(fù)熵的近似,接下來介紹具有不錯性質(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的隨機變量。然而這種近似的有效性可能是有限的,這些近似受到了峰度的非魯棒性的影響。為了避免這種問題,一種新的負(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)我們只用一個非二次函數(shù)時,近似如下:

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

      如果y是對稱的,這顯然是基于矩的近似推廣(如式(23))。取G(y) = y^{4}就會得到式(23),也就是基于峰度的近似。在這里,我們通過G(y)的選擇,會獲得一個比式(23)的更好負(fù)熵的近似。選擇增長不是太快的G,會得到一個比較穩(wěn)定的估計量。下面的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ù)熵給出的兩個經(jīng)典非高斯性度量的性質(zhì)之間給出了非常好的折衷。它們的概念簡單,計算速度快,而且還有些比較不錯的統(tǒng)計特性,尤其是魯棒性。

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

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

      4.3.1 互信息(Mutual information)

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

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

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

      互信息一個重要的特性是:我們有一個可逆的線性變換\mathbf{y} = \mathbf{Wx}:

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

      我們試想一下如果y_{i}是不相關(guān)的,而且它們的方差為1會發(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}的行列式必須是常量,而且,對于單位方差的y_{i},熵和負(fù)熵只差一個常數(shù)和符號,因此我們可以得到:

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

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

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

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

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

      4.4.1 似然(The likelihood)

      一種非常流行的估計ICA模型的方法是最大似然估計,它和信息最大化原則相似。接下來將討論這種方法,并表明它的本質(zhì)是和最小化互信息是一樣的。在無噪聲的ICA模型中可以直接表示似然,然后通過最大似然估計來估計模型。\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}的實現(xiàn)。對于任何密度為p_{i}的隨機變量\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)

      另一個相關(guān)的對比函數(shù)是從神經(jīng)網(wǎng)絡(luò)的觀點中推導(dǎo)出來的。這是基于最大化具有非線性輸出的神經(jīng)網(wǎng)絡(luò)的輸出熵(或信息流)。假設(shè)\mathbf{x}是神經(jīng)網(wǎng)絡(luò)的輸入,它的輸出是\phi _{i}(\mathbf{w}_{i}^{T}\mathbf{x}),其中\phi_{i}是非線性的標(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}選擇的合適,這個框架也可以估計ICA模型,實際上,一些研究者已經(jīng)證明了infomax原則相當(dāng)于最大似然估計。這種等價要求神經(jīng)網(wǎng)絡(luò)中的非線性\phi_{i}是密度函數(shù)f_{i}的積分,也就是說\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}的分布,那么上式右邊的第一部分可以寫為-\sum_{i}H(\mathbf{w}_{i}^{T}\mathbf{x})。因此似然將會和式(28)中的互信息的負(fù)相等(只是相差一個常數(shù))。在實際應(yīng)用這種聯(lián)系會更強,因為在實際中我們不知道獨立成分的分布。比較合理的一種方法是把\mathbf{w}_{i}^{T}\mathbf{x}估計作為最大似然估計方法的一部分,并且把它作為s_{i}密度函數(shù)的一部分。在這種情況下,似然和互信息是等價的。

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

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

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

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

                                                          

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

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

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

      5.1 中心化(Centering)

      最基礎(chǔ)也是最有必要的預(yù)處理是對\mathbf{x}中心化,也就是說用原始數(shù)據(jù)減去它們的均值\mathbf{m} = E\left\{\mathbf{x}\right\}使得\mathbf{x}的均值為0。因為\mathbf{s}的均值也是零,所以可以對式(4)兩邊同時取期望。這只是為了簡化ICA算法,并不是說不能估計平均值。用中心化后的數(shù)據(jù)估計完混合矩陣\amthbf{A}之后,我們把\mathbf{s}的均值向量加回到\mathbf{s}中心估計值以完成完全估計。均值向量由\mathbf{A}^{-1}\mathbf{m}給出,其中\mathbf{m}是預(yù)處理過程中減去的均值。

      5.2 白化(whitening)

      ICA另一個有用的預(yù)處理策略是對觀測數(shù)據(jù)白化。這意味著在應(yīng)用ICA算法之前(中心化之后),我們對觀測數(shù)據(jù)\mathbf{x}進行線性變換,因此我們可以獲得白化的新的向量\widetilde{\mathbf{x}},也就是說,它的元素是不相關(guān)的且方差是一致的。換句話說,\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}是由特征值組成的對角矩陣,\mathbf{D} = diag(d_{1},...,d_{n})。E\left\{\widetilde{\mathbf{x}}\widetilde{\mathbf{x}}^{T}\right\}可以根據(jù)已知的值\mathbf{x}(1),...,\mathbf{x}(T)算出來,白化可以通過下式完成:

                                                                                \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}。

      通過白化將混合矩陣轉(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)

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

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

                                                                      

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

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

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

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

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

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

      這表明ICA模型依然有效。

      6 FastICA算法(The FastICA algorithm)

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

      6.1 單元FastICA(FastICA for one unit)

      首先來看單元FastICA,通過“單元”,我們指的是計算單元,最終是人工神經(jīng)元,具有神經(jīng)元能夠通過學(xué)習(xí)規(guī)則更新的權(quán)值向量\mathbf{w}。FastICA學(xué)習(xí)規(guī)則尋找方向,也就是使投影\mathbf{w}^{T}\mathbf{x}最大化非高斯性的單位向量\mathbf{w},非高斯性通過負(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)一的,對于白化的數(shù)據(jù),這相當(dāng)于將\mathbf{w}的范數(shù)統(tǒng)一。FastICA是基于定點迭代的方案的尋找\mathbf{w}^{T}\mathbf{x}非高斯性的最大值,像式(25)那樣。這也可以用近似牛頓迭代法推導(dǎo)出來,用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}(隨機選擇)

                     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}的新舊值指向同一個方向,也就是,它們的點積等于1,向量不一定收斂到同一個點,因為\mathbf{w}-\mathbf{w}定義的方向是相同的,這也是因為獨立分量只能定義為乘法符號。     

      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)值是從下式中獲得的:

                                                                                             

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

                                                                            

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

                                              

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

      6.2 多元FastICA(FastICA for several unit)

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

      實現(xiàn)去相關(guān)的簡單方法是基于類似Gram-Schmidt的去相關(guān)的放縮方案。這意味著需要一個個的估計獨立成分,當(dāng)我們已經(jīng)估計了p個獨立成分或者p個向量\mathbf{w}_{1},...,\mathbf{w}_{p},對\mathbf{w}_{p+1}運行單單元定點算法,在每一次迭代之后,從\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)用程序中,可能需要使用對稱的去相關(guān),其中沒有向量比其他向量具有“特權(quán)”,這可以通過矩陣平方根法做到,令:

                                                                      \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},一個更簡單的迭代方法如下:

                                     1. 令

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

                                     2. 令 

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

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

      最后,給出FastICA和最大似然估計的聯(lián)系。如果我們使用式(43)中的中間公式表達(dá)FastICA,并以矩陣形式寫,我們看到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可以與隨機梯度法的最大似然比較:

                                                  

      其中\mu是學(xué)習(xí)速率。g是獨立成分的額概率密度函數(shù)的函數(shù):g = \frac{f_{i}'}{f_{i}},其中f_{i}是獨立成分的概率密度函數(shù)。比較式(47)和(48)可以看出,F(xiàn)astICA可以作為ICA數(shù)據(jù)模型最大似然估計的定點算法。在FastICA中,通過選擇矩陣diag(\alpha_{i})diag(\beta_{i})來優(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ù)模型的假設(shè)下,收斂是立方的(或至少是二次的)。 這與基于(隨機)梯度下降方法的普通ICA算法形成對比,其中收斂僅是線性的。 這意味著非常快速的收斂,正如通過對真實數(shù)據(jù)的模擬和實驗所證實的那樣

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

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

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

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

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

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

      參考文獻(xiàn)

      1. Independent component analysis: algorithms and applications

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

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多