關於PCA降維的理解

首先,簡單的介紹下PCA:

PCA即機器學習裏面經提到的主成分分析(Principal Component Ayalysis),一般用來對高維數據進行壓縮,提取低維特徵。 首先我們看下面這幅圖

第一幅圖,假設二維平面內的六個點,我們想要尋找一個一維空間,將二維空間的點投影在一維空間裏,使得點與點之間的分離性最好。從圖中可以看到最佳投影方向大概是45°角的方向。第二幅圖是一些三維空間的點,同樣我們想找一個低維空間,使得三維數據投影在低維空間後,分離性最好。圖中可知最好的低維空間是x1_x2平面。對於我們平時所處理的數據,通常都是成千上萬維,而PCA的目的就是尋找一個低維空間將這些高維數據投影在低維空間裏,使得在低維空間裏這些數據具有良好的分離性。也就是說PCA最直接的目的是要尋找這樣的一個低維空間,那麼怎麼去尋找這樣的一個低維空間呢。具體數學方法如下:

      假設我們有M*N²維人臉圖片(M是樣本數,每個樣本的像素是N*N),對於每張圖片我們可以拉成N²維的向量。下面直接貼出數學公式:

       



這是M. Turk 和 A. Pentland那篇論文對PCA的分析,初次看有些晦澀,下面我來說下我自己對PCA整個數學流程的理解:

suppose we have m samples,each is n dimension

step1: compute the mean of every feature μj = Σm Xj(i)/m   (Xj(i)表示第i個樣本的第j維特徵的value)

step2:feature scaling and mean normalization  Xj(i)= (Xj(i)j)/sj

這樣我們就得到了每一個樣本向量歸一化的向量 Xj, 接下來我們就要去尋找最佳投影的低維空間


step3: compute the covariance matrix (求協方差矩陣 Σ是n*n的矩陣)    

step4: compute the eigenvalues and eigenvectors(這裏我們利用svd分解求特徵值和特徵向量) Σ = USV' (其中S是和Σ一樣的n*n維的矩陣, U和V是酉矩陣, U和V也是n*n的矩陣

下面是一段數學分析:

ΣΣ' = USV'*VS'U' = U(ΣΣ')U'
Σ'Σ = VS'U'*USV' = V(Σ'Σ)V'
U是ΣΣ'的特徵向量矩陣;V是Σ'Σ的特徵向量矩陣,都是n*n的矩陣
從分析中我們知道U=V且, U是特徵向量組成的正交矩陣


step5:descending sort the n eigenvalue and select the k most biggest.

                                

    這樣我們就得到了一個n*k維的特徵空間(由上分析可知U是一個正交矩陣,所以k個最大特徵值對應的eigenvectors也是正交的,k個最大的eigenvectors也就是新的維數空間的k個基,這樣我們就找到了一個低維的特徵空間

    對於任意給定的特徵(xi)將其投影在新的低維空間裏就是: (zi就是我們得到的將維之後的特徵由原來的n維降爲k維)對於我們給定的人臉圖片由於每一張圖片是n²*1維所以得到的酉矩陣U是n²*k 得到降維後的維數就是k維。


    同樣如果我們知道了降維後的特徵要想還原爲原有特徵,則xi = U*zi即可








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章