新思路!商汤开源利用无标注数据大幅提高精度的人脸识别算法
人脸识别是最近几年计算机视觉领域取得长足进步的领域,这得益于不断进步的深度学习强大的模型拟合能力和有标注的大型数据集的建立,已经出现了用于人脸识别的有标注的百万量级的数据集。
但继续扩大规模数据集变得越来越困难,即使是人工手工标注,当数据集规模越来越大也不可避免会引入噪声,如何利用廉价的无标注的人脸图像数据成为一个亟需破解的难题。
来自商汤科技、香港中文大学、南洋理工大学的研究人员日前发表于ECCV2018的论文《Consensus-Driven Propagation in Massive Unlabeled Data for Face Recognition》,展示了一种从未标注人脸图像生成样本标签对,并将其用于监督学习模型训练的方法,提供了一种低成本扩大数据集规模提高人脸识别精度的新思路。
值得一提的是,这篇论文解决的问题与现实中的人脸识别应用场景密切相关,其假设已经有了少量已经标注的数据,而未标注的人脸图像数据是来自于不受控的环境中采集的,且这些人与数据库中已经有标注的人没有重叠,希望将这些数据赋予标签加入到训练集中。
作者信息:
算法思想
算法的核心动机是从未标注数据中找到那些来自同一个人的伪正样本人脸图像对,将其加入训练集,扩大训练集的规模。
一个很简单的想法,是提取特征然后聚类,将聚类后的标签作为伪样本标签,但是普通的聚类难以提供高质量可信赖的标签,一个直观的例子,比如不同人侧脸的图像相似程度比同一个人正脸和侧脸图像相似程度要高。
如何构建可靠的来自同一个人的伪正样本对呢?请看下图:
作者发明了一种称为Consensus-Driven Propagation(共识驱动传播)的模型,该模型中有三种重要角色:base-model(基模型),committee model(委员模型),mediator model(调解员模型)。
base-model和committee model是从有标注数据中训练出来的深度学习模型分类器,该文使用不同的网络架构训练多个模型,使用它们对未标注的人脸图像提取特征,然后使用这些特征构建未标注样本的K-NN图,这些K-NN图初步反映了同一个人不同人脸图像之间的视图关系。
作者尝试了很多深度模型:
然后使用mediator model根据K-NN图的连接关系和各种多样性特征,分类K-NN图中具有连接关系的两个人脸图像样本是否来自同一个人。文中作者使用了多层感知机(MLP)作为mediator model。
很显然,mediator model在训练的时候是在有标注的数据上构建正负样本对的,这正是Consensus-Driven Propagation(共识驱动传播)的由来,未标注的人脸图像来自同一个人的多幅图像之间的关系与已标注的同一个人的多幅图像之间的关系是相似的,表现为它们的K-NN图节点之间的关系相似。
提取出的样本关系图:
构造的伪正样本图像示例:
红色框代表被mediator model拒绝的异常样本。
构建完伪标签,将其加入训练集,但是训练的时候其使用不同于有标注数据的Loss,在base-model上重新训练。
实验结果
作者在MageFace和IJB-A人脸数据集上做了实验,将数据集均分成11份,训练的时候仅使用十一分之一的标注数据,逐步增加未标注数据,比较最终正确率,并与使用了所有标注数据的结果比较。
下图展示了实验中使用的模型网络架构和分别在这两个数据集上取得的精度,还有集成后的精度。
下图展示了,随着未标注数据的加入,模型精度不断提高。
在MageFace数据集上,不使用未标注数据(即仅使用十一分之一的训练数据)精度为61.78%,使用了10份未标注数据的结果是78.18%,而使用全监督的方法(使用所有真实标注)精度为78.52%,证明所提出的方法生成的伪标签加入训练集大大提高了模型准确度(16.4%),取得了与全监督方法相匹敌的性能。
比较有意思的是,使用该文的方法在IJB-A上打败了全监督的方法(理论上是不应该的),作者解释这是因为IJB-A数据库本身引入了较多的标签噪声。
总结
这篇文章提出的方法非常有价值,低成本扩大数据规模,其不仅适用于人脸识别,在所有识别的任务中几乎都可以尝试,从IJB-A的实验结果看,其甚至可以成为一种数据清洗的方法。
在周志华老师的《机器学习》西瓜书中,有一章专门讲解了半监督学习,在深度学习对标注数据胃口越来越大的时候,与本文类似的半监督相关的方法必将越来越受到学术界的关注。