在之前的博客 人脸识别经典算法一:特征脸方法(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显然无法表示原数据,降维就没有意义了。
分享到:
相关推荐
特征脸(Eigenface)方法在人脸识别领域广泛应用,其理论基础正是PCA。PCA通过转换原始数据,找到一组新的坐标轴(主成分),使得数据在新坐标轴上的方差最大化,从而保留最重要的信息,同时减少数据的冗余。 在PCA...
补充理论:特征脸(Eigenface)理论基础-PCA(主成分分析法) 特征脸方法基于主成分分析法(PCA)理论,通过将高维数据降低到低维特征空间,来描述人脸的特征。PCA理论的基础是通过将原始数据进行正交变换,来得到...
基于主成分分析法的人脸识别技术通过降维和特征提取优化了识别过程,提高了识别效率和准确性。PCA和K-L变换在其中起到了核心作用,而2-范数距离分类器则确保了有效的分类。随着技术的不断发展,人脸识别将继续在安全...
特征脸用到的理论基础PCA在另一篇博客里:特征脸(Eigenface)理论基础-PCA(主成分分析法) 。本文的参考资料附在最后了^_^ 步骤一:获取包含M张人脸图像的集合S。在我们的例子里有25张人脸图像(虽然是25个不同人的...
PCA(主成分分析)是一种广泛应用于数据降维和特征提取的统计方法,尤其在图像处理领域,如人脸识别中。PCA通过找到数据集的主轴,将原始高维度数据转换为一组新的正交坐标,这些坐标是原始数据方差最大的方向。这样...
Eigenface是早期的人脸识别方法之一,它通过主成分分析(PCA)来降维和表示人脸图像。"face_recognition.rar"就是一个使用eigenface算法的Matlab程序,适用于AT&T数据库,展示了PCA在人脸识别中的应用。 【其他人脸...
##### 2.2 基于主成分分析法的人脸识别 基于PCA的人脸识别主要包含以下几个步骤: - **读入人脸库**:加载包含多个人脸的图像集合。 - **计算K-L变换的生成矩阵**:通过对图像集进行PCA处理,计算出用于投影的特征...
总结来说,PCA人脸识别是一种通过主成分分析提取人脸特征,并利用这些特征进行人脸识别的技术。这种方法在减少计算复杂性的同时,能够有效地处理光照、姿态变化等因素,是生物识别领域的一个重要工具。
1. **Eigenface原理**:Eigenface是一种基于主成分分析(PCA)的面部识别技术。PCA通过降维处理,提取人脸图像的主要特征,即“特征脸”(Eigenfaces),这些特征脸能够最大化地保留原始数据集的信息。 2. **数据...
特征脸法是一种基于主成分分析(PCA)的人脸识别技术。该方法的核心思想是通过分析人脸图像的全局结构信息来进行识别。具体步骤如下: 1. **计算特征脸**:设有人脸图像库中的图像数量为N幅,每一幅图像可以表示为...
本征脸是一种基于统计的人脸识别技术,起源于主成分分析(PCA)。PCA用于降维,通过找到数据集的主要成分来压缩高维数据。在人脸识别中,它将人脸图像转换为一组线性组合,这些组合称为“本征脸”。本征脸是原始人...
特征脸法(Eigenface)是人脸识别的一种常用方法,源于主成分分析(PCA)。该方法认为包含人脸的图像全局结构信息对于识别至关重要。将图像视为随机向量,通过PCA找到具有人脸形状特征的基,即特征脸。通过这些基的...
- 特征子脸法(Eigenface Method):利用主成分分析(PCA)提取面部的特征子空间,通过计算待识别图像在该子空间的投影与已知人脸库中的脸孔进行匹配。 2. 面貌跟踪(Face Tracking) 在面貌检测的基础上,面貌跟踪...
特征脸方法是人脸识别领域的一个经典算法,它基于主成分分析(PCA)来提取人脸图像的特征。PCA通过对高维数据进行降维,从而保留数据的主要信息,减少计算复杂性。在人脸识别中,这种方法可以捕捉人脸图像间的共性和...
在该课程设计中,学生需要掌握MATLAB的使用,通过预处理人脸图像,使用主成分分析(PCA)算法进行特征提取,然后进行人脸识别和匹配。以下是该设计的主要步骤和知识点: 1. **人脸识别基础**: - **人脸检测**:...
本文介绍了一种基于主成分分析(Principal Component Analysis,简称PCA)重建方法的表情识别新方法,并通过实验证明了其有效性。 #### PCA在表情识别中的应用 PCA是一种广泛应用于数据降维的技术,尤其在处理高维...
-Eigenface:一种早期的人脸识别方法,通过主成分分析(PCA)将人脸图像降维并构建特征脸矩阵。 - Fisherface:基于Fisher判别分析,旨在最大化类间散度和最小化类内散度,提高识别性能。 4. **特征匹配** 匹配...
1. EigenFace方法:它是通过主成分分析(PCA)来降维并提取人脸的特征向量。首先,收集大量的人脸图像作为训练集,然后计算它们的平均脸,接着用PCA找出人脸图像之间的差异,将这些差异转换为特征向量。在识别阶段,...