ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:498.43KB ,
资源ID:12672414      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12672414.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(PCA方法详解和人脸识别应用实例.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

PCA方法详解和人脸识别应用实例.docx

1、PCA方法详解和人脸识别应用实例第一节 主成分分析基本理论一、什么是主成分分析?主成分分析为Principle component analysis10,11,12的中文翻译,其英文简写为PCA。它是一种非常流行和实用的数据分析技术,最重要的应用是对原有数据进行简化。主成分分析可以有效的找出数据中最“主要”的元素和结构,去除噪声和冗余,将原有的复杂数据降维处理,揭示出隐藏在复杂数据背后的简单结构。它的优点是简单,而且无参数限制,可以方便的应用与各个场合。因此应用极其广泛,从神经科学到计算机图形学都有它的身影。PCA被称为应用线形代数最有价值的结果之一。本节下面的内容将开始讲解PCA的具体内容。

2、具体安排为:首先将从一个简单的例子开始说明PCA应用的场合以及想法的由来,进行一个比较直观的解释;然后加入数学的严格推导,引入线形代数,进行问题的求解。随后将揭示PCA与SVD(Singular Value Decomposition)之间的联系以及如何将之应用于真实世界。最后将分析PCA理论模型的假设条件以及针对这些条件可能进行的改进。二、例子 在实验科学中常常遇到的情况是,使用大量的变量代表可能变化的因素,例如光谱、电压、速度等等。在实际中,由于实验环境和观测手段的限制,实验数据往往变得极其的复杂,混乱,而且数据存在很大的冗余。如何对数据进行分析,取得隐藏在数据背后变量间的本质关系,是一个

3、很困难的问题。在神经科学、气象学、海洋学等等学科实验中,假设的变量个数往往非常之多,但是真正的影响因素以及它们之间的关系可能又是非常之简单的。下面的例子取自一个我们都非常熟悉的物理学中的实验。这个实验看上去似乎过于简单,但足以说明问题。如图表 4.1所示,这是一个理想弹簧运动规律的测定实验。假设球是连接在一个无质量无摩擦的弹簧之上,从平衡位置沿x轴拉开一定的距离然后释放。图4.1理想弹簧运动规律模型对于一个具有先验知识的实验者来说,这个实验是非常容易的。球的运动只是在x轴向上发生,只需要记录下x轴上的运动序列并加以分析即可。但是,在实际中,对于第一次做这个实验的实验者来说(这也是实验科学中最常

4、遇到的一种情况),是无法进行这样的假设的。那么,一般来说,必须记录下球的三维位置(x0,y0,z0)。这一点可以通过在不同角度放置三个摄像机实现(如图4.1所示),假设以200Hz的频率拍摄画面就可以得到球在空间中的运动序列。但是,由于实验的限制,这三台摄像机的角度可能比较任意,并不是正交的。事实上,在真实世界中也并没有所谓的x,y,z轴,每个摄像机记录下的都是一幅二维的图像,有其自己的空间坐标系,球的空间位置是由一组二维坐标记录的:(xA,yA)(xB,yB)(xC,yC)。经过实验,系统的摄像机记录了几分钟球的位置序列。怎样从这些数据中得到球是沿着某个x轴运动的规律呢?怎样将实验数据中的冗

5、余变量剔除,化归到这个潜在的x轴上呢?在真实的实验场景中,数据的噪音是必须面对的因素。在这个实验中噪音可能来自空气、摩擦、摄像机的误差以及非理想化的弹簧等等。噪音使数据变得混乱,掩盖了变量间的真实关系。如何去除噪音是实验者每天都要思考和解决的问题。上面提出的两个问题就是PCA方法要解决的目标。PCA主成分分析方法是解决此类问题的一个非常有效的工具。下文将结合以上的例子提出解决方法,逐步叙述PCA方法的思想和求解过程。三、基变换从线形代数的角度来看,PCA的目标就是使用另一组基去重新描述得到的数据空间。而新的基要能尽量揭示原有的数据间的关系。在这个例子中,沿着某x轴上的运动是最重要的。这个维度即

6、最重要的“主元”。PCA 的目标就是找到这样的“主元”,最大程度的去除冗余和噪音的干扰。1.标准正交基为了更有利于推导,将对上述例子的数据作出定义为:在实验过程中,在每一个采样时间点上, 每个摄像机记录一组二维坐标为(x,y),综合三台摄像机数据,在每一个时间点上得到的位置数据对应于一个六维列向量。 (4.1)如果以200Hz的频率拍摄10分钟,将得到10*60*200=120000个这样的向量数据。抽象一点来说,每一个采样点数据都是在m维向量空间(此例m=6)内的一个向量,这里的m是涉及到的变量个数。由线形代数知识可以知道,在m维向量空间中的每一个向量都是一组正交基的线形组合。最普通的一组正

7、交基是标准正交基,实验采样的结果通常可以看作是在标准正交基下表示的。举例来说,上例中每个摄像机记录的数据坐标为(x,y),这样的基便是(1,0),(0,1)。那为什么不取或是其他任意的基呢?原因是,这样的标准正交基反映了数据的采集方式。假设采集数据点是(2,2),一般并不会记录。(在基下),因为一般的观测者都是习惯于取摄像机的屏幕坐标,即向上和向右的方向作为观测的基准。也就是说,标准正交基表现了数据观测的一般方式。在线形代数中,这组基表示为行列向量线形无关的单位矩阵。 (4.2)2.基变换从更严格的数学定义上来说,PCA回答的问题是:如何寻找到另一组正交基,它们是标准正交基的线性组合,而且能够

8、最好的表示数据集?在PCA方法中有一个很关键的假设:线性。这是一个非常好的假设,它使问题得到了很大程度的简化,具体表现为数据被限制在一个向量空间中,能被一组基表示,并且还隐含的假设了数据间的连续性关系。这样一来数据就可以被表示为各种基的线性组合。令X表示原数据集。X是一个m*n的矩阵,它的每一个列向量都表示一个时间采样点上的数据,在上面的例子中,m=6,n=120000。Y表示转换以后的新的数据集表示。P是他们之间的线性转换。它们间的转换关系为 (4.3)有如下定义:pi表示P的行向量。xi表示X的列向量。yi表示Y的列向量。 上式(3)在线性代数中,它有如下的含义: P是从X到Y的转换矩阵。

9、几何上来说,P对X进行旋转和拉伸得到Y。P的行向量, (p1,p2,pm)是一组新的基,而Y是原数据X在这组新的基表示下得到的重新表示。 下面是对最后一个含义的说明: (4.4) (4.5)注意到Y的列向量: (4.6)可见yi表示的是xi与P中对应列的点积,也就是相当于是在对应向量上的投影。所以,P的行向量事实上就是一组新的基。它对原数据X进行重新表示。3.问题在线性的假设条件下,问题转化为寻找一组变换后的基,也就是P的行向量(p1,p2,pm),这些向量就是PCA中所谓的“主元”。问题转化为如下的形式:怎样才能最好的表示原数据X?P的基怎样选择才是最好的?解决问题的关键是如何体现数据的特征

10、。那么,什么是数据的特征,如何体现呢?四、方差“最好的表示”是什么意思呢?下面将给出一个较为直观的解释,但同时会增加一些额外的假设条件。在线性系统中,所谓的“混乱数据”通常包含以下三种成分:噪音,旋转以及冗余。1.噪音和旋转噪音对数据的影响是巨大的,如果不能对噪音进行区分,就不可能抽取到数据中有用的信息。噪音的衡量有多种方式,最常见的定义是信噪比SNR(signal-to-noise ratio),或是方差比: (4.7) (4.8)比较大的信噪比表示数据的准确度高,而信噪比低则说明数据中的噪音成分比较多。那么怎样区分什么是信号,什么是噪音呢?这里假设,变换较大的信息被认为是信号,变换较小的则

11、是噪音。事实上,这个假设等价于一个低通的滤波器,是一种标准的除噪准则。而变换的大小则是由方差来描述的。它表示了采样点在平均值两侧的分布,对应于图表 4.2(a)就是采样点云的“胖瘦”。显然的,方差较大,也就是较“宽”较“胖”的分布,表示了采样点的主要分布趋势,是主信号或主要分量;而方差较小的分布则被认 为是噪音或次要分量。 (a) (b)图 4.2 (a)摄像机A的采集数据。图中黑色垂直直线表示一组正交基的方向。是采样点云在长线方向上分布的的方差,而是数据点在短线方向上分布的方差。(b)对P的基向量进行旋转使SNR和方差最大。假设摄像机A拍摄到的数据如表4.2(a)所示,圆圈代表采样点,因为运

12、动理论上是只存在于一条直线上,所以偏离直线的分布都属于噪音。此时SNR描述的就是采样点云在某对垂直方向上的概率分布的比值。那么,最大限度的揭示原数据的结构和关系,找出潜在的最优的x轴,事实上等价寻找一对空间内的垂直直线(图中黑线表示,也对应于此空间的一组基),使得信噪比尽可能大的方向。容易看出,本例中潜在的x轴就是图上的较长黑线方向。那么怎样寻找这样一组方向呢?直接的想法是对基向量进行旋转。如图表4.2(b)所示,随着这对直线的转动SNR以及方差的变化情况。对应于SNR最大值的一组基p,就是最优的“主元”方向。2.冗余在实验中,经常会出现由于我们先验知识的不足而引入了一些不必要的变量。这样可能

13、会是两种情况:1)该变量对结果没有影响;2)该变量可以用其它变量表示,从而造成数据冗余。 (a) (b) (c)图4.3可能冗余数据的频谱图表示。r1和r2分别表示两个不同的观测变量。(比如例子中的xA,yB)。最佳拟合曲线r2=kr1用虚线表示。如图表 3所示,它揭示了两个观测变量之间的关系。4.3(a)图所示的情况是低冗余的,从统计学上说,这两个观测变量是相互独立的,它们之间的信息没有冗余。而相反的极端情况如4.3(c),r1和r2高度相关,r2完全可以用r1表示。一般来说,这种情况发生可能是因为摄像机A和摄像机B放置的位置太近或是数据被重复记录了,也可能是由于实验设计的不合理所造成的。那

