机器之心:百度通过非线性投影函数进行映射减少训练损失,那么这个非线性投影函数是如何得出来的,是通过训练集得出来的吗? 林元庆:定义度量学习的目标函数之后,我们是通过梯度下降法来进行训练,慢慢把目标函数给降下来。梯度下降法是很通用的做法。这里面很重要的是要定义度量学习的目标函数,然后要定义深度神经网络的架构,最后通过训练实现目标函数的逐渐优化。 机器之心:人脸识别业务的核心问题是人脸关键特征点的定位,错误的特征定位会导致提取的人脸描述特征严重变形,进而导致识别性能下降,百度是如何解决这个问题的? 林元庆:其实是两个方面。一个方面是我们要想办法去做出非常好的特征点定位的算法,然后要训练非常好的模型。在一些极端的情况下,得到的特征点定位可能不准确,因此我们希望后面的识别模块有一定的容错能力。我们是在训练的时候制造一些数据,在定位上人为地产生一些误差,然后拿这些数据放在深度神经网络里面一起去参加训练,这样的话最后训出来的模型对定位的误差会有一定的容错能力。 机器之心:百度大脑的这种能力的培养使用了多少的训练样本?训练了多长时间? 林元庆:我们的训练其实是分两部分,最重要的一部分叫通用的人脸识别的能力,就是百度这几年来一直在积累搭建的技术,到比赛为止我们大概用了 200 万人的 2 亿张照片进行人脸识别基础模型训练。 另一方面,为了这次比赛,我们也收集了一些跨年龄的数据,根据跨年龄这个场景再进一步优化模型,跨年龄数据大概在几千张这个级别,并不算特别的多。 机器之心:角度、表情、光线、阴影化妆、和配饰等会在多大程度上影响人脸识别准确率? 林元庆:我们主要是针对人脸角度在 45 度之内的应用场景,因此我们的训练模型基本上在 45 度之内识别的还是比较准确的。在这个范围之内,角度影响不会特别大。但是在大于 45 度之后精度就会开始下降。如果是 90 度,特别是当我们没办法检测到五官的时候,精度就会下降比较严重,比如说一边眼睛看不到的情况下下降会比较严重。 化妆肯定会有影响,但如果只是很局部的化妆其实还好。像美瞳只是造成一个局部被改变,人脸整体基本上变化不是那么大。这些其实我们的算法都能够比较好的处理。整形整容就很难,属于比较大的改变,识别难度就比较大。 机器之心:小度机器人是通过安装的摄像头直接观察还是接入图像信号? 林元庆:在录制的现场,atv直播,节目组会在选手前面的显示屏上给出一路信号,同样的信号也给到小度这边。我们的系统得到的信号和选手肉眼可以看到的信号是一样的。 机器之心:小度机器人分析处理是在本地完成还是在云端?此次使用的计算资源情况如何? 林元庆:训练都是在云端。云端我们有非常多、非常大的一个计算集群来专门做刚才提到的 200 万人的 2 亿张照片的训练。但真正训练完之后,计算是在本地完成的,我们在本地只用了一个 GPU。 实际上,我们希望我们的人脸识别技术能够广泛应用到各个领域,甚至是让很多人在手机上就可以用到这一功能。因此,我们希望在训练的时候用非常多的计算机,但是真正应用时的计算量不要太大。 机器之心:节目中,人类选手在介绍判断方法时也提到选取一些人脸特征,是否意味着这方面机器和人类的识别原理类似,就像 CNN 从某种程度上来说是借鉴了人类的视觉原理一样? 林元庆:从广义上来说肯定都是通过特征来识别,但是区别在于提取的是什么特征。深度学习系统其实是从海量的数据里学一些共同特征,对共性的特征也更加敏感。但是人其实不仅仅会用共性的特征,还会用一些很特别的特征。举个例子,假如说一个人的鼻子上有一颗痣,目前我们的这个系统是不会学出来的,因为它在我们数据库里的两百万人身上不常见,它就会把这个特征忽略掉,但人去识别的时候,他会把这颗痣变成一个非常重要的特征去跟踪。 (责任编辑:本港台直播) |