摘 要 PCA是一种掌握事物主要矛盾的统计分析方法,它可以从多元事物中解析出主要影响因素,揭示事物的本质,简化复杂的问题,对于某些复杂数据就可应用主成分分析法对其进行简化。计算主成分的目的是将高维数据投影到较低维空间。文中介绍了PCA算法的基本概念和基本原理,利用算法在降维和特征提取方面的有效性,结合人脸识别的实例进行详细的阐述。最后,文中还指出了PCA的优缺点,以及应用。
关键词 PCA;降维;特征提取;人脸识别
1 引言
PCA是Principal component analysis的缩写,中文翻译为主成分分析,是一种常用的数据分析方法。它是研究如何通过原来变量的少数几个线性组合来解释随机向量的方差-协方差结构,是数据压缩和特征提取中一种多维向量的统计分析方法。这种方法可以有效的找出数据中最“主要”的元素和结构,去除噪音[]和冗余,将原有的复杂数据降维,揭示隐藏在复杂数据背后的简单结构。它的优点是简单,而且无参数限制,可以方便的应用与各个场合。因此应用及其广泛,从神经科学到计算机图形学都有它的用武之地,被誉为线性代数最有价值的结果之一。
2 PCA算法
2.1 PCA算法原理
PCA算法的基本思想是设法将原来众多具有一定相关性的指标(比如p个指标),重新组合成一组新的互相无关的综合指标来来代替原来的指标。通常数学上的处理就是将原来p个指标做线性组合,作为新的综合指标。典型的做法就是用F1(选取的第一个线性组合,即第一个综合指标)的方差来表达,即Var(F1)越大,表示F1包含的信息越多。因此在所有的线性组合中选取的F1应该是方差最大的,故称F1为第一主成分。如果第一主成分不足以代表原来p个指标的信息,再考虑选取F2,即选第二个线性组合,为了有效的反映原来的信息,F1已有的信息就不需要再出现在F2中,即cov(F1,F2)=0,则称F2是第二主成分,以此类推可以构造出第三,第四,......,第p个主成分。
2.2 算法步骤
输入:样本集
过程:
1. 数据中心化去均值:
2. 计算样本的协方差矩阵
协方差:
3. 对协方差矩阵做特征分解,求特征值及特征向量
4. 取最大的d个特征值所对应的特征向量
贡献率:
累计贡献率:
输出:投影矩阵
3 人脸识别
3.1 问题描述
人脸识别技术是基于人的脸部特征,对输入的人脸图象或者视频流。首先判断其是否存在人脸,如果存在人脸,则进一步的给出每个脸的位置、大小和各个主要面部器官的位置信息。并依据这些信息,进一步提取每个人脸中所蕴涵的身份特征,并将其与已知的人脸进行对比,从而识别每个人脸的身份。该项目是对ORL人脸库进行训练和测试,其中库中包含40个人,每人10张图片,前5张作为训练集后5张作为测试集,项目最后要求输出识别率、平均脸、前n个特征值占总的能量的百分比以及第n个特征值占总的能量的百分比。
3.2 数据描述
ORL人脸库:由剑桥大学AT&T实验室创建,一共收录了四十人的图像,其中有五组女性图像,每组图像为十张,分别为每个人在不同条件下拍摄的,而且每张图上人脸的角度也发生了变化。以下是ORL库中两组典型图像:
图3-2-1 ORL库中两组典型图像
3.3 具体步骤
训练阶段
第一步:训练集有200个样本,由灰度图组成,每个样本大小为M*N,写出训练样本矩阵:,其中向量是由第i个图像的每一列堆叠成的MN维列向量,即把矩阵向量化。
第二步:计算平均脸——计算训练图片的平均脸:
第三步:计算差值脸——计算每一张人脸与平均脸的差值:
第四步:构建协方差矩阵:
第五步:求协方差矩阵的特征值和特征向量,构造特征脸空间——根据特征值的贡献率选取前k个最大特征值及其对应的特征向量,即:,则原协方差矩阵的特征向量为:,特征脸空间为:
第六步:将每一幅人脸与平均脸的差值脸矢量投影到“特征脸”空间。
识别阶段
第一步:将待识别的人脸图像与平均脸的差值脸投影到特征空间,得到其特征向量。
第二步:定义阈值
第三步:采用欧式距离计算与每个人脸的距离
如下图1表示PCA人脸识别的流程图:
4 优缺点
4.1 算法优点
1. 可以对数据进行降维处理;
2. 完全无参数限制,最后的结果只与数据相关,与用户是独立的;
3. 各主成分之间正交且不相关,因此可以消除各评估指标之间的相关性;
4. 通过降维可以减少计算工作量;
4.2 算法缺点
1. 完全无参数限制:如果用户对观测的对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高;
2. PCA将所有的样本(特征向量集合)作为一个整体对待,去寻找一个均方误差最小意义下的最优线性映射投影,而忽略了类别属性,而它所忽略的投影方向有可能刚好包含了重要的可分性信息;