14、么对于观测者而言,这个变量的观测数据就是完全冗余的,应当去除,只用一个变量就可以表示。这也就是PCA中“降维”思想的本源。3.协方差矩阵对于上面的简单情况,可以通过简单的线性拟合的方法来判断各观测变量之间是否出现冗余的情况,而对于复杂的情况,需要借助协方差13来进行衡量和判断: (4.9)A,B分别表示不同的观测变量所记录的一组值,在统计学中,由协方差的性质可以得到:,且当且仅当观测变量A,B相互独立。,当A=B等价的,将A,B写成行向量的形式:,协方差可以表示为 (4.10)那么,对于一组具有m个观测变量,n个采样时间点的采样数据X,将每个观测变量的值写为行向量,可以得到一个m*n的矩阵:

15、(4.11)接下来定义协方差矩阵如下: (4.12) (4.13)容易发现协方差矩阵具有如下性质:CX是一个m*m的平方对称矩阵。 Cx对角线上的元素是对应的观测变量的方差。 非对角线上的元素是对应的观测变量之间的协方差。协方差矩阵CX包含了所有观测变量之间的相关性度量。更重要的是,根据前两部分的说明,这些相关性度量反映了数据的噪音和冗余的程度。在对角线上的元素越大,表明信号越强,变量的重要性越高;元素越小则表明可能是存在的噪音或是次要变量。在非对角线上的元素大小则对应于相关观测变量对之间冗余程度的大小。一般情况下,初始数据的协方差矩阵总是不太好的,表现为信噪比不高且变量间相关度大。PCA的目

