在之前的博客  人脸识别经典算法一:特征脸方法(Eigenface)  里面介绍了特征脸方法的原理,但是并没有对它用到的理论基础PCA做介绍,现在做补充。请将这两篇博文结合起来阅读。以下内容大部分参考自斯坦福机器学习课程:http://cs229.stanford.edu/materials.html

假设我们有一个关于机动车属性的数据集{x(i);i=1,...,m}(m代表机动车的属性个数),例如最大速度,最大转弯半径等。假设x(i)本质上是n维的空间的一个元素,其中n<<m,但是n对我们来说是未知的。假设xi和xj分别代表车以英里和公里为单位的最大速度。显然这两个属性是冗余的,因为它们两个是有线性关系而且可以相互转化的。因此如果仅以xi和xj来考虑的话,这个数据集是属于m-1维而不是m维空间的,所以n=m-1。推广之,我们该用什么方法降低数据冗余性呢?

首先考虑一个例子,假设有一份对遥控直升机操作员的调查,用x(i)1(1是下标,原谅我这操蛋的排版吧)表示飞行员i的飞行技能,x(i)2表示飞行员i喜欢飞行的程度。通常遥控直升飞机是很难操作的,只有那些非常坚持而且真正喜欢驾驶的人才能熟练操作。所以这两个属性x(i)1和x(i)2相关性是非常强的。我们可以假设两者的关系是按正比关系变化的,如下图里的u1所示,数据散布在u1两侧是因为有少许噪声。

接下来就是如何计算u1的方向了。首先我们需要预处理数据。

1.令

2.用x(i)-μ替代x(i)

3.求

4.用x(i)j/σj替代x(i)j

步骤1-2其实是将数据集的均值归零,也就是只取数据的偏差部分,对于本身均值为零的数据可以忽略这两步。步骤3-4是按照每个属性的方差将数据重新度量,也可以理解为归一化。因为对于不同的属性(比如车的速度和车座数目)如果不归一化是不具有比较性的,两者不在一个量级上。如果将pca应用到图像上的话是不需要步骤3-4的,因为每个像素(相当于不同的属性)的取值范围都是一样的。

数据经过如上处理之后,接下来就是寻找数据大致的走向了。一种方法是找到一个单位向量u,使所有数据在u上的投影之和最大,当然数据并不是严格按照u的方向分布的,而是分布在其周围。考虑下图的数据分布(这些数据已经做了前期的预处理)。

下图中,星号代表数据,原点代表数据在单位向量u上的投影(|x||u|cosΘ)

从上图可以看到,投影得到的数据仍然有很大的方差,而且投影点离原点很远。如果采取与上图u垂直的方向,则可以得到下图:

这里得到的投影方差比较小,而且离原点也更近。

上述u的方向只是感性的选择出来的,为了将选择u的步骤正式确定下来,可以假定在给定单位向量u和数据点x的情况下,投影的长度是xTu。举个例子,如果x(i)是数据集中的一个点(上图中的一个星号),那它在u上的投影xTu就是圆点到原点的距离(是标量哦)。所以,为了最大化投影的方差,我们需要选择一个单位向量u来最大化下式:

明显,按照||u||2=1(确保u是单位向量)来最大化上式就是求的主特征向量。而其实是数据集的协方差矩阵。

做个总结,如果我们要找数据集分布的一维子空间(就是将m维的数据用一维数据来表示),我们要选择协方差矩阵的主特征向量。推广之,如果要找k维的子空间,那就应该选择协方差矩阵的k个特征向量u1,u2,...,uk。ui(i=1,2,...,k)就是用来表征数据集的新坐标系。

为了在u1,u2,...,uk的基础上表示x(i),我们只需要计算

其中x(i)是属于n维空间的向量,而y(i)给出了基于k维空间的表示。因此说,PCA是一个数据降维算法。u1,u2,...,uk称为数据的k个主成分。

介绍到这里,还需要注意一些为题:

1、为什么u要选择单位向量

选择单位向量是为了统一表示数据,不选成单位的也可以,但各个向量长度必须统一,比如统一长度为2、3等等。

2、各个u要相互正交

如果u不正交,那么在各个u上的投影将含有冗余成分

2、为什么要最大化投影的方差

举个例子,如果在某个u上的投影方差为0,那这个u显然无法表示原数据,降维就没有意义了。

转载 http://blog.csdn.net/smartempire/article/details/22938315

