ArcFace: Additive Angular Margin Loss for Deep Face Recognition 论文学习

论文介绍了ArcFace,一种改进的深度学习损失函数,通过在超球面上优化测地线距离margin,显著提升人脸识别的判别能力。ArcFace在各类基准上超越现有方法,易于实现且计算效率高,适用于大规模人脸识别任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文地址:https://arxiv.org/pdf/1801.07698.pdf

Abstract

使用 DCNN 进行大规模人脸识别的一个主要挑战就是设计损失函数来增强判别能力。Center loss 在欧式空间中惩罚深度特征和它们对应类别中心点的距离,实现类内紧凑性。SphereFace 假设最后一个全连接层的变换矩阵可以当作角度空间里类别中心点的表征使用,以乘数的方式惩罚深度特征和对应权重的角度距离。最近比较流行的方法是将 margins 加入到损失函数中,最大化人脸类别的区分度。本文提出了一个 Additive Angular Margin Loss(ArcFace),产生高判别度的特征。ArcFace 有着清晰的几何涵义,它对应着超球面上的测地线距离。作者在10个人脸识别基准上,对目前最先进的人脸识别方法做了详细的评测,证明 ArcFace 一直能领先于其它方法,实现起来很容易,计算成本可忽略。

1. Introduction

利用 DCNN embedding 的人脸表征是人脸识别常用的方法。人脸图像经过姿态矫正后,DCNN 将之映射为一个特征,该特征的类内距离小、类间距离大。

对于人脸识别任务,DCNN 训练的方式主要有2种。一个是训练多类别分类器,通过 softmax 分类器区分训练集的不同身份类别;另一个直接学习一个 embedding,如 triplet loss。基于大规模训练集和 DCNN 架构,softmax-loss 方法和 triplet-loss 方法都在人脸识别任务上取得了优异的成绩。但是 softmax loss 和 triplet loss 都有一些缺点。对于 softmax loss:1) 线性变换矩阵 W ∈ R d × n W\in \mathbb{R}^{d\times n} WRd×n的大小会随着类别个数 n n n线性增加;2) 学到的特征仅在 closed-set 分类问题上是可区分的,对于 open-set 人脸识别则缺乏判别能力。对于 triplet loss:1) 面对超大规模的数据集时,人脸 triplets 选取会遇到组合个数大爆炸的问题,造成迭代次数激增。2)要想有效的建模训练,semi-hard 样本挖掘非常困难。

在这里插入图片描述
图1. 通过中心点和特征归一化,所有类别都分布在超球面上。为了增强类内紧凑性和类间差异性,作者考虑了4种测地线距离(GDis)条件。A) Margin-Loss: 在样本和中心点之间插入一个测地线距离 margin。B) Intra-Loss: 降低样本和对应中心点的测地线距离。C) Inter-Loss: 增加不同中心点的测地线距离。D) Triplet-Loss: 在 triplet 样本间插入一个测地线距离 margin。本文提出了 ArcFace,对应着A)的测地线距离 margin 惩罚,增强人脸模型的判别能力。大量实验证明(A)是最有效的。

人们提出了多个变种来增强 softmax loss 的判别能力。Wen 等人提出了 Center Loss(每个特征向量和它类别中心点的欧式距离)来实现类内紧凑性,而类间差异性则是通过 softmax loss 来一起做惩罚。但是,在训练中更新中心点是非常难的,因为要训练的人脸类别个数会非常巨大。

有学者发现 DCNN 分类模型(用 softmax loss 训练)最后一个全连接层的权重与每个人脸类别的中心点类似,提出了一个乘数 angular margin 惩罚,增大类内紧凑性和类间差异性,使模型具备更强的判别能力。SphereFace 引入了 angular margin 这一重要思想,但是它的损失需要一系列的近似操作才能计算,造成网络训练不稳定。为了训练稳定,SphereFace 作者提出了一个包括标准 softmax loss 的混合损失函数。在实验时,softmax loss 会主导训练过程,因为乘数 angular margin 是整数,造成目标对数曲线很陡峭,阻碍了模型收敛。CosFace 直接给目标对数增加一个余弦 margin 惩罚,实现了优于 SphereFace 的效果,但实现起来更简单,无需 softmax loss 来协同监督。

