基于PCA的人脸识别算法实现 下载本文

重庆邮电大学本科毕业设计(论文)

第四章 人脸识别

第一节 主成分分析基本理论

一、什么是主成分分析?

主成分分析为Principle component analysis[10,11,12]的中文翻译,其英文简写为PCA。它是一种非常流行和实用的数据分析技术,最重要的应用是对原有数据进行简化。主成分分析可以有效的找出数据中最“主要”的元素和结构,去除噪声和冗余,将原有的复杂数据降维处理,揭示出隐藏在复杂数据背后的简单结构。它的优点是简单,而且无参数限制,可以方便的应用与各个场合。因此应用极其广泛,从神经科学到计算机图形学都有它的身影。PCA被称为应用线形代数最有价值的结果之一。

本节下面的内容将开始讲解PCA的具体内容。具体安排为:首先将从一个简单的例子开始说明PCA应用的场合以及想法的由来,进行一个比较直观的解释;然后加入数学的严格推导,引入线形代数,进行问题的求解。随后将揭示PCA与SVD(Singular Value Decomposition)之间的联系以及如何将之应用于真实世界。最后将分析PCA理论模型的假设条件以及针对这些条件可能进行的改进。

二、例子

在实验科学中常常遇到的情况是,使用大量的变量代表可能变化的因素,例如光谱、电压、速度等等。在实际中,由于实验环境和观测手段的限制,实验数据往往变得极其的复杂,混乱,而且数据存在很大的冗余。如何对数据进行分析,取得隐藏在数据背后变量间的本质关系,是一个很困难的问题。在神经科学、气象学、海洋学等等学科实验中,假设的变量个数往往非常之多,但是真正的影响因素以及它们之间的关系可能又是非常之简单的。

下面的例子取自一个我们都非常熟悉的物理学中的实验。这个实验看上去似乎过于简单,但足以说明问题。如图表 4.1所示,这是一个理想弹簧运动规律的测定实验。假设球是连接在一个无质量无摩擦的弹簧之上,从平衡位置沿x轴拉开一定的距离然后释放。

- 20 -

重庆邮电大学本科毕业设计(论文)

图4.1理想弹簧运动规律模型

对于一个具有先验知识的实验者来说,这个实验是非常容易的。球的运动只是在x轴向上发生,只需要记录下x轴上的运动序列并加以分析即可。但是,在实际中,对于第一次做这个实验的实验者来说(这也是实验科学中最常遇到的一种情况),是无法进行这样的假设的。那么,一般来说,必须记录下球的三维位置(x0,y0,z0)。这一点可以通过在不同角度放置三个摄像机实现(如图4.1所示),假设以200Hz的频率拍摄画面就可以得到球在空间中的运动序列。但是,由于实验的限制,这三台摄像机的角度可能比较任意,并不是正交的。事实上,在真实世界中也并没有所谓的x,y,z轴,每个摄像机记录下的都是一幅二维的图像,有其自己的空间坐标系,球的空间位置是由一组二维坐标记录的:[(xA,yA)(xB,yB)(xC,yC)]。经过实验,系统的摄像机记录了几分钟球的位置序列。怎样从这些数据中得到球是沿着某个x轴运动的规律呢?怎样将实验数据中的冗余变量剔除,化归到这个潜在的x轴上呢?

在真实的实验场景中,数据的噪音是必须面对的因素。在这个实验中噪音可能来自空气、摩擦、摄像机的误差以及非理想化的弹簧等等。噪音使数据变得混乱,掩盖了变量间的真实关系。如何去除噪音是实验者每天都要思考和解决的问题。

上面提出的两个问题就是PCA方法要解决的目标。PCA主成分分析方法是解决此类问题的一个非常有效的工具。下文将结合以上的例子提出解决方法,逐步叙述PCA方法的思想和求解过程。

三、基变换

