深度学习论文笔记-Deep Learning Face Representation from Predicting 10,000 Classes
来自:CVPR 2014 作者:Yi Sun ,Xiaogang Wang,Xiaoao Tang
题目:Deep Learning Face Representation from Predicting 10,000 Classes
主要内容:通过深度学习来进行图像高级特征表示(DeepID),进而进行人脸的分类。
长处:在人脸验证上面做,能够非常好的扩展到其它的应用,而且夸数据库有效性;在数据库中的类别越多时,其泛化能力越强,特征比較少,不像其它特征好几K甚至上M,好的泛化能力+只是拟合于小的子训练集。
主要过程:採用卷积神经网络(CNN)方法,而且採用CNN最后一层的激活值输出作为features,不同的人脸区域放入CNN中提取特征,形成了互补、过全然的特征表示。(form complementary and over-complete representations)。
通过深度卷积网络来学习高级的过全然特征(有监督),CNN的最后一层激活值作为输出,
详细细节:
採用3个尺度,10个人脸region,60个patch,训练60个CNN网络,每一个提取两个160维的特征(两个是由于: extracts two 160-dimensional DeepID vectors from a particular patch and its horizontally flipped counterpart.),所以最后一张人脸图像的特征的维度是:160*2*60=19200维。
CNN的结构例如以下:
说明:共5层网络,越往上的神经元的个数就越少,到最后就剩下160个神经元的输出,上面的Face patches 是进过对齐过后的的人脸块,也就是说已左(右)眼为中心的人脸区域块,嘴角为中心的人脸区域块等等,这样就有多个不同的输入块输入到CNN中,文章採用了把倒数第二层的输出+倒数第一层的输出作为特征(这应该是採用12年的Le Cun 那篇文章的track)。最后再把不同的块所输出的特征连接起来,就形成了一个终于一张人脸的特征。然后再用各种分类器对其特征进行分类。
採用Max-Pooling,softmax;
输入图像:39*31*k 个人矩形脸图像块+31*31*k (这里k在彩色图像时为3,灰度时k为1)个人脸正方形块(由于后面要考虑到是全局图像还是局部图像,且须要考虑到尺度问题),使用ReLU非线性处理;
注意到【Weights in higher convolutional layers of our ConvNets are locally shared to learn different mid- or high-level features in different regions [18]. r in Equation 1 indicates a local region where weights are shared. In the third convolutional layer,
weights are locally shared in every 2  2 regions, while weights in the fourth convolutional layer are totally unshared.】
不同的输入图像:
当中局部图像是关键点(每一个图像一个关键点)居中,不同的区域大小和不同的尺度图像输入到CNN中,其CNN的结构可能会不同样,可是最后的特征的都是160维度,最后将全部的特征级联起来。
最后一层的特征是第三层和第四层全相连(比較特殊的地方),由于这样能够添�尺度特征,由于第三层和第四层学习到的特征的尺度是不一样的。
特点:提取的特征非常Compact,仅仅有160*k,k不大。自然就具有判别力了。
在训练CNN中,训练数据的类别越多,其性能越好,可是会在训练模型中出现故障,也就是太慢。
CNN的输出是特征,而不是输出类别,
分类:
採用Joint Bayesian 来进行人脸的verification;也採用了神经网络来比較,可是联合贝叶斯的效果比較好;
实验:
由于在LFW中大部分人的图像个数是有限的,非常多人仅仅有一张图片;所以採用了新的数据库来训练模型:CelebFaces :八万多幅,五千多人,每一个人差点儿相同16张图片,
===============
方法比較:
当前的人脸识别方法:过全然的低级别特征+浅层模型。
ConvNet 可以有效地提取高级视觉特征。
已有的DL方法:
1. Huang【CVPR2012】的生成模型+非监督;
2. Cai 【2012】的深度非线性度量学习;
3 Sun【CVPR2013】的监督学习+二类分类(人脸校验 verfication),是作者去年写的。而这一篇文章是多类分类问题(identification),并且这篇文章中,有10000类的人脸类别。
================
结果:在有对齐人脸的情况下,可以在LFW数据库上识别率达到97.5%。(其训练数据不是LFW,有其它的训练数据来训练模型)。
不理解的地方:
深度学习论文笔记-Deep Learning Face Representation from Predicting 10,000 Classes的更多相关文章
- 深度学习概述教程--Deep Learning Overview
引言 深度学习,即Deep Learning,是一种学习算法(Learning algorithm),亦是人工智能领域的一个重要分支.从快速发展到实际应用,短短几年时间里, ...
- 贝叶斯深度学习(bayesian deep learning)
本文简单介绍什么是贝叶斯深度学习(bayesian deep learning),贝叶斯深度学习如何用来预测,贝叶斯深度学习和深度学习有什么区别.对于贝叶斯深度学习如何训练,本文只能大致给个介绍. ...
- 深度学习论文笔记:Fast R-CNN
知识点 mAP:detection quality. Abstract 本文提出一种基于快速区域的卷积网络方法(快速R-CNN)用于对象检测. 快速R-CNN采用多项创新技术来提高训练和测试速度,同时 ...
- 深度学习加速器堆栈Deep Learning Accelerator Stack
深度学习加速器堆栈Deep Learning Accelerator Stack 通用张量加速器(VTA)是一种开放的.通用的.可定制的深度学习加速器,具有完整的基于TVM的编译器堆栈.设计了VTA来 ...
- 深度学习论文笔记:Deep Residual Networks with Dynamically Weighted Wavelet Coefficients for Fault Diagnosis of Planetary Gearboxes
这篇文章将深度学习算法应用于机械故障诊断,采用了“小波包分解+深度残差网络(ResNet)”的思路,将机械振动信号按照故障类型进行分类. 文章的核心创新点:复杂旋转机械系统的振动信号包含着很多不同频率 ...
- 论文笔记: Deep Learning based Recommender System: A Survey and New Perspectives
(聊两句,突然记起来以前一个学长说的看论文要能够把论文的亮点挖掘出来,合理的进行概括23333) 传统的推荐系统方法获取的user-item关系并不能获取其中非线性以及非平凡的信息,获取非线性以及非平 ...
- 最实用的深度学习教程 Practical Deep Learning For Coders (Kaggle 冠军 Jeremy Howard 亲授)
Jeremy Howard 在业界可谓大名鼎鼎.他是大数据竞赛平台 Kaggle 的前主席和首席科学家.他本人还是 Kaggle 的冠军选手.他是美国奇点大学(Singularity Universi ...
- 深度学习阅读列表 Deep Learning Reading List
Reading List List of reading lists and survey papers: Books Deep Learning, Yoshua Bengio, Ian Goodfe ...
- 深度学习框架Caffe —— Deep learning in Practice
因工作交接需要, 要将caffe使用方法及整体结构描述清楚. 鉴于也有同学问过我相关内容, 决定在本文中写个简单的tutorial, 方便大家参考. 本文简单的讲几个事情: Caffe能做什么? 为什 ...
随机推荐
- OracleHelper(for produce)
OracleHelper中,有一个用存储过程实现的Insert方法. 然后我把执行存储过程的方法 封装成了可以执行任何存储过程,参数是 存储过程名称 以及存错过程中的传入.传出参数 using Ora ...
- POJ 2362 Square
题意:给n个木棍,问能不能正好拼成一个正方形. 解法:POJ1011的简单版……不需要太多剪枝……随便剪一剪就好了……但是各种写屎来着QAQ 代码: #include<stdio.h> # ...
- 获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
众所周知,通过PackageManager可以获取手机端已安装的apk文件的信息,具体代码如下: PackageManager packageManager = this.getPackageMana ...
- hdu1722 bjfu1258 辗转相除法
这题就是个公式,代码极简单.但我想,真正明白这题原理的人并不多.很多人只是随便网上一搜,找到公式a了就行,其实这样对自己几乎没有提高. 鉴于网上关于这题的解题报告中几乎没有讲解原理的,我就多说几句,也 ...
- 警惕javascript代码中的“</script>”!
之前在写<博客园自定义博客侧边栏公告的过滤漏洞>的时候遇到了一个javascript代码报错“语法错误”的问题,一直不得以解决,感谢Arliang发现了并为我进行了耐心的解释,现整理如下: ...
- cocos2d-x知识巩固-基础篇(2)
上一篇博客介绍了整个cocos2dx引擎需要掌握的各个模块,每一个模块实际上往深了研究都有难点,后面我会详细地去分析它的用法.今天我们从第一个模块说起,即渲染模块.首先,为了理解,我们做个类比,说明该 ...
- 在Lua里写unity游戏笔记
gameobject.GetComponent<Transform>(); 翻译成Lua: gameObject:GetComponent (luanet.ctype (Transform ...
- 当rsync遇到非默认端口的ssh
在使用rsync使用ssh协议,来同步远程文件的方法,rsync -zvrtopg -e ssh但是如果遇到ssh不是22端口的时候使用rsync -zvrtopg -e ‘ssh -p 端口’特别是 ...
- Directory.GetCurrentDirectory
1.一个应用程序中,Directory.GetCurrentDirectory获得的当前工作目录是C:\Windows\System32,这是为什么呢?是如何设置的? 2.在WinXP下:System ...
- 20150913K-means聚类
1.聚类的思想: 将一个有N个对象的数据集,构造成k(k<=n)个划分,每个划分代表一个簇.使得每个簇包含一个对象,每个对象有且仅属于一个簇.对于给定的k,算法首先给出一个初始的划分方法,以后通 ...