机器学习: 特征脸算法 EigenFaces
人脸识别是机器学习和机器视觉领域非常重要的一个研究方向,而特征脸算法是人脸识别里非常经典的一个算法,EigenFaces 是基于PCA (principal component analysis) 即主分量分析的。
一张尺寸为 w×h 的人脸图像 Ii可以看成是一个 D×1 的列向量, x∈RD,其中 D=w×h, 那么,给定一个训练集 S, 含有 m 张人脸图像, 即: S={xi},i=1,2,...m, 简单来说,我们希望通过一些线性映射,将原始向量 x 从高维空间 RD 变换到一个低维空间 RK, K≪D.
利用PCA 分析:
1: 先求训练集 S 的均值向量 x¯=1m∑mi=1xi
2: 向量去均值:Φi=xi−x¯
3: 求协方差矩阵 C=1m∑mi=1ΦiΦTi, 如果我们定义 A=[Φ1,Φ2,...,Φm], A∈RD×m, 那么 C=AAT
4: 特征值分解: Cui=γiui
我们知道协方差矩阵是一个高维矩阵 C∈RD×D. 如果直接进行特征分解,无疑是非常消耗资源也很费时的。特征脸算法做了一个非常巧妙的变换,我们先来看 ATA 的特征值分解,因为 ATA∈Rm×m,比起 C 来说,维度要小得多。我们可以得到:
ATAvi=λivi 进一步可以得到:
AATAvi=λiAvi 即:
CAvi=λiAvi 所以我们看到:
Cui=λiuiui=Avi
换句话说,AAT 与 ATA 有相同的特征值,而特征向量满足如下关系:
ui=Avi
严格说来,AAT∈RD×D, 最多可以有 D 个 特征值与特征向量。
而 ATA∈Rm×m, 最多可以有 m 个 特征值与特征向量。
ATA 中的 m 个 特征值与特征向量 对应 AAT 中 前 m 个最大的特征值以及特征值相对应的特征向量。
所以通过这种变换, 可以非常快速地求得 AAT 的特征向量 ui=Avi。
5: 将特征值从大到小排序,截取前面 K 个特征值及对应的特征向量。我们可以用特征向量的线性组合来表示原来的去均值向量,即:
xi−x¯=Φi=∑Kj=1wjuj
wj=ΦTiuj
如果定义, Ω=[w1,w2,...,wK], U=[u1,u2,...,uK], 那么可以得到
Ω=ΦTiU, 我们看到,通过引入 Eigenfaces, 我们将高维向量 Φi 映射到低维向量 Ω 。
做人脸识别的时候,我们可以先将训练集中的每个subject的人脸图像映射到低维空间Ω1,Ω2,...Ωq, q 表示subject 的个数。给定一个测试样本 x,先做去均值,Φ=x−x¯,然后再映射到低维空间,得到低维向量 Ω,我们要求解如下的目标函数:
进而确定测试样本属于哪个subject。
机器学习: 特征脸算法 EigenFaces的更多相关文章
- DNS通道检测 国内学术界研究情况——研究方法:基于特征或者流量,使用机器学习决策树分类算法居多
http://xuewen.cnki.net/DownloadArticle.aspx?filename=BMKJ201104017&dbtype=CJFD<浅析基于DNS协议的隐蔽通道 ...
- PCA算法提取人脸识别特征脸(降噪)
PCA算法可以使得高维数据(mxn)降到低维,而在整个降维的过程中会丢失一定的信息,也会因此而实现降噪除噪的效果,另外,它通过降维可以计算出原本数据集的主成分分量Wk矩阵(kxn),如果将其作为数据样 ...
- 机器学习:PCA(人脸识别中的应用——特征脸)
一.思维理解 X:原始数据集: Wk:原始数据集 X 的前 K 个主成分: Xk:n 维的原始数据降维到 k 维后的数据集: 将原始数据集降维,就是将数据集中的每一个样本降维:X(i) . WkT = ...
- 特征脸是怎么提取的之主成分分析法PCA
机器学习笔记 多项式回归这一篇中,我们讲到了如何构造新的特征,相当于对样本数据进行升维. 那么相应的,我们肯定有数据的降维.那么现在思考两个问题 为什么需要降维 为什么可以降维 第一个问题很好理解,假 ...
- 特征脸(Eigenface)理论基础-PCA(主成分分析法)
在之前的博客 人脸识别经典算法一:特征脸方法(Eigenface) 里面介绍了特征脸方法的原理,但是并没有对它用到的理论基础PCA做介绍,现在做补充.请将这两篇博文结合起来阅读.以下内容大部分参考 ...
- 【原创】机器学习之PageRank算法应用与C#实现(1)算法介绍
考虑到知识的复杂性,连续性,将本算法及应用分为3篇文章,请关注,将在本月逐步发表. 1.机器学习之PageRank算法应用与C#实现(1)算法介绍 2.机器学习之PageRank算法应用与C#实现(2 ...
- 【Machine Learning】机器学习の特征
绘制了一张导图,有不对的地方欢迎指正: 下载地址 机器学习中,特征是很关键的.其中包括,特征的提取和特征的选择.他们是降维的两种方法,但又有所不同: 特征抽取(Feature Extraction): ...
- 【转载】NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩、机器学习及最优化算法
原文:NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩.机器学习及最优化算法 导读 AI领域顶会NeurIPS正在加拿大蒙特利尔举办.本文针对实验室关注的几个研究热点,模型压缩.自 ...
- 机器学习&深度学习基础(机器学习基础的算法概述及代码)
参考:机器学习&深度学习算法及代码实现 Python3机器学习 传统机器学习算法 决策树.K邻近算法.支持向量机.朴素贝叶斯.神经网络.Logistic回归算法,聚类等. 一.机器学习算法及代 ...
随机推荐
- Windows Server 2003中报PerfDisk “无法从系统读取磁盘性能信息。
Windows Server 2003中报PerfDisk “无法从系统读取磁盘性能信息.”的问题解决 2015-01-22 09:49:02 标签:Windows Server2003 PerfDi ...
- Android--------------几个ADB经常使用命令
1. 显示当前执行的所有模拟器: adb devices 2. 安装应用程序: adb install -r 123.apk 3. 获取模拟器中的文件: adb pull &l ...
- hibernater-validator jar包冲突的问题
在引用hibernater-validator jar包时一直抛出异常,在引用带有该包的项目,或者同时在一个项目中使用该包和validator包都会抛出以下异常 最后发现是在Eclipse环境下,不能 ...
- iOS 私有库的使用
最近项目说要用私有库 主要过程 创建两个库: 索引库 组件库 组件库 用git操作 比如更新代码 push 打tag等 索引库 存放组件的描述信息 也就是 .spec文件 这个文件和 ...
- 使用Nightwatch.js做基于浏览器的web应用自动测试
1 安装 1.1 安装Node.js 在http://nodejs.org/ 上下载适合本机系统的安装包运行安装,注意安装选项中选择npm tool以用于后续依赖包的安装. 1.2 ...
- caffe学习--cifar10学习-ubuntu16.04-gtx650tiboost--1g--01
引用了下文的资料,在此感谢! http://www.cnblogs.com/alexcai/p/5468164.html http://blog.csdn.net/garfielder007/arti ...
- 项目部署到niginx title乱码问题
今天部署我react移动端项目到我的linux服务器的时候出现乱码问题 原来是我再配置niginxserver的时候没有指定charset,设置为utf-8,重启nginx服务器,大功告成
- disabled和readonly
项目中,有一个input控件,input的值需要通过点击一个javascript链接,从弹出的对话框中所列出的项中选择.而不能从input框中直接输入. 刚开始将input的disabled属性设置为 ...
- IO复用之select实现
前言 在看过前文:初探IO复用后,想必你已对IO复用这个概念有了初步但清晰的认识.接下来,我要在一个具体的并发客户端中实现它( 基于select函数 ),使得一旦服务器中的客户进程被终止的时候,客户端 ...
- VS重置命令:devenv.exe/resetuserdata
VS命令行下执行下面的命令: devenv.exe/resetuserdata