作家
登录

深入浅出谈人脸识别技术

作者: 来源: 2018-01-29 09:27:31 阅读 我要评论

二、深度进修技巧的道理

上图中的二维数据x只有方形和圆形两个类别y,很好分,我们须要进修的分类函数用最简单的f(x,y)=ax+by+c就能表示出分类直线。例如f(x,y)大年夜于0时表示圆形,小于0时表示方形。

给定随机数作为a,c,b的初始值,我们经由过程练习数据赓续的优化参数a,b,c,把不合适的L1、L3等分类函数逐渐练习成L2,如许的L2去面对泛化的测试数据就可能获得更好的效不雅。然而如不雅有多个类别,就须要多条分类直线才能搀扶,如下图所示:

图3:深刻浅出谈人脸辨认技巧

CONV就是卷积层,每个CONV后会携带RELU层。这只是一个示意图,实际的收集要复杂很多。今朝开源的Google FaceNet是采取resnet v1收集进行人脸识其余,关于resnet收集请参考论文http://arxiv.org/abs/1602.07261,其完全的收集较为复杂,这里不再列出,也可以查看基于TensorFlow实现的Python代码http://github.com/davidsandberg/facenet/blob/master/src/models/inception_resnet_v1.py,留意slim.conv2d含有Relu鼓励层。

这其实相当于多条分类函数履行与&&、或||操作后的结不雅。这个时刻还可能用f1>0 && f2<0 && f3>0如许的分类函数,但如不雅更复杂的话,例如本身的特点不明显也没有汇聚在一路,这种找特点的方法就玩不转了,如下图所示,不合的色彩表示不合的分类,此时的练习数据美满长短线性可分的状况:

图4:深刻浅出谈人脸辨认技巧

这个时刻,我们可以经由过程独裁函数嵌套的办法来解决,例如f(x)=f1(f2(x)),如许f2函数可所以数条直线,而f1函数可以经由过程不合的权重w以及鼓励函数完成与&&、或||等等操作。这里只有两层函数,如不雅函数嵌套层数越多,它越能表达出复杂的分类办法,这对高维数据很有赞助。例如我们的┞氛片毫无疑问就是如许的输入。所谓鼓励函数就是把函数f计算出的异常大年夜的值域转化为[0,1]如许较小的值域,这许可独裁函数赓续地前向运算、分类。

前向运算只是把输入交给f1(x,w1)函数,计算出的值袈滟交给f2(y1,w2)函数,依次类推,很简单就可以获得最终的分类值。然则,因为初始的w权重其实没有多大年夜意义,它得出的分类值f*(x)肯定是错的,在练习集上我们知道精确的值y,那么事实上我们其实是欲望y-f*(x)的值最小,如许分类就越准。这其实变成了求最小值的问题。当然,y-f*(x)只是示意,事实上我们获得的f*(x)只是落到各个分类上的概率,把这个概率与真实的分类比拟较获得最小值的过程,我们称为损掉函数,其值为loss,我们的目标是把损掉函数的值loss最小化。在人脸辨认场景中,softmax是一个效不雅比较好的损掉函数,我们简单看下它是若何应用的。

比如我们有练习数据集照片对应着cat、dog、ship三个类别,某个输入照片经由函数f(x)=x*W+b,前向运算获得该照片属于这3个分类的得分值。此时,这个函数被称为得分函数,如下图所示,假设左边关于猫的input image是一个4维向量[56,231,24,2],而W权重是一个4*3的矩阵,那么相乘后再加上向量[1.1,3.2,-1.2]可获得在cat、 dog、ship三个类别上的得分:

图5:深刻浅出谈人脸辨认技巧

大年夜上图示例可见,固然输入照片是猫,但得分上属于狗的得分值437.9最高,但毕竟比猫和船高若干呢?很难衡量!如不雅我们把得分值转化为0-100的百分比概率,这就便利度岑岭。这里我们可以应用sigmoid函数,如下图所示:

图6:深刻浅出谈人脸辨认技巧

人脸辨认技巧大年夜致由人脸检测和人脸辨认两个环节构成。

大年夜上图公式及图形可知,sigmoid可以把随便率性实数转换为0-1之间的某个数作为概率。但sigmoid概率不具有归一性,也就是说我们须要包管输入照片在所有类其余概率之和为1,如许我们还须要对得分值按softmax方法做以下处理:

图7:深刻浅出谈人脸辨认技巧

如许给定x后可以获得x在各个类别下的概率。假定三个类其余得分值分别为3、1、-3,则按照膳绫擎的公式运算后可得概率分别为[0.88、0.12、0],计算过程如下图所示:

图8:深刻浅出谈人脸辨认技巧

然而实际上x对应的概率其实是第一类,比如[1,0,0],如今拿到的概率(或者可称为似然)是[0.88、0.12、0]。那么它们之间毕竟有多大年夜的差距呢?这个差距就是损掉值loss。若何获取到损掉值呢?在softmax里我们用互熵损掉函数计算量最小(便利求导),如下所示:

图9:深刻浅出谈人脸辨认技巧

个中i就是精确的分类,例如膳绫擎的例子中其loss值就是-ln0.88。如许我们有了损掉函数f(x)后,怎么调剂x才能够使得函数的loss值最小呢?这涉及到微分担数。

由清楚的人脸照转化出的像素值矩阵,应当设计出什么样的函数f(x)转化为特点值呢?这个问题的谜底依附于分类问题。即,先不谈特点值,起首若何把照片集合按人精确地分类?这里就要先谈谈机械进修。机械进修认为可以大年夜有限的练习集样本中把算法很好地泛化。所以,我们锾煲到有限的练习集,设计好初始函数f(x;w),并已经量化好了练习集中x->y。如不雅数据x是低维的、简单的,例如只有二维,那么分类很简单,如下图所示:

图2:深刻浅出谈人脸辨认技巧

  推荐阅读

  “Docker“生死”记,这条船还能开出去多远?

年前最后一场技巧盛宴 | 1.27与京东、日记易、假贷宝技巧大年夜咖畅聊智能化运维成长趋势! 月初,一篇题为《Docker公司已逝世》的文┞仿,预言了Docker公司将在2018年的某个时刻不复存在。>>>详细阅读


本文标题:深入浅出谈人脸识别技术

地址:http://www.17bianji.com/lsqh/40451.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)