16、标就是通过基变换对协方差矩阵进行优化,找到相关“主元”。那么,如何进行优化?矩阵的那些性质是需要注意的呢?4.协防差矩阵的对角化总结上面的部分可以发现主元分析以及协方差矩阵优化的原则是:1)最小化变量冗余即对应于协方差矩阵的非对角元素要尽量小;2)最大化信号即对应于要使协方差矩阵的对角线上的元素尽可能的大。因为协方差矩阵的每一项都是正值,最小值为0,所以优化的目标矩阵CY的非对角元素应该都是0,对应于冗余最小。所以优化的目标矩阵CY应该是一个对角阵。即只有对角线上的元素可能是非零值。同时,PCA假设P所对应的一组变换基必须是标准正交的,而优化矩阵CY对角线上的元素越大,就说明信号的成分越大,换

17、句话就是对应于越重要的“主元”。对于协方差矩阵进行对角化的方法很多。根据上面的分析,最简单最直接的算法就是在多维空间内进行搜索。和图表4.2(a)的例子中旋转的方法类似:在m维空间中进行遍历,找到一个方差最大的向量,令作p1。在与p1垂直的向量空间中进行遍历,找出次大的方差对应的向量记作p2对以上过程循环,直到找出全部m的向量。它们生成的顺序也就是“主元”的排序。这个理论上成立的算法说明了PCA的主要思想和过程。在这中间,牵涉到两个重要的特性:1)转换基是一组标准正交基。这给PCA的求解带来了很大的好处,它可以运用线性代数的相关理论进行快速有效的分解。这些方法将在后面提到。2)在PCA的过程中

