ArcFace_ Additive Angular Margin Loss for Deep Face Recognition.pdf.pdf

介绍

人脸识别3个部分:数据、网络和loss 目标:类内聚、类间开

Loss对于网络的影响,最直观的就是通过计算Loss反传梯度来实现对模型参数的更新,不同的Loss可以使模型更加侧重于学习到数据某一方面的特性,并在之后能够更好地提取到这一“独有”的特征,因此Loss对于网络优化有导向性的作用。

而在近年来人脸识别领域,优化Loss对于最终结果的提高有很大的帮助,从Center Loss的提出,到SphereFace,CosineFace,ArcFace等都有在损失函数这一环节提出新的解决方案,它们的出现对于人脸识别的发展做出了不可磨灭的贡献。无论是SphereFace、CosineFace还是ArcFace的损失函数,都是基于传统的softmax loss进行修改得到的,所以想要理解ArcFace,需要对之前的损失函数有一定理解。

Softmax Loss

ArcFace论文汇报 - 图1
这是我们传统的Softmax公式,其中, {W^T{j}x_i+b{j}}代表我们的全连接层输出,我们在使损失LS下降的过程中,则必须提高我们的{W^T{yi}x_i+b{y_i}}所占有的比重,从而使得该类的样本更多地落入到该类的决策边界之内。
而这种方式主要考虑样本是否能正确分类,缺乏类内和类间距离的约束**。

在[A Discriminative Feature Learning Approach for Deep Face Recognition]这篇文章中,作者使用了一个比LeNet更深的网络结构,用Mnist做了一个小实验来证明Softmax学习到的特征与理想状态下的差距。图a是训练集结果,b是测试集结果。
1.png
实验结果表明,传统的Softmax仍存在着很大的类内距离,也就是说,通过对损失函数增加类内距离的约束,能达到比更新现有网络结构更加事半功倍的效果。于是,[A Discriminative Feature Learning Approach for Deep Face Recognition]的作者提出了Center Loss,并从不同角度对结果的提升做了论证。

Center Loss

Center Loss的整体思想是希望一个batch中的每个样本的feature离feature 的中心的距离的平方和要越小越好,也就是类内距离要越小越好。作者提出,最终的损失函数包含softmax loss和center loss,用参数λ来控制二者的比重,如下面公式所示:
1.gif

L-Softmax Loss

Center Loss的出现,使得人脸识别的研究转向损失函数的改进,对于之前的损失函数,研究发现Softmax Loss学习到的特征分辨性不够强,Center Loss考虑到了使得类内紧凑,却不能使类间可分,而Contrastive Loss、Triplet Loss增加了时间上的消耗,[Large-Margin Softmax Loss for Convolutional Neural Networks]文章作者提出,在Softmax Loss中,由ArcFace论文汇报 - 图4知,特征向量相乘包含由角度信息,即Softmax使得学习到的特征具有角度上的分布特性,为了让特征学习到更可分的角度特性,

ArcFace论文汇报 - 图5

A-Softmax Loss(SphereFace)

[SphereFace: Deep Hypersphere Embedding for Face Recognition]也是L-Softmax Loss文章的作者提出了A-Softmax Loss。作者对Softmax Loss进行了一些改进。 1.gif
2.gif

其中,作者在ArcFace论文汇报 - 图8中约束了||W||=1并且令 bj=0 ,并将 ArcFace论文汇报 - 图9ArcFace论文汇报 - 图10区分出来,就是为了让特征学习到更可分的角度特性。通过这样的损失函数学习,可以使得学习到的特征具有更明显的角分布,因为决策边界只与角相关。

对于Softmax而言,希望能有cos(θ1)>cos(θ2),所以作者增加了在角度空间中对损失函数的约束cos(t⋅θ1)>cos(θ2),也就是要把同类数据压缩在一个紧致的空间,同时拉大类间差距。
由于cosθ[0,π]上单调递减,因此θ有上界,为了使得这个函数随角度单调递减,作者构造一个函数去代替cosθ
1.gif
2.gif
在SphereFace的实际训练过程中,作者发现引入Softmax约束可以保证模型的收敛性。因此,对φ(θyi)函数做了变更,并同时用参数λ来控制二者的比重。
1.gif
t的大小是控制同一类点聚集的程度,从而控制了不同类之间的距离。

后续的SphereFace+对SphereFace做了更新,仅注重从数据中得到的角度信息,而不考虑特征向量的值,所以采用了s=64作为特征归一化参数替代了||x||,因此公式更新为:
1.gif
而这种采用了s=64作为特征归一化参数替代了||x||的思想也被Cosine Loss和Arcface Loss沿用,即相对于距离信息更加关注角度信息。


Cosine Margin Loss

1.gif
与SphereFace相比,CosineFace最明显的变化就是将cos(t⋅θyi)中的tt提出来变成cos(θyi)−t,与之前相比,这样有几个明显的优势。

  • 相对于SphereFace而言要更加容易实现,移除了φ(θyi),减少了复杂的参数计算
  • 去除了Softmax监督约束,训练过程变得简洁同时也能够实现收敛
  • 模型性能有明显的改善

Angular Margin Loss

尽管在余弦范围到角度范围的映射具有一对一的关系,但他们之间仍有不同之处,事实上,实现角度空间内最大化分类界限相对于余弦空间而言具有更加清晰的几何解释性,角空间中的边缘差距也相当于超球面上的弧距。
**
ArcFace论文汇报 - 图16

于是,作者提出了 Angular Margin Loss,将角度边缘t置于cos(θ)函数内部,使得cos(θ+t)θ∈[0,π−t]范围内要小于cos(θ),这一约束使得整个分类任务的要求变得更加苛刻。

对于ArcFace论文汇报 - 图17
,在满足ArcFace论文汇报 - 图18
的情况下,其损失计算公式为

ArcFace论文汇报 - 图19

对于ArcFace论文汇报 - 图20
可以得到ArcFace论文汇报 - 图21
,对比 CosineFace 的ArcFace论文汇报 - 图22
,ArcFace 中的ArcFace论文汇报 - 图23
不仅形式简单,并且还动态依赖于ArcFace论文汇报 - 图24
,使得网络能够学习到更多的角度特性。

参考资料:

Center Loss.pdf
SphereFace.pdf