本文作者提出了 ArcFace 进一步增强模型的判别能力,稳定了训练过程。如图2,DCNN 特征和最后全连接层的点积等于归一化特征和权重的余弦距离。我们利用 arc-cosine 函数来计算特征和目标权重的角度,通过余弦函数得到目标对数。然后,将所有对数 re-scale 为固定大小的特征范数,后续步骤和 softmax loss 一样。ArcFace 的优势如下:

  • Engaging。根据归一化超球面上的角度和弧度的对应关系,ArcFace 直接优化测地线距离 margin。通过分析特征和权重间的角度数据,介绍了 512 维空间内发生了什么。
  • Effective。ArcFace 在10个基准上取得了 SOTA 表现,包括大规模图像和视频数据集。
  • Easy。ArcFace 只需算法1中的几行代码,很容易就可用现有的深度学习框架实现。ArcFace 无需和其它损失函数结合来让训练稳定,很容易即可收敛。
  • Efficient。ArcFace 训练时的计算复杂度可忽略不计,当前的GPUs很容易就可支持百万计类别的人脸数据训练。

在这里插入图片描述
图2. 通过 ArcFace 损失来监督 DCNN 人脸识别训练。通过对特征 x i x_i xi和权重 W W W归一化,我们得到每个类别的 cos ⁡ θ j \cos \theta_j cosθj(对数),即 W j T x i W_j^T x_i WjTxi。我们计算 arccos ⁡ θ y i \arccos \theta_{y_i} arccosθyi,得到特征 x i x_i xi和 groundtruth 权重 W y i W_{y_i} Wyi 之间的角度。 W j W_j Wj是每个类别的中心点。然后我们给目标角度 θ y i \theta_{y_i} θyi增加一个角度 margin 惩罚 m m m。然后,计算 cos ⁡ ( θ y i + m ) \cos(\theta_{y_i}+m) cos(θyi+m),所有的对数都乘以特征 scale 系数 s s s。然后对数经过 softmax 函数,并入交叉熵损失。

算法1如下:

在这里插入图片描述

2. From Softmax to ArcFace

2.1 Softmax

Softmax loss 是用的最广的分类损失函数:

L 1 = − 1 m ∑ i = 1 m log ⁡ e W y i T x i + b y i ∑ j = 1 n e W y j T x i + b y j , (1) L_1 = -\frac{1}{m} \sum_{i=1}^m \log \frac{e^{W^T_{y_i}x_i+b_{y_i}}}{\sum_{j=1}^n e^{W^T_{y_j}x_i+b_{y_j}}}, \tag{1} L1=m1i=1mlogj=1neWyjTxi+byjeWyiTxi+byi,(1)

其中 x i ∈ R d x_i\in \mathbb{R}^d xiRd 表示第 i i i个样本的特征,属于类别 y i y_i yi。本文的特征维度 d d d设为了512。 W j ∈ R d W_j \in \mathbb{R}^d WjRd 表示最后一个全连接层的权重 W ∈ R d × n W\in \mathbb{R}^{d\times n} WRd×n j j j列, b ∈ R n b\in \mathbb{R}^n bRn是偏置项。Batch size 和类别个数分别是 m m m n n n。传统的 softmax loss 普遍用于人脸识别任务上。但是,softmax loss 无法直接让正样本对趋近、负样本对疏远,这就会在类内样貌变动(如姿态、年龄差异)和测试集规模(如十亿计)过大时造成表现上的差异。

2.2 权重归一化

为了简便,将偏置设为 b j = 0 b_j=0 bj=0。然后,将目标对数做如下变换:

W j T x i = ∥ W j ∥ ⋅ ∥ x i ∥ ⋅ cos ⁡ θ j , (2) W_j^T x_i = \left \| W_j \right \| \cdot \left \| x_i \right \| \cdot \cos \theta_j, \tag{2} WjTxi=Wjxicosθj,(2)