18、,可以同时得到新的基向量所对应的“主元排序”,利用这个重要性排序可以方便的对数据进行简化处理或是压缩。五、PCA求解:特征根分解在线形代数中,PCA问题可以描述成以下形式:寻找一组正交基组成的矩阵P,有Y=PX,使得是对角阵。则P的行向量(也就是一 组正交基),就是数据X的主元向量。对进行推导: (4.14) (4.15)定义,则A是一个对称阵。对A进行对角化求取特征向量得: (4.16)则D是一个对角阵而E则是对称阵A的特征向量排成的矩阵。这里要提出的一点是,A是一个m*m的矩阵,而它将有p(p=m)个特征向量。其中p是矩阵A的的秩。如果p=m,则A即为退化阵。此时分解出的特征向量不能覆盖整

19、个m空间。此时只需要在保证基的正交性的前提下,在剩余的空间中任意取得m-p维正交向量填充E的空格即可。它们将不对结果造成影响。因为此时对应于这些特征向量的特征值,也就是方差值为零求出特征向量矩阵后我们取,则,由线形代数知识可知矩阵P有性质,从而进行如下计算: (4.17) (4.18)可知此时的P就是我们需要求得变换基。至此我们可以得到PCA的结果:X的主元即是的特征向量也就是矩阵P的行向量。矩阵对角线上第i个元素是数据X在方向的方差。我们可以得到PCA求解的一般步骤:采集数据形成m*n的矩阵。m为观测变量个数,n为采样点个数。在每个观测变量(矩阵行向量)上减去该观测变量的平均值得到矩阵X。对

20、进行特征分解,求取特征向量以及所对应的特征根。六、PCA的假设PCA的模型中存在诸多的假设条件,决定了它存在一定的限制,在有些场合可能会造成效果不好甚至失效。PCA的假设条件包括:1.线形性假设如同本节开始的例子,PCA的内部模型是线性的。这也就决定了它能进行的主元分析之间的关系也是线性的。现在比较流行的kernel-PCA的一类方法就是使用非线性的权值对原有PCA技术的拓展。2.使用中值和方差进行充分统计使用中值和方差进行充分的概率分布描述的模型只限于指数型概率分布模型。(例如高斯分布),也就是说,如果我们考察的数据的概率分布并不满足高斯分布或是指数型的概率分布,那么PCA将会失效。在这种模