特征脸(Eigenface)理论基础-PCA(主成分分析法)的更多相关文章

  1. 【计算机视觉】特征脸EigenFace与PCA

    [计算机视觉]特征脸EigenFace与PCA 标签(空格分隔): [图像处理] 版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/lg1259156776/. 说 ...

  2. 用PCA(主成分分析法)进行信号滤波

    用PCA(主成分分析法)进行信号滤波 此文章从我之前的C博客上导入,代码什么的可以参考matlab官方帮助文档 现在网上大多是通过PCA对数据进行降维,其实PCA还有一个用处就是可以进行信号滤波.网上 ...

  3. 人脸识别经典算法一:特征脸方法(Eigenface)

    这篇文章是撸主要介绍人脸识别经典方法的第一篇,后续会有其他方法更新.特征脸方法基本是将人脸识别推向真正可用的第一种方法,了解一下还是很有必要的.特征脸用到的理论基础PCA在另一篇博客里:特征脸(Eig ...

  4. 【笔记】特征脸(PCA在人脸识别领域的应用)

    人脸识别与特征脸(简单介绍) 什么是特征脸 特征脸(Eigenface)是指用于机器视觉领域中的人脸识别问题的一组特征向量,该方法被认为是第一种有效的人脸识别方法. PCA的具体实现思想见 [笔记]主 ...

  5. 特征脸是怎么提取的之主成分分析法PCA

    机器学习笔记 多项式回归这一篇中,我们讲到了如何构造新的特征,相当于对样本数据进行升维. 那么相应的,我们肯定有数据的降维.那么现在思考两个问题 为什么需要降维 为什么可以降维 第一个问题很好理解,假 ...

  6. 【机器学习】主成分分析法 PCA (II)

    主成分分析法(PAC)的优化——选择主成分的数量 根据上一讲,我们知道协方差为① 而训练集的方差为②. 我们希望在方差尽可能小的情况下选择尽可能小的K值. 也就是说我们需要找到k值使得①/②的值尽可能 ...

  7. 降维之主成分分析法(PCA)

    一.主成分分析法的思想 我们在研究某些问题时,需要处理带有很多变量的数据,比如研究房价的影响因素,需要考虑的变量有物价水平.土地价格.利率.就业率.城市化率等.变量和数据很多,但是可能存在噪音和冗余, ...

  8. 【转载】主成分分析法(PCA)

    https://www.jisilu.cn/question/252942 进行维数约减(Dimensionality Reduction),目前最常用的算法是主成分分析法 (Principal Co ...

  9. 吴恩达机器学习笔记(八) —— 降维与主成分分析法(PCA)

    主要内容: 一.降维与PCA 二.PCA算法过程 三.PCA之恢复 四.如何选取维数K 五.PCA的作用与适用场合 一.降维与PCA 1.所谓降维,就是将数据由原来的n个特征(feature)缩减为k ...

随机推荐

  1. 10.11 安装pod

    原文地址:http://www.jianshu.com/p/5fc15906c53a  感谢. 更新升级10.11 cocoapods安装出问题最简单的解决方法 这是因为10.11把cocoapods ...

  2. Windows资源管理器 已停止工作

    解决方案:http://jingyan.baidu.com/article/5225f26b6aa830e6fa0908a8.html

  3. C++学习基础九——继承

    1.不同于Java中通过extends实现继承,C++是通过:实现的. 2.C++中同样包含public,private,protected三个关键字: public关键字表示在任意其他类中可调用该成 ...

  4. linux基础知识(四)

    •查看ip地址,ifconfig命令 •重启.启动.停止网络命令 •service network restart/start/stop   •VMnet0:用于虚拟桥接网络下的虚拟交换机 •VMne ...

  5. mysql修改列名字段类型

    mysql> alter table lesson change title title varchar(100) charset utf8;

  6. 第一零二天上课 PHP TP框架 引入文件路径问题和调用验证码的方式

    外部文件引入到视图模板的方式       1,将外部文件放在Public文件夹下,用load标签引入       2,在模板出书写引入代码(方法有很多,只有以下方法不容易出问题) <load h ...

  7. 京东B2B的4种供销模式

    B2B的4种供销模式,以京东商城为例: FBP     京东给商家一个独立操作的后台, 商家五地入库(北京,上海,广州,成都,武汉),从仓储 到配送 到客服都是京东来操作, 京东本身自营的产品所有能享 ...

  8. [转]df命令

    linux中df命令参数功能:检查文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息. 语法:df [选项] 该命令各个选项的含义如下: -a 显示所有文件 ...

  9. poj 2337 有向图输出欧拉路径

    Catenyms Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10186   Accepted: 2650 Descrip ...

  10. Bash Shell实用快捷键

    Ctrl-D 相当于Del键,即删除光标所在处的字符 Ctrl-E 相当于End键,即将光标移动到本行末尾 Ctrl-K 用于删除从光标处开始到结尾处的所有字符 Ctrl-L 清屏,相当于clear命 ...