其中 θ j \theta_j θj是权重 W j W_j Wj和特征 x i x_i xi之间的角度。通过L2归一化,将 ∥ W j ∥ = 1 \left \| W_j \right \|=1 Wj=1,这样预测结果就取决于特征向量和权重的角度了。

L 2 = − 1 m ∑ i = 1 m log ⁡ e ∥ x i ∥ cos ⁡ ( θ y i ) e ∥ x i ∥ cos ⁡ ( θ y i ) + ∑ j = 1 , j ≠ y i n e ∥ x i ∥ cos ⁡ ( θ j ) , (3) L_2 = -\frac{1}{m}\sum_{i=1}^m \log \frac{e^{\left \| x_i \right \| \cos(\theta_{y_i})}}{e^{\left \| x_i \right \| \cos(\theta_{y_i})} + \sum_{j=1,j\neq y_i}^n e^{\left \| x_i \right \| \cos(\theta_{j})}}, \tag{3} L2=m1i=1mlogexicos(θyi)+j=1,j=yinexicos(θj)exicos(θyi),(3)

在SphereFace的实验中,L2 权重归一化只提升了很少的准确率。

2.3 Multiplicative Angular Margin

SphereFace 中,通过对角度乘以一个数 m m m 得到 angular margin。

L 3 = − 1 m ∑ i = 1 m log ⁡ e ∥ x i ∥ cos ⁡ ( m θ y i ) e ∥ x i ∥ cos ⁡ ( m θ y i ) + ∑ j = 1 , j ≠ y i n e ∥ x i ∥ cos ⁡ ( θ j ) , (4) L_3 = -\frac{1}{m}\sum_{i=1}^m \log \frac{e^{\left \| x_i \right \| \cos(m\theta_{y_i})}}{e^{\left \| x_i \right \| \cos(m\theta_{y_i})} + \sum_{j=1,j\neq y_i}^n e^{\left \| x_i \right \| \cos(\theta_{j})}}, \tag{4} L3=m1i=1mlogexicos(mθyi)+j=1,j=yinexicos(θj)exicos(mθyi),(4)

其中 θ y i ∈ [ 0 , π / m ] \theta_{y_i}\in [0,\pi/m] θyi[0,π/m]。为了去掉这个约束, cos ⁡ ( m θ y i ) \cos(m\theta_{y_i}) cos(mθyi)被拆分为了分段单调函数 ψ ( θ y i ) \psi(\theta_{y_i}) ψ(θyi)。SphereFace 等式如下:

L 4 = − 1 m ∑ i = 1 m log ⁡ e ∥ x i ∥ ψ ( θ y i ) e ∥ x i ∥ ψ ( θ y i ) + ∑ j = 1 , j ≠ y i n e ∥ x i ∥ cos ⁡ ( θ j ) , (5) L_4 = -\frac{1}{m}\sum_{i=1}^m \log \frac{e^{\left \| x_i \right \| \psi(\theta_{y_i})}}{e^{\left \| x_i \right \| \psi(\theta_{y_i})} + \sum_{j=1,j\neq y_i}^n e^{\left \| x_i \right \| \cos(\theta_{j})}}, \tag{5} L4=m1i=1mlogexiψ(θyi)+j=1,j=yinexicos(θj)exiψ(θyi),(5)

其中 ψ ( θ y i ) = ( − 1 ) k cos ⁡ ( m θ y i ) − 2 k ,   θ y i ∈ [ k π m , ( k + 1 ) π m ] ,   k ∈ [ 0 , m − 1 ] ,   m ≥ 1 \psi(\theta_{y_i})=(-1)^k \cos(m\theta_{y_i})-2k,\ \theta_{y_i}\in [\frac{k\pi}{m},\frac{(k+1)\pi}{m}],\ k\in[0,m-1],\ m \geq 1 ψ(θyi)=(1)kcos(mθyi)2k, θyi[mkπ,m(k+1)π], k[0,m1], m1是控制 angular margin 大小的整数。但在 SphereFace 的实现过程中,加入了 softmax 监督来保证训练可以收敛,权重是通过一个动态超参数 λ \lambda λ控制。加了额外的 softmax loss, ψ ( θ y i ) \psi(\theta_{y_i}) ψ(θyi)就是:

ψ ( θ y i ) = ( − 1 ) k cos ⁡ ( m θ y i ) − 2 k + λ cos ⁡ ( θ y i ) 1 + λ , (6) \psi(\theta_{y_i})=\frac{(-1)^k \cos(m\theta_{y_i})-2k+\lambda \cos(\theta_{y_i})}{1+\lambda}, \tag{6} ψ(θyi)=1+λ(1)kcos(mθyi)2k+λcos(θyi),(6)

其中 λ \lambda λ是让 SphereFace 得以训练的超参数。 λ \lambda λ一开始设为1000,逐渐衰减到5,让每个类别的 angular space 更加紧凑。这个超参数让 SphereFace 的训练非常 tricky。

2.4 特征归一化

特征归一化广泛用于人脸验证中,比如 L2-归一化的欧式距离和余弦距离。Parde 等人发现用 softmax loss 学到的特征 L2 范数包含了大量人脸质量的信息。高质量的正脸图片的特征有着更高的 L2 范数。Ranjan 等人给特征描述施加了 L2 约束,将特征限制在固定半径的超球面上。现有的深度学习框架很容易就可实现特征的L2归一化,提升人脸验证的表现。Wang 等人指出,当低质量人脸图片的特征范数非常小时,梯度范数可能会非常大,增加梯度爆炸的风险。[25,26,43,45] 也介绍了特征归一化的好处,并从分析、几何意义、实验的角度进行了诠释。

对特征和权重做 L2 归一化是超球面度量学习的重要一步。特征和权重归一化背后的思想就是,让半径保持一致、让每个特征都分布在超球面上。

用 L2 归一化固定 ∥ x i ∥ \left \| x_i \right \| xi,并将之 rescale 为 s s s,它就是超球面的半径,[33]中给出了它应有的下界。本文作者使用了 s = 64 s=64 s=64。这样,我们就有了 W j T x i = cos ⁡ θ j W_j^T x_i = \cos \theta_j WjTxi=cosθj

如果对 SphereFace 做特征归一化,我们就得到特征归一后的 SphereFace,记做 SphereFace-FNorm:

L 5 = − 1 m ∑ i = 1 m log ⁡ e s ψ ( θ y i ) e s ψ ( θ y i ) + ∑ j = 1 , j ≠ y i n e s cos ⁡ θ j , (7) L_5=-\frac{1}{m}\sum_{i=1}^m \log \frac{e^{s\psi (\theta_{y_i})}}{e^{s\psi (\theta_{y_i})}+\sum_{j=1,j\neq y_i}^n e^{s \cos \theta_j}}, \tag{7} L5=m1i=1mlogesψ(θyi)+j=1,j=yinescosθjesψ(θyi),(7)

2.5 Additive Cosine Margin

在[44,43]中,angular margin m m m 被移到了 cos ⁡ θ \cos \theta cosθ 外面,因此提出了 cosine margin 损失函数:

L 6 = − 1 m ∑ i = 1 m log ⁡ e s ( cos ⁡ ( θ y i ) − m ) e s ( cos ⁡ ( θ y i ) − m ) + ∑ j = 1 , j ≠ y i n e s cos ⁡ θ j , (8) L_6 = -\frac{1}{m}\sum_{i=1}^m \log \frac{e^{s(\cos (\theta_{y_i})-m)}}{e^{s(\cos (\theta_{y_i})-m)}+\sum_{j=1,j\neq y_i}^n e^{s \cos \theta_j}}, \tag{8} L6=m1i=1mloges(cos(θyi)m)+j=1,j=yinescosθjes(cos(θyi)m),(8)

本文中,cosine margin m m m 设为了0.35。与 SphereFace 相比,CosineFace 有3个优势:(1) 很容易实现,没有了 tricky 的超参数;(2) 更加清晰,无需 softmax 监督即可收敛;(3) 性能提升。

2.6 Additive Angular Margin

尽管[44,43]的 cosine margin 从余弦空间到角度空间有一一对应关系,但这两个 margins 仍有差异。和余弦 margin 相比,angular margin 有更清楚的几何含义,角度空间的 margin 对应着超球面上的弧度距离。