21、型下,不能使用方差和协方差来很好的描述噪音和冗余,对转换之后的协方差矩阵并不能得到很合适的结果。不过,所幸的是,根据中央极限定理,现实生活中所遇到的大部分采样数据的概率分布都是遵从高斯分布的。所以PCA仍然是一个使用于绝大部分领域的稳定且有效的算法。3.大方差向量具有较大重要性PCA方法隐含了这样的假设:数据本身具有较高的信噪比,所以具有最高方差的一维向量就可以被看作是主元,而方差较小的变化则被认为是噪音。这是由于低通滤波器的选择决定的。4.主元正交PCA方法假设主元向量之间都是正交的,从而可以利用线形代数的一系列有效的数学工具进行求解,大大提高了效率和应用的范围。七、总结:PCA技术的一大好

22、处是对数据进行降维的处理。我们可以对新求出的“主元”向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到降维从而简化模型或是对数据进行压缩的效果。同时最大程度的保持了原有数据的信息。在前文的例子中,经过PCA处理后的数据只剩下了一维,也就是弹簧运动的那一维,从而去除了冗余的变量,揭示了实验数据背后的物理原理。PCA技术的一个很大的优点是,它是完全无参数限制的。在PCA的计算过程中完全不需要人为的设定参数或是根据任何经验模型对计算进行干预,最后的结果只与数据相关,与用户是独立的。但是,这一点同时也可以看作是缺点。如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,

23、却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高。图4.4 黑点表示采集数据,排列成转盘的形状。容易想象,该数据的主元是或是旋转角。如图表4.4中的例子,PCA找出的主元将是。但是这显然不是最优和最简化的主元。之间存在着非线性的关系。根据先验的知识可知旋转角是最优的主元。则在这种情况下,PCA就会失效。但是,如果加入先验的知识,对数据进行某种划归,就可以将数据转化为以为线性的空间中。这类根据先验知识对数据预先进行非线性转换的方法就成为kernel-PCA,它扩展了PCA能够处理的问题的范围,又可以结合一些先验约束,是比较流行的方法。有时数据的分布并不是满足高斯分布。

24、如图表 5所示,在非高斯分布的情况下,PCA方法得出的主元可能并不是最优的。在寻找主元时不能将方差作为衡量重要性的标准。要根据数据的分布情况选择合适的描述完全分布的变量,然后根据概率分布式来计算两个向量上数据分布的相关性。等价的,保持主元间的正交假设,寻找的主元同样要使这一类方法被称为独立主元分解(ICA)。图4.5 数据的分布并不满足高斯分布,呈现明显的十字星状。这种情况下,方差最大的方向并不最优主元方向。PCA方法和线形代数中的奇异值分解(SVD)方法有内在的联系,一定意义上来说,PCA的解法是SVD的一种变形和弱化。对于m*n的矩阵X,通过奇异值分解可以直接得到如下形式: (4.19)其

25、中U是一个m*m的矩阵,V是一个n*n的矩阵,而是m*m的对角阵。形式如下: (4.20)其中,是原矩阵的奇异值。由简单推导可知,如果对奇异值分解加以约束:U的向量必须正交,则矩阵U即为PCA的特征值分解中的E,则说明PCA并不一定需要求取,也可以直接对原数据矩阵X进行SVD奇异值分解即可得到特征向量矩阵,也就是主元向量。第二节 基于PCA人脸识别算法的实现主成分分析为一种统计学中特征提取方法,在实际中应用的非常广泛。PCA是通过提取原始数据的主元来减少数据的冗余,使数据在低维度的空间中被处理,同时它还能很好保持了原始数据的绝大部分信息,有效的解决了由于空间维数过高而导致的一系列问题。如下将详

