https://arxiv.org/abs/1704.08063
https://github.com/wy1iu/sphereface.
摘要
本文研究了开放集协议下的深度人脸识别问题,在合适的度量空间下,理想人脸特征的最大类内距离要小于最小类间距离。然而,现有的算法很少能有效地达到这一标准。为此,我们提出了angular softmax (A-Softmax)损失,它使卷积神经网络(CNNs)能够学习角度区分特征。几何上,A-Softmax损失可视为对超球面流形施加判别约束,它本质上与流形上的先验相匹配。此外,角边缘的大小可以通过一个参数m来定量调整,我们进一步推导了具体的m来近似理想特征准则。对野外标记人脸(LFW)进行了广泛的分析和实验,Youtube Faces (YTF)和MegaFace Challenge显示了在FR任务中A-Softmax损失的优势。该代码也已公布于众。
1 引言
近年来,卷积神经网络(CNNs)在人脸识别(FR)领域取得了巨大的成功。
由于先进的网络架构[13,23,29,4]和区别学习方法[25,22,34],深度CNNs将FR性能提升到了前所未有的水平。通常,人脸识别可以分为人脸识别和人脸验证两大类[8,11]。前者将一张脸分类为一个特定的身份,而后者确定一对脸是否属于同一身份。
在测试协议方面,人脸识别可以在闭集或开集的情况下进行评估,如图1所示。对于闭集协议,所有用于测试的人都是在训练集中出现过的的,将测试人脸图像按照给定的标识进行分类是很自然的。在这种情况下,人脸验证相当于分别对一对人脸进行识别(图1左侧)。因此,闭集FR可以很好的作为一个分类问题来处理,我们期望特征是可分离的。在开集协议中,测试集出现的人通常与训练集不相交,这使得测试身份的识别更具有挑战性,但也更接近实际。由于在训练集中不可能对人脸进行识别,我们需要将人脸映射到一个识别特征空间。在这种情况下,人脸识别可以看作是在probe和gallery中每个身份之间进行人脸验证(见图1右侧)。开集算法本质上是一个度量学习问题,其关键是学习具有区别性的大边缘特征。
在一定的度量空间下,开集的期望特征最大类内距离必须小于最小类间距离。如果我们想用最近邻实现精确分类,这个标准是必要的。然而,使用这个标准学习特征通常很困难,因为有时类内固有的变化很大,有时类间相似度又很高[21]。
基于cnn的方法很少能够在损失函数中有效地制定上述准则。之前的工作[30,26]通过softmax loss学习面部特征,但softmax loss只能学习可分离的特征,没有足够的区别性。为了解决这个问题,一些方法结合softmax loss和contrastive loss [25,28] 或center loss[34]来增强特征的识别能力。[22]采用triplet loss来监督嵌入学习,得到了最先进的人脸识别结果。然而,center loss只使类内更加紧凑。contrastive loss[3]和triplet loss[22]都不能限制单个样本,因此需要精心设计 pair/triplet挖掘过程,既耗时又对性能敏感。
使用Euclidean margin学习特征似乎是一个广泛认可的选择,但有一个问题:Euclidean margin总是适合学习鉴别性面部特征吗?为了回答这个问题,我们首先看看Euclidean margin based loss是如何应用于FR。
最近的方法[25,28,34]结合Euclidean margin based loss和SoftMax loss,以构建联合监督。然而,从图2可以看出,SoftMax loss学到的特征具有固有的角分布([34]也验证了)。在某种意义上,Euclidean margin based loss与softmax loss是不相容的,所以结合这两种类型的损失效果并不好。
图2:softmax损失、改进softmax损失和A-Softmax损失的比较.在这个简单的实验中,我们构造了一个CNN来学习CASIA人脸数据集的一个子集的二维特征。具体来说,我们将FC1层的输出维数设为2,并将学到的特征可视化。黄色点代表第一类人脸特征,紫色点代表第二类人脸特征。可以看出,原来的softmax损失学到的特征不能简单地通过角度分类,而改进softmax损失可以。我们的A-Softmax损失可以进一步增加分类裕度。
在本文中,我们建议加入角裕度来代替。我们从一个二分类开始分析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损失的权重和偏置。如果我们定义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(θ_1)-(cos(θ_2))=0,
∣∣x∣∣(cos(θ1)−(cos(θ2))=0,其中
θ
i
θ_i
θi是
W
i
和
x
W_i和x
Wi和x之间的角度。新的决策边界只与
θ
1
和
θ
2
θ_1和θ_2
θ1和θ2有关。改进softmax损失可以直接优化角度,使得
CNNs学习角度分布特征(图2)。
与原有的softmax损失相比,改进的softmax损失学到的特征呈角度分布,但不一定具有更强的判别能力。为此,我们将改进的softmax损失推广到angular softmax损失。具体来说,我们引入一个整数m (m≥1)来定量地控制决策边界。在二分类情况下,类1和类2的决策边界分别变成
∣
∣
x
∣
∣
(
c
o
s
(
m
θ
1
)
)
−
c
o
s
(
θ
2
)
)
=
0
||x||(cos(mθ_1))-cos(θ_2))=0
∣∣x∣∣(cos(mθ1))−cos(θ2))=0和
∣
∣
x
∣
∣
(
c
o
s
(
θ
1
)
)
−
c
o
s
(
m
θ
2
)
)
=
0
||x||(cos(θ_1))-cos(mθ_2))=0
∣∣x∣∣(cos(θ1))−cos(mθ2))=0。m定量地控制角边缘的大小。此外,类似于softmax损失,A-Softmax损失可以很容易地推广到多个类。通过优化A-Softmax损失,使得决策区域更加分离,同时扩大了类间边界,压缩了类内角分布。
A-Softmax 损失有清楚的几何解释。在A- softmax损失的监督下,学习的特征构造了一个有辨别能力的角距离度量,相当于超球面流形上的测地线距离。A-Softmax 损失可以解释为约束学习特征,使得特征在超球面流形上具有辨别能力,它本质上与人脸图像在流形上的先验性相匹配[14,5,31]。由于A-Softmax损失与超球面流形之间的密切联系,使得学习到的特征在人脸识别中更加有效。出于这个原因,我们把这些学习得到的特征称为SphereFace。
此外,A-Softmax损失可以通过参数m来定量地调整角裕度,使我们能够进行定量分析。在此基础上,我们推导了参数m的下界来近似期望开集FR准则的最大类内距离小于最小类间距离。
我们的主要贡献:
- 我们提出了一个A-Softmax loss的CNN来学习具有辨别性的人脸特征与清晰的、新的几何解释。学到的特征在一个超球面流形上有区别地展开,本质上与同样存在于流形上的先验相匹配。
- 我们推导了m的下界,使A-Softmax损失可以近似最小类间距离大于最大类内距离的学习任务。
- 我们是第一个在FR中展示角裕度有效性的。SphereFace在公开可用的CASIA数据集[37]上进行训练后,在多个基准测试中都取得了有竞争力的结果,包括在LFW、YTF和MegaFace的挑战
2 相关工作
**度量学习。**度量学习的目的是学习一个相似(距离)函数。传统度量学习
[36, 33, 12, 38]通常在给定的特征x1, x2上学习一个距离度量矩阵A。
∣
∣
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)^TA(x_1-x_2)}
∣∣x1−x2∣∣A=(x1−x2)TA(x1−x2)。最近,流行的深度度量学习[7, 17, 24, 30, 25, 22, 34]通常使用神经网络自动学习有区别能力的特征
x
1
,
x
2
x_1, x_2
x1,x2,然后使用一个简单的距离度量,如欧氏距离
∣
∣
x
1
−
x
2
∣
∣
2
||x_1-x_2||_2
∣∣x1−x2∣∣2。深度度量学习中使用最广泛的损失函数是contrastive loss[1,3]和triplet loss[32,22,6],两者都对特征保留了欧几里得裕度。
**深度人脸识别。**深度人脸识别是近年来最活跃的研究领域之一。[30,26]使用softmax损失监督的CNNs对开集FR进行处理,实质上将开集FR视为一个多类分类问题。[25]结合contrastive loss和softmax loss共同监督CNN的训练,大大提高了性能。[22]使用triplet loss来学习统一的人脸嵌入。训练近2亿张人脸图像,达到了目前最先进的FR准确性。[34]受到线性判别分析的启发,提出了CNNs的中心损耗,并取得了很好的性能。总的来说,目前表现良好的CNN FR主要是建立在contrastive loss或triplet loss上。人们可以注意到,最先进的FR方法通常采用度量学习的思想(例如contrastive loss或triplet loss),表明开放集FR可以通过学习有辨别能力的度量很好地解决。
L-Softmax loss[16]也隐含了角度的概念。作为一种正则化方法,它对闭集分类问题有很大的改进。不同的是,A-Softmax loss开发了一种用于识别人脸嵌入的算法。与超球面流形的显式连接使我们的学习特征特别适合开集FR问题,通过实验证明了这一点。此外,在A-Softmax loss角裕度是明确的,可以定量控制(例如,下界近似期望特征标准),而[16]只能定性分析
3 深度超球面嵌入
3.1 回顾softmax loss
我们通过softmax损失的决策标准来回顾softmax损失。在二分类情况下,softmax损失得到的后验概率为
其中x为学习得到的特征向量。
W
i
W_i
Wi和
b
i
b_i
bi分别为类i对应的上一全连通层的权值和偏置。当
p
1
>
p
2
p_1>p_2
p1>p2时,我们预测它属于第一类;当
p
1
<
p
2
p_1<p_2
p1<p2时,我们预测它属于第二类。通过比较
p
1
,
p
2
p_1,p_2
p1,p2,很显然
W
1
T
x
+
b
1
W_1^Tx+b_1
W1Tx+b1和
W
2
T
x
+
b
2
W_2^Tx+b_2
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
W_i^Tx
WiTx写
∣
∣
W
i
T
∣
∣
∣
∣
x
∣
∣
c
o
s
(
θ
i
)
+
b
i
||W_i^T||||x||cos(θ_i)+b_i
∣∣WiT∣∣∣∣x∣∣cos(θi)+bi,其中
θ
i
θ_i
θi是
W
i
,
x
W_i,x
Wi,x之间的夹角。注意到如果我们归一化权重和偏置
∣
∣
W
i
∣
∣
=
1
,
b
i
=
0
,
||W_i||=1,b_i=0,
∣∣Wi∣∣=1,bi=0,后验概率变成
p
1
=
∣
∣
x
∣
∣
c
o
s
(
θ
1
)
p_1=||x||cos(θ_1)
p1=∣∣x∣∣cos(θ1),
p
2
=
∣
∣
x
∣
∣
c
o
s
(
θ
2
)
p_2=||x||cos(θ_2)
p2=∣∣x∣∣cos(θ2)。注意到
p
1
,
p
2
p_1,p_2
p1,p2使用同一个x,最终结果仅取决于
θ
1
,
θ
2
θ_1,θ_2
θ1,θ2。决策边界变成
c
o
s
(
θ
1
)
−
c
o
s
(
θ
2
)
=
0
cos(θ_1)-cos(θ_2)=0
cos(θ1)−cos(θ2)=0(向量
W
1
,
W
2
W_1,W_2
W1,W2的角平分线)。虽然上述分析是建立在二分类的情况下,但将分析推广到多类的情况是很简单的。在训练时,改进的
softmax loss
∣
∣
W
i
∣
∣
=
1
,
b
i
=
0
||W_i||=1,b_i=0
∣∣Wi∣∣=1,bi=0使得第i类的特征具有比其他类更小的角度
θ
i
θ_i
θi,这使得
W
i
W_i
Wi和特征x之间的角度作为分类度量更加可靠。
为了给出改进的softmax损失的正式表达式,我们首先定义了输入特征
x
i
x_i
xi及其标签
y
i
y_i
yi,原始的softmax损失可以写成:
L
=
1
N
∑
i
L
i
=
1
N
∑
i
−
l
o
g
(
e
f
y
i
∑
j
e
f
y
i
)
,
(
3
)
L={1\over N}∑_iL_i={1\over N}∑_i-log({e^{f_{y_i}}\over ∑_je^{f_{y_i}} }),(3)
L=N1∑iLi=N1∑i−log(∑jefyiefyi),(3),其中
f
i
f_i
fi代表类别结果向量的第j个元素,
j
∈
[
1
,
K
]
j∈[1,K]
j∈[1,K],N是训练样本数。在CNN里,f通常是全连接层的输出,所以
f
j
=
W
j
T
x
i
+
b
j
f_j=W_j^Tx_i+b_j
fj=WjTxi+bj,
f
y
i
=
W
y
i
T
x
i
+
b
y
i
f_{y_i}=W_{y_i}^Tx_i+b_{y_i}
fyi=WyiTxi+byi,其中
x
i
x_i
xi是第i个训练样本,
W
j
,
W
y
i
W_j,W_{y_i}
Wj,Wyi是W的第j、
y
i
y_i
yi列。我们把式(3)中的
L
i
L_i
Li写成:
L
i
=
−
l
o
g
(
e
W
y
i
T
x
i
+
b
y
i
∑
j
e
W
j
T
x
i
+
b
j
)
=
−
l
o
g
(
e
∣
∣
W
y
i
∣
∣
∣
∣
x
i
∣
∣
c
o
s
(
θ
y
i
,
i
)
+
b
y
i
∑
j
e
∣
∣
W
j
∣
∣
∣
∣
x
i
∣
∣
c
o
s
(
θ
j
,
i
)
+
b
j
)
L_i=-log({e^{W_{y_i}^Tx_i+b_{y_i}}\over ∑_je^{W_j^Tx_i+b_j} })=-log({e^{||W_{y_i}||||x_i||cos(θ_{y_i,i})+b_{y_i}}\over ∑_je^{||W_j||||x_i||cos(θ_{j,i})+b_j}})
Li=−log(∑jeWjTxi+bjeWyiTxi+byi)=−log(∑je∣∣Wj∣∣∣∣xi∣∣cos(θj,i)+bje∣∣Wyi∣∣∣∣xi∣∣cos(θyi,i)+byi)
其中
θ
j
,
i
(
0
≤
θ
j
,
i
≤
π
)
θ_{j,i}(0≤θ_{j,i}≤π)
θj,i(0≤θj,i≤π)是向量
W
j
W_j
Wj与
x
x
x之间的角度。正如上面所分析的,我们在每次迭代中都归一化
∣
∣
W
j
∣
∣
=
1
,
b
j
=
0
||W_j||=1,b_j=0
∣∣Wj∣∣=1,bj=0。然后我们有改进的softmax损失:
L
m
o
d
i
f
i
e
d
=
1
N
∑
i
−
l
o
g
(
e
∣
∣
x
i
∣
∣
c
o
s
(
θ
y
i
,
i
)
∑
j
e
∣
∣
x
i
∣
∣
c
o
s
(
θ
j
,
i
)
)
L_{modified}={1\over N}∑_i-log({e^{||x_i||cos(θ_{y_i,i})}\over ∑_je^{||x_i||cos(θ_{j,i})}})
Lmodified=N1∑i−log(∑je∣∣xi∣∣cos(θj,i)e∣∣xi∣∣cos(θyi,i))。
虽然我们可以使用改进的softmax损失学习角裕度特征,但这些特征仍然没有必需的辨别能力。由于我们使用角度作为距离度量,为了增强识别能力,很自然地在学习特征中加入角距。为此,我们提出了一种新的组合角边的方法。
3.2 Softmax损失引入角度裕度
我们提出了一种更自然的方法来学习角裕度,而不是设计一种新的损失函数和构造一个softmax损失(类似于对比损失)的加权组合。通过前面对softmax损失的分析,我们了解到决策边界对特征分布的影响很大,所以我们的基本思想是操纵决策边界产生角裕度。我们首先给出一个激励二分类的例子来解释我们的想法是如何工作的。
假设给定了类1中的一个习得的特征x,并且
θ
i
θ_i
θi为x与
W
i
W_i
Wi之间的夹角
,我们知道改进softmax损失要求
c
o
s
(
θ
1
)
>
c
o
s
(
θ
2
)
cos(θ_1)>cos(θ_2)
cos(θ1)>cos(θ2)以正确分类x。但如果我们要求
c
o
s
(
m
θ
1
)
>
c
o
s
(
θ
2
)
cos(mθ_1)>cos(θ_2)
cos(mθ1)>cos(θ2),其中m是一个≥2的整数,以正确分类x会怎样?这本质上使这个决策比之前更严格,因为我们要求
c
o
s
(
θ
1
)
cos(θ_1)
cos(θ1)的下限要大于
c
o
s
(
θ
2
)
cos(θ_2)
cos(θ2)。第1类的决策边界为
c
o
s
(
m
θ
1
)
=
c
o
s
(
θ
2
)
cos(mθ_1)= cos(θ_2)
cos(mθ1)=cos(θ2)。同样地,如果我们要对第二类的特征正确分类,我们要求
c
o
s
(
m
θ
2
)
>
c
o
s
(
θ
1
)
cos(mθ_2)>cos(θ_1)
cos(mθ2)>cos(θ1),第2类的决策边界为
c
o
s
(
m
θ
2
)
=
c
o
s
(
θ
1
)
cos(mθ_2)= cos(θ_1)
cos(mθ2)=cos(θ1)。假设所有的训练样本都被正确分类,这样的决策边界将产生一个
m
−
1
m
+
1
θ
2
1
{m-1\over m+1}θ_2^1
m+1m−1θ21的角裕度,其中
θ
2
1
θ_2^1
θ21是
W
1
W_1
W1和
W
2
W_2
W2之间的夹角。从角度方面看,对第一类的x进行正确的分类要求
θ
1
<
θ
2
m
θ_1<{θ_2\over m}
θ1<mθ2,而对第二类的x进行正确的分类要求
θ
2
<
θ
1
m
θ_2<{θ_1\over m}
θ2<mθ1。两者的难度都比原来的
θ
1
<
θ
2
θ_1<θ_2
θ1<θ2和
θ
2
<
θ
1
θ_2<θ_1
θ2<θ1要大。通过直接将这一想法表述为改进的softmax损失Eq.(5),我们有:
L
a
n
g
=
1
N
∑
i
−
l
o
g
(
e
∣
∣
x
i
∣
∣
c
o
s
(
m
θ
y
i
,
i
)
e
∣
∣
x
i
∣
∣
c
o
s
(
m
θ
y
i
,
i
)
+
∑
j
≠
y
i
e
∣
∣
x
i
∣
∣
c
o
s
(
θ
j
,
i
)
)
L_{ang}={1\over N}∑_i-log({e^{||x_i||cos(mθ_{y_i,i})}\over e^{||x_i||cos(mθ_{y_i,i})}+∑_{j≠y_i}e^{||x_i||cos(θ_{j,i})}})
Lang=N1∑i−log(e∣∣xi∣∣cos(mθyi,i)+∑j=yie∣∣xi∣∣cos(θj,i)e∣∣xi∣∣cos(mθyi,i)),其中
θ
y
i
,
i
∈
[
0
,
π
m
]
θ_{y_i,i}∈[0,{π\over m}]
θyi,i∈[0,mπ]。为了摆脱这一限制,使其在CNNs中可优化,我们扩展了
c
o
s
(
θ
y
i
,
i
)
cos(θ_{y_i,i})
cos(θyi,i)的定义范围,将其推广为一个单调递减的角度函数
ψ
(
θ
y
i
,
i
)
ψ(θ_{y_i,i})
ψ(θyi,i),在
[
0
,
π
m
]
[0,{π\over m}]
[0,mπ]中应等于
c
o
s
(
θ
y
i
,
i
)
cos(θ_{y_i,i})
cos(θyi,i)。因此,我们提出的A-Softmax损失公式为:
L
a
n
g
=
1
N
∑
i
−
l
o
g
(
e
∣
∣
x
i
∣
∣
ψ
(
θ
y
i
,
i
)
e
∣
∣
x
i
∣
∣
ψ
(
θ
y
i
,
i
)
+
∑
j
≠
y
i
e
∣
∣
x
i
∣
∣
c
o
s
(
θ
j
,
i
)
)
L_{ang}={1\over N}∑_i-log({e^{||x_i||ψ(θ_{y_i,i})}\over e^{||x_i||ψ(θ_{y_i,i})}+∑_{j≠y_i}e^{||x_i||cos(θ_{j,i})}})
Lang=N1∑i−log(e∣∣xi∣∣ψ(θyi,i)+∑j=yie∣∣xi∣∣cos(θj,i)e∣∣xi∣∣ψ(θyi,i)),其中
θ
y
i
,
i
∈
[
k
π
m
,
(
k
+
1
)
π
m
]
,
k
∈
[
0
,
m
−
1
]
时
,
ψ
(
θ
y
i
,
i
)
=
(
−
1
)
k
c
o
s
(
m
θ
y
i
,
i
)
−
2
k
θ_{y_i,i}∈[{kπ\over m},{(k+1)π\over m}],k∈[0,m-1]时,ψ(θ_{y_i,i})=(-1)^kcos(mθ_{y_i,i})-2k
θyi,i∈[mkπ,m(k+1)π],k∈[0,m−1]时,ψ(θyi,i)=(−1)kcos(mθyi,i)−2k。m是一个大于等于1的整数,可以控制角度裕度。m=1时,它变成改进的softmax损失。
A-Softmax损失的正当性也可以从决策边界的角度来分析。A-Softmax 损失对不同的类采用不同的决策边界(每一个边界比原始的更严格)因此产生了角度裕度。决策边界的比较见表1。从原始Softmax损失到改进Softmax损失,从优化内积到优化角度。从改进的Softmax损失到A-Softmax损失,使得决策边界更加严格和分离。角裕度随m的增大而增大,当m= 1时为零。
表1:二分类情况下决策边界的比较。注意,
θ
i
θ_i
θi是
W
i
W_i
Wi和x之间的夹角。
由一个A-Softmax损失监督,CNN学习在几何上可解释的角裕度的面部特征。由于A-Softmax损失要求
W
i
=
1
,
b
i
=
0
W_i=1,b_i=0
Wi=1,bi=0,这使得预测只依赖于样本x和
W
i
W_i
Wi之间的角度
。所以x可以归为角度最小的恒等式。添加参数m是为了学习不同恒等式之间的角距。
为了方便梯度计算和反向传播,我们将
c
o
s
(
θ
j
,
i
)
cos(θ_{j,i})
cos(θj,i)和
c
o
s
(
m
θ
y
j
,
i
)
cos(mθ_{y_j,i})
cos(mθyj,i)替换为只包含W和
x
i
x_i
xi的表达式,这很容易通过余弦的定义和多角度公式来实现(这也是为什么我们需要m是整数的原因)。在没有了
θ
θ
θ的情况下,我们可以计算对x和W的导数,类似于softmax损失。
3.3 A-Softmax损失的超球面解释
当m≥2时,A- softmax损失对正确分类的要求更强,它在不同类别的学习特征之间产生一个角分类裕度。A- softmax损失不仅通过角裕度对已学习的特征施加了辨别能力,而且呈现了漂亮而新颖的超球面解释。如图3所示,A- softmax损失相当于学习超球面流形上具有辨别性的特征,而Euclidean margin losses则是学习欧几里得空间上的特征。
图3:欧氏裕度损失(例如对比损失、三元组损失、中心损失等)、改进softmax损失和A-softmax损失的几何解释。第一行为二维特征约束,第二行为三维特征约束。橙色区域表示类1的判别约束,绿色区域表示类2的判别约束。
为了简化,我们采用二分类情形来分析超球解释。考虑到来自1类的样本x和两个列权重W1、W2,A-Softmax损失的分类规则是
c
o
s
(
m
θ
1
)
>
c
o
s
(
θ
2
)
cos(mθ_1)>cos(θ_2)
cos(mθ1)>cos(θ2),相当于
m
θ
1
<
θ
2
mθ_1<θ_2
mθ1<θ2。注意,
θ
1
,
θ
2
θ_1,θ_2
θ1,θ2等于它们在单位超球
v
j
,
∀
j
∣
∑
j
v
j
2
=
1
,
v
≥
0
{v_j,∀j|∑_jv^2_j=1,v≥0}
vj,∀j∣∑jvj2=1,v≥0上对应的弧长ω1,ω2。因为
∣
∣
W
1
∣
∣
=
∣
∣
W
2
∣
∣
=
1
||W_1||=||W_2||=1
∣∣W1∣∣=∣∣W2∣∣=1,所以决策取决于弧长ω1和ω2。决策边界即
m
ω
1
=
ω
2
mω_1 =ω_2
mω1=ω2,正确分类1的限制区域是
m
ω
1
<
ω
2
mω_1<ω_2
mω1<ω2。从几何上讲,这是一个位于超球面流形上的类超圆区域。例如,它是单位球面上的一个类圆区域三维情况,如图3所示。注意,对于每个类,较大的m导致较小的类超圈区域,这是流形上的显式判别约束。为了更好地理解,图3提供了2D和3D可视化。我们可以看到,在二维情况下,A-Softmax损失对单位圆施加弧长约束,在三维情况下对单位球施加类似圆的区域约束。我们的分析表明,优化具有 A-Softmax损失的角度本质上使已学习的特征在超球面上更具鉴别性。
3.4 A-Softmax损失的性质
性质1。 A-Softmax损失定义了一个具有可调难度的大角裕度学习任务。m越大,角裕度越大,流形上的约束区域越小,相应的学习任务也越困难。
我们知道m越大,角裕度越大。A-Softmax限制损失。存在一个极小的m约束,使得类内的最大角距离小于类间的最小角距离,这一点在我们的实验中也可以观察到。
定义1。(所需特征分布的最小m)。
m
m
i
n
m_{min}
mmin是最小值,当
m
>
m
m
i
n
m>m_{min}
m>mmin, ASoftmax损失定义了一个学习任务,其中约束类内最大角特征距离小于类间最小角特征距离。
性质2。(二分类情况下
m
m
i
n
m_{min}
mmin的下界)。在二分类情况下,我们有
m
m
i
n
≥
2
+
3
m_{min}≥2+\sqrt3
mmin≥2+3
证明:我们考虑由
W
1
W_1
W1和
W
2
W_2
W2张成的空间。由于m≥2,很容易得到类1的最大角度是
θ
12
m
−
1
+
θ
12
m
+
1
{θ_{12}\over m-1}+{θ_{12}\over m+1}
m−1θ12+m+1θ12,其中
θ
12
θ_{12}
θ12是
W
1
W_1
W1和
W
2
W_2
W2间的夹角。为了要求类内特征的最大角距离小于类间特征的最小角距离,我们需要进行约束
求解这两个不等式,有
m
m
i
n
≥
2
+
3
m_{min}≥2+\sqrt3
mmin≥2+3,这是二分类问题的下限。
性质3。(多类情况下
m
m
i
n
m_{min}
mmin的下界)。根据假设Wi,∀i是欧几里得空间任意,我们有
m
m
i
n
≥
3
m_{min}≥3
mmin≥3。
证明:
在此基础上,我们使用m= 4来近似期望的特征分布准则。由于下界不一定是紧的,在一定条件下给出一个更紧的下界和上界也是可能的,我们把它留给以后的工作。实验还表明,m越大,一致性越好,m= 4通常就足够了。
3.5 讨论
**为什么需要角裕度。**首先也是最重要的一点是,角裕度直接与流形上的辨别力有关,它本质上与流形上的先验相匹配。其次,在softmax损失中加入角裕度实际上是一个更自然的选择。如图2所示,原softmax损失学到的特征具有固有的角度分布。因此直接结合欧氏边界约束和softmax损失是不合理的。
**与现有损失进行比较。**在深度FR任务中,最常用且运行良好的损失函数有对比损失、三重损失和中心损失。首先,他们只对学习特征施加欧几里得边界(w/o归一化),而我们直接考虑自然激发的角裕度。第二,对比和三元组损失需要构成训练集的 pairs/triplets,这会造成数据扩增,而我们的方法不需要样本挖掘和有辨别力的约束整个mini-batches(对比和三元组损失相比,只影响几个代表pairs/triplets)。
4 实验
5 总结
本文提出了一种用于人脸识别的深超球面嵌入方法。具体地说,我们为CNNs提出了angular softmax损失来学习有角裕度的鉴别人脸特征(SphereFace)。在一个超球面流形上,一个A-Softmax损失得到很好的几何解释:通过约束学习到的特征来辨别人脸,它本质上与非线性流形上的先验相匹配。这种联系使得A-Softmax在学习人脸表示方面非常有效。在几个流行的人脸基准上的竞争结果显示了我们的方法的优越性和巨大的潜力。我们还相信,A-Softmax损失也能使其他任务受益,如物体识别、人员重新识别等。