从线形代数的角度来看,PCA的目标就是使用另一组基去重新描述得到的数据空间。而新的基要能尽量揭示原有的数据间的关系。在这个例子中,沿着某x轴上的运动是最重要的。这个维度即最重要的“主元”。PCA 的目标就是找到这样的“主元”,最大程度的去除冗余和噪音的干扰。

- 21 -

重庆邮电大学本科毕业设计(论文)

1. 标准正交基

为了更有利于推导,将对上述例子的数据作出定义为:在实验过程中,在每一个采样时间点上, 每个摄像机记录一组二维坐标为(x,y),综合三台摄像机数据,在每一个时间点上得到的位置数据对应于一个六维列向量。

?xA??y??A????xB?X=?? (4.1) ?yB??xC????yC???如果以200Hz的频率拍摄10分钟,将得到10*60*200=120000个这样的向量数据。 ???X抽象一点来说,每一个采样点数据都是在m维向量空间(此例m=6)内的一个向量,

这里的m是涉及到的变量个数。由线形代数知识可以知道,在m维向量空间中的每一个向量

都是一组正交基的线形组合。最普通的一组正交基是标准正交基,实验采样的结果通常可以看作是在标准正交基下表示的。举例来说,上例中每个摄像机记录的数据坐标为(x,y),这样的基便是[(1,0),(0,1)]。那为什么不取????22??22??,?,??,???或是其他任意的基呢?原因是,这22??22????样的标准正交基反映了数据的采集方式。假设采集数据点是(2,2),一般并不会记录(22,0)。(在????22??22??,因为一般的观测者都是习惯于取摄像机的屏幕坐标,即向上和向,?,??,???基下)

??22??22??右的方向作为观测的基准。也就是说,标准正交基表现了数据观测的一般方式。

在线形代数中,这组基表示为行列向量线形无关的单位矩阵。

?b1??1?b??0B??2????????????bm??00?0?1?0???I (4.2)

?????0?1?

2. 基变换

从更严格的数学定义上来说,PCA回答的问题是:如何寻找到另一组正交基,它们是标准正交基的线性组合,而且能够最好的表示数据集?

在PCA方法中有一个很关键的假设:线性。这是一个非常好的假设,它使问题得到了很大程度的简化,具体表现为数据被限制在一个向量空间中,能被一组基表示,并且还隐含的假设了数据间的连续性关系。

- 22 -

重庆邮电大学本科毕业设计(论文)

这样一来数据就可以被表示为各种基的线性组合。令X表示原数据集。X是一个m*n的矩

???阵,它的每一个列向量都表示一个时间采样点上的数据X,在上面的例子中,m=6,n=120000。Y表示转换以后的新的数据集表示。P是他们之间的线性转换。它们间的转换关系为

有如下定义: pi表示P的行向量。 xi表示X的列向量。 yi表示Y的列向量。

PX?Y (4.3)

上式(3)在线性代数中,它有如下的含义:

P是从X到Y的转换矩阵。几何上来说,P对X进行旋转和拉伸得到Y。P的行向量,

(p1,p2,?,pm)是一组新的基,而Y是原数据X在这组新的基表示下得到的重新表示。 下面是对最后一个含义的说明:

?p1??x?x (4.4)PX??? n????1??pm???p1?x1?Y???????pm?x1?p1?xn??? ? (4.5)pmxn??

注意到Y的列向量:

?p1?xi?? (4.6)yi??? ????pm?xi??可见yi表示的是xi与P中对应列的点积,也就是相当于是在对应向量上的投影。所以,P的行向量事实上就是一组新的基。它对原数据X进行重新表示。

3. 问题

在线性的假设条件下,问题转化为寻找一组变换后的基,也就是P的行向量(p1,p2,?,pm),这些向量就是PCA中所谓的“主元”。问题转化为如下的形式:

怎样才能最好的表示原数据X? P的基怎样选择才是最好的?

解决问题的关键是如何体现数据的特征。那么,什么是数据的特征,如何体现呢?

- 23 -