作者在 cos ⁡ θ \cos \theta cosθ 内加入了 angular margin m m m,增强类内紧凑性和类间差异性。因为当 θ ∈ [ 0 , π − m ] \theta\in[0,\pi-m] θ[0,πm]时, cos ⁡ ( θ + m ) < cos ⁡ ( θ ) \cos (\theta+m)<\cos(\theta) cos(θ+m)<cos(θ),该约束对分类来说更加严格。因为 additive angular margin 惩罚等于归一化超球面上的测地线距离 margin,作者称之为 ArcFace。ArcFace 定义如下:

L 7 = − 1 m ∑ i = 1 m log ⁡ e s ( cos ⁡ ( θ y i + m ) ) e s ( cos ⁡ ( θ y i + m ) ) + ∑ j = 1 , j ≠ y i n e s cos ⁡ θ j , (9) L_7 = -\frac{1}{m}\sum_{i=1}^m \log \frac{e^{s(\cos (\theta_{y_i}+m))}}{e^{s(\cos (\theta_{y_i}+m))}+\sum_{j=1,j\neq y_i}^n e^{s \cos \theta_j}}, \tag{9} L7=m1i=1mloges(cos(θyi+m))+j=1,j=yinescosθjes(cos(θyi+m)),(9)
且满足:

W j = W j ∥ W j ∥ ,     x i = x i ∥ x i ∥ ,     cos ⁡ θ j = W j T x i . (10) W_j=\frac{W_j}{\left \| W_j \right \|}, \ \ \ x_i=\frac{x_i}{\left \| x_i \right \|}, \ \ \ \cos \theta_j = W_j^T x_i. \tag{10} Wj=WjWj,   xi=xixi,   cosθj=WjTxi.(10)

如果我们展开 cos ⁡ ( θ + m ) \cos(\theta+m) cos(θ+m),得到 cos ⁡ ( θ + m ) = cos ⁡ θ ⋅ cos ⁡ m − sin ⁡ θ ⋅ sin ⁡ m \cos(\theta+m)=\cos \theta \cdot \cos m-\sin \theta \cdot \sin m cos(θ+m)=cosθcosmsinθsinm。与CosFace 的 cos ⁡ ( θ ) − m \cos(\theta)-m cos(θ)m相比,ArcFace 看上去相似,但是由于 sin ⁡ θ \sin \theta sinθ的出现,margin 是动态的。

作者选取了8个类别的人脸图像,每个类有1500张图片,分别用 softmax loss 和 ArcFace loss 训练2D特征 embedding 网络。在图4中,softmax loss 提供的特征 embedding 算是可以区分,但在决策边界上存在不少模棱两可的特征,而 ArcFace loss 则在相邻的类之间施加更加清晰的边界。

在这里插入图片描述
图4. 用 softmax loss 和 ArcFace loss 得到的 8个类别的 2D 特征。点表示样本,线表示每个类别的中心方向。基于特征归一化,所有的人脸特征都被推到固定半径的弧度空间。由于 additive angular margin 惩罚的使用,不同类别之间的测地线距离逐渐增大。

图2中,作者展示了 ArcFace,angular margin 对应 arc margin。和 SphereFace、CosineFace 相比,该方法有最好的几何含义。

在这里插入图片描述
图2. ArcFace 的几何含义。不同颜色区域表示不同类别的特征空间。ArcFace 不仅压缩了特征空间,也对应了超球面上的测地线距离。

2.7 Comparison under Binary Case

为了更好地理解从 Softmax 到 ArcFace 的过程,作者在表1和图3中给出了二分类的决策边界。根据权重和特征归一化,这些方法的主要差异就是我们在哪里加入 margin。

在这里插入图片描述
表1. 二分类下类别1的决策边界。注意, θ i \theta_i θi W i W_i Wi x x x的角度, s s s是超球面半径, m m m是 margin。

在这里插入图片描述
图3. 二分类下,不同损失函数的决策边界。虚线表示决策边界,灰色区域为决策 margins。

2.8 Target Logit Analysis

