图10:常见人脸识别场景类型
互联网上有海量的人脸照片,通过搜索引擎优图也积累了海量带身份标注的互联网人脸数据。这部分数据无论从人数,图像数、数据多样性上都是最好的,为优图人脸识别技术的研发提供了基础条件。随着人脸识别技术的日渐成熟,实际业务中涌现出大量新场景下的应用需求,例如微众银行的核身业务,会议签到业务都涉及证件照和手机自拍照的比对,公安的监控需要视频监控数据与证件照的比对。不同场景下获取的人脸图像存在巨大差异,如何对人脸识别模型进行快速调整,在各个不同场景下快速落地就成为一个非常具有挑战性的问题。
为了在日趋白热化的市场竞争中占得先机,优图在三年深耕人脸识别和深度学习的基础上建立了自己在场景迁移与适应上的一整套方法论。这个方法论可以用一句话来概括:祖母模型的「进化」。这句话有两个关键点。首先我们需要建立适用于一般场景的、功能强大的人脸识别模型,也就是祖母模型。其次祖母模型通过「进化」来适应新场景下的人脸识别。
建立祖母模型家族
祖母模型并不特指一个深度神经网络模型,而是具有某种结构特点的一类神经网络模型,因此更为合适的叫法应该是祖母模型族。不同业务场景下的应用,用户对人脸识别的速度和精度可能有不一样的需求。祖母模型族必须像一个兵器库,既包含能够快速发射的机关枪也需要杀伤力强大冷却时间长的原子弹。
图11:深度神经网络局部结构分类
目前最为流行的深度神经网络结构大致可以归为三类:1.直线型(如AlexNet,VGGNet);2.局部双分支型(ResNet);3.局部多分支型(GoogleNet)。其中直线型网络结构设计最为简单,但是当网络深度超过 20 后这种结构的网络将变的难以优化。局部多分支型网络模型能力强,计算效率更高,但是设计也最为复杂。在建立祖母模型家族的初期,我们选择了模型能力相对较强设计又相对简单的局部双分支型网络 ResNet 来构建优图人脸识别的祖母模型族。一方面 ResNet 本身具有强大的学习能力,是去年深度学习领域最新的研究进展。MSRA 凭借一个 152 层的 ResNet 深度网络摘取了图像识别领域最具影响力的 ImageNet2015 竞赛多个单项的第一名。另一方面 ResNet 设计相对简单,一个最大的特点就是识别能力基本与神经网络深度成正比。神经网络的深度又与计算复杂度直接相关,这就为训练不同识别精度与运行速度的多个模型从而建立祖母模型族提供了极大的方便。当选定了祖母模型的网络结构后,我们将其在数据量最大的互联网生活照数据集上训练,以保证祖母模型的通用人脸识别能力,图12所示。
图12:优图人脸识别祖母模型
在基于局部双分支模型族建立完成后,我们也开始尝试使用更复杂的局部多分支组件来进一步提高模型效率,丰富我们的祖母模型族。
祖母模型的「进化」
迁移学习是近些年来在人工智能领域提出的处理不同场景下识别问题的主流方法。相比于浅时代的简单方法,深度神经网络模型具备更加优秀的迁移学习能力。并有一套简单有效的迁移方法,概括来说就是在复杂任务上进行基础模型的预训练(pre-train),在特定任务上对模型进行精细化调整(fine-tune)。套用在人脸识别问题上,只需要将训练好的优图祖母模型在新场景的新数据上进行精细化调整。
图13:优图祖母模型的进化
这种传统的迁移学习方法确实能帮助祖母模型更好的完成新场景下的人脸识别任务。但这只能算特异化,无法将迁移学习中学到的新信息反馈给祖母模型。迁移之后的特异化模型只能应用在特定场景,在原集合上的性能甚至可能会大幅下降。在没有深度学习的「浅」时代,模型没有同时处理多个场景的能力,这可能是最好的适应新场景的方法。然而在实践中我们发现,由于深度神经网络的强大表达能力,完全可以在迁移学习过程中保持祖母模型的通用性能。采用增量学习的方式进行新场景的适应,在完成新场景下识别的同时也能保持其他场景下的能力,从而得到通用性更好的优图祖母模型,即优图祖母模型的「进化」。