先前用pca對三維人臉進行了姿勢座標系的統一,只是照步驟來寫**,沒有仔細推敲其中的原理。無論人臉是怎樣姿勢處理後都能夠歸一化其所在的座標系。pca演算法為什麼能把人臉擺正呢?->統計學中奧妙的冰山一角啊~
先說下主成分分析法的感性理解:有乙個很長很細的棒子,從上往下看只有個圓點,那麼「豎直「這個方向可以看做是這個物體最主要的方向。
假設這個棒子是斜的,獲取了斜的方向,很容易將棒子擺豎直。這就是人臉姿勢座標系統一的原理。如果想對這個棒子進行壓縮,那就可以壓縮成一條線,忽略棒子的直徑,這是我對採用主成分分析進行壓縮的理解。
下面點集中的資料,可以看做有紅藍兩個主要的方向。資料有幾個維度就可能有幾個」主要的方向「,稱為主軸或主成分。
在主要的方向上,資料所具有離散程度,也就是方差最大。
資料不同的主成分之間是線性無關的。這和資料定義有關,每一維度都對應乙個主成分,在之前的點集示例中,資料格式為(xi,yi),x軸和y軸是相互垂直的,自然主成分也是相互垂直的。如果資料有n維,仍然可以對應n個主成分,但主成分之間的關係可能沒有這麼直觀。
下面說主成分是如何找到的。以做過的三維人臉姿勢歸一為例。
處理前:
在點集p中,每個點為,p為p的行向量,n為點的個數。
1.計算點集p的協方差矩陣:
協方差矩陣描述了樣本各維度的方差及維數之間的相關程度,對角線分別是x、y、z軸的方差,其餘為各維度之間的協方差。
2.分解協方差矩陣的特徵值與特徵向量。matlab裡用這個函式:
以上兩步的意義:
我們希望在各個維度上,資料是不相關的,協方差都為0。因此我們希望處理後的資料的協方差矩陣是對角矩陣。我們知道,任何乙個非奇異矩陣都可以寫成對角矩陣的形式,對角線的元素就是矩陣的特徵值。
求解出特徵值,及其一一對應的特徵向量。這時對矩陣的特徵值與特徵向量的概念進行了再次的複習和思考。特徵向量描述乙個變換(矩陣)中線性無關的方向,乙個點集的協方差矩陣,其線性無關的三個特徵向量正是理想情況下三個維度的方向,其對應的特徵值,正是在新的方向下的三個方差。
在協方差矩陣的基礎上進一步理解特徵值和特徵向量,之前已述,協方差矩陣表示了樣本集在原
n維空間中各個方向上的能量分布,通過對協方差矩陣求特徵向量,實際上找到的是在原
n維空間中的一些特定的方向,樣本集的能量集中分布在這些方向上,而特徵值的大小就反映了樣本集在該方向上的能量大小。
pca正式基於這一點,刪掉對應特徵值小的方向,只保留主要的方向,達到降維的目的。
引自3.構造旋轉矩陣,
4.對原始點集進行旋轉。
p』=pr
我們得到了三個維度的新方向,
但是處理後人臉的前後,正反有時會錯,是因為分解特徵向量時,並未給定統一的正負標準。按不同的函式分解得到的特徵向量可能是(a,-b,c)也可能是(-a,b,-c),也有可能有標準但不符合我們的歸一化規則。於是對那三個維度的新方向做點手腳,保證新的x軸對應的特徵向量的第乙個分量為正,新的y軸對應的特徵向量的第二個分量為正,新的z軸對應的特徵向量的第三個分量為正,就可以解決了。
糾正後的v:
旋轉矩陣r:
處理後:
可以看到臉基本擺正了。這樣進行粗匹配必須基於原始資料的對稱性有要求。如果原始資料有缺口很不對稱,最後出來方差最大的軸就可能不是y軸了~
主成分分析法
相關係數 矩陣 相當於消除量綱的表示變數間相關性的乙個矩陣 協方差矩陣 它是沒有消除 量綱的表示變數間相關性的矩陣。對比下它們的等式變換關係 r cov x,y d x d y 1 求相關係數矩陣或者協方差矩陣r 2 計算r的特徵值 3 求特徵根對應的單位特徵向量 4 主成分選取,含 釋及計算 主成...
主成分分析法
在本篇部落格中,我們將會介紹一種方法,叫做主成分分析法 pca 這種方法試圖確定資料接近位於的子空間。pca相對於因子分析法將會更為直接,它僅僅需要進行特徵向量的計算 在matlab中使用eig函式 並不需要使用em演算法。假設我們有這樣的乙個資料集 表示m個不同種類的汽車發動機的屬性,例如他們的最...
主成分分析法(PCA)
一 數學基礎 1.方差 用來計算每乙個變數 觀察值 與總體均數之間的差異。總體方差計算公式 為總體方差,為變數,為總體均值,為總體例數。2.協方差 在概率論 和統計學中,協方差用於衡量兩個變數的總體誤差。而方差是 協方差的一種特殊情況,即當兩個變數是相同的情況。期望值分別為 e x 與 e y 的兩...