【人臉識別】基于PCA+LDA實現(xiàn)人臉識別matlab 源碼
一、簡介
1 PCA
1.1 數(shù)據(jù)降維
降維的方法包括:主成分分析(PCA)、因子分析(FA)、和獨立成分分析(ICA)
主成分分析:尋找向量,使各個樣本到該向量的投影之和最小。
因子分析:
獨立成分分析:
1.2 PCA:目的是降維,降維的實際原理是最大化目標函數(shù)(數(shù)據(jù)投影后的方差最大)
強推原理博文:https://blog.csdn.net/fendegao/article/details/80208723
(1)假設(shè)有m個n維樣本: {Z1,Z2,…,Zm}
(2)樣本中心 u 為: 所有樣本觀測值之和/(mxn)
(3)去中心化后,得到矩陣 {X1,X2,…,Xm}={Z1-U,Z2-U,…,Zm-U}
(4)記含有n個元素的向量W,則樣本X1在w方向上的投影為二者內(nèi)積 X1 . W
(5)PCA的目標函數(shù)為最大化投影

目標方程可以化為矩陣形式求解,求解方法:
(1)構(gòu)建拉格朗日算子,求導(dǎo)為0,解得投影最大的向量為特征值最大對應(yīng)的特征向量。
根據(jù)特征值的累計貢獻率可以指定選取多少個W向量作為K-L變換矩陣。若選擇了4個主成分,則對于每一個n維度樣本,經(jīng)過矩陣變換后,都變?yōu)榱耍?xn)x(nx4)=1x4維向量,即達到了降維的目的。
(2)SVD奇異值分解:降維只需求出右奇異矩陣,即AA(T)的特征向量,不需要求A的協(xié)方差矩陣。對內(nèi)存友好。
1.3 基于PCA的人臉識別
(1)基于人臉樣本庫,例如現(xiàn)實中人臉拍照(銀行、車站)等數(shù)據(jù)采集方法,建立人臉庫。
(2)求取訓(xùn)練人臉庫的協(xié)方差陣的特征值和特征向量。
(3)對于需要判別的人臉,判斷其在特征向量上的投影與哪個訓(xùn)練樣本的投影最接近。
!??!注::需要注意,協(xié)方差矩陣是維度之間的協(xié)方差,故是nxn維,但是在實際應(yīng)用時,例如圖像降維(假設(shè)一幅圖像有200*10個像素,有100幅圖像),一個像素就是一個維度,則原本協(xié)方差陣XX’為 (2000X100)x (100x2000)維,計算機存儲計算消耗過大,此時可以考慮使用替代矩陣P=X’X(100x2000)x(2000X100)替代:

P的特征值即原始協(xié)方差陣的特征值,P的特征向量左乘數(shù)據(jù)矩陣即為原始協(xié)方差陣的特征向量。
2 LDA
LDA:線性判別分析,也稱為Fisher線性判別,是常用的降維技術(shù)。
基本思想:將高維的模式樣本投影到最佳鑒別矢量空間,以達到抽取分類信息和壓縮特征空間維數(shù)的效果,投影后保證模式樣本在新的子空間有最大的類間距離和最小的類內(nèi)距離,即模式在該空間中有最佳的可分離性。
LDA降維后的維度是直接和類別的個數(shù)相關(guān)的,與數(shù)據(jù)本身的維度沒關(guān)系,比如原始數(shù)據(jù)是n維的,一共有C個類別,那么LDA降維之后,維數(shù)取值范圍為(1,C-1),舉個例子,假設(shè)圖像分類,兩個類別正例反例,每個圖像用10000維特征表示,那么LDA之后,就只有1維特征,并且這維特征的分類能力最好。
對于很多兩類分類的情況,LDA之后就剩下1維,找到分類效果最好的一個閾值貌似就可以了。
假設(shè),x是一個N維的列向量,要使x通過LDA降到C維,只需要找到一個投影矩陣w,也即,一個N*C的矩陣,讓w的轉(zhuǎn)置矩陣和x相乘,便成為C維的了。(投影在數(shù)學(xué)上的表示就是用一個矩陣去相乘)
此時,問題的關(guān)鍵就在于:尋找一個投影矩陣!并且,該投影矩陣要保證模式樣本在新的子空間有最大的類間距離和最小的類內(nèi)距離。
2.2 LDA數(shù)學(xué)表示:




二、源代碼
三、運行結(jié)果