主成分分析(PCA)和独立成分分析(ICA)相关资料
首先回答題主的問(wèn)題:不管是PCA還是ICA,都不需要你對(duì)源信號(hào)的分布做具體的假設(shè);如果觀察到的信號(hào)為高斯,那么源信號(hào)也為高斯,此時(shí)PCA和ICA等價(jià)。下面稍作展開。
?
====答案的分割線====
假設(shè)你觀察到的信號(hào)是n維隨機(jī)變量主成分分析(PCA)和獨(dú)立成分分析(ICA)的目的都是找到一個(gè)方向,即一個(gè)n維向量使得線性組合的某種特征最大化。
?
主成分分析(PCA)PCA認(rèn)為一個(gè)隨機(jī)信號(hào)最有用的信息體包含在方差里。為此我們需要找到一個(gè)方向,使得隨機(jī)信號(hào)x在該方向上的投影的方差最大化。接下來(lái),我們?cè)谂c正交的空間里到方向,使得的方差最大,以此類推直到找到所有的n個(gè)方向 用這種方法我們最終可以得到一列不相關(guān)的隨機(jī)變量:
【圖片來(lái)自wikipedia】
?
如果用矩陣的形式,記那么本質(zhì)上PCA是把原隨機(jī)信號(hào)x變換成了其中y滿足下面的性質(zhì):- y的各分量不相關(guān);
- 的方差遞減。
特別地,當(dāng)原隨機(jī)信號(hào)x為高斯隨機(jī)向量的時(shí)候,得到的y仍為高斯隨機(jī)向量,此時(shí)它的各個(gè)分量不僅僅是線性無(wú)關(guān)的,它們還是獨(dú)立的。
?
通過(guò)PCA,我們可以得到一列不相關(guān)的隨機(jī)變量至于這些隨機(jī)變量是不是真的有意義,那必須根據(jù)具體情況具體分析。最常見的例子是,如果x的各分量的單位(量綱)不同,那么一般不能直接套用PCA。比如,若x的幾個(gè)分量分別代表某國(guó)GDP, 人口,失業(yè)率,政府清廉指數(shù),這些分量的單位全都不同,而且可以自行隨意選取:GDP的單位可以是美元或者日元;人口單位可以是人或者千人或者百萬(wàn)人;失業(yè)率可以是百分比或者千分比,等等。對(duì)同一個(gè)對(duì)象(如GDP)選用不同的單位將會(huì)改變其數(shù)值,從而改變PCA的結(jié)果;而依賴“單位選擇”的結(jié)果顯然是沒(méi)有意義的。
?
獨(dú)立成分分析(ICA)
ICA又稱盲源分離(Blind source separation, BSS),它假設(shè)觀察到的隨機(jī)信號(hào)x服從模型,其中s為未知源信號(hào),其分量相互獨(dú)立,A為一未知混合矩陣。ICA的目的是通過(guò)且僅通過(guò)觀察x來(lái)估計(jì)混合矩陣A以及源信號(hào)s。
大多數(shù)ICA的算法需要進(jìn)行“數(shù)據(jù)預(yù)處理”(data preprocessing):先用PCA得到y(tǒng),再把y的各個(gè)分量標(biāo)準(zhǔn)化(即讓各分量除以自身的標(biāo)準(zhǔn)差)得到z。預(yù)處理后得到的z滿足下面性質(zhì):- z的各個(gè)分量不相關(guān);
- z的各個(gè)分量的方差都為1。
有許多不同的ICA算法可以通過(guò)z把A和s估計(jì)出來(lái)。以著名的FastICA算法為例,該算法尋找方向使得隨機(jī)變量的某種“非高斯性”(non-Gaussianity)的度量最大化。一種常用的非高斯性的度量是四階矩。類似PCA的流程,我們首先找使得最大;然后在與正交的空間里找,使得最大,以此類推直到找到所有的. 可以證明,用這種方法得到的是相互獨(dú)立的。
ICA認(rèn)為一個(gè)信號(hào)可以被分解成若干個(gè)統(tǒng)計(jì)獨(dú)立的分量的線性組合,而后者攜帶更多的信息。我們可以證明,只要源信號(hào)非高斯,那么這種分解是唯一的。若源信號(hào)為高斯的話,那么顯然可能有無(wú)窮多這樣的分解。
?
====一些技術(shù)細(xì)節(jié)====
實(shí)際上PCA等價(jià)于求隨機(jī)信號(hào)x的協(xié)方差矩陣的特征值分解(eigenvalue decomposition, EVD)或者奇異值分解(singular value decomposition, SVD)。比如,求的過(guò)程可以寫成
注意其中上式中包含歐氏范數(shù)為1的約束條件,這是因?yàn)槿绻麤](méi)有這個(gè)約束條件那么右邊方差可以無(wú)限大,這個(gè)問(wèn)題因而也就變得沒(méi)有意義了。現(xiàn)假設(shè)x的協(xié)方差矩陣C為已知,那么上式可以化為
不難看出這個(gè)問(wèn)題的解為對(duì)應(yīng)于矩陣C的最大的特征值的那一個(gè)特征向量。
類似的,求第n個(gè)方向需要解
這個(gè)問(wèn)題的解為對(duì)應(yīng)于矩陣C的第k大的特征值的那一個(gè)特征向量。
另外關(guān)于ICA,我們有下面的“ICA基本定理”:
定理(Pierre Comon, 1994)假設(shè)隨機(jī)信號(hào)z服從模型,其中s的分量相互獨(dú)立,且其中至多可以有一個(gè)為高斯;B為滿秩方陣。那么若z的分量相互獨(dú)立當(dāng)且僅當(dāng)B=PD,其中P為排列矩陣(permutation matrix),D為對(duì)角矩陣。
這個(gè)定理告訴我們,對(duì)于原信號(hào)x做線性變換得到的新隨機(jī)向量,若z的分量相互獨(dú)立,那么z的各個(gè)分量一定對(duì)應(yīng)于某個(gè)源信號(hào)分量乘以一個(gè)系數(shù)。到這里,我們可以看到ICA的解具有內(nèi)在的不確定性(inherent indeterminacy)。實(shí)際上,因?yàn)?#xff0c;即具備相同統(tǒng)計(jì)特征的x可能來(lái)自兩個(gè)不同的系統(tǒng),這意味著單從觀察x我們不可能知道它來(lái)自于哪一個(gè),從而我們就不可能推斷出源信號(hào)s的強(qiáng)度(方差)。為了在技術(shù)上消除這種不確定性,人們干脆約定源信號(hào)s的方差為1。有了這個(gè)約定,再通過(guò)數(shù)據(jù)預(yù)處理的方法,我們可以把原混合矩陣A化為一個(gè)自由度更低的正交矩陣:
數(shù)據(jù)預(yù)處理的過(guò)程又稱為“數(shù)據(jù)白化”(data whitening)。這里預(yù)處理以后得到的z和源信號(hào)s的關(guān)系為。取,則它可以看做一個(gè)新的混合矩陣。容易看出這是一個(gè)正交矩陣,它僅有個(gè)自由度;而原混合矩陣一般有個(gè)自由度。
- 二樓:牧瀬 紅莉棲
題主可能是沒(méi)有明白獨(dú)立成分分析和主成成分分析的概念與用法,我給大家補(bǔ)充一個(gè)對(duì)于一般雞尾酒會(huì)(即盲源分離)問(wèn)題的處理procedure,直觀理解下它們的區(qū)別。
對(duì)于一組3個(gè)模擬信號(hào),如正弦、余弦、隨機(jī)信號(hào)
經(jīng)過(guò)隨機(jī)混合,由6個(gè)麥克風(fēng)錄制下來(lái),則觀測(cè)信號(hào)為
我們希望將他們分解開,這時(shí)就該ICA出場(chǎng)了。但在ICA之前,往往會(huì)對(duì)數(shù)據(jù)有一個(gè)預(yù)處理過(guò)程,那就是PCA與白化。
白化在這里先不提,PCA本質(zhì)上來(lái)說(shuō)就是一個(gè)降維過(guò)程,大大降低ICA的計(jì)算量。
PCA,白化后的結(jié)果如下圖所示。可以看到,原先的6路信號(hào)減少為3路,ICA僅需要這3路混合信號(hào)即可還原源信號(hào)。
下面,ICA經(jīng)過(guò)多步迭代尋優(yōu),就會(huì)按照信號(hào)之間獨(dú)立最大的假設(shè),將信號(hào)解混輸出。
總的來(lái)說(shuō),ICA認(rèn)為觀測(cè)信號(hào)是若干個(gè)統(tǒng)計(jì)獨(dú)立的分量的線性組合,ICA要做的是一個(gè)解混過(guò)程。
而PCA是一個(gè)信息提取的過(guò)程,將原始數(shù)據(jù)降維,現(xiàn)已成為ICA將數(shù)據(jù)標(biāo)準(zhǔn)化的預(yù)處理步驟。
[1] A. Hyva ?rinen, J. Karhunen, and E. Oja, Independent Component Analysis, Wiley-Interscience, New York, 2001
[2] J.-F. Cardoso, “Blind signal separation: statistical principles”, Pro- ceedings of the IEEE, vol. 90, n. 8, pp. 2009-2026, October 1998.
[3] A. Hyva ?rinen and E. Oja, ”A Fast Fixed-Point Algorithm for Inde- pendent Component Analysis”. Neural Computation, 9(7):1483-1492, 1997.
[4] A. Hyva ?rinen, “Fast and Robust Fixed-Point Algorithms for Inde- pendent Component Analysis”. IEEE Trans. on Neural Networks, 10(3):626-634, 1999.
三樓:因緣際會(huì)
一、PCA和ICA的用途完全不同。如果只在意數(shù)據(jù)的能量或方差、假設(shè)噪聲或不感興趣的信號(hào)都比較微弱,那么用PCA就能把主要信號(hào)留下來(lái)。在某種意義上,ICA更智能——它不在意信號(hào)的能量或方差,只看獨(dú)立性。所以給定的待分析的混合信號(hào)經(jīng)任意的線性變換都不會(huì)影響ICA的輸出結(jié)果,但會(huì)嚴(yán)重影響PCA的結(jié)果。
二、若多于一個(gè)原始獨(dú)立信號(hào)是正態(tài)的,那么ICA的結(jié)果不唯一;下面給個(gè)直覺。若數(shù)據(jù)在兩個(gè)正交方向方差相同(比如協(xié)方差是isotropic的),PCA結(jié)果不唯一。大部分算法都用兩步來(lái)實(shí)現(xiàn)ICA:第一步做白化預(yù)處理(whitening),讓輸出信號(hào)不相關(guān)而且同方差。第二步找一個(gè)旋轉(zhuǎn)(就是正交變換)讓輸出信號(hào)不只不相關(guān)(uncorrelated),進(jìn)而在統(tǒng)計(jì)意義上獨(dú)立(statistically independent)。為簡(jiǎn)單起見,考慮兩維的情況。
如果原始獨(dú)立信號(hào)都是正態(tài)的,第一步后輸出信號(hào)的聯(lián)合分布如下圖:
那么你可以看到,不管怎樣旋轉(zhuǎn),輸出的兩個(gè)信號(hào)(在橫坐標(biāo)以及縱坐標(biāo)上的投影)都是獨(dú)立的。
非高斯分布下情況就不同了。在下圖中,原始獨(dú)立的信號(hào)都是超高斯的,可以看到白化預(yù)處理后的輸出雖然不相關(guān),但并不獨(dú)立:而若想讓旋轉(zhuǎn)之后的輸出獨(dú)立,只能旋轉(zhuǎn)到如下位置(或者相差90度的倍數(shù),對(duì)應(yīng)于輸出信號(hào)的次序或者正負(fù)號(hào)的變化):
類似的,如果原始獨(dú)立信號(hào)是均勻分布的,第二步就需要從
旋轉(zhuǎn)到
這樣就直覺上了解了為什么ICA需要假設(shè)原始獨(dú)立信號(hào)的非高斯分布之后才有意義。
三、ICA只是讓輸出信號(hào)盡量獨(dú)立,實(shí)際應(yīng)用中因種種因素,比如噪聲影響、非線性因素、太多源信號(hào)的影響等等,輸出往往不是完全獨(dú)立。這時(shí)很多情況下ICA的輸出還是包含了主要的獨(dú)立的成分,是有意義的。
四、總的來(lái)說(shuō),不相關(guān)是非常一種弱的獨(dú)立性(線性獨(dú)立性),一般必須配合別的性質(zhì)使用才能得出唯一的結(jié)果:在PCA里就配合了能量或方差最大這個(gè)性質(zhì)。而一般情況下獨(dú)立性比不相關(guān)強(qiáng)了很多,在一定條件下,強(qiáng)到了足以把數(shù)據(jù)的產(chǎn)生過(guò)程恢復(fù)出來(lái)的地步。
更進(jìn)一步,每當(dāng)我們做回歸(regression),不管是線性回歸還是非線性回歸,噪聲和predictor都是不相關(guān)的。但很多情況下,它們卻不是獨(dú)立的(!)。這個(gè)性質(zhì)最近十年內(nèi)在因果關(guān)系分析中得到很重要的應(yīng)用。- 來(lái)源:機(jī)器學(xué)習(xí)中PCA和ICA的理解 - zrjdds(http://blog.csdn.net/zrjdds/article/details/50318065) ? PCA的問(wèn)題其實(shí)是一個(gè)基的變換,使得變換后的數(shù)據(jù)有著最大的方差。方差的大小描述的是一個(gè)變量的信息量,我們?cè)谥v一個(gè)東西的穩(wěn)定性的時(shí)候,往往說(shuō)要減小方差,如果一個(gè)模型的方差很大,那就說(shuō)明模型不穩(wěn)定了。但是對(duì)于我們用于機(jī)器學(xué)習(xí)的數(shù)據(jù)(主要是訓(xùn)練數(shù)據(jù)),方差大才有意義,不然輸入的數(shù)據(jù)都是同一個(gè)點(diǎn),那方差就為0了,這樣輸入的多個(gè)數(shù)據(jù)就等同于一個(gè)數(shù)據(jù)了。
ICA是找出構(gòu)成信號(hào)的相互獨(dú)立部分(不需要正交),對(duì)應(yīng)高階統(tǒng)計(jì)量分析。ICA理論認(rèn)為用來(lái)觀測(cè)的混合數(shù)據(jù)陣X是由獨(dú)立元S經(jīng)過(guò)A線性加權(quán)獲得。ICA理論的目標(biāo)就是通過(guò)X求得一個(gè)分離矩陣W,使得W作用在X上所獲得的信號(hào)Y是獨(dú)立源S的最優(yōu)逼近,該關(guān)系可以通過(guò)該式表示:Y = WX = WAS , A = inv(W).
?
ICA相比與PCA更能刻畫變量的隨機(jī)統(tǒng)計(jì)特性,且能抑制高斯噪聲。從線性代數(shù)的角度去理解,PCA和ICA都是要找到一組基,這組基張成一個(gè)特征空間,數(shù)據(jù)的處理就都需要映射到新空間中去。
轉(zhuǎn)載于:https://www.cnblogs.com/minks/p/6559690.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的主成分分析(PCA)和独立成分分析(ICA)相关资料的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Spring Boot与MyBatis整
- 下一篇: 深入理解Java虚拟机(2)