Independent-Component-Analysis

如何選擇獨立成分分析的成分數量?

  • March 26, 2011

在沒有關於獨立組件分析中請求的組件數量的良好先驗猜測的情況下,我正在尋求自動化選擇過程。我認為一個合理的標準可能是最小化計算組件之間相關性的全局證據的數字。這是這種方法的偽代碼:

for each candidate number of components, n:
   run ICA specifying n as requested number of components
   for each pair (c1,c2) of resulting components:
       compute a model, m1: lm(c1 ~ 1)
       compute a model, m2: lm(c1 ~ c2)
       compute log likelihood ratio ( AIC(m2)-AIC(m1) ) representing the relative likelihood of a correlation between c1 & c2
   compute mean log likelihood ratio across pairs
Choose the final number of components as that which minimizes the mean log likelihood of component relatedness

我認為這應該會自動懲罰大於組件“真實”數量的候選者,因為由此類候選者產生的 ICA 應該被迫將來自單個真實組件的信息分佈到多個估計組件中,從而增加組件對之間相關性的平均證據。

這有意義嗎?如果是這樣,是否有比上面建議的平均對數似然方法更快的方法來實現估計組件之間的相關性聚合度量(這在計算上可能相當慢)?如果這種方法沒有意義,那麼一個好的替代程序可能是什麼樣的?

ICA 的變分集成學習方法可以做到這一點“自動相關性檢測”。它會自動關閉不需要改進貝葉斯證據界限的組件。

看看 James Miskin 的論文,這裡介紹了該技術。

這是由John Winn(另一位通過消息傳遞算法實現貝葉斯集成學習的博士 )在 Java 中非常巧妙地實現的。

為了學習這項技術,我決定在 c++ 中實現 Winn 算法,可以從這裡獲得(積極開發)。

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

comments powered by Disqus

相關問答