人脸识别算法调研

1.神经网络:

来源:人的大脑

 

发展至今,一共有三波浪潮:

1957年~1969年 Perceptrons:无法解决异或问题

1985年~1990年 Neural Networks(BP):被svm干掉

2006年~今天 Deep Neural Networks(DBN) 


DNN:Geoffrey Hinton 

CNN:Yann LeCun 

RNN:Yoshua Bengio 

优点:

(1)使用的和人脑相同的构造 
(2)非常容易扩展模型容量和数据规模 
(3)无需人工提取特征,端到端
(4)规律的拟合到数据的拟合 

问题:

太多的trick,都是依靠直觉提出来的,需要有solid学习机制和理论支持 


2.机器学习的常用概念:

准确率:它表示的是预测为正的样本中有多少是对的

召回率:针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了

过拟合:训练集错误率很低,但测试集错误率很高。

回归:连续型数值,诸如识别人脸关键点、房价预测等

分类问题:诸如判断性别

 

3.传统机器学习算法

(1)分类问题:

logistic(sigmoid):二分类问题

z = w0x0+w1x1+w2x2+w3x3+...+wnxn

svm支持向量机: 

adaboost元算法:

对其他多个分类器进行组合的一种方式,每个分类器具有一定的权重

(2)回归问题:

线性回归:

 

(3)聚类问题:

k-means:

 

4.CNN(卷积神经网络)

LeNet-5网络结构,如下:

 

局部感知:

参数共享、多卷积核:

池化操作:取最大,取均值等

卷积过程:

 

5.国内外主流人脸识别算法对比:

FaceNet:Google

与其他的深度学习方法在人脸上的应用不同,FaceNet并没有用传统的softmax的方式去进行分类学习,然后抽取其中某一层作为特征,而是直接进行端对端学习一个从图像到欧式空间的编码方法,然后基于这个编码再做人脸识别、人脸验证和人脸聚类等。

 

网络架构:

 

特点:

 

  • 去掉了最后的softmax,而是用元组计算距离的方式来进行模型的训练。使用这种方式学到的图像表示非常紧致,使用128位足矣。
  • 元组的选择非常重要,选的好可以很快的收敛。

 

DeepFace:Facebook

网络架构:

特点:

先是使用3D模型来将人脸对齐,从而使CNN发挥最大的效果

 

没有用太多的Max-pooling层,因为太多的Max-pooling层会使得网络损失图像信息。

后面三层都是使用参数不共享的卷积核,之所以使用参数不共享,有如下原因:

  • 对齐的人脸图片中,不同的区域会有不同的统计特征,卷积的局部稳定性假设并不存在,所以使用相同的卷积核会导致信息的丢失
  • 不共享的卷积核并不增加抽取特征时的计算量,而会增加训练时的计算量
  • 使用不共享的卷积核,需要训练的参数量大大增加,因而需要很大的数据量,然而这个条件本文刚好满足。

 

DeepId:共有三代,第一代DeepID,第二代DeepID2,第三代DeepID2+

人脸预处理:

网路架构:

特点:

该结构与普通的卷积神经网络的结构相似,但是在隐含层,也就是倒数第二层,与Convolutional layer 4和Max-pooling layer3相连,鉴于卷积神经网络层数越高视野域越大的特性,这样的连接方式可以既考虑局部的特征,又考虑全局的特征。

DeepID2相对于DeepID有了较大的提高。其主要原因在于在DeepID的基础上添加了验证信号。

DeepID2+相比于DeepID2,将DeepID层从160维提高到512维,同时将DeepID层不仅和第四层和第三层的max-pooling层连接,还连接了第一层和第二层的max-pooling层。


6.人脸识别技术分类:

(1)检测:

传统人脸检测:

特征提取:LBP/HOG/Harr

训练:Adaboost/SVM

识别:滑动窗口

深度学习在人脸检测上的应用:

(2)属性分析:

传统框架:

深度学习的应用:基于CDNN的人脸属性识别框架

(3)验证和识别:

基本框架:


7.传统机器学习算法与深度学习在图像识别上的不同

最大不同:深度学习输入图像原数据即可,而传统机器学习算法,需要对图像做很多的操作,诸如:灰度化、归一化等等,最后才把处理好的特征送到机器学习算法中去训练。

深度学习:

(1)Advantages:准确度高,效果好

(2)Disadvantages:需要庞大的计算资源,这也是为什么近几年才开始又火起来的原因


8.CPU vs GPU

CPU:更适合逻辑复杂的运算,串行的运算

GPU:缓存和控制单元很小,计算单元多,适合逻辑不复杂的大规模并行运算


9.常用分类:

sigmoid:二分类问题

softMax:多分类,经典案例:手写识别体,http://www.jeyzhang.com/tensorflow-learning-notes.html


10. 深度学习PK人脑

 

11.what is the next?

当AI的工程能力超越创造者时,将会进行自我更 新升级,将会跨越式发展,这个时间点就是 singularity 


参考资料:

《LeNet 5》http://yann.lecun.com/exdb/lenet/index.html

《DeepID算法介绍》http://blog.csdn.net/stdcoutzyx/article/details/42091205

《FaceNet》https://arxiv.org/abs/1503.03832

《激活函数和损失函数》http://blog.csdn.net/u014595019/article/details/52562159

《一文读懂卷积神经神经网络》http://www.36dsj.com/archives/24006

Will Deep Learning take over Machine Learning, make other algorithms obsolete?http://www.kdnuggets.com/2014/10/deep-learning-make-machine-learning-algorithms-obsolete.html

《tensorflow如何入门》https://www.zhihu.com/question/49909565/answer/118465399

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值