26、细介绍如何使用PCA算法进行人脸识别。图图4.6 基于PCA的人脸识别算法实现原理图一、创建数据库在本环节中主要分为两个阶段,分别为:1.读入系统人脸数据库,并将图像变换为相应的灰度图像 (a) (b)图4.7 (a)图像为系统人脸数据库中的原始人脸图像,(b)图像为经过灰度转换后的人脸图像2.同时将变换后的二维人脸灰度图像变换为一维人脸向量矩阵一个大小为M*N的二维人脸图像可以看成长度为MN的人脸图像列向量。为了将二维人脸图像变为以为列向量,我们采取的措施为:首先计算出人脸图像的大小,然后将人脸图像经行转置,最后按列依次取出取出所有灰度值形成大小为MN的一维向量,其实整个阶段的效果相当于将图

27、像的灰度值按行取出依次连接成一维图像向量。本环节完成后将会产生由一维图像向量组成的矩阵T。二、计算特征脸本环节主要包括三个阶段,分别为:1.对图像矩阵T进行规范化首先计算出图像矩阵中一维列向量的平均值m,然后对图像矩阵的每一列都减去平均值形成规范化的图像矩阵A。 (a) (b)图4.8 左图为人脸原始图像,右图为人脸规范化后的图像2.计算特征脸人脸训练图像的协方差矩阵为,其中人脸训练样本为,维度为,则协方差矩阵C的维度为。这就出现问题,C的维度过高,在实际中直接计算它的特征值和特征向量非常困难。因此,本文使用奇异值分解定理来解决这个问题。奇异值分解定理:假设B为维秩为p的矩阵,则存在两个正交矩

28、阵和一个对角矩阵:正交矩阵为 (4.23) (4.24)其中 (4.25) (4.26)对角矩阵为 则可以得到,而且和有共同的非零特征值,和分别为和对应特征值的正交特征向量。由上述定理可以得到 (4.27)则可以由协方差矩阵,构造出矩阵,从而容易求出L的特征值和特征向量,再根据上述(4-27)式可以求得协方差C的特征值和特征向量。实际上我们并不需要协方差所有的特征值和特征向量, m个(mM,M为特征值的数目)个特征值足够用于人脸识别。所以,实际操作中,只取L的前m个最大特征值对应的特征向量用于计算特征脸。在本环节,本文通过直接构造,来计算出L的特征值,再挑选L特征值大于100的作为C的特征值,

29、最后通过C的特征值计算出它的特征向量,从而形成特征脸。图4.9 特征脸三、人脸识别人脸识别过程分为训练和测试两个阶段。在训练阶段,主要是提取数据库人脸图像的特征,并形成特征库。在测试阶段,主要是提取待识别图像的特征和计算提取的特征和特征库中特征之间的距离测度,并输出最小距离测度对应的人脸图像作为结果。 具体步骤如下:1.训练阶段将规范化的图像矩阵A中的每一列向量投影到特征子空间,形成特征库。2.测试阶段假设测试人脸图像为Y,在人脸识别前,先对其进行标准化,即。把标准化后的人脸图像向特征子空间进行投影得到向量。本文使用最近领法分类器欧几里德距离14,15进行判决分类。测试图像与每个人脸图像间的距离为 (k=1,2,P),并将最小距离对应的训练图像作为测试图像的匹配图像。图4.10 人脸姿态发生变化下的人脸识别结果图4.11 人脸表情变化下的人脸识别结果第三节 本章小结在本章主要讲解PCA基本理论和PCA在人脸识别中应用。在第一节中主要讲解了PCA基础理论,使用PCA进行数据分析的优点和PCA方法在计算机视觉领域的应用。在第二节中主要讲解了如何进行基于PCA的人脸识别。 (注:可编辑下载,若有不当之处,请指正,谢谢!)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1