1、介绍
人脸识别领域,这两年的发展都偏向于
1、创造轻量级的网络用于移动端
2、对模型的loss进行改进。
本篇文章就是对于angular margin来进行loss的约束了,也取得了很明显的效果。
2、背景
先普及一下人脸领域两个重要方向——人脸识别(face identification)、人脸验证(face verification)。前者将一张脸归为一个特定的身份,后者则决定一对脸是否属于同一个身份。相关的测试可以在闭集(close-set)或开集(open-set)设置下评估
对于open-set,测试身份通常与训练集不相交,这使得FR更具挑战性,但更接近实际。在这种情况下,人脸识别可以被视为识别人脸和集合中的每个身份之间执行面部验证(参见图1的右侧)。open-set FR本质上是一个度量学习问题,其关键是学习有区别的大边距特征。在一定的度量空间下,open-set FR的期望特征满足最大类内距离小于最小类间距离的准则。如果我们想用最近邻来达到完美的精度,这个准则是必要的。然而,用这个标准学习特征通常是困难的,因为面临着内在的大的类内变化和高类间相似性。通常我们使用的softmax loss只学习区分性不够强的可分离特征,但却无法满足类间保持较大距离。
以二分类的例子来看softmax loss:
此时的分类边界:
(W1−W2)x+b1−b2=0
W,b分别是权重和偏置。如果约束||W1||=1,||W2||=1,b1=b2=0,
||x||(cos(θ1)−cos(θ2))=0
此时新的判定边界只依赖于θ1和θ2。
3、实验方法
在二元类情形下,由softmax损失得到的后验概率为:
所以当p1>p2,预测类别为类1,当p2>p1,预测类别为类2。通过比较p1,p2就可以进行分类。所以此时的决策边界就是:
用余弦表达式可分解为:
其中θ是Wi和x之间的夹角。
如果我们规范化权重并使偏差为零,整个式子就变为:
因为共用相同的x,所以可以将x消去,决策边界就变为:
所以就完全转化为对角度的优化。
带入原来的softmax loss,得到:
但是如果我们引用m,就变成下式:
那么此时他的决策条件将比以前更加严格,得到
这是θ的范围就在[0,πm]的范围内,为摆脱这一限制,我们将cos(θyi,i)的定义范围推广到单调递减的角度函数ψ(θyi,i)
我们定义:
4、实验结果
实验采用的网络结构:
整个流程如下:
LFW和YTF数据集不同m(A-Softmax损失)和原始Softmax损失的精确比较。
论文用不同的m来做一个玩具例子,用6个个体训练a-Softmax-loss,结果如图
总结一句就是:最小类间距离大于最大类内距离的学习任务
参考
- cosFace
- arcFace
- center loss
- COCO Loss