SphereFace: Deep Hypersphere Embedding for Face Recognition
3. Deep Hypersphere Embedding
3.1. Revisiting the Softmax Loss
通过研究软softmax loss的决策准则,我们重新讨论了softmax loss损失。在二元类情况下,通过softmax loss损失得到的后验概率
其中x为特征向量。Wi和bi是与类i对应的最后一个全连通层的权值和bias。如果p1>p2,则将预测标签分配给第1类;如果p1<p2,则将分配给第2类。通过比较p1和p2,我们可以清楚地看到 W 1 T x + b 1 W^T_1x+b_1 W1Tx+b1和 W 2 T x + b 2 W^T_2x+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 + b i W^T_ix+b_i WiTx+bi为 ∥ W i T ∥ ∥ x ∥ c o s ( θ i ) + b i \begin{Vmatrix}W^T_i\end{Vmatrix} \begin{Vmatrix}x\end{Vmatrix}cos(\theta_i)+b_i ∥∥WiT∥∥∥∥x∥∥cos(θi)+bi其中 θ i \theta_i θi是 W i 和 x W_i和x Wi和x之间的角度。注意,如果我们将权重标准化,使bias项为零 ( ∥ W i ∥ = 1 , b i = 0 ) , (\begin{Vmatrix}W_i\end{Vmatrix}=1,b_i=0), (∥∥Wi∥∥=1,bi=0),后验概率变成 p 1 = ∥ x ∥ c o s ( θ 1 ) p_1=\begin{Vmatrix}x\end{Vmatrix}cos(\theta_1) p1=∥∥x∥∥cos(θ1)和 p 2 = ∥ x ∥ c o s ( θ 2 ) p_2=\begin{Vmatrix}x\end{Vmatrix}cos(\theta_2) p2=∥∥x∥∥cos(θ2)。请注意,p1和p2共享相同的x,最终结果仅取决于角度 θ 1 \theta_1 θ1和 θ 2 \theta_2 θ2。决策边界也变 c o s ( θ 1 ) − c o s ( θ 2 ) = 0 cos(\theta_1)-cos(\theta_2)=0 cos(θ1)−cos(θ2)=0(即向量W1和W2的角平分线)。虽然上述分析建立在二进制类的案例上,但是将分析推广到多类的案例上是类似的。
在训练中,修改softmax loss ( ∥ W i ∥ = 1 , b i = 0 ) , (\begin{Vmatrix}W_i\end{Vmatrix}=1,b_i=0), (∥∥Wi∥∥=1,bi=0),鼓励第i类特征之间比与其他不同类特征具有更小的角度 θ 1 \theta_1 θ1(较大的余弦距离)。这使得wi和特征之间的角度成为一个可靠的分类度量。
原始的softmax损失可以写成
K是类别数量),N是训练样本的个数。在CNNs中,f通常是一个全连通层的输出,所以 f j = W j T x i + b j f_j=W^T_jx_i+b_j fj=WjTxi+bj, f y i = W y i T x i + b y i f_{y_i}=W^T_{y_i}x_i+b_{y_i} fyi=WyiTxi+byi,其中, x i , W j , W y i x_i,W_j,W_{y_i} xi,Wj,Wyi分别为第i个训练样本,W的第j个列和第 y i y_i yi个列。
我们进一步在公式(3)as中重新表述Li:
其中
θ
j
,
i
(
0
≤
θ
j
,
i
≤
π
)
\theta_{j,i}(0\le\theta_{j,i}\le\pi)
θj,i(0≤θj,i≤π)是Wj和xi之间的角度。如前所述,我们首先进行标准化
∥
W
i
∥
=
1
,
∀
j
\begin{Vmatrix}W_i\end{Vmatrix}=1,\forall_j
∥∥Wi∥∥=1,∀j在每次迭代中,使bias为0。然后是修改后的softmax loss:
由于我们使用角度作为距离度量,为了提高识别能力,自然会将角度margin加入到学习特征中。
3.2. Introducing Angular Margin to Softmax Loss
我们提出了一种更自然的方法来学习角度margin,而不是设计一种新的损失函数,并构造一个与softmax损失(类似于对比损失)的加权组合。通过前面对softmax损失的分析,我们了解到决策边界对特征分布的影响很大,所以我们的基本思想是调整决策边界产生角度margin。我们首先给出一个二分类的例子来解释我们的想法是如何工作的。
假设已知一个属于第1类的特征x, θ i \theta_i θi是x和Wi之间的角度,修改后的softmax loss需要 c o s ( θ 1 ) > c o s ( θ 2 ) cos(\theta_1)>cos(\theta_2) cos(θ1)>cos(θ2)正确分类x。但如果我们要求 c o s ( m θ 1 ) > c o s ( θ 2 ) cos(m\theta_1)>cos(\theta_2) cos(mθ1)>cos(θ2)其中m为大于等于2的整数来正确分类x呢?它本质上使决策比以前更严格。类1的决策边界为 c o s ( m θ 1 ) = c o s ( θ 2 ) cos(m\theta_1)=cos(\theta_2) cos(mθ1)=cos(θ2),类2也同样推理。
假设所有训练样本都被正确分类,这样的决策边界将产生一个angular margin m − 1 m + 1 θ 2 1 \frac{m-1}{m+1}\theta^1_2 m+1m−1θ21,其中 θ 2 1 \theta^1_2 θ21是W1和W2之间的角度。从angular的角度来看,正确地从identity 1中分类x需要 θ 1 < θ 2 m \theta_1<\frac{\theta_2}{m} θ1<mθ2,正确地从identity 2中分类x是需要 θ 2 < θ 1 m \theta_2<\frac{\theta_1}{m} θ2<mθ1。两者都比原来的 θ 1 < θ 2 和 θ 2 < θ 1 \theta_1<\theta_2和\theta_2<\theta_1 θ1<θ2和θ2<θ1难。通过将这一思想直接表达到修正的softmax loss方程(5)中,我们得到了
θ y i , i \theta_{y_i,i} θyi,i必须在 [ 0 , π m ] [0,\frac{\pi}{m}] [0,mπ]的范围内。为了摆脱这一限制,使其在CNNs中可优化,
我们扩展了的定义范围 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
\psi(\theta_{y_i,i})=(-1)^kcos(m\theta_{{y_i},i})-2k
ψ(θyi,i)=(−1)kcos(mθyi,i)−2k,
θ
y
i
,
i
∈
[
k
π
m
,
(
k
+
1
)
π
m
]
\theta_{{y_i},i}\in[\frac{k\pi}{m},\frac{(k+1)\pi}{m}]
θyi,i∈[mkπ,m(k+1)π],
k
∈
[
0
,
m
−
1
]
.
k\in[0,m-1].
k∈[0,m−1].m是一个大于等于1的整数,它控制了角边距的大小。当m=1时,为修正的softmax损失。也可以从决策边界的角度对A-Softmax损失进行论证。A-Softmax损失针对不同的类别采用不同的判决边界(每个边界比原始边界更严格),从而产生角度margin。决策边界的比较 表1。
从改进的softmax loss到A-softmax loss,使决策边界更加严格和分离。角度margin随着m的增大而增大,当m=1时为0。在A-Softmax损失的监督下,CNNs利用几何可解释的角度margin来学习人脸特征。因为A-Softmax loss要求wi =1;如果bi=0,则预测结果只取决于样本x和wi之间的夹角。所以x可以分为角度最小的恒等式。添加参数m是为了学习不同恒等式之间的角度margin。为了便于梯度计算和反向传播,我们将 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和xi的表达式,这很容易通过定义余弦和多角度公式来实现(这也是我们需要m是整数的原因)。没有 θ \theta θ,我们可以计算x和W的导数,类似于softmax loss。
3.3. Hypersphere Interpretation of ASoftmax Loss
当 m ≥ 2 m \ge2 m≥2时,A-Softmax-loss对正确分类有更高的要求,它在不同类别的学习特征之间产生角度分类margin。A-Softmax损失不仅通过角margin对学习到的特征施加判别能力,而且给出了一种新颖的超球面解释方法。如图3所示,A-Softmax损失相当于在超球流形上具有区分性的学习特征,而欧几里德边缘损失相当于在欧几里德空间中学习特征。
图3:欧几里德边缘损失(如contrastive loss, triplet loss, center loss)、modified softmax loss和A-Softmax loss的几何解释。第一行是二维特征约束,第二行是三维特征约束。橙色区域表示类1的判别约束,绿色区域表示类2的判别约束。为了简化,我们采用二元情形来分析超球面解释。
考虑到来自1类和2列权重W1,W2的样本x,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。值得注意的是 θ 1 , θ 2 \theta_1,\theta_2 θ1,θ2等于他们相应的弧长 ω 1 , ω 2 \omega_1,\omega_2 ω1,ω2在单位超球面 { v j , ∀ j ∣ Σ j v j 2 = 1 , v ≥ 0 } \begin{Bmatrix}v_j,\forall_j|\Sigma_jv^2_j=1,v\ge0\end{Bmatrix} {vj,∀j∣Σjvj2=1,v≥0}因为 ∥ W ∥ 1 = ∥ W ∥ 2 = 1 \begin{Vmatrix}W\end{Vmatrix}_1=\begin{Vmatrix}W\end{Vmatrix}_2=1 ∥∥W∥∥1=∥∥W∥∥2=1,决策取决于弧长 ω 1 , ω 2 \omega_1,\omega_2 ω1,ω2。决策边界等价于 m ω 1 = ω 2 m\omega_1=\omega_2 mω1=ω2,将x正确分类为第一类的约束区域为 m ω 1 < ω 2 m\omega_1<\omega_2 mω1<ω2。从几何学上讲,这是一个位于超球面流形上的超圆形区域,例如,在三维情况下,它是单位球面上的一个圆形区域,如图3所示。注意,对于每一类,较大的m导致较小的超圆形区域,这是流形上的一个显式判别约束。为了更好地理解,图3提供2D和3D可视化。可以看出,A-Softmax loss在二维情况下对单位圆施加弧长约束,在三维情况下对单位球施加类圆区域约束。我们的分析表明,在A-Softmax损失下优化角度本质上使学习到的特征在超球面上更具区分性。
3.4. Properties of ASoftmax Loss
属性1。A-Softmax loss定义了一个难度可调的大角度边距学习任务。m越大,角裕度越大,流形上的约束区域越小,相应的学习任务也越困难。我们知道m越大,角裕度A-Softmax损耗约束越大。存在一个最小m约束最大类内角距离小于最小类间角距离,这在我们的实验中也可以观察到。
定义1(所需特征分布的最小m)。mmin是最小值,当m>mmin时,ASoftmax loss定义一个学习任务,其中最大类内角特征距离被约束为小于最小类间角特征距离。
属性2(mmin的最低下界在二分类的情况下)。在二分类的情况下,我们有 m m i n ≥ 2 + 3 m_{min}\ge2+\sqrt3 mmin≥2+3
证明。我们考虑w1和w2所跨越的空间。因为 m ≥ 2 m\ge2 m≥2,很容易得到类别1跨度的最大角度 θ 12 m − 1 + θ 12 m + 1 \frac{\theta_{12}}{m-1}+\frac{\theta_{12}}{m+1} m−1θ12+m+1θ12,其中 θ 12 \theta_{12} θ12是W1和W2之间的角度。
为了使类内最大特征角距离小于类间最小特征角距离,需要对其进行约束
解两不等式可以得到 m m i n ≥ 2 + √ 3 m_{min}≥2+√3 mmin≥2+√3。
属性2(mmin的最低下界在多分类的情况下)。假设Wi, ∀ i \forall_i ∀i是均匀间隔的我们有欧几里德空间mmin ≥ 3 \ge3 ≥3。
证明:我们考虑二维k类(k ≥ 3 \ge 3 ≥3)情形的下界。因为Wi, ∀ i \forall_i ∀i是均匀间隔的二维欧氏空间,我们有 θ i i + 1 = 2 π k \theta_i^{i+1}=\frac{2\pi}{k} θii+1=k2π是Wi和Wi+1之间的角度。因为Wi, ∀ i \forall_i ∀i是对称的,我们只需要分析其中一个。对于第i类(Wi),我们需要约束
解这个不等式,我们有mmin ≥ 3 \ge3 ≥3,是多分类情况下的下界。基于此,我们使用m=4来近似期望的特征分布准则。由于下界不一定是紧的,在一定条件下给出一个更紧的下界和上界也是可能的,这要留给以后的工作。实验还表明,较大的m始终工作得更好,m=4通常就足够了。
3.5. Discussions
图2:softmax loss、修正softmax loss和A-softmax loss之间的比较。在这个玩具实验中,我们构建了一个CNN来学习CASIA人脸数据集的一个子集的二维特征。具体来说,我们将FC1层的输出维度设置为2,并将学习到的特征可视化。黄点代表类别1的人脸特征,紫点代表类别2的人脸特征。可以看出,由原始的softmax-loss学习到的特征不能简单地通过角度进行分类,而修正后的softmax-loss可以。我们的A-Softmax损耗可以进一步增加学习特征的角裕度。
为什么是 angular margin。首先也是最重要的一点是, angular margin直接与流形上的判别性相关,流形上的判别性本质上与人脸在流形上的先验相匹配。其次,将 angular margin与softmax loss结合起来实际上是一个更自然的选择。如图2所示,由原始softmax loss所学习的特征具有内在的角度分布。因此,直接将欧氏裕度约束( Euclidean margin constraints)与softmax loss相结合是不合理的。
**与现有损失的比较。**在deep-FR任务中,最常用、性能最好的损失函数包括contrastive loss、triplet loss和center loss。首先,它们只将Euclidean margin强加给学习的特征(没有标准化),而我们的直接考虑angular margin,这是自然的动机。第二,contrastive loss和triplet loss在构成训练集的pairs/triplets时都会受到数据膨胀的影响,而我们的方法不需要样本挖掘,并且对整个mini-batches都施加了区分约束(相比之下,contrastive and triplet loss只影响少数有代表性的pairs/triplets)。
A-Softmax与L-Softmax的区别
A-Softmax与L-Softmax的最大区别在于A-Softmax的权重归一化了。A-Softmax权重的归一化导致特征上的点映射到单位超球面上,而L-Softmax则不没有这个限制,这个特性使得两者在几何的解释上是不一样的。
如在训练时两个类别的特征输入在同一个区域时发生了区域的重叠,如图左边。A-Softmax只能从角度上分离这两个类别,也就是说它仅从方向上去分类,分类的结果如图中间;而L-Softmax不仅可以从角度上区别两个类,还能从权重的模(长度)上区别这两个类,结果如图右边。在数据集合大小固定的条件下,L-Softmax能有两个方法分类,训练可能没有使得它在角度与长度方向都分离,导致它的精确可能不如A-Softmax。
4. Experiments (more in Appendix)
4.1. Experimental Settings
测试结果
- 训练数据集:CASIA-WebFace,共有10575个人的494414张人脸图片。这些人脸图像水平翻转以进行数据增强。请注意,我们的训练数据(0.49m)的规模相对较小,特别是与DeepFace[30](4M)、FaceNet[22](200M)和VggFace[20](2M)中使用的其他私有数据集相比。
- 训练参数:这些模型在四个GPU上以128的批量大小进行训练。学习率从0.1开始,在16K,24K迭代中除以10。训练以28k次迭代完成。
- SphereFace特征在角空间中具有很强的可分离性,m越大,特征内聚性越强,不同类别更容易区分开,正对和负对距离越远。第一行是CASIA-WebFace里的6个类投影在单位球面上的三维特征。第二行是正对和负对的角度分布(我们从子集中选择class 1和class 2来构造正对和负对),所有的角都用弧度表示。
- m会影响性能:m越大,准确性越大。
- 卷积层数影响性能:卷积层数越大性能越大,A-Softmax比Softmax性能高很多
- LFW上99.42%,YTF上95.0%。不如FaceNet,和DeepID2+、DeepID3相当,但它的训练集比FaceNet的小,CASIA-WebFace有49万张图片,1万个人。SphereFace仅使用公开可用的小规模数据集实现最先进的性能, 而其它商业算法使用私有和大规模数据集
- MegaFace上Rank-1 Acc是75.766,Ver是89.142(TAR for 10^-6 FAR)。
- 用小数据集训练的算法的ROC比较
附录
- 移除最后一个relu层:标准CNNs通常将relu连接到fc1的底部,因此所学习的特性将只分布在非负分布中,范围为[0,+∞),这限制了CNN的学习空间(角度)。为了解决这个缺点,SphereFace提出删除底部的relu非线性。直观地说,删除relu可以大大有利于特征学习,因为它提供了更大的可行学习空间(从角度度量学习角度考虑)。
- 将权重归一化可以隐式地减少训练数据不平衡问题(例如训练数据的长尾分布)带来的先验问题。
- 去除偏差:标准CNNs通常保留全连接层中的偏置项,但这些偏置项使得分析所提出的A-SoftMax loss 变得困难。这是因为SphereFace的目的是优化角度和产生角度间隔。实验得,将偏置归零对特征分布没有直接影响。有偏置和无偏置的学习特征都能充分利用学习空间。
- MNIST数据集上A-Softmax loss的二维可视化:很明显,随着m的增大,学习到的特征由于较大的类间角度间隔而变得更具辨别力。
ace的目的是优化角度和产生角度间隔。实验得,将偏置归零对特征分布没有直接影响。有偏置和无偏置的学习特征都能充分利用学习空间。**
- MNIST数据集上A-Softmax loss的二维可视化:很明显,随着m的增大,学习到的特征由于较大的类间角度间隔而变得更具辨别力。