Machine-Learning

概率 PCA 中的主要子空間是什麼?

  • April 22, 2016

如果是觀察到的數據矩陣和那麼是潛變量

在哪裡是觀測數據的平均值,並且是數據中的高斯誤差/噪聲,並且稱為主子空間。

我的問題是,當使用普通 PCA 時,我們會得到一組正交特徵向量以下為真

但在 PPCA 中,既不是標準正交也不是特徵向量。那麼我怎樣才能從?

按照我的直覺,我在 MATLAB 中搜索了ppca,在那裡我遇到了這一行:

收斂時,W 的列跨越子空間,但它們不是正交的。ppca 通過 W 的正交化獲得分量的正交係數 coeff。

我稍微修改了 ppca 代碼以獲取W,運行它,在正交化之後,我確實從W得到了****P

為什麼這種正交化給出了特徵向量,沿著它可以看到大部分的方差?

我假設,正交化給了我一組跨越主子空間的正交/正交向量,但是為什麼這個正交化的結果矩陣等於特徵矩陣(我知道 pca 中的特徵矩陣也是正交的)?我可以假設主要子空間僅由一組唯一的正交向量跨越嗎?在這種情況下,兩個結果將始終一致。

這是一個很好的問題。

概率 PCA (PPCA) 是以下潛變量模型

在哪裡是一個觀察和是一個潛變量向量;通常. 請注意,這與因子分析僅在一個小細節上有所不同: PPCA 中的誤差協方差結構是在 FA 中它是一個任意的對角矩陣. Tipping & Bishop, 1999, 概率主成分分析證明了以下定理: PPCA 的最大似然解可以通過分析獲得併由 (Eq. 7) 給出:

在哪裡是一個矩陣領先的主要方向(協方差矩陣的特徵向量),是對應特徵值的對角矩陣,也由一個顯式公式給出,並且是任意的旋轉矩陣(對應於潛在空間中的旋轉)。 該ppca()函數實現了期望最大化算法來擬合模型,但我們知道它必須收斂到如上所述。

你的問題是:如何獲得如果你知道的話.

答案是你可以簡單地使用奇異值分解. 上面的公式已經是正交矩陣乘以對角矩陣乘以正交矩陣的形式,所以它給出了 SVD,因為它是唯一的,你會得到作為左奇異向量.

這正是 Matlab 的ppca()函數在第 305 行所做的:

% Orthogonalize W to the standard PCA subspace
[coeff,~] = svd(W,'econ');


我可以假設主要子空間僅由一組唯一的正交向量跨越嗎?

不!有無限數量的正交基跨越相同的主子空間。如果您將一些任意正交化過程應用於您不能保證獲得. 但是,如果您使用 SVD 或類似的東西,那麼它會起作用。

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

comments powered by Disqus