PCA算法及其应用(代码)

简介PCA(Principal Component Analysis)算法叫做主成分分析,在进行图像识别以及高维度数据降维处理中有很强的应用性,算法主要通过计算特征值最大的特征向量来对原始数据进行线性变换。 本文将从算法原理角度来分析PCA算法的可行性,文中将引入人脸识别的概念,从而介绍PCA在人脸识别1中的应用。
摘要由CSDN通过智能技术生成

简介

PCA(Principal Component Analysis)算法叫做主成分分析,在进行图像识别以及高维度数据降维处理中有很强的应用性,算法主要通过计算特征值最大的特征向量来对原始数据进行线性变换。
本文将从算法原理角度来分析PCA算法的可行性,文中将引入人脸识别的概念,从而介绍PCA在人脸识别1中的应用。本文将包含以下内容:

  1. 从向量空间角度来直观理解PCA算法
  2. PCA算法的具体步骤以及其中包含的小技巧
  3. PCA算法的实际应用及其部分代码和运行结果

文章中的代码以matlab为准,对于PCA的理解可能不具有较强数学严谨性,因为我习惯从直观(intuitive)的角度来理解这些算法。下面进入正文。

PCA算法理解

这一小节将引入人脸识别概念,再加上数学中线性代数的知识从而直观理解PCA算法。本文尽量简化数学概念,但还是需要读者有部分线性代数的知识,之后可能会另开一博文介绍向量空间(space)、子空间(subspace)和线性变换(linear transformation)等的概念,有兴趣可以学习可汗学院的线性代数公开课2。在介绍原理时,我尽量保证直观易懂。

人脸图像的识别

在进行人脸图像识别时,如果给我们一组正面对着我们的灰度人脸图片,每张图片大小一样,因为图片在存储时也就是一个像素点一个数,图片也就是一个矩阵。把这个矩阵都按照列首位相连组成一个向量,我们就可以得到一组人脸向量。那么接下来的叙述中,人脸矩阵就等于人脸向量,只不过一个是二维上的图片便于展示,另一个是一维上的数学便于运算。如图(1)左是一个人脸,而数据其实就是右边这样的矩阵,越接近1越白,越接近0越黑。

图1

因为这些人脸都是正面对着我们,最多有光照不同(比如同一张脸在侧面光照和正面光照时的人脸向量是不同的),所以脸都差不多,不会出现很奇怪的三角形,梯形的脸这种情况。所以,这些脸向量虽然看起来好像是每个向量的元素都可能有任意的(0-1)的任何数值,但其实这些数值之间是相关的。也就是说,人脸向量的各个元素之间其实是有关联的,不可能是相互独立出现的,那样就不能称之为人脸了(梵高的画里的人脸倒是可以任意的)。

这样看来,其实人脸并不是一个向量的完整空间,而是一个向量空间的子空间(subspace),什么叫子空间,又如何理解这样的子空间呢?

向量空间及子空间简介

这一节的知识是线性代数里面的知识,我会介绍线性空间、线性变换以及子空间的概念。需要有大一上过的线性代数(高等代数)知识作为基础,内容只做简单介绍,之后可能会开另一博文来详细介绍这部分的数学知识。如果不是很感兴趣,可以直接跳过该节,也不太影响对PCA的理解。

线性空间与线性变化

在二维坐标下,任意一个向量可以表示成两个基向量(basis)的和,所以坐标其实只是两个基向量之前的系数而已。例如,坐标 (3,4)T 其实可以表示成

[34]=3[10]+4[01]

的形式,所以虽然写的是 (3,4)T 但是我们默认是这两个标准基向量(standard basis)前的系数,这也是一个正交坐标系的表示。如果我们的基向量不是这样的呢?我们发现任意两个 线性无关(linearly independent)的向量都可以构成二维坐标下的一组基向量。所以我们可以通过某种变换来将某个坐标系变成另一个坐标系,也就是基向量改变了。这个二维坐标系就是一个二维空间(space),两个标准基向量就称为该坐标系下面的一组基。
一个向量可以用该空间下的一组基通过线性组合表示。这时候,线性组合的系数就称为坐标(coordinate)。
一个空间下,我们往往可以找到很多组基,这就说明对同一个向量,可以有不同的表示方法。同一向量在不同基下的坐标也不同,但是之间是存在某种关系的,比如 W=(w1,w2,...,wn) 是一组基向量,而 V=(v1,v2,...,vn) 是另一组基。一个向量 x W
  • 6
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值