PCA原理及人脸识别应用

来源:互联网 发布:sql相同id数据合并 编辑:程序博客网 时间:2024/06/09 18:15

本文详细介绍PCA原理,主要参考PRML一书。
PCA也叫Karhunen-Loève transform(KL变换),或Hotelling transform(霍特林变换),是一种无监督学习方法,常用于高维数据的降维,通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量。
PCA的原理有两种等价解释:最大方差和最小投影误差,两种解释都通过一组正交投影,将原始数据投影到低维线性子空间,即主元子空间,最大方差讲求数据投影之后,在投影方向上保持最大方差,最小投影误差需要投影数据重构后和原始数据之间的均方差最小,前者由Hotelling于1933年提出,后者由Pearson于1901年提出。

1. 最大方差法

最大方差的直观理解可以从一个简单的实例解释,如我们的手掌在灯光下的投影,手掌是立体结构,属于三维空间,形成的影子在一个平面内,属于二维空间,首先达到了降维的目的,当手垂直于灯光时,完整的手的影子可以照射在地面上,该方向可保留手的最大特征,如果将手掌直立,平行于灯光,在地面上的影子就是一段很粗的线,无法判断是什么物体。再如图1,两个数据集由两个高斯分布生成,由图可以看出,数据在line B上的投影保持了两类数据的聚类结构,在line B的投影方差也更大,而方差是数据分散程度的度量,所以方差大的投影方向有利于保持数据的聚类特征。数据投影后的低维子空间叫做主元子空间,主元子空间相对于原始空间的补空间为残差子空间,主元子空间要求能保持数据的主要特征,方差作为数据分散程度的度量,是决定投影方向的重要统计量,下面通过推导公式加深对最大方差法的理解。

图1 数据在不同方向的投影比较

给定一组D维数据{xn}Nn=1xnRD,我们的目标是把数据投影到M维空间(M<D),使投影后的数据方差最大。首先考虑一个维度,假设u1RD为投影方向,不失一般性,令u1为单位向量,即uT1u1=1,任一点 xn投影后的数据为一个标量uT1xn,原始数据均值为x¯=n=1Nxn,则投影数据的均值为uT1x¯,投影数据协方差为

1Nn=1N(uT1xnuT1x¯)2=1Nn=1N(uT1xnuT1x¯)(uT1xnuT1x¯)T=1Nn=1NuT1(xnx¯)(xnx¯)Tu1=uT1Su1(1)
其中,S=1Nn=1N(xnx¯)(xnx¯)T为原始数据的协方差矩阵。接下来,求投影协方差关于u1的最大值,为了避免出现u1,我们加入约束条件uT1u1=1,引入拉格朗日乘子λ1,就可以得到无约束最大化问题
uT1Su1+λ1(1uT1u1)(2)
令上式关于u1的导数为0,得到Su1=λ1u1 。现在我们可以看到,λ1为矩阵S的特征值,u1λ1对应的特征向量,两边同乘以uT1,则有uT1Su1=λ1,即投影数据的方差uT1Su1等于原始数据协方差矩阵的某一个特征值,秉持投影数据方差最大化原则,λ1为协方差矩阵S的最大特征值,其对应的特征向量u1被称为第一主元。我们可以按照此方式依次选取其他特征值λ2,...,λM,且λ1>λ2>>λM,其对应的主元依次为u2,...,uM,由于实对称阵不同特征值对应的特征向量相互正交,所以不同主元之间是不相关的,而且主元子空间与残差子空间也正交。
下面从数据矩阵整体的角度进一步说明PCA的一些原理,记数据矩阵为X=[x1,x2,...,xN]TRN×D,方便起见,假设X是已经中心化处理之后的数据,即X=XX¯,则协方差矩阵S=1NXTXS的特征值按照从大到小的顺序排列依次为λ1,λ2,,λM,,λD,对应的特征向量为u1,u2,,uM,,uD,记W=[u1,u2,,uM]P=[uM+1,,uD]Q=[W,P],且QT=Q1,根据特征值分解的原理可知
QTSQ=Q1SQ=diag{λ1,,λD}(3)
QTSQ=[WP]TS[WP]=[WTSWPTSWWTSPPTSP](4)
所以,WTSW=diag{λ1,,λM}
记投影后的低维矩阵为Z=[z1,z2,...,zN]TRN×M,则Z=XW,且Z¯=X¯W=0,那么投影后矩阵的协方差S~=1NZTZ=1NWTXTXW=WTSW=diag{λ1,,λM},也就是说,投影后矩阵各个维度之间不相关,所以,PCA不仅实现了降维的目的,还将数据变换到维度之间相互独立的主元子空间,同时最大程度保持数据的分布特征。

2. 最小投影误差法

最小投影误差比较容易理解,其原理是最小化数据重构误差。首先,假设{ui}是一组相互正交的单位向量,其中,i=1,...,D,即uTiuj=δij,(δij为Kronecker函数),因此,{ui}RD空间的一组基,该空间中的任意一点都可以表示为这组基的线性组合,如

