本文介绍被机器学习顶级国际会议AAAI 2023接收的oral论文“Improving Training and Inference of Face Recognition Models via Random Temperature Scaling”。论文创新性地从概率视角出发,对分类损失函数中的温度调节参数和分类不确定度的内在关系进行分析,揭示了分类损失函数的温度调节因子是服从Gumbel分布的不确定度变量的尺度系数。从而提出一个新的被叫做RTS的训练框架对特征抽取的可靠性进行建模。基于RTS训练框架来训练更可靠的识别模型,使训练过程更加稳定,并在部署时提供一个对样本不确定度的度量分值,以拒识高不确定的样本,帮助建立更鲁棒的视觉识别系统。大量的实验表明RTS可以稳定训练并输出不确定度度量值来建立鲁棒的视觉识别系统。
论文链接:Improving Training and Inference of FaceRecognition Models via Random Temperature Scaling:https://arxiv.org/abs/2212.01015
开源模型:https://modelscope.cn/models/damo/cv_ir_face-recognition-ood_rts/summary
视觉识别系统在真实场景中通常会遇到多种干扰。例如:遮挡(装饰物或者复杂的前景),成像模糊(焦点模糊或者运动模糊),极端光照(过曝或者曝光不足等)。可以把这些干扰都归纳为噪声的影响,此外还有误检图片,通常有猫脸或狗脸等,这些误检测的数据被称作out-of-distribution(OOD)数据。对于视觉识别来说,上述的噪声和OOD数据都构成了不确定性的来源,受到影响的样本会在基于深度模型提取的特征上叠加不确定性,给视觉识别系统带来干扰。例如若底库图被不确定干扰的样本污染,会形成“特征黑洞”,给视觉识别系统带来隐患。因此需要对表征可靠性进行建模。
传统的在视觉识别链路中对可靠性进行控制的方法是通过一个独立的质量模型完成的。典型的图像质量建模的方式如下:
1、收集标注数据进行具体影响质量因素的标注,比如清晰度如何,有无遮挡以及姿态如何。
2、根据影响因素的标注label进行和1~10质量分的映射,分数越高对应的质量越好,具体示例可以参考下图左侧示例。
3、由前两步操作得到质量分的标注后进行有序回归训练,从而在部署阶段对质量分进行预测,如下图右侧示例。
独立质量模型的方案在视觉识别的链路中需引入新的模型,且训练依赖标注信息。
不确定度建模的方法有"Data Uncertainty Learning in FaceRecognition",把特征建模为高斯分布均值和方差的加和,把包含不确定性的特征送入之后的分类器进行训练。从而可以在部署阶段得到和图像质量相关的不确定度的分值。
DUL用加和的方式描述不确定度,噪声估计值的尺度也和某一类数据的特征分布紧密程度相关。如果数据分布是比较紧密的,那么DUL估计出的噪声的尺度也是比较小的。在OOD领域的工作指出,数据分布的密度对于OOD识别来说不是一个好的度量方式。
OOD领域的工作"Generalized odin: Detectingout-of-distribution image without learning from out-of-distribution data"用联合概率分布的形式处理OOD数据,分别用两个独立的分支和估计分类概率值和温度调节值。
由于温度值被建模为概率值,范围被限制在0-1之间,对温度没有进行更好的建模。
针对上述问题和相关工作,本文从概率视角出发,对分类损失函数中的温度调节因子和不确定度之间的关联进行分析,提出了RTS训练框架。
首先对温度调节因子和不确定度之间的关联进行分析。
设不确定度是符合标准Gumbel分布的随机变量,则概率密度函数可以写为
累积分布函数为
分类为k类的概率值为
将带入上式可以得到
可以看到,分类为k类的概率值就是符合softmax函数的分值,同时我们可以用一个t来调节不确定度的尺度,即,则符合标准Gumbel分布
可以看到,此时分类为k类的概率值就是符合带温度调节值为t的softmax函数的分值。
为了减少不确定度估计对分类的影响,温度t需要在1附近,因此我们把温度t建模为个独立gamma分布变量的和:
对温度建模的约束在训练中用下述的正则项实现
整体的算法整理为:
更多详细的分析和理论证明请参见论文。
在训练阶段,训练数据只包含face训练数据的。误检测的猫脸和狗脸的OOD数据,用来在测试时验证对OOD数据的识别效果和测试说明OOD样本不确定度在训练过程中不同阶段的动态过程。
我们画出了in-distribution数据(face)和out-of-distribution数据(误检测为face的猫脸和狗脸)在不同epoch数的不确定度分值,从下图可以看到初始阶段所有样本的不确定度分值都分布在较大值的附近,随着训练的进行,OOD样本的不确定性逐渐升高,face数据的不确定度逐渐降低,且face质量越好,不确定度就越低。通过设置阈值可以区分ID数据和OOD数据,且通过不确定度的分值反应图像质量。
为了说明在训练阶段对噪声训练数据的鲁棒性。本文对训练集施加不同比例的噪声,基于不同比例噪声训练数据的模型识别效果如下表,可以看到RTS对基于噪声数据的训练也能得到较好的识别效果。
下图表明在部署阶段RTS框架得到的不确定度分值和face质量呈现高相关性
同时在benchmark上绘制了去掉低质量样本之后的错误匹配曲线。根据得到的不确定度分值,按照不确定度从高到底的顺序把benchmark中不确定度较高的样本去除,然后绘制剩下样本的错误匹配曲线。从下图可以看到,随着过滤的不确定性较高的样本越多,错误匹配是越少的,而去掉相同数量的不确定性样本时,RTS的错误匹配更少。
为了验证不确定度分值对OOD样本的识别效果,在测试时构建in-distribution数据集(face)和out-of-distribution数据集(误检测为face的猫脸和狗脸)。数据样例如下。
我们从两个方面来说明RTS的效果。首先绘制不确定度的分布图,从下图可以看到,RTS方法对OOD数据具有较强的区分能力。
同时还绘制了OOD测试集上的ROC曲线,计算了ROC权限的AUC值,可以看到RTS的不确定度分值对OOD数据可以较好的识别。
在benchmark上测试通用识别能力,RTS在不影响face识别能力的基础上增加了对OOD数据的识别能力。使用RTS算法可以在识别和OOD数据识别上取得一个均衡的结果。
本文模型已在modelscope开源。另外给大家介绍下CV域上的开源免费模型,欢迎大家体验、下载(大部分手机端即可体验):
https://modelscope.cn/models/damo/cv_resnet50_face-detection_retinaface/summary
https://modelscope.cn/models/damo/cv_resnet101_face-detection_cvpr22papermogface/summary
https://modelscope.cn/models/damo/cv_manual_face-detection_tinymog/summary
https://modelscope.cn/models/damo/cv_manual_face-detection_ulfd/summary
https://modelscope.cn/models/damo/cv_manual_face-detection_mtcnn/summary
https://modelscope.cn/models/damo/cv_resnet_face-recognition_facemask/summary
https://modelscope.cn/models/damo/cv_ir50_face-recognition_arcface/summary
https://modelscope.cn/models/damo/cv_manual_face-liveness_flir/summary
https://modelscope.cn/models/damo/cv_manual_face-liveness_flrgb/summary
https://modelscope.cn/models/damo/cv_manual_facial-landmark-confidence_flcm/summary
https://modelscope.cn/models/damo/cv_vgg19_facial-expression-recognition_fer/summary
https://modelscope.cn/models/damo/cv_resnet34_face-attribute-recognition_fairface/summary