最近學習到PCA,整理一下重點(如果有誤或侵權請提出)
壹、目標:
1.降階:影像處理裡面有多組資料,多個座標軸,我們希望以較少的資料(座標軸)來代表其資訊。
ex.有400個samples 70*70的灰階人臉,就有4900維度,我們需要截取少數特徵值明顯的來代表就好
2.獨立性:為了讓資料間沒有相關性(correlation),也就是讓covariance正交化,使得共變異數左下角和右上角都為零,這樣可以達到資料的獨立性,如果降階時資料有相關性那把其中的軸拿掉時座標點無法單獨被定義。
(圖一[上])正交化 (圖二[下])原本黑色的x,y軸還有相依性,如果資料投影在x,y軸上則無法被定義且error rate高
貳、先備知識:
1.PCA的概念:用m維來代表n維空間(m<n),也就是說用少數的維度來代表全部的維度,那我們需要找到新的座標定義方式,使得每一點投影在新的座標上時只用到少量的資訊和維度 ex. [2維到1維](x,y)->(a) ,(l,m)->(b)
2.PCA是用線性投影的方式做轉換
假設原始變數是x1,x2,x3,x4.....xn
投影完座標z1=a11*x1+a12*x2......+a1n*xn
z2=a21*x1+a22*x2+......+a2n*xn
以此類推
詳情請看主成分分析原理的1.2
ex.全班的體型分佈,只用身高或體重都不足以代表體型,所以就假設體型=a*身高+b*體重
3.投影後的平均U'=Au (A是轉換矩陣)
證明:
x'=Ax
=>U'=E[Ax]=A*E[x]=A*u
4.已知:A的轉置*Σ*A=Σx' ,由以下證明得知轉換完後的共變異數確實是正交化的共變異數
5.任意一個座標空間,一個點的座標定義是投影到座標軸上的值
参、PCA轉換
1.取出一個樣本(一張人臉灰階圖),算出scatter matrix
2.對scatter matrix做eigen decomposition,也就是對scatter matrix做正交化
用|S-λI|=0,求出eigenvalues
並得到相對應的eigenspace(eigenvectors)
3.選擇要降階的維度,若要降階成n維則選出大小前n大eigenvalue的eigenvector作為坐標軸
並把座標投影上去
註1:eigenvalue大代表variance大,代表具有較高的特徵性和差異性
註2:Zi=(Xi-m)oE //Zi是轉換後的座標,Xi是原先座標,m是原先的平均值,o是內積,E是eigenvector
參考資料:http://web.ntpu.edu.tw/~ccw/statmath/M_pca.pdf
雜言雜語:學到PCA的皮毛之後,我好興奮,真想趕快拿來實用,不管是橢圓遮罩或是任何需要用到座標轉換的東西似乎都用的上
,於是把一些想法打在這,也許是腦袋思緒太亂,或者太少寫東西,整篇網誌亂七八糟有待改進,真不好意思如果有需要卻還是不懂的話看看參考資料芭