Pca

ICA 是否需要先運行 PCA?

  • May 14, 2014

我查看了一篇基於應用程序的論文,說在應用 ICA 之前應用 PCA(使用 fastICA 包)。我的問題是,ICA(fastICA)是否需要先運行 PCA?

這篇論文提到

…還有人認為,預應用 PCA 通過 (1) 在白化之前丟棄小的尾隨特徵值和 (2) 通過最小化成對依賴關係來降低計算複雜性來提高 ICA 性能。PCA 對輸入數據進行去相關;其餘的高階依賴由 ICA 分離。

其他論文也在 ICA 之前應用 PCA,例如,this one

在 ICA 之前運行 PCA 還有其他優點和缺點嗎?請提供理論和參考資料。

fastICA 方法確實需要一個預白化步驟:首先使用 PCA 對數據進行轉換,從而得到一個對角協方差矩陣,然後對每個維度進行歸一化,使得協方差矩陣等於單位矩陣(白化)。

數據的無限變換會導致恆等協方差矩陣,如果您的源是高斯的,您將停在那裡(對於高斯多元分佈,均值和協方差是足夠的統計數據),在存在非高斯源的情況下,您可以最小化一些測量對白化數據的依賴性,因此您尋找最大化獨立性的白化數據的旋轉。FastICA 使用信息論測量和定點迭代方案來實現這一點。

我會推薦 Hyvärinen 的工作來更深入地了解這個問題:

  • A. Hyvärinen。用於獨立分量分析的快速且穩健的定點算法。IEEE 神經網絡彙刊 10(3):626-634, 1999。
  • A. Hyvärinen、J. Karhunen、E. Oja,獨立成分分析,Wiley & Sons。2001年

請注意,進行 PCA 和進行降維並不完全相同:當您的觀測值(每個信號)多於信號時,您可以執行保留 100% 解釋方差的 PCA,然後繼續進行白化和定點迭代以獲得獨立分量的估計。是否應該執行降維高度依賴於上下文,它基於您的建模假設和數據分佈。

引用自:https://stats.stackexchange.com/questions/97704

comments powered by Disqus