目标对数就是 W y i T x i + b y i W_{y_i}^T x_i + b_{y_i} WyiTxi+byi,即全连接层输出矩阵中预测类别为 ground-truth 类别的输出,越小越好。从图4a 可看出,在 [ 3 0 ∘ , 6 0 ∘ ] [30^\circ,60^\circ] [30,60]区间,ArcFace 效果要好于其它算法。

为了探索为什么 SphereFace、CosFace、ArcFace 可以提升人脸识别准确率,作者分析了训练过程中目标对数曲线和 θ \theta θ的分布。作者使用了LResNet34E-IR网络和 MS1M 数据集。

图4a中,画出了 Softmax, SphereFace, CosineFace 和 ArcFace 的目标对数曲线。对于 SphereFace,最佳的设置是 m = 4 , λ = 5 m=4,\lambda=5 m=4,λ=5,这与 m = 1.5 , λ = 0 m=1.5,\lambda=0 m=1.5,λ=0的设置类似。但是 SphereFace 需要 m m m为整数。当作者尝试最小的乘数 margin 时, m = 2 , λ = 0 m=2,\lambda=0 m=2,λ=0,训练不收敛。因此,逐渐微弱地降低 Softmax 的目标对数曲线能够增加训练难度、提升模型表现,但是降低太多会造成训练发散。

CosineFace 和 ArcFace 都延续了该思想。从图4a,CosineFace 将目标对数曲线沿着 y-轴负方向移动,而 ArcFace 是沿着 x-轴的负方向移动。我们很容易就可理解从 Softmax 到 CosineFace 和 ArcFace 的性能提升。

在这里插入图片描述
图4a. Softmax, SphereFace, CosineFace 和 ArcFace 的目标对数曲线

在这里插入图片描述
图4b. 目标对数收敛曲线

在这里插入图片描述
图4c. θ \theta θ在训练过程中的分布,从大角度到小角度移动(开始、中间、结束)。

对于 ArcFace,当 m = 0.5 ,     θ ∈ [ 0 , 18 0 ∘ ] m=0.5,\ \ \ \theta\in [0,180^\circ] m=0.5,   θ[0,180]时,目标对数曲线不是单调递减的。目标对数曲线在 θ > 151.3 5 ∘ \theta>151.35^\circ θ>151.35时会上升。但如图4c所示,当网络一开始随机初始化时, θ \theta θ在中心点是 9 0 ∘ 90^\circ 90呈现高斯分布,最大的角度小于 10 5 ∘ 105^\circ 105。训练中,ArcFace 从来没出现过上升区间。因此我们无需管它。

在图4c,作者在训练的3个阶段中展示了 CosineFace 和 ArcFace 的 θ \theta θ分布。分布的中心逐渐由 9 0 ∘ 90^\circ 90移动到 3 5 ∘ − 4 0 ∘ 35^\circ - 40^\circ 3540。在图4a,我们发现 ArcFace 的目标对数曲线在 3 0 ∘ 30^\circ 30 9 0 ∘ 90^\circ 90之间是低于 CosineFace 的。因此,ArcFace 在该区间施加的 margin 惩罚要比 CosineFace 更加严格。图4b 提供了训练 batch 中,Softmax, CosineFace 和 ArcFace 的目标对数收敛曲线。我们可以发现在训练开始阶段,ArcFace 的 margin 惩罚要比 CosineFace 更严,红虚线要比蓝虚线更低。在训练结束时,ArcFace 收敛的要比 CosineFace 好, θ \theta θ的柱状图在左边(图4c),目标对数收敛曲线要更高(图4b)。我们可发现,在训练结束时几乎所有的 θ \theta θ都要小于 6 0 ∘ 60^\circ 60。该区域外的样本都是难例样本或噪声样本。尽管在 θ < 3 0 ∘ \theta<30^\circ θ<30时,CosineFace 施加了更加严格的惩罚,该区域很少能达到,即便在训练的最后阶段(图4c)。因此,我们也理解了为何 SphereFace 在这一部分能够取得不错的表现,即便 margin 很小。

