|
最近在學(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)行了翻譯概括。 目錄 2. 獨(dú)立成分分析(independent component analysis) 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.3 負(fù)熵的近似(Approximations of negentropy) 4.3 互信息最小化(Minimization of mutual information) 4.3.2 通過(guò)互信息定義ICA(Defining ICA by mutual information) 4.4 最大似然估計(jì)(Maximum likelihood estimation) 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.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) 1. 動(dòng)機(jī)(Motivation)想象兩個(gè)人在意見(jiàn)房間內(nèi)同時(shí)說(shuō)話(huà),有兩個(gè)位于房間不同位置的麥克風(fēng)記錄時(shí)間信號(hào),記錄的時(shí)間信號(hào)分別用 其中 以圖1和圖2的波形為例,圖1表示的波形是原始語(yǔ)音信號(hào),圖2表示的波形是混合后即麥克風(fēng)記錄的信號(hào)。我們要做的就是通過(guò)圖2中的信號(hào)來(lái)恢復(fù)圖1中的信號(hào)。實(shí)際上,如果我們知道參數(shù) 其中一種方法是我們可以應(yīng)用信號(hào) 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) 假設(shè)每一個(gè) 用向量-矩陣法表示前面的和式是非常方便的,我們用x表示隨機(jī)向量,其元素為 有時(shí),我們需要矩陣的列向量,用 我們稱(chēng)(4)式表示的統(tǒng)計(jì)模型為獨(dú)立成分分析或ICA模型。ICA模型是生成模型,它描述了觀測(cè)數(shù)據(jù)是如何通過(guò)混合元素 ICA的出發(fā)點(diǎn)是非常簡(jiǎn)單的一個(gè)假設(shè):成分 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ú)立成分的方差(能量) 原因是, 2. 我們不能確定獨(dú)立成分的順序 原因同樣是 2.3 圖解ICA(Illustration of ICA)為了用統(tǒng)計(jì)學(xué)術(shù)語(yǔ)來(lái)闡明ICA模型,我們假設(shè)兩個(gè)獨(dú)立分量服從下面的均勻分布: 選擇均勻分布的取值范圍,使得均值為0,方差為1。 現(xiàn)在混合這兩個(gè)獨(dú)立成分,我們?nèi)∠旅娴幕旌暇仃嚕?/p> 這得出了兩個(gè)混合變量, 我們可以看到,隨機(jī)變量 現(xiàn)在估計(jì)ICA模型中數(shù)據(jù)的問(wèn)題變成了用包含在 然而,實(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ī)變量 對(duì)于 式(10)對(duì)n個(gè)隨機(jī)變量同樣適用,此時(shí)聯(lián)合概率密度函數(shù)等于n個(gè)部分的邊緣概率密度函數(shù)的乘積。該定義可用于推導(dǎo)獨(dú)立隨機(jī)變量的一個(gè)最重要的性質(zhì)。給定h1和h2兩個(gè)函數(shù),我們總是有: 其證明過(guò)程如下: 3.2 不相關(guān)變量是部分獨(dú)立的(Uncorrelated variables are only partly independent)弱化的獨(dú)立是不相關(guān)。如果兩個(gè)隨機(jī)變量 獨(dú)立一定不相關(guān),但是不相關(guān)不一定獨(dú)立。例如,假設(shè) 由式(11)可以得出隨機(jī)變量
3.3 為什么獨(dú)立成分不能是高斯變量(Why Gaussian variables are forbidden)在ICA中對(duì)獨(dú)立成分最基礎(chǔ)的限制是:獨(dú)立成分必須為非高斯變量。接下來(lái)我們看看為什么高斯變量對(duì)ICA不適用,我們假設(shè)混合矩陣 其分布如圖6所示: 此圖顯示了密度的完全對(duì)稱(chēng)性,因此它不包含混合矩陣 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ù)向量 為了了解這如何引出ICA估計(jì)的基本原理,讓我們換一下變量,定義 最大化 4.2 非高斯性的度量(Measures of non-Gaussianity)為了在ICA估計(jì)中使用費(fèi)高斯性,我們必須對(duì)隨機(jī)變量 4.2.1 峰度(Kurtosis)非高斯性的傳統(tǒng)度量方式是峰度和四階累積量。 實(shí)際上,我們假設(shè)過(guò) 其概率密度函數(shù)如圖7所示: 亞高斯隨機(jī)變量通常具有“平坦”概率密度函數(shù),其在零附近相當(dāng)恒定,并且對(duì)于較大的變量值而言非常小。 典型的例子是的均勻分布。非高斯性通常通常通過(guò)峰度的絕對(duì)值或平方來(lái)度量,高斯隨機(jī)變量的峰度為了,而非高斯 峰度或其絕對(duì)值在ICA或其它領(lǐng)域度量非高斯性時(shí)廣泛應(yīng)用。主要原因是它的計(jì)算和理論分析都比較簡(jiǎn)單:計(jì)算簡(jiǎn)單是因?yàn)榉宥戎恍枰?jì)算樣本數(shù)據(jù)的四階矩;而理論分析簡(jiǎn)單是因?yàn)橐韵碌木€(xiàn)性特性: 其中 這在幾何上意味著 當(dāng)向量 但是,峰度在實(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ī)變量 其中 在信息論中有個(gè)基本的結(jié)論:在所有方差相等的隨機(jī)變量中,高斯變量的熵最大。這意味著熵可以作為非高斯性的一種度量,實(shí)際上,這表明高斯分布是所有分布中最“隨機(jī)”的。隨機(jī)變量的分布越集中,其熵越小。為了獲得對(duì)于高斯變量為零并且總是非負(fù)的非高斯性度量,通常使用負(fù)熵。負(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ù)熵近似是使用高階矩,像下面這種形式: 假設(shè) 其中 如果 其中 4.3 互信息最小化(Minimization of mutual information)另外一種基于信息論的估計(jì)ICA的方法是互信息最小化。接下來(lái)將解釋這種方法,并說(shuō)明它跟上面描述尋找大多數(shù)非高斯方向的方法相似。 4.3.1 互信息(Mutual information)根據(jù)差分熵的概念,我們定義m個(gè)隨機(jī)變量 互信息是衡量隨機(jī)變量之間獨(dú)立性的方法,事實(shí)上,它等于聯(lián)合密度 互信息一個(gè)重要的特性是:我們有一個(gè)可逆的線(xiàn)性變換 我們?cè)囅胍幌氯绻?img alt="y_{i}" src="http://image109.360doc.com/DownloadImg/2020/03/1122/185153889_136_20200311103907691">是不相關(guān)的,而且它們的方差為1會(huì)發(fā)生什么,這意味著 這意味著 其中 4.3.2 通過(guò)互信息定義ICA(Defining ICA by mutual information)因?yàn)榛バ畔⑹切畔⒄撝须S機(jī)變量獨(dú)立性的度量方式,我們可以用它作為尋找ICA變換的準(zhǔn)則。此方法是模型估計(jì)的替代方法,我們將隨機(jī)向量 4.4 最大似然估計(jì)(Maximum likelihood estimation)4.4.1 似然(The likelihood)一種非常流行的估計(jì)ICA模型的方法是最大似然估計(jì),它和信息最大化原則相似。接下來(lái)將討論這種方法,并表明它的本質(zhì)是和最小化互信息是一樣的。在無(wú)噪聲的ICA模型中可以直接表示似然,然后通過(guò)最大似然估計(jì)來(lái)估計(jì)模型。 其中 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è) 如果 4.4.3 互信息連接(Connection to mutual information)為了研究似然和互信息之間的關(guān)系,考慮log似然函數(shù)的期望,如下: 如果 在實(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ú)立分量 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ì) 5.2 白化(whitening)ICA另一個(gè)有用的預(yù)處理策略是對(duì)觀測(cè)數(shù)據(jù)白化。這意味著在應(yīng)用ICA算法之前(中心化之后),我們對(duì)觀測(cè)數(shù)據(jù) 一種比較流行的白化的方法是協(xié)方差矩陣 其中 通過(guò)白化將混合矩陣轉(zhuǎn)換為 白化的作用在于可以使新的混合矩陣 我們可以看到,通過(guò)白化減少了要估計(jì)的參數(shù)的數(shù)量,現(xiàn)在我們不需要估計(jì)原始矩陣 圖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ù)就用 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) 現(xiàn)在, 這表明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)值向量 其中 1. 選擇初始的權(quán)值向量 2. 令 3. 令 4. 如果不收斂,就返回步驟2 收斂是指 FastICA推導(dǎo)如下,首先 用牛頓法來(lái)解上面的等式,令等式左邊為 為了簡(jiǎn)化矩陣,我們對(duì)上式中的第一部分取近似,由于數(shù)據(jù)是球形的,一個(gè)合理的近似是 通過(guò)對(duì)上式兩邊同時(shí)乘以 6.2 多元FastICA(FastICA for several unit)前面講的單單元算法只是估計(jì)一個(gè)獨(dú)立成分或者一個(gè)投影追蹤的方向,為了估計(jì)幾個(gè)獨(dú)立成分,我們需要使用具有權(quán)重向量 實(shí)現(xiàn)去相關(guān)的簡(jiǎn)單方法是基于類(lèi)似Gram-Schmidt的去相關(guān)的放縮方案。這意味著需要一個(gè)個(gè)的估計(jì)獨(dú)立成分,當(dāng)我們已經(jīng)估計(jì)了 然而,在某些應(yīng)用程序中,可能需要使用對(duì)稱(chēng)的去相關(guān),其中沒(méi)有向量比其他向量具有“特權(quán)”,這可以通過(guò)矩陣平方根法做到,令: 其中 1. 令 重復(fù)步驟2直到收斂 2. 令 步驟一中的范數(shù)可以使用矩陣的任意范數(shù),比如2-范數(shù)。 6.3 FastICA 和最大似然(FastICA and maximum likelihood)最后,給出FastICA和最大似然估計(jì)的聯(lián)系。如果我們使用式(43)中的中間公式表達(dá)FastICA,并以矩陣形式寫(xiě),我們看到FastICA采用以下形式: 其中 其中 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/ |
|
|