深度学习在人脸识别中的应用 —— 优图祖母模型的「进化」

物联网

  图7:人脸识别

  考察一个单项的「弱」人工智能技术是否成熟,达到乃至超过人类的平均水平应该是一个比较通用的准则。说到这里不得不提一个人脸识别的标准评测数据库 LFW(Labeled Face in the Wild)数据库。在 2014 年,Facebook 使用一个叫做 DeepFace 的深度学习方法,第一次在 LFW 数据库上接近人类的识别水平(DeepFace: 97.35% VS. Human: 97.53%),其结果如图 8 所示:

物联网

  图8: DeepFace深度学习网络

  「Talk is cheap, show me the code」,自从 DeepFace 在人脸识别领域一战成名,让研究人员们看到了超越人类识别能力的曙光。随着几大开源深度学习项目(例如 CAFFE,TORCH, TensorFlow)的发展壮大,基于深度学习的方法真正如雨后春笋般席卷整个人脸识别领域。事实也证明深度学习确实能够做到,短短一年以后就有很多基于深度学习的方法在 LFW 数据库上超过人类的识别能力,例如优图的人脸识别算法就在 15 年取得当时世界第一的 99.65% 准确率。

  深度学习为什么如此神奇,能在短短的几年时间里一统江湖呢?抛开技术细节不谈,原理上来说最为关键的两个因素就是:层级式抽象和端到端可学习。

  在回顾「浅」时代人脸识别方法历史时曾经介绍了基于几何特征的方法(图2)和基于判别性特征的方法(图4)。下图这些特征无疑都是针对人脸的某种抽象。由于原始图像输入的搜索空间巨大,只有通过恰当的抽象缩小搜索范围,才能最终做出合理的决策。对一个复杂的概念想要通过一层的抽象就将所有结构梳理清楚会是很难甚至不可能的,而深度神经网络这种多层结构给自底向上的逐级抽象提供了天然的模具。只要将足够多的数据输入到具有多层结构的深度神经网络并告知它你想要的输出结果,网络可以自动的学习中间层的抽象概念,如图 9 所示,好奇的研究人员将一个能够识别 1000 类物体的神经网络中的特征进行了可视化:

物联网

  图9:深度神经网络特征可视化结果

  从图中可以看到在深度神经网络的第一层有点类似人类科学家积累多年经验找到的 Gabor 特征。第二层学习到的是更复杂的纹理特征。第三层的特征更加复杂,已经开始出现一些简单的结构,例如车轮、蜂窝、人头。到了第四、五层机器输出的表现已经足以让人误以为它具备一定的智能,能够对一些明确的抽象概念例如狗、花、钟表、甚至键盘做出特别的响应。研究人员们积累几年甚至十几年设计出来的特征例如 Gabor、SIFT,其实可以通过深度神经网络自动的学习出来(如图9中「Layer 1」),甚至自动学习出它的人类「爸爸」难以言喻的更高层次抽象。从某种意义上来说,人工智能科学家就是机器的父母,需要「教」机器宝宝认识这个世界。谁都希望自己有个聪明宝宝,只用教它「知其然」,它自己慢慢总结消化然后「知其所以然」。深度神经网络就像个聪明的机器宝宝自己会学习、会抽象、会总结。

  端到端可学习,乍一听这个名词可能觉得头有点「方」,其实可以简单理解为全局最优。图 7 中总结了在「浅」时代,人脸识别的各个子问题都需要通过两个甚至更多个步骤来完成,而多个步骤之间完全独立的进行优化。这是典型贪心规则,很难达到全局最优。事实上,受限于优化算法深度神经网络也很难达到全局最优解,但是它的优化目标是全局最优的。近几年深度学习在各种任务上的成功经验,表明机器宝宝也是需要有梦想的,直接对准「远方」的全局最优目标进行学习,即使得不到最优解也也远远好过小碎步的局部贪心算法。想要达到真正的「强」人工智能,深度神经网络还有很长的路要走,星爷的名言对神经宝宝同样适用,做人没有梦想和咸鱼有什么分别。

  进击——优图祖母模型的「进化」

  随着深度神经网络的机器学习技术的发展,在 LFW 人脸数据库上,三、四年前让所有机器学习算法宝宝们望尘莫及的人类识别能力早已被超越。虽然优图也曾在 LFW 上取得 99.65% 超越人类平均水平的好成绩,但是我们清楚的明白刷库还远远不够,在实际场景中的应用更重要也更具挑战性,在实践中优图已经根据落地需求对各种应用场景和应用类型做出了细分,以便实现各种场景下人脸识别任务的各个击破。目前在落地应用中,常见的照片场景类型有生活照,自拍照、监控视频、门禁闸机、西方人及其他人种照片,如图 10 所示。