简介
ICCV2019,一篇关于利用无标签数据的人脸识别。很简单的一个想法,却很有趣。 论文链接。
转载:ICCV 2019 | 爱奇艺提出半监督损失函数,利用无标签数据优化人脸识别模型。
爱奇艺拥有海量优质的视频资源,对这些视频资源的结构化分析,尤其是分析视频中出现的人物尤为重要。目前,人脸识别技术已经应用到爱奇艺多个产品中,如“AI雷达”和“只看TA”。 “AI雷达”分析当前视频画面中出现的人物,“只看TA”分析整个视频中人物出现的所有场景片段。这两个产品底层都依赖人脸识别技术。
训练一个高性能的人脸识别模型,采用监督学习的方式,需要大量的带标签的人脸数据,通常数据量越大,训练的模型性能越好;人物越多,识别性能越好。目前公开库中较大的人脸数据集MS-Celeb-1M包括约10万个人物的1000万张图片;iQIYI-VID包括约1万个人物的64万个视频片段,其中iQIYI-VID-FACE包含约1万个人物600万张人脸图像。
然而,获取某个人的多张图片是比较困难的,需要人工标注。这在一定程度上阻碍了模型性能的提升。同时,人脸识别是个open-set问题,有标签数据中的几万个人物只是地球上几十亿人的极小一部分,训练出来的模型泛化能力可能不足。
为了解决上述问题,我们提出用无标签数据优化人脸识别模型。区别于其他半监督学习方法,我们的方法对无标签数据没有过多限制,只需基本保证这人不出现在有标签数据中。无标签数据的加入,可以轻易扩大训练人物数量,提升模型泛化能力。
UIR Loss
为了利用无标签数据,我们设计了半监督损失函数,Unknown Identity Rejection(UIR)Loss。人脸识别是open-set问题,将开放环境中的人物类别分为两类:有标签类($S$)和无标签类($U$),$S ∩ U= ∅$。训练过程中,对于有标签类,每个样本特征需要逼近分类层对应类别的类心向量;对于无标签类,它不属于分类层的任何一个类,模型需要“拒绝”它们,即特征与每个分类层类心距离都足够远。如下图(a),$W_1$ 和 $W_2$ 表示两个分类层类心向量,圆点表示样本特征。图(b)中,加入无标签类 $W_u$ 后,为了 $W_u$ 距离 $W_1$、$W_2$ 足够远,会使得有标签类别在特征空间上更稀疏,类间距离更大。
对于CNN分类模型,全连接分类层的输出经过softmax后得到 $p_1,p_2, … , p_n$,表示属于各个类别的概率值。然而无标签类别并不属于任何一类,理想情况下 $p_1,p_2, … , p_n$ 应该都足够小,可以通过设置阈值将其过滤,提升库外拒绝率。基于这个想法,问题可以转化成:
上式是多目标最小化问题,可以转化成:
因此得到UIR loss,即:
模型总的loss是有标签类别的loss加上无标签类别的UIR loss,
模型框图如下,无标签数据和有标签数据一起作为输入,经过骨干网络得到特征,全连接层得到输出概率值,根据概率值分别计算 $L_{\text{sup}}$ 和 $w \cdot L_{\text{uir}}$。
实验结果
我们采用MS-Celeb-1M清洗过后的MS1MV2数据集作为有标签数据,包括9万人物类别的5百万图片数据。从网上爬取数据,经过清洗,基本保证与有标签数据较低的重合率,得到约4.9百万张无标签数据。
分别在iQIYI-VID和Trillion-Pairs和IJB-C三个测试集上验证了方法的有效性。测试了四种骨干网络,实验结果说明,加入无标签数据的UIR loss后,模型性能有所提升。由于篇幅原因,IJB-C测试结果只贴了ResNet100部分,其他结果可参照论文。
进一步分析
使特征分布更稀疏
从实验结果来看,加入无标签数据的UIR loss后,UIR Loss能使模型学习到更具区分性的特征。下面从模型分类层类心间距离这一角度来验证特征分布的稀疏性。我们计算了分类层类心两两间的cos距离,距离越大,类心分布更稀疏。结果如下表:
随着骨干网络性能提升,baseline和ours的平均距离逐渐增大。同时,ours的平均距离大于baseline。这说明了UIR Loss使得特征分布更稀疏。
提升库外拒绝率
我们找了一批新的无标签数据,统计了它们模型最后输出的最大概率值,值越小,代表性能越好。