目录
前置内容
Center Loss
Center loss来源于ECCV2016,A Discriminative Feature Learning Approach for Deep Face Recognition。ECCV 2016的这篇文章主要是提出了一个新的Loss:Center Loss,用以辅助Softmax Loss进行人脸的训练,主要目的是利用softmax loss来分开不同类别,利用center loss来压缩同一类别,最终获取discriminative features。
center loss意思即为:为每一个类别提供一个类别中心,最小化min-batch中每个样本与对应类别中心的距离,这样就可以达到缩小类内距离的目的 L C = 1 2 ∑ i = 1 m ∣ ∣ x i − c y i ∣ ∣ 2 2 L_{C}=\frac{1}{2}\sum_{i=1}^{m}||x_{i}-c_{y_{i}}||_{2}^{2} LC=21i=1∑m∣∣xi−cyi∣∣22其中, m m m是batch的样本数量, c y i c_{y_{i}} cyi就是这个batch中每个样本对应的类别中心,它和特征 x i x_{i} xi的维度一样,对相关变量求导如下: ∂ L C ∂ x i = x i − c y i \frac{\partial L_{C}}{\partial x_{i}}=x_{i}-c_{y_{i}} ∂xi∂LC=xi−cyi Δ c j = ∑ i = 1 m δ ( y i = j ) ( c j − x i ) 1 + ∑ i = 1 m δ ( y i = j ) \Delta c_{j}=\frac{\sum_{i=1}^{m}\delta(y_{i}=j)(c_{j}-x_{i})}{1+\sum_{i=1}^{m}\delta(y_{i}=j)} Δcj=1+∑i=1mδ(yi=j)∑i=1mδ(yi=j)(cj−xi)其中,当condition满足时, δ ( c o n d i t i o n ) = 1 \delta(condition)=1 δ(condition)=1,否则为0。
值得注意的是,在进行类别中心的求导时,只用当前batch中某一类别的图片来获得该类别中心的更新量。
使用center loss与softmax loss在mini-batch上联合训练: L = L S + λ L C = − ∑ i = 1 m l o g e W y i T x i + b y i ∑ j = 1 n e W j T x i + b j + λ 2 ∑ i = 1 m ∣ ∣ x i − c y i ∣ ∣ 2 2 L=L_{S}+\lambda L_{C}=-\sum_{i=1}^{m}log\frac{e^{W^{T}_{y_{i}}x_{i}+b_{y_{i}}}}{\sum_{j=1}^{n}e^{W^{T}_{j}x_{i}+b_{j}}}+\frac{\lambda}{2}\sum_{i=1}^{m}||x_{i}-c_{y_{i}}||_{2}^{2} L=LS+λLC=−i=1∑mlog∑j=1neWjTxi+bjeWyiTxi+byi+2λi=1∑m∣∣xi−cyi∣∣22其中, n n n为类别总数。
注意: W j W_{j} Wj只是权重里的一个向量。
Contrastive Loss
对比损失来源于CVPR2006,Dimensionality Reduction by Learning an Invariant Mapping。这个损失函数的准则是:
- 近似样本之间的距离越小越好。
- 不近似样本之间的距离如果小于 m m m,则通过互斥使其距离接近 m m m。
第一个准则不变,第二个准则里加入一个超参数 m m m,使得训练目标有了边界。文章对第二个准则有个形象的解释,就像长度为 m m m的弹簧,如果它被压缩,则会因为斥力恢复到长度 m m m。
写成公式就是: L ( W , Y , X 1 , X 2 ) = ( 1 − Y ) 1 2 ( D W ) 2 + ( Y ) 1 2 { m a x ( 0 , m − D W ) } 2 L(W,Y,X_{1},X_{2})=(1-Y)\frac{1}{2}(D_{W})^{2}+(Y)\frac{1}{2}\left\{max(0,m-D_{W})\right\}^{2} L(W,Y,X1,X2)=(1−Y)21(DW)2+(Y)21{max(0,m−DW)}2其中 W W W 是网络权重, Y Y Y是成对标签,如果 X 1 , X 2 X_{1},X_{2} X1,X2这对样本属于同一个类, Y = 0 Y=0 Y=0,属于不同类则 Y = 1 Y=1 Y=1。 D W D_{W} DW 是 X 1 X_{1} X1 与 X 2 X_{2} X2 在Embedding空间的欧几里德距离。当 Y = 0 Y=0 Y=0,调整参数最小化 X 1 X_{1} X1 与 X 2 X_{2} X2之间的距离。当 Y = 1 Y=1 Y=1,如果 X 1 X_{1} X1 与 X 2 X_{2} X2之间距离大于 m m m,则不做优化;如果 X 1 X_{1} X1 与 X 2 X_{2} X2之间的距离小于 m m m, 则增大两者距离到 m m m。
摘要
本文研究了开集(open-set protocol)下的深度人脸识别(FR)问题,在适当选择的度量空间下,理想人脸特征的最大类内距离小于最小类间距离。然而,现有的算法很少能有效地达到这一标准。为此,我们提出了 Angular softmax(A-softmax)loss,使卷积神经网络(CNN)能够学习角度辨别特征(angularly discriminative features)。从几何角度来看,A-Softmax loss可以被视为对超球面流形(hypersphere manifold)施加了区别性约束(discriminative constraints),这与同样位于流形上的face在本质上匹配。此外,角度的大小可以通过一个参数 m m m进行定量调整。我们进一步推导出特定的 m m m来近似理想的特征准则。对Labeled Face in the Wild(LFW)、Youtube人脸(YTF)和 MegaFace Challenge进行了广泛的分析和实验,证明了A-Softmax loss 在FR任务中的优越性。
1.Introduction
近年来,卷积神经网络(CNN)在人脸识别中取得了巨大的成功。由于先进的网络架构和判别性学习方法(discriminative learning approaches),深度CNN将FR性能提升到了前所未有的水平。通常,人脸识别(face recognition)可以分为人脸认证(face identification)和人脸验证(face verification)。前者将人脸分类为特定身份,而后者则确定一对人脸是否属于同一身份。
根据测试协议,人脸识别可以在封闭集(closed-set)或开放集(open-set)设置下进行评估,如图1所示。对于闭集协议,所有测试标识(testing identities)都在训练集中预定义(人脸的类别和类别数目是固定的),因此,根据给定的身份对测试人脸图像进行分类是很自然的。在这种情况下,人脸验证(face verification)相当于分别对一对人脸进行识别(参见图1的左侧)。因此,closed-set FR可以作为一个分类问题来解决,这要求我们学习可区分的特征。
- 图1:开集和闭集人脸识别的比较。
对于开放集协议,测试标识identities通常与训练集不相交,这使得FR更具挑战性,但更接近实际。由于不可能将人脸分类为训练集中的已知identities,我们需要将人脸映射到一个有判别性的特征空间。在这种情况下,人脸认证(face identification)可以看作是在探针人脸和gallery图库中的每个身份之间进行人脸验证(参见图1的右侧)。开集FR本质上是一个度量学习问题,其关键是学习有区别的large-margin特征。
在一定的度量空间下,开集FR的期望特征应满足最大类内距离小于最小类间距离的准则。如果我们想用最近邻法达到完美的精度,这个标准是必要的。然而,使用这一标准学习特征通常是困难的,因为本质上存在较大的类内差异和较高的类间相似性。
很少有基于CNN的方法能够在损失函数中有效地表达上述标准。早期工作通过softmax loss学习面部特征,但softmax loss只能学习到识别能力不够强的可分离特征(separable features)。为了解决这个问题,一些方法将softmax loss与对比损失(contrastive loss)或中心损失(center loss)相结合,以增强特征的判别能力。最开始采用三元组损失triplet loss来监督embedding学习,从而获得最先进的人脸识别结果。然而,中心损失只会明确地鼓励类内紧凑性。对比损失和三元组损失需要仔细设计成对/三元组数据集过程,这耗时且对性能过度敏感。
将欧几里德margin应用于学习的特征似乎是一个被广泛认可的选择,但问题出现了:欧几里德margin是否总是适用于学习有判别性的人脸特征?为了回答这个问题,我们首先研究如何将基于欧几里德margin的损失应用于FR。
最新的方法将基于欧几里德margin的损失与softmax损失相结合,以构建联合的监督学习。然而,如图2所示,通过softmax loss学习的特征具有固有的angular分布。从某种意义上说,基于欧几里德边际margin的损失与softmax损失不兼容,因此将这两种损失结合起来的动机是不强的。
- 图2:比较softmax、修正softmax和A-softmax 的 loss。在这个toy实验中,我们构建了一个CNN来学习CASIA人脸数据集的一个子集上的二维特征。具体来说,我们将FC1层的输出维度设置为2,并将学习到的特征可视化。黄色圆点代表第一类面部特征,而紫色圆点代表第二类面部特征。可以看出,通过原始softmax loss学习到的特征不能简单地通过angular进行分类,而修改后的softmax loss可以。我们的A-Softmax损耗可以进一步增加学习特征的angular。
在本文中,我们建议加入角度。我们从一个二进制类案例开始分析softmax损失。softmax损失的决策边界为 ( W 1 − W 2 ) x + b 1 − b 2 = 0 (W_{1}-W_{2})x+b_{1}-b_{2}=0 (W1−W2)x+b1−b2=0,其中 W i , b i W_{i},b_{i} Wi,bi为softmax loss中的权重和偏置(注意:是对应类别 i i i的weight向量和bias标量)。如果我们定义 x x x为特征向量,并且限制 ∣ ∣ W 1 ∣ ∣ = ∣ ∣ W 2 ∣ ∣ = 1 , b 1 = b 2 = 0 ||W_{1}||=||W_{2}||=1,b_{1}=b_{2}=0 ∣∣W1∣∣=∣∣W2∣∣=1,b1=b2=0,决策边界可以写成 ∣ ∣ x ∣ ∣ ( c o s ( θ 1 ) − c o s ( θ 2 ) ) = 0 ||x||(cos(\theta_{1})-cos(\theta_{2}))=0 ∣∣x∣∣(cos(θ1)−cos(θ2))=0,其中, θ i \theta_{i} θi是 W i W_{i} Wi和 x x x之间的夹角( W i W_{i} Wi只是一个向量)。这个新的决策边界仅取决于 θ 1 , θ 2 \theta_{1},\theta_{2} θ1,θ2。修改后的softmax loss能够直接优化角度,使CNN能够学习角度分布特征(图2)。
与原始softmax loss相比,通过修改的softmax学习的特征呈角度分布,但不一定更具辨别力。最后,我们将修正的softmax推广到 angular softmax(A-softmax)loss。特别地,我们引入整数 m ≥ 1 m\geq1 m≥1 控制决策边界。在二分类情况下,类别1和2的决策边界变为 ∣ ∣ x ∣ ∣ ( c o s ( m θ 1 ) − c o s ( θ 2 ) ) = 0 ||x||(cos(m\theta_{1})-cos(\theta_{2}))=0 ∣∣x∣∣(cos(mθ1)−cos(θ2))=0和 ∣ ∣ x ∣ ∣ ( c o s ( θ 1 ) − c o s ( m θ 2 ) ) = 0 ||x||(cos(\theta_{1})-cos(m\theta_{2}))=0 ∣∣x∣∣(cos(θ1)−cos(mθ2))=0, m m m定量控制angular margin(角度边距)的大小。此外,A-Softmax可以很容易地推广到多个类别,类似于Softmax。通过优化A-Softmax,决策区域变得更加分离,同时扩大类间角度并压缩类内角度分布。
A-Softmax具有清晰的几何解释。在A-Softmax损失的监督下,学习的特征构造了一个判别角距离度量,该度量相当于超球面流形上的距离。A-Softmax损失可以将学习到的特征限制在超球面流形,这与人脸图像位于流形上的先验特征本质上是匹配的。A-Softmax和超球面流形之间的紧密联系使得学习到的特征在人脸识别中更加有效。因此,我们将学习到的特征称为SphereFace。
此外,A-Softmax损耗可以通过参数 m m m定量调整角裕度angular margin,使我们能够进行定量分析。有鉴于此,我们推导了参数 m m m的下界,以逼近期望的开集FR准则,即最大类内距离应小于最小类间距离。
2.Related Work
2.1.Metric learning
度量学习旨在学习相似性函数,传统的度量学习通常根据给定的特征 x 1 , x 2 x_{1},x_{2} x1,x2,为距离度量 ∣ ∣ x 1 − x 2 ∣ ∣ A = ( x 1 − x 2 ) T A ( x 1 − x 2 ) ||x_{1}-x_{2}||_{A}=\sqrt{(x_{1}-x_{2})^{T}A(x_{1}-x_{2})} ∣∣x1−x2∣∣A=(x1−x2)TA(x1−x2)学习一个矩阵 A A A。最近,流行的深度度量学习通常使用神经网络基于简单的距离度量(如欧几里德距离 ∣ ∣ x 1 − x 2 ∣ ∣ 2 ||x_{1}-x_{2}||_{2} ∣∣x1−x2∣∣2)自动学习判别性特征 x 1 , x 2 x_{1},x_{2} x1,x2。深度度量学习中最广泛使用的损失函数是对比损失和三元组损失,它们都对特征施加了欧几里得margin。
2.2.Deep face recognition
深度人脸识别可以说是过去几年最活跃的研究领域之一。过去工作使用softmax loss监督的CNN解决开集FR问题,它本质上将开集FR视为一个多类分类问题。后续将对比 loss和softmax loss相结合,共同监督CNN训练,极大地提升了性能。有人使用三元组loss学习统一的人脸embedding。通过对近2亿张人脸图像的训练,他们达到了目前最先进的FR精确度。受线性判别分析的启发,有人提出了CNN的center loss,并获得了良好的性能。一般来说,目前表现良好的FR CNN主要基于对比损失或三元组损失。可以注意到,最先进的FR方法通常采用度量学习的思想(例如对比损失、三元组损失),这表明开放集FR可以通过判别性度量学习很好地解决。
L-Softmax隐含了角度的概念。作为一种正则化方法,它对闭集分类问题有很大的改进。不同的是,A-Softmax loss被开发用于学习区分性人脸embedding。实验证明,超球面流形的显式连接使我们学习到的特征特别适合于开集FR问题。此外,A-Softmax中的角裕度是明确施加的,可以进行定量控制(例如,接近所需特征标准的下限),而L-Softmax只能进行定性分析。
L-Softmax 来源于ICML2016,Large-Margin Softmax Loss for Convolutional Neural Networks。L-Softmax损失对角度施加了更强烈的约束,假定样本 x x x属于类别1,则要求: ∣ ∣ W 1 ∣ ∣ ⋅ ∣ ∣ x ∣ ∣ c o s ( m θ 1 ) > ∣ ∣ W 2 ∣ ∣ ⋅ ∣ ∣ x ∣ ∣ c o s ( θ 2 ) , θ 1 ∈ [ 0 , π m ] ||W_{1}||\cdot||x||cos(m\theta_{1})>||W_{2}||\cdot||x||cos(\theta_{2}),\theta_{1}\in[0,\frac{\pi}{m}] ∣∣W1∣∣⋅∣∣x∣∣cos(mθ1)>∣∣W2∣∣⋅∣∣x∣∣cos(θ2),θ1∈[0,mπ]其中, m m m是一个正整数。由于 c o s cos cos在 [ 0 , π ] [0,\pi] [0,π]上是单调递减的,因此有: ∣ ∣ W 1 ∣ ∣ ⋅ ∣ ∣ x ∣ ∣ c o s ( θ 1 ) ≥ ∣ ∣ W 1 ∣ ∣ ⋅ ∣ ∣ x ∣ ∣ c o s ( m θ 1 ) ||W_{1}||\cdot||x||cos(\theta_{1})\geq||W_{1}||\cdot||x||cos(m\theta_{1}) ∣∣W1∣∣⋅∣∣x∣∣cos(θ1)≥∣∣W1∣∣⋅∣∣x∣∣cos(mθ1)因此L-softmax函数实际上施加了一种更强的约束,不仅要求满足有 m m m约束的softmax的条件(公式1),同时还要满足更为苛刻的条件(公式2,两个公式隐含地引入了角度损失)。
L-Softmax损失可以表示为:
其中:
当
m
m
m越大,分类的边界越大,学习的难度越高,同时,
D
(
θ
)
D(\theta)
D(θ)必须是一个单调递减函数并且
D
(
π
m
)
=
c
o
s
(
π
m
)
D(\frac{\pi}{m})=cos(\frac{\pi}{m})
D(mπ)=cos(mπ)以确保连续。
3.Deep Hypersphere Embedding
3.1.重温Softmax
通过研究softmax损失的决策标准,我们重新审视了softmax损失。在二元类情况下,通过softmax loss获得的后验概率为:
其中,
x
x
x是特征向量,
W
i
,
b
i
W_{i},b_{i}
Wi,bi是类别
i
i
i最后一个全连接层对应的权重的向量和偏置。如果
p
1
>
p
2
p_{1}>p_{2}
p1>p2则预测的label被分配为类别1。可以看出,
W
1
T
x
+
b
1
,
W
2
T
x
+
b
2
W^{T}_{1}x+b_{1},W^{T}_{2}x+b_{2}
W1Tx+b1,W2Tx+b2清晰决定了分类结果。决策边界为
(
W
1
−
W
2
)
x
+
b
1
−
b
2
=
0
(W_{1}-W_{2})x+b_{1}-b_{2}=0
(W1−W2)x+b1−b2=0。我们重写
W
i
T
x
+
b
i
=
∣
∣
W
i
∣
∣
⋅
∣
∣
x
∣
∣
c
o
s
(
θ
i
)
+
b
i
W_{i}^{T}x+b_{i}=||W_{i}||\cdot||x||cos(\theta_{i})+b_{i}
WiTx+bi=∣∣Wi∣∣⋅∣∣x∣∣cos(θi)+bi,其中,
θ
i
\theta_{i}
θi是
W
i
W_{i}
Wi和
x
x
x的夹角。注意如果我们令
∣
∣
W
i
∣
∣
=
1
,
b
i
=
0
||W_{i}||=1,b_{i}=0
∣∣Wi∣∣=1,bi=0,则
p
i
=
∣
∣
x
∣
∣
c
o
s
(
θ
i
)
p_{i}=||x||cos(\theta_{i})
pi=∣∣x∣∣cos(θi),由于可以把
x
x
x约去,决策边界变成
c
o
s
(
θ
1
)
−
c
o
s
(
θ
2
)
=
0
cos(\theta_{1})-cos(\theta_{2})=0
cos(θ1)−cos(θ2)=0(即向量
W
1
W_{1}
W1和
W
2
W_{2}
W2的角平分线angular bisector),尽管上述分析是建立在二分类情况下的,但可以很容易推广到多类情况。在训练期间,modified softmax loss鼓励第
i
i
i类对象的特征相比其他类别对象有更小的角度
θ
i
\theta_{i}
θi(即更大的余弦角度)。这使得
W
i
W_{i}
Wi和特征之间的角度成为分类的可靠指标。
为了给出modified softmax loss的形式化表达式,我们首先定义输入特征
x
i
x_{i}
xi及其标签
y
i
y_{i}
yi。原始的softmax可以写成:
L
=
1
N
∑
i
−
l
o
g
(
e
f
y
i
∑
j
e
f
j
)
L=\frac{1}{N}\sum_{i}-log(\frac{e^{f_{y_{i}}}}{\sum_{j}e^{f_{j}}})
L=N1i∑−log(∑jefjefyi)其中,
f
j
f_{j}
fj代表得分向量
f
f
f中第
j
j
j个类别的element(
j
∈
[
1
,
K
]
j\in[1,K]
j∈[1,K]),
N
N
N是训练样本数量。在CNN中,
f
f
f通常由全连接层输出,所以有
f
j
=
W
j
T
x
i
+
b
j
f_{j}=W^{T}_{j}x_{i}+b_{j}
fj=WjTxi+bj,所以softmax loss写成:
我们引入
∣
∣
W
∣
∣
=
1
,
b
=
0
||W||=1,b=0
∣∣W∣∣=1,b=0后,得到mofified softmax loss:
虽然我们可以通过modified softmax loss学习具有angular margin的特征,但这些特征仍然不一定具有区分性。由于我们使用angular作为距离度量,因此自然会将angular margin纳入学习特征,以增强识别能力。为此,我们提出了一种结合angular margin的新方法。
3.2.Introducing Angular Margin to Softmax Loss
我们构造一个可以与softmax加权组合的损失,而不是设计一种新的损失函数,我们提出了一种更自然的方法来学习角裕度(angular margin)。从之前对softmax loss的分析中,我们了解到决策边界会极大地影响特征分布,因此我们的基本思想是操纵决策边界以产生角度裕度。我们首先给出一个二元类示例来解释我们的想法是如何运作的。
假设从一个类别1的对象学习到特征
x
x
x,modified softmax loss要求
c
o
s
(
θ
1
)
>
c
o
s
(
θ
2
)
cos(\theta_{1})>cos(\theta_{2})
cos(θ1)>cos(θ2)才能正确分类。但是如果我们用
c
o
s
(
m
θ
1
)
>
c
o
s
(
θ
2
)
,
m
≥
2
cos(m\theta_{1})>cos(\theta_{2}),m\geq 2
cos(mθ1)>cos(θ2),m≥2,此时可能不能正确分类该对象了,因为它比之前的决策要求更严格,现在决策边界变成
c
o
s
(
m
θ
1
)
=
c
o
s
(
θ
2
)
cos(m\theta_{1})=cos(\theta_{2})
cos(mθ1)=cos(θ2)。同样,如果对于类别2的样本,决策边界应该是
c
o
s
(
θ
1
)
=
c
o
s
(
m
θ
2
)
cos(\theta_{1})=cos(m\theta_{2})
cos(θ1)=cos(mθ2)。假设所有训练样本都被正确分类,则决策边界之间会出现一个裕度margin为
m
−
1
m
+
1
θ
1
2
\frac{m-1}{m+1}\theta_{1}^{2}
m+1m−1θ12,其中
θ
1
2
\theta_{1}^{2}
θ12是
W
1
,
W
2
W_{1},W_{2}
W1,W2之间的angle。在angle的视角看,正确分类
x
x
x到类别1需要满足
θ
1
<
θ
2
m
\theta_{1}<\frac{\theta_{2}}{m}
θ1<mθ2,正确分类样本到类别2需要满足
θ
2
<
θ
1
m
\theta_{2}<\frac{\theta_{1}}{m}
θ2<mθ1,把这个裕度加入modified softmax loss,我们有:
其中,
θ
y
i
,
i
\theta_{y_{i},i}
θyi,i必须在
[
0
,
π
m
]
[0,\frac{\pi}{m}]
[0,mπ]内。为了摆脱限制,使其在CNN中优化,我们扩展定义
c
o
s
(
θ
y
i
,
i
)
cos(\theta_{y_{i},i})
cos(θyi,i)为单调递减函数
ψ
(
θ
y
i
,
i
)
\psi(\theta_{y_{i},i})
ψ(θyi,i),其在
[
0
,
π
m
]
[0,\frac{\pi}{m}]
[0,mπ]内等于
c
o
s
(
θ
y
i
,
i
)
cos(\theta_{y_{i},i})
cos(θyi,i),因此,我们提出A-softmax loss:
我们定义
ψ
(
θ
y
i
,
i
)
=
(
−
1
)
k
c
o
s
(
m
θ
y
i
,
i
)
−
2
k
,
θ
y
i
,
i
∈
[
k
π
m
,
(
k
+
1
)
π
m
]
,
k
∈
[
0
,
m
−
1
]
\psi(\theta_{y_{i},i})=(-1)^{k}cos(m\theta_{y_{i},i})-2k,\theta_{y_{i},i}\in[\frac{k\pi}{m},\frac{(k+1)\pi}{m}],k\in[0,m-1]
ψ(θyi,i)=(−1)kcos(mθyi,i)−2k,θyi,i∈[mkπ,m(k+1)π],k∈[0,m−1],
m
m
m是一个大于等于1的整数,用于控制角度裕度的大小。当
m
=
1
m=1
m=1时,A-softmax loss退化为modified softmax loss。
A-Softmax loss对不同类别采用不同的决策边界,从而出现了angular margin。决策边界的比较如表1所示。从原始的softmax loss到modified softmax loss,从优化内积到优化角度。从modified softmax loss到A-softmax loss,使得决策边界更加严格和分离。角裕度随着
m
m
m的增大而增大,如果
m
=
1
m=1
m=1,角裕度为零。
- 表1:二元情况下决策边界的比较。
在A-Softmax loss的监督下,CNN学习具有几何可解释角裕度的人脸特征。根据之前的分析,我们知道,分类结果其实只取决于 x x x和 W i W_{i} Wi之间的夹角。所以 x x x可以被归类为角度最小的等式。添加参数 m m m是为了学习不同identities之间的角度裕度。
为了便于梯度计算和反向传播,我们将 c o s ( θ y i , i ) cos(\theta_{y_{i},i}) cos(θyi,i)和 c o s ( m θ y i , i ) cos(m\theta_{y_{i},i}) cos(mθyi,i)替换为只包含 W W W和 x i x_{i} xi的表达式,这很容易根据向量与角度的关系来实现。
实验表明, m m m越大,效果越好, m = 4 m=4 m=4通常就足够了。
3.3.Hypersphere Interpretation of A-Softmax Loss
当 m ≥ 2 m≥2 m≥2,在不同类别的学习特征之间生成角度分类界限。A-Softmax loss不仅通过角裕度对所学习的特征施加辨别力,而且还呈现出良好且新颖的超球面解释。如图3所示,A-Softmax损失相当于学习超球面流形上的区别性特征,而欧几里德裕度损失则学习欧几里德空间中的特征。
- 图3:欧几里德margin损失(例如对比损失、三元组损失、中心损失等)、modified softmax损失和A-softmax损失的几何解释。第一行是二维特征约束,第二行是三维特征约束。橙色区域表示类别1的区分性约束,而绿色区域表示类别2。
为了简化,我们以二元情况来分析超球解释。考虑来自类别1的样本 x x x和两列权重 W 1 , W 2 W_{1},W_{2} W1,W2, A-Softmax的分类规则为 c o s ( m θ 1 ) > c o s ( θ 2 ) cos(m\theta_{1})>cos(\theta_{2}) cos(mθ1)>cos(θ2),等价于 m θ 1 < θ 2 m\theta_{1}<\theta_{2} mθ1<θ2。
从几何角度来说,这是一个超球面流形上的超圆形区域。例如,在3D情况下,它是单位球体上的圆形区域,如图3所示。注意, m m m越大,每个类的超圆形区域越小,这是流形上的一个显式判别约束。为了更好地理解,图3提供了2D和3D可视化。可以看出,A-Softmax在二维情况下对单位圆施加弧长约束,在三维情况下对单位球体施加类圆区域约束。我们的分析表明,使用A-Softmax优化角度本质上使学习的特征在超球面上更具辨别力。
4.Discussions
4.1.Why angular margin
首先,也是最重要的一点,角度裕度直接与流形上的辨别力有关,这与流形上的面也存在的先验知识内在地匹配。其次,将角度裕度与softmax loss相结合实际上是一个更自然的选择。如图2所示,通过原始softmax loss学习的特征具有固有的角度分布。因此,直接将欧几里德边际约束与softmax损失相结合是不合理的。
4.2.Comparison with existing losses
在深度FR任务中,最常用且表现良好的损失函数包括对比损失、三元组损失和中心损失。首先,他们只对学习到的特征施加欧几里德裕度,而我们直接考虑角度裕度。第二,当从训练集中构建pairs或者triplets时,对比损失和三元组损失都会受到数据扩展的影响,而我们的方法不受影响,并且对整个小批量施加了区分性约束(相比之下,对比损失和三元组损失只影响少数有代表性的pairs或者triplets)。
5.Experiments
- 图4:使用不同 m m m学习的特征可视化。第一行显示投影到单位球体上的3D特征。投影点是特征向量和单位球体的交点。第二行显示了正对和负对的角度分布(我们从子集中选择类别1和类别2来构造正对和负对)。橙色区域表示正对,蓝色区域表示负对。所有角度均以弧度表示。注意,这个可视化实验使用了CASIA-WebFace数据集的一个6-class子集。
- 图5:在小训练集协议下,不同方法的CMC和ROC曲线。
6.个人总结
我们发现,L-Softmax和A-Softmax有很多相似之处。
L-softmax在Softmax的基础上对
W
W
W和
x
x
x的角度引入正整数
m
m
m,使分类条件更加严苛,此时分类面之间产生了margin,即命名中Large-Margin的由来。
- 不同 m m m值的 L-softmax 和 Softmax 的区别。
Angular softmax (A-Softmax) 应用在人脸识别任务中即称为SphereFace。A-Softmax类似于L-softmax,在原始Softmax的基础上不仅对角度添加 m m m的限制,还对A-Softmax上一层全连接层的 W W W和 b b b做出 ∣ ∣ W ∣ ∣ = 1 ||W||=1 ∣∣W∣∣=1和 b = 0 b=0 b=0两个限制。由此,A-Softmax的分类过程仅依赖于 W W W和 x x x之间的角度。
对于没有 m m m约束,但是有 ∣ ∣ W ∣ ∣ = 1 ||W||=1 ∣∣W∣∣=1和 b = 0 b=0 b=0两个限制的即为论文里的modified softmax loss。