ArcFace:Insight Face
- 《ArcFace: Additive Angular Margin Loss for Deep Face Recognition》
2018,Jiankang Deng et al.Insight Face
引言:
Centre loss主要惩罚了深层特征与其相应的欧几里得空间类中心之间的距离,以实现类内紧凑性。
SphereFace假设在最后一个完全连接的层中的线性变换矩阵可以用角空间中的类中心来表示,并且以乘法方式惩罚深度特征与其相应的权重之间的角度。
本文提出了一种用于人脸识别的Additive Angular Margin Loss(ArcFace)算法。
算法流程如图所示:
DCNN特征和最后一个完全连接的层之间的点积等于特征和权重归一化之后的余弦距离。利用余弦函数(arc-cosine function)计算人脸特征和目标权重之间的夹角。然后,在目标角度上增加一个附加的角余量,通过余弦函数再次得到目标logit。最后,我们用一个固定的特征范数重新缩放所有logits,并且后续步骤与softmax loss中的步骤完全相同。
ArcFace的优点:
Engaging. ArcFace利用归一化超球面中角与弧之间的精确对应关系直接优化测地线距离间隔。
Effective. ArcFace在十个人脸识别基准(包括大规模图像和视频数据集)上实现了最先进的性能。
Easy. ArcFace在深度学习框架中极其容易实现。
Efficient. ArcFace在训练过程中不会带来复杂的计算量。
ArcFace算法
传统的softmax loss损失函数:
为了简化计算,把偏置b设置为0,,然后权重和输入的内积用下面式子表示
然后使用L2正则化处理Wj使得||Wj||=1,L2正则化就是将Wj向量中的每个值都分别除以Wj的模,从而得到新的Wj,新的Wj的模就是1。这一步操作在SphereFace、CosineFace中都有做。 再乘以一个scale参数s;
将cos(θyi)用cos(θyi+m)替代,这部分是ArcFace的核心,公式也是非常简洁,m默认取0.5。
这样修改的原因:
角度距离比余弦距离在对角度的影响更加直接
算法流程:
通过组合所有的边际惩罚,我们将SphereFace、ArcFace和CosFace实现在一个统一的框架中,以m1、m2和m3作为超参数。
Geometric Difference.
不同损失函数的决策边界:
图示:
注:ArchFace中是直接在角度空间(angular space,也就是横纵坐标是角度θ1和θ2,不是softmax或CosineFace中的cosθ1和cosθ2)中最大化分类界限。
不同损失函数的比较结果:
总结:
本文提出了一种附加角间距(Angular Margin)损失函数,它能够有效地提高通过DCNN学习的特征嵌入在人脸识别中的识别能力。