总之当 θ ∈ [ 6 0 ∘ , 9 0 ∘ ] \theta\in [60^\circ, 90^\circ] θ[60,90]时,增加太多的 margin 惩罚会造成训练发散,比如SphereFace ( m = 2 , λ = 0 m=2, \lambda=0 m=2,λ=0)。当 θ ∈ [ 3 0 ∘ , 6 0 ∘ ] \theta\in [30^\circ, 60^\circ] θ[30,60]时,增加 margin 能提升一部分表现,因为这一部分对应最有效的半难例样本。当 θ < 3 0 ∘ \theta < 30^\circ θ<30时,增大 margin 无法提升表现,因为这一部分对应着容易样本。回到图4a中,我们对 [ 3 0 ∘ , 6 0 ∘ ] [30^\circ, 60^\circ] [30,60]之间的曲线排序,就可理解为何 Softmax、SphereFace、CosineFace 和 ArcFace 的表现能得到提升。注意,这里 3 0 ∘ 30^\circ 30 6 0 ∘ 60^\circ 60是容易样本和难例样本粗略估计的阈值。

2.9 Comparison with SphereFace and CosFace

数值相似性。SphereFace、ArcFace 和 CosFace 提出了三种 margin 惩罚,即乘数 angular margin m 1 m_1 m1、加数 angular margin m 2 m_2 m2、加数 cosine margin m 3 m_3 m3。从数值分析的角度,不同的 margin 惩罚都能通过惩罚目标对数,造成类内紧凑性和类间差异性。不论它是加到角度空间还是余弦空间。在图5b 中,作者给出了 SphereFace、ArcFace 和 CosFace 在各自最佳设定下的目标对数。作者只提供了 [ 2 0 ∘ , 10 0 ∘ ] [20^\circ, 100^\circ] [20,100]区间的目标对数曲线,因为如图5a 所示, W y i W_{y_i} Wyi x i x_i xi之间的角度一开始约为 9 0 ∘ 90^\circ 90(随机初始化),最终结束在 3 0 ∘ 30^\circ 30左右。目标对数曲线有三个因素影响着模型表现,即起始点、结束点和斜率。

在这里插入图片描述
图5. 目标对数分析。(a) ArcFace 训练过程中, θ j \theta_j θj从开始到结束的分布。(b) softmax、SphereFace、ArcFace、CosFace 和结合 margin 惩罚 ( cos ⁡ ( m 1 θ + m 2 ) − m 3 ) (\cos(m_1 \theta+m_2)-m_3) (cos(m1θ+m2)m3)的目标对数曲线。

将所有的 margin 惩罚结合,在一个统一的框架中实现SphereFace、ArcFace 和 CosFace , m 1 , m 2 , m 3 m_1,m_2,m_3 m1,m2,m3是超参数。

L 11 = − 1 N ∑ i = 1 N log ⁡ e s ( cos ⁡ ( m 1 θ y i + m 2 ) − m 3 ) e s ( cos ⁡ ( m 1 θ y i + m 2 ) − m 3 ) + ∑ j = 1 , j ≠ y i n e s cos ⁡ θ j L_{11} = -\frac{1}{N}\sum_{i=1}^N \log \frac{e^{s(\cos(m_1 \theta_{y_i} + m_2)-m_3)}}{e^{s(\cos(m_1 \theta_{y_i} + m_2)-m_3)} + \sum_{j=1,j\neq y_i}^n e^{s\cos \theta_j}} L11=N1i=1Nloges(cos(m1θyi+m2)m3)+j=1,j=yinescosθjes(cos(m1θyi+m2)m3)

如图5b,结合所有的 margin ( cos ⁡ ( m 1 θ + m 2 ) − m 3 ) (\cos(m_1 \theta+m_2)-m_3) (cos(m1θ+m2)m3),我们可以很容易得到其它的目标对数曲线,它们也有优异的表现。

几何差异。尽管 ArcFace 和其它工作有相似性,additive angular margin 有更好的几何性质,因为 angular margin 对应着测地线距离。如图6所示,作者比较了二分类的决策边界。ArcFace 在整个区间内都有稳定的线性 angular margin。而 SphereFace 和 CosFace 的 angular margin 是非线性的。

