主成分分析(PCA)和獨立成分分析(ICA)相關資料

來源:知乎:獨立成分分析(ICA)與主成分分析(PCA)的區別在哪裏(https://www.zhihu.com/question/28845451)
 
- 一樓:魏天聞

首先回答題主的問題:不論是PCA仍是ICA,都不須要你對源信號的分佈作具體的假設;若是觀察到的信號爲高斯,那麼源信號也爲高斯,此時PCA和ICA等價。下面稍做展開。算法

 

====答案的分割線====機器學習

假設你觀察到的信號是n維隨機變量\mathbf{x}=(x_1,\ldots,x_n)^T.主成分分析(PCA)和獨立成分分析(ICA)的目的都是找到一個方向,即一個n維向量\mathbf{w}=(w_1,\ldots,w_n)^T使得線性組合\sum_{i=1}^nw_ix_i=\mathbf{w}^T\mathbf{x}的某種特徵最大化。ide

 

主成分分析(PCA)

PCA認爲一個隨機信號最有用的信息體包含在方差裏。爲此咱們須要找到一個方向\mathbf{w}_1,使得隨機信號x在該方向上的投影\mathbf{w}_1^T\mathbf{x}的方差最大化。接下來,咱們在與\mathbf{w}_1正交的空間裏到方向\mathbf{w}_2,使得\mathbf{w}_2^T\mathbf{x}的方差最大,以此類推直到找到全部的n個方向\mathbf{w}_1,\ldots,\mathbf{w}_n. 用這種方法咱們最終能夠獲得一列不相關的隨機變量:\mathbf{w}_1^T\mathbf{x},\ldots,\mathbf{w}_n^T\mathbf{x}.

【圖片來自wikipedia】 學習

 

若是用矩陣的形式,記\mathbf{W}=(\mathbf{w}_1,\ldots, \mathbf{w}_n),那麼本質上PCA是把原隨機信號x變換成了\mathbf{y}=\mathbf{W}\mathbf{x},其中y知足下面的性質:
  • y的各份量不相關;
  • y_1,\ldots,y_n的方差遞減。

特別地,當原隨機信號x爲高斯隨機向量的時候,獲得的y仍爲高斯隨機向量,此時它的各個份量不只僅是線性無關的,它們仍是獨立的。spa

 

經過PCA,咱們能夠獲得一列不相關的隨機變量\mathbf{w}_1^T\mathbf{x},\ldots,\mathbf{w}_n^T\mathbf{x},至於這些隨機變量是否是真的有意義,那必須根據具體狀況具體分析。最多見的例子是,若是x的各份量的單位(量綱)不一樣,那麼通常不能直接套用PCA。好比,若x的幾個份量分別表明某國GDP, 人口,失業率,政府清廉指數,這些份量的單位全都不一樣,並且能夠自行隨意選取:GDP的單位能夠是美圓或者日元;人口單位能夠是人或者千人或者百萬人;失業率能夠是百分比或者千分比,等等。對同一個對象(如GDP)選用不一樣的單位將會改變其數值,從而改變PCA的結果;而依賴「單位選擇」的結果顯然是沒有意義的。.net

 

獨立成分分析(ICA)3d

ICA又稱盲源分離(Blind source separation, BSS),它假設觀察到的隨機信號x服從模型\mathbf{x}=\mathbf{A}\mathbf{s},其中s爲未知源信號,其份量相互獨立,A爲一未知混合矩陣。ICA的目的是經過且僅經過觀察x來估計混合矩陣A以及源信號s。對象

大多數ICA的算法須要進行「數據預處理」(data preprocessing):先用PCA獲得y,再把y的各個份量標準化(即讓各份量除以自身的標準差)獲得z。預處理後獲得的z知足下面性質:
  • z的各個份量不相關;
  • z的各個份量的方差都爲1。

有許多不一樣的ICA算法能夠經過z把A和s估計出來。以著名的FastICA算法爲例,該算法尋找方向\mathbf{w}使得隨機變量\mathbf{w}^T\mathbf{z}的某種「非高斯性」(non-Gaussianity)的度量最大化。一種經常使用的非高斯性的度量是四階矩\mathbb{E}[(\mathbf{w}^T\mathbf{x})^4]。相似PCA的流程,咱們首先找\mathbf{w}_1使得\mathbb{E}[(\mathbf{w}_1^T\mathbf{x})^4]最大;而後在與\mathbf{w}_1正交的空間裏找\mathbf{w}_2,使得\mathbb{E}[(\mathbf{w}_2^T\mathbf{x})^4]最大,以此類推直到找到全部的\mathbf{w}_1,\ldots,\mathbf{w}_n. 能夠證實,用這種方法獲得的\mathbf{w}_1^T\mathbf{z},\ldots,\mathbf{w}_n^T\mathbf{z}是相互獨立的。blog

ICA認爲一個信號能夠被分解成若干個統計獨立的份量的線性組合,然後者攜帶更多的信息。咱們能夠證實,只要源信號非高斯,那麼這種分解是惟一的。若源信號爲高斯的話,那麼顯然可能有無窮多這樣的分解。圖片

 

====一些技術細節====
實際上PCA等價於求隨機信號x的協方差矩陣的特徵值分解(eigenvalue decomposition, EVD)或者奇異值分解(singular value decomposition, SVD)。好比,求\mathbf{w}_1的過程能夠寫成\max_{\|\mathbf{w}\|=1}\,\textrm{Var}(\mathbf{w}^T\mathbf{x})
注意其中上式中包含歐氏範數爲1的約束條件,這是由於若是沒有這個約束條件那麼右邊方差能夠無限大,這個問題於是也就變得沒有意義了。現假設x的協方差矩陣C爲已知,那麼上式能夠化爲\max_{\|\mathbf{w}=1\|} \mathbf{w}^T\mathbf{C}\mathbf{w}
不難看出這個問題的解\mathbf{w}_1對應於矩陣C的最大的特徵值\lambda_1的那一個特徵向量
相似的,求第n個方向\mathbf{w}_k須要解
\max_{\|\mathbf{w}\|=1; \mathbf{w}^T\mathbf{w}_i=0, \atop\forall i=1,\ldots,k-1} \mathbf{w}^T\mathbf{C}\mathbf{w}
這個問題的解\mathbf{w}_k對應於矩陣C的第k大的特徵值\lambda_k的那一個特徵向量

另外關於ICA,咱們有下面的「ICA基本定理」:

定理(Pierre Comon, 1994)假設隨機信號z服從模型\mathbf{z}=\mathbf{B}\mathbf{s},其中s的份量相互獨立,且其中至多能夠有一個爲高斯;B爲滿秩方陣。那麼若z的份量相互獨立當且僅當B=PD,其中P爲排列矩陣(permutation matrix),D爲對角矩陣。

這個定理告訴咱們,對於原信號x作線性變換獲得的新隨機向量\mathbf{z}=\mathbf{Q}\mathbf{x},若z的份量相互獨立,那麼z的各個份量z_i必定對應於某個源信號份量s_j乘以一個係數。到這裏,咱們能夠看到ICA的解具備內在的不肯定性(inherent indeterminacy)。實際上,由於\mathbf{x}=\mathbf{A}\mathbf{s}=(\alpha \mathbf{A}) (\alpha^{-1}\mathbf{s}),即具有相同統計特徵的x可能來自兩個不一樣的系統,這意味着單從觀察x咱們不可能知道它來自於哪個,從而咱們就不可能推斷出源信號s的強度(方差)。爲了在技術上消除這種不肯定性,人們乾脆約定源信號s的方差爲1。有了這個約定,再經過數據預處理的方法,咱們能夠把原混合矩陣A化爲一個自由度更低的正交矩陣:

數據預處理的過程又稱爲「數據白化」(data whitening)。這裏預處理之後獲得的z和源信號s的關係爲
\mathbf{z}=\mathbf{C}^{-1/2}\mathbf{A}\mathbf{s}=(\mathbf{A}\mathbf{A}^T)^{-1/2}\mathbf{A}\mathbf{s}。取\widetilde{\mathbf{A}}=(\mathbf{A}\mathbf{A}^T)^{-1/2}\mathbf{A},則它能夠看作一個新的混合矩陣。容易看出這是一個正交矩陣,它僅有n(n-1)/2個自由度;而原混合矩陣通常有n^2個自由度。


 
- 二樓:牧瀬 紅莉棲

題主多是沒有明白獨立成分分析和主成成分分析的概念與用法,我給你們補充一個對於通常雞尾酒會(即盲源分離)問題的處理procedure,直觀理解下它們的區別。

對於一組3個模擬信號,如正弦、餘弦、隨機信號
 
通過隨機混合,由6個麥克風錄製下來,則觀測信號爲
 
咱們但願將他們分解開,這時就該ICA出場了。但在ICA以前,每每會對數據有一個預處理過程,那就是PCA與白化。
白化在這裏先不提,PCA本質上來講就是一個降維過程,大大下降ICA的計算量。
PCA,白化後的結果以下圖所示。能夠看到,原先的6路信號減小爲3路,ICA僅須要這3路混合信號便可還原源信號。
 
下面,ICA通過多步迭代尋優,就會按照信號之間獨立最大的假設,將信號解混輸出。

總的來講,ICA認爲觀測信號是若干個統計獨立的份量的線性組合,ICA要作的是一個解混過程。
而PCA是一個信息提取的過程,將原始數據降維,現已成爲ICA將數據標準化的預處理步驟。

參考文獻:
[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.
 

 
三樓:因緣際會

1、PCA和ICA的用途徹底不一樣。若是隻在乎數據的能量或方差、假設噪聲或不感興趣的信號都比較微弱,那麼用PCA就能把主要信號留下來。在某種意義上,ICA更智能——它不在乎信號的能量或方差,只看獨立性。因此給定的待分析的混合信號經任意的線性變換都不會影響ICA的輸出結果,但會嚴重影響PCA的結果。

2、若多於一個原始獨立信號是正態的,那麼ICA的結果不惟一;下面給個直覺。若數據在兩個正交方向方差相同(好比協方差是isotropic的),PCA結果不惟一。
大部分算法都用兩步來實現ICA:第一步作白化預處理(whitening),讓輸出信號不相關並且同方差。第二步找一個旋轉(就是正交變換)讓輸出信號不僅不相關(uncorrelated),進而在統計意義上獨立(statistically independent)。爲簡單起見,考慮兩維的狀況。

若是原始獨立信號都是正態的,第一步後輸出信號的聯合分佈以下圖:

那麼你能夠看到,無論怎樣旋轉,輸出的兩個信號(在橫座標以及縱座標上的投影)都是獨立的。

非高斯分佈下狀況就不一樣了。在下圖中,原始獨立的信號都是超高斯的,能夠看到白化預處理後的輸出雖然不相關,但並不獨立:
 
而若想讓旋轉以後的輸出獨立,只能旋轉到以下位置(或者相差90度的倍數,對應於輸出信號的次序或者正負號的變化):

相似的,若是原始獨立信號是均勻分佈的,第二步就須要從

旋轉到

這樣就直覺上了解了爲何ICA須要假設原始獨立信號的非高斯分佈以後纔有意義。

3、ICA只是讓輸出信號儘可能獨立,實際應用中因種種因素,好比噪聲影響、非線性因素、太多源信號的影響等等,輸出每每不是徹底獨立。這時不少狀況下ICA的輸出仍是包含了主要的獨立的成分,是有意義的。

4、總的來講,不相關是很是一種弱的獨立性(線性獨立性),通常必須配合別的性質使用才能得出惟一的結果:在PCA裏就配合了能量或方差最大這個性質。而通常狀況下獨立性比不相關強了不少,在必定條件下,強到了足以把數據的產生過程恢復出來的地步。

更進一步,每當咱們作迴歸(regression),不論是線性迴歸仍是非線性迴歸,噪聲和predictor都是不相關的。但不少狀況下,它們卻不是獨立的(!)。這個性質最近十年內在因果關係分析中獲得很重要的應用。

 
- 來源:機器學習中PCA和ICA的理解 - zrjdds(http://blog.csdn.net/zrjdds/article/details/50318065)
 
PCA的問題實際上是一個基的變換,使得變換後的數據有着最大的方差。方差的大小描述的是一個變量的信息量,咱們在講一個東西的穩定性的時候,每每說要減少方差,若是一個模型的方差很大,那就說明模型不穩定了。可是對於咱們用於機器學習的數據(主要是訓練數據),方差大才有意義,否則輸入的數據都是同一個點,那方差就爲0了,這樣輸入的多個數據就等同於一個數據了。
 

ICA是找出構成信號的相互獨立部分(不須要正交),對應高階統計量分析。ICA理論認爲用來觀測的混合數據陣X是由獨立元S通過A線性加權得到。ICA理論的目標就是經過X求得一個分離矩陣W,使得W做用在X上所得到的信號Y是獨立源S的最優逼近,該關係能夠經過該式表示:Y = WX = WAS , A = inv(W).

 

ICA相比與PCA更能刻畫變量的隨機統計特性,且能抑制高斯噪聲。從線性代數的角度去理解,PCA和ICA都是要找到一組基,這組基張成一個特徵空間,數據的處理就都須要映射到新空間中去。

相關文章
相關標籤/搜索