xn=i=1Dαniui(5)
这相当于把原始坐标轴进行了一次旋转,新的坐标轴为{ui},坐标也由(xn1,xn2,...,xnD)T变为(αn1,αn2,...,αnD)T。作xnuj的内积可得αnj=xTnuj,因此,上式可写作
xn=i=1D(xTnui)ui(6)
我们的目标是用一个低维子空间的数据 znRM(M<D)来近似xn,不失一般性,我们选取前M个基向量作为M维子空间的基(此时还没考虑基向量的次序性),那么对xn的重构可表示为
x~n=i=1Mzniui+i=M+1Dbiui(7)
其中,所有数据的高维坐标分量bi均相同。这可以参考图1来理解,只考虑数据点向line B的投影,假设line B和line A就是u1u2,以line B和line A建立新的坐标系,所有的数据投影到一维空间line B,它们在line B上的坐标zni各不相同,将数据在二维空间重构,它们在line A上的坐标bi则均相同。我们需要选择合适的{ui}{zni}{bi},使得低维投影导致的数据误差最小,选取原始数据xn与重构数据x~n的均方误差作为目标函数,有
J=1Nn=1Nxnx~n2(8)
首先令Jzni的偏导为0,得到zni=xTnui,令Jbi的偏导为0,得到bi=x¯Tui。将式(6)和z,b的取值代入下式得
xnx~n=i=M+1D[(xnx¯)Tui]ui(9)
由此可知,重构误差位于与主元子空间正交的残差主空间,也就是说输入空间在主元子空间的投影有多个,正交投影的重构误差最小。
至此,所有的表达都基于一组基{ui},下面我们将重构误差写为这组基的函数
J=1Nn=1Ni=M+1D(xTnuix¯Tui)2=i=M+1DuTiSui(10)
接下来就要求使得J最小的ui,同时ui具有正交约束uTiui=1,这类似于最大方差法里一维投影的优化问题,易知,J的最小值为与主元子空间正交的输入数据协方差矩阵的特征向量所对应的特征值的和:
J=i=M+1Dλi
所以,J应取(DM)个最小特征值的和,构成主元子空间的特征向量就是M个最大特征值所对应的特征向量。
记数据矩阵为X=[x1,x2,...,xN]TRN×D,投影后的低维矩阵为Z=[z1,z2,...,zN]TRN×M,投影矩阵为W=[u1,u2,,uM],由于zni=xTnui=uTixn,那么,zn=[zn1,...,znM]T=[uT1xn,...,uTMxn]T=WTxn,所以,Z=[z1,...,zN]T=[WTx1,...,WTxN]T=XW
由以上分析可知,PCA的最大方差法和最小重构误差法是等价的,最大方差法从主元子空间的角度分析,最小重构误差法从残差子空间的角度分析,最终目标都是保留数据的主要特征。

3. 基于PCA的人脸识别

PCA是人脸识别领域的经典算法,其优点是运算速度快,因为PCA通过选取主元,将人脸图像降维,降维后的数据仍能保持人脸的主要特征,对降维后的数据进行识别,可大大降低计算量。基于PCA的人脸识别算法的主要步骤如下:
(1) 读取训练集图像的像素值,将每个图像的像素值转化为一个行向量,将所有的数据保存为一个二维矩阵,每一行为一个图像的数据;
(2) 数据中心化处理,将第一步得到的矩阵,每一列减去其所在列的均值,使整个数据集的均值为0;
(3) 计算协方差矩阵,协方差矩阵表示不同随机变量之间的相互关系,两个随机变量的协方差越大,表示其相关性越大;
(4) 选择主元子空间,将协方差矩阵的特征值按照从大到小的顺序排列,按照精度要求选择合适数量的前k个特征向量构成投影矩阵;
(5) 将训练集和测试集均进行降维,即投影到主元子空间;
(6) 人脸识别,将降维后的测试集的每一个图像与降维后的训练集的每一个图像进行匹配,将其分类到距离最小的训练集类别中。基于PCA人脸识别的前提是测试集的图像必须包含在训练集中,否则不能从训练集中识别测试集所对应的图像。
以下两组图为采用PCA进行人脸识别的两组结果,每组图的左侧为要识别的图像,即测试集,右侧为从训练集中识别出的图像,第一行为原始图像,第二行为重构后的图像,可以看出,重构后的图像仍能保持原始人脸图像的主要特征。

4. PCA方法的缺点

PCA作为经典方法在模式识别领域已经有了广泛的应用,但是也存在不可避免的缺点,总结如下:
(1) PCA是一个线性降维方法,对于非线性问题,PCA则无法发挥其作用;
(2) PCA需要选择主元个数,但是没有一个很好的界定准则来确定最佳主元个数;
(3) 多数情况下,难以解释PCA所保持的主元分量的意义;
(4) PCA将所有的样本作为一个整体对待,去寻找一个均方误差最小意义下的最优线性映射,而忽略了类别属性,而它所忽略的投影方向有可能刚好包含了重要的可分类信息,如下图所示,红色和蓝色的点为原数据,中间绿色的点为重构后的数据,由此可看出,这种情形下,主元方向不能保持数据的聚类信息。
图4

0 0