在这里插入图片描述
图6. 二分类下不同损失函数的决策 margins。虚线表示决策边界,灰色区域是决策 margins。

Margin 设计的细微差异可能会对模型训练产生蝴蝶效应。比如,SphereFace 利用了一个退火优化策略。为了避免在训练初始阶段发散,采用了 softmax 协同监督来弱化乘数 angular margin。作者利用弧度-余弦函数取代复杂的两倍角度公式,实现了 SphereFace 的新版本,对 margin 没有整数的要求。在该实现中,作者发现 m = 1.35 m=1.35 m=1.35 可以取得和原论文相近的效果,没有收敛的困难。

2.10 Comparison with Other Losses

其它损失函数可以根据特征和权重向量的角度表征来设计。比如,我们可以设计一个函数来促成超球面上类内紧凑、类间差异。如图7所示,我们在本文比较了三个损失。

在这里插入图片描述
图7. 因为特征和中心归一化,所有的类别都分布在超球面上。为了增强类内紧凑、类间差异,作者考虑了4种测地线距离约束。A) Margin-Loss: 在样本和中心点之间插入一个测地线距离 margin。B) Intra-Loss: 降低样本和对应中心点的测地线距离。C) Inter-Loss: 增加不同中心点的测地线距离。D) Triplet-Loss: 增加不同 triplet 样本之间的测地线距离。本文提出了 ArcFace,对应着 (A) 的测地线距离(Arc) margin 惩罚,增强人脸识别模型的判别力。实验证明(A)是最有效的。

Intra-Loss 提升类内紧凑性,降低样本和 groundtruth 中心点的角度/弧度。

L = − 1 N ∑ i = 1 N log ⁡ e s cos ⁡ θ y i e s cos ⁡ θ y i + s u m j = 1 , j ≠ y i n e s cos ⁡ θ j + 1 π N ∑ i = 1 N θ y i L=-\frac{1}{N}\sum_{i=1}^N\log \frac{e^{s\cos \theta_{y_i}}}{e^{s\cos \theta_{y_i}}+sum_{j=1,j\neq y_i}^n e^{s \cos \theta_j}} + \frac{1}{\pi N} \sum_{i=1}^N \theta_{y_i} L=N1i=1Nlogescosθyi+sumj=1,j=yinescosθjescosθyi+πN1i=1Nθyi

Inter-Loss 增强类见差异,增加不同中心点的角度/弧度。

L = − 1 N ∑ i = 1 N log ⁡ e s cos ⁡ θ y i e s cos ⁡ θ y i + s u m j = 1 , j ≠ y i n e s cos ⁡ θ j − 1 π N ( n − 1 ) ∑ i = 1 N ∑ j = 1 , j ≠ y i n arccos ⁡ ( W y i T W j ) L=-\frac{1}{N}\sum_{i=1}^N\log \frac{e^{s\cos \theta_{y_i}}}{e^{s\cos \theta_{y_i}}+sum_{j=1,j\neq y_i}^n e^{s \cos \theta_j}}-\frac{1}{\pi N(n-1)}\sum_{i=1}^N \sum_{j=1,j\neq y_i}^n \arccos(W^T_{y_i}W_j) L=N1i=1Nlogescosθyi+sumj=1,j=yinescosθjescosθyiπN(n1)1i=1Nj=1,j=yinarccos(WyiTWj)

Inter-Loss 是 minimum hyperspherical energy [14]方法的特例。[14]中,隐藏层和输出层都用 MHE 进行了正则。在 MHE 论文中,将 SphereFace 损失和 MHE 损失结合,对网络最后一层提出了损失函数的一个特殊情形。

Triplet-Loss 增大 triplet 样本间的角度/弧度距离。在 FaceNet中,对归一化特征使用了欧式 margin。这里作者通过特征的角度表征表示为 arccos ⁡ ( x i p o s x i ) + m ≤ arccos ⁡ ( x i n e g x i ) \arccos(x^{pos}_i x_i)+m \leq \arccos (x_i^{neg} x_i) arccos(xiposxi)+marccos(xinegxi)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值