SphereFace Deep Hypersphere Embedding for Face Recognition

SphereFace: Deep Hypersphere Embedding for Face Recognition

3. Deep Hypersphere Embedding

3.1. Revisiting the Softmax Loss

通过研究软softmax loss的决策准则,我们重新讨论了softmax loss损失。在二元类情况下,通过softmax loss损失得到的后验概率

SphereFace Deep Hypersphere Embedding for Face Recognition

其中x为学习特征向量。Wi和bi是与类i对应的最后一个全连通层的权值和偏差。如果p1>p2,则将预测标签分配给第1类;如果p1<p2,则将分配给第2类。通过比较p1和p2,我们可以清楚地看到W1Tx+b1W^T_1x+b_1W2Tx+b2W^T_2x+b_2决定分类结果。决策边界为(W1W2)x+b1b2=0(W_1-W_2)x+b_1-b_2=0。然后我们重写WiTx+biW^T_ix+b_iWiTxcos(θi)+bi\begin{Vmatrix}W^T_i\end{Vmatrix} \begin{Vmatrix}x\end{Vmatrix}cos(\theta_i)+b_i其中θi\theta_iWixW_i和x之间的角度。注意,如果我们将权重标准化,使偏差为零(Wi=1,bi=0),(\begin{Vmatrix}W_i\end{Vmatrix}=1,b_i=0),后验概率变成p1=xcos(θ1)p_1=\begin{Vmatrix}x\end{Vmatrix}cos(\theta_1)p2=xcos(θ2)p_2=\begin{Vmatrix}x\end{Vmatrix}cos(\theta_2)。请注意,p1和p2共享相同的x,最终结果仅取决于角度θ1\theta_1θ2\theta_2。决策边界也变cos(θ1)cos(θ2)=0cos(\theta_1)-cos(\theta_2)=0(即向量W1和W2的角平分线)。虽然上述分析建立在二进制类的案例上,但是将分析推广到多类的案例上是类似的。在训练中,修改了softmax loss(Wi=1,bi=0),(\begin{Vmatrix}W_i\end{Vmatrix}=1,b_i=0),鼓励第i类特征之间比与其他不同类特征具有更小的角度θ1\theta_1(较大的余弦距离)。这使得wi和特征之间的角度成为一个可靠的分类度量。

为了给出修改后的softmax loss的正式表达式,我们首先定义了输入特征xi及其标签yi。原始的softmax损失可以写成

SphereFace Deep Hypersphere Embedding for Face Recognition

其中fj表示类得分向量f的第j个元素(j[1,K]j\in[1,K],K是类别数量),N是训练样本的个数。在CNNs中,f通常是一个全连通层的输出,所以fj=WjTxi+bjf_j=W^T_jx_i+b_jfyi=WyiTxi+byif_{y_i}=W^T_{y_i}x_i+b_{y_i},其中,xi,Wj,Wyix_i,W_j,W_{y_i}分别为第i个训练样本,W的第j个列和第yiy_i个列。

我们进一步在公式(3)as中重新表述Li:

SphereFace Deep Hypersphere Embedding for Face Recognition

其中θj,i(0θj,iπ)\theta_{j,i}(0\le\theta_{j,i}\le\pi)是Wj和xi之间的角度。如前所述,我们首先进行规范化Wi=1,j\begin{Vmatrix}W_i\end{Vmatrix}=1,\forall_j在每次迭代中,使偏差为0。然后是修改后的softmax loss:
SphereFace Deep Hypersphere Embedding for Face Recognition

虽然我们可以通过改进的softmax loss来学习带有角边界的特征,但这些特征不一定具有很强的区分能力。由于我们使用角度作为距离度量,为了提高识别能力,自然会将角度裕度加入到学习特征中。为此,我们提出了一种合并角边的新方法。

3.2. Introducing Angular Margin to Softmax Loss

我们提出了一种更自然的方法来学习角裕度,而不是设计一种新的损失函数,并构造一个与softmax损失(类似于对比损失)的加权组合。通过前面对softmax损失的分析,我们了解到决策边界对特征分布的影响很大,所以我们的基本思想是操纵决策边界产生角裕度。我们首先给出一个二分类的例子来解释我们的想法是如何工作的。

假设已知一个属于第1类的特征x和θi\theta_i是x和Wi之间的角度,已知,修改后的softmax loss需要cos(θ1)>cos(θ2)cos(\theta_1)>cos(\theta_2)正确分类x。但如果我们要求cos(mθ1)>cos(θ2)cos(m\theta_1)>cos(\theta_2)其中m为大于等于2的整数来正确分类x呢?它本质上使决策比以前更严格。类1的决策边界为cos(mθ1)=cos(θ2)cos(m\theta_1)=cos(\theta_2),类2也同样推理。假设所有训练样本都被正确分类,这样的决策边界将产生一个angular marginm1m+1θ21\frac{m-1}{m+1}\theta^1_2,其中θ21\theta^1_2是W1和W2之间的角度。从angular的角度来看,正确地从identity 1中分类x需要θ1<θ2m\theta_1<\frac{\theta_2}{m},正确地从identity 2中分类x是需要θ2<θ1m\theta_2<\frac{\theta_1}{m}。两者都比原来的θ1<θ2θ2<θ1\theta_1<\theta_2和\theta_2<\theta_1难。通过将这一思想直接表达到修正的softmax loss方程(5)中,我们得到了

SphereFace Deep Hypersphere Embedding for Face Recognition

θyi,i\theta_{y_i,i}必须在[0,πm][0,\frac{\pi}{m}]的范围内。为了摆脱这一限制,使其在CNNs中可优化,

我们扩展了的定义范围cos(θyi,i)cos(\theta_{y_i,i})将其推广为单调递减的角函数ψ(θyi,i)\psi(\theta_{y_i,i}),这个在[0,πm][0,\frac{\pi}{m}]的范围内与cos(θyi,i)cos(\theta_{y_i,i})相等。因此,我们提出的A-Softmax loss为:

SphereFace Deep Hypersphere Embedding for Face Recognition
我们定义ψ(θyi,i)=(1)kcos(mθyi,i)2k\psi(\theta_{y_i,i})=(-1)^kcos(m\theta_{{y_i},i})-2kθyi,i[kπm,(k+1)πm]\theta_{{y_i},i}\in[\frac{k\pi}{m},\frac{(k+1)\pi}{m}]k[0,m1].k\in[0,m-1].m是一个大于等于1的整数,它控制了角边距的大小。当m=1时,为修正的softmax损失。也可以从决策边界的角度对A-Softmax损失进行论证。A-Softmax损失针对不同的类别采用不同的判决边界(每个边界比原始边界更严格),从而产生角裕度。决策边界的比较 表1。

SphereFace Deep Hypersphere Embedding for Face Recognition

从改进的softmax loss到a -softmax loss,使决策边界更加严格和分离。角裕度随着m的增大而增大,当m=1时为0。在A-Softmax损失的监督下,CNNs利用几何可解释的角度裕度来学习人脸特征。因为ASoftmax loss要求wi =1;如果bi=0,则预测结果只取决于样本x和wi之间的夹角。所以x可以分为角度最小的恒等式。添加参数m是为了学习不同恒等式之间的角裕度。为了便于梯度计算和反向传播,我们将cos(θyi,i)cos(\theta_{y_i,i})cos(mθyi,i)cos(m\theta_{y_i,i})替换为只包含W和xi的表达式,这很容易通过定义余弦和多角度公式来实现(这也是我们需要m是整数的原因)。没有θ\theta,我们可以计算x和W的导数,类似于softmax loss。

3.3. Hypersphere Interpretation of ASoftmax Loss

m2m \ge2时,A-Softmax-loss对正确分类有更高的要求,它在不同类别的学习特征之间产生角度分类裕度。A-Softmax损失不仅通过角裕度对学习到的特征施加判别能力,而且给出了一种新颖的超球面解释方法。如图3所示,A-Softmax损失相当于在超球流形上具有区分性的学习特征,而欧几里德边缘损失相当于在欧几里德空间中学习特征。

SphereFace Deep Hypersphere Embedding for Face Recognition
图3:欧几里德边缘损失(如contrastive loss, triplet loss, center loss)、modified softmax loss和A-Softmax loss的几何解释。第一行是二维特征约束,第二行是三维特征约束。橙色区域表示类1的判别约束,绿色区域表示类2的判别约束。为了简化,我们采用二元情形来分析超球面解释。

考虑到来自1类和2列权重W1,W2的样本x,a-Softmax损失的分类规则是cos(mθ1)>cos(θ2)cos(m\theta_1)>cos(\theta_2),相当于mθ1<θ2m\theta_1<\theta_2。值得注意的是θ1,θ2\theta_1,\theta_2等于他们相应的弧长ω1,ω2\omega_1,\omega_2在单位超球面{vj,jΣjvj2=1,v0}\begin{Bmatrix}v_j,\forall_j|\Sigma_jv^2_j=1,v\ge0\end{Bmatrix}因为W1=W2=1\begin{Vmatrix}W\end{Vmatrix}_1=\begin{Vmatrix}W\end{Vmatrix}_2=1,决策取决于弧长ω1,ω2\omega_1,\omega_2。决策边界等价于mω1=ω2m\omega_1=\omega_2,将x正确分类为第一类的约束区域为mω1<ω2m\omega_1<\omega_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的最低下界在二分类的情况下)。在二分类的情况下,我们有mmin2+3m_{min}\ge2+\sqrt3

证明。我们考虑w1和w2所跨越的空间。因为m2m\ge2,很容易得到类别1跨度的最大角度θ12m1+θ12m+1\frac{\theta_{12}}{m-1}+\frac{\theta_{12}}{m+1},其中θ12\theta_{12}是W1和W2之间的角度。

为了使类内最大特征角距离小于类间最小特征角距离,需要对其进行约束

SphereFace Deep Hypersphere Embedding for Face Recognition

SphereFace Deep Hypersphere Embedding for Face Recognition

解两不等式可以得到mmin2+3m_{min}≥2+√3

属性2(mmin的最低下界在多分类的情况下)。假设Wii\forall_i是均匀间隔的我们有欧几里德空间mmin3\ge3

证明:我们考虑二维k类(k3\ge 3)情形的下界。因为Wii\forall_i是均匀间隔的二维欧氏空间,我们有θii+1=2πk\theta_i^{i+1}=\frac{2\pi}{k}是Wi和Wi+1之间的角度。因为Wii\forall_i是对称的,我们只需要分析其中一个。对于第i类(Wi),我们需要约束SphereFace Deep Hypersphere Embedding for Face Recognition

解这个不等式,我们有mmin3\ge3,是多分类情况下的下界。基于此,我们使用m=4来近似期望的特征分布准则。由于下界不一定是紧的,在一定条件下给出一个更紧的下界和上界也是可能的,这要留给以后的工作。实验还表明,较大的m始终工作得更好,m=4通常就足够了。

3.5. Discussions

SphereFace Deep Hypersphere Embedding for Face Recognition

图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。

SphereFace Deep Hypersphere Embedding for Face Recognition

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来构造正对和负对),所有的角都用弧度表示。

SphereFace Deep Hypersphere Embedding for Face Recognition

  • m会影响性能:m越大,准确性越大。

SphereFace Deep Hypersphere Embedding for Face Recognition

  • 卷积层数影响性能:卷积层数越大性能越大,A-Softmax比Softmax性能高很多

SphereFace Deep Hypersphere Embedding for Face Recognition

  • LFW上99.42%,YTF上95.0%。不如FaceNet,和DeepID2+、DeepID3相当,但它的训练集比FaceNet的小,CASIA-WebFace有49万张图片,1万个人。SphereFace仅使用公开可用的小规模数据集实现最先进的性能, 而其它商业算法使用私有和大规模数据集

SphereFace Deep Hypersphere Embedding for Face Recognition

  • MegaFace上Rank-1 Acc是75.766,Ver是89.142(TAR for 10^-6 FAR)。

SphereFace Deep Hypersphere Embedding for Face Recognition

  • 用小数据集训练的算法的ROC比较

SphereFace Deep Hypersphere Embedding for Face Recognition

附录

  • 移除最后一个relu层:标准CNNs通常将relu连接到fc1的底部,因此所学习的特性将只分布在非负分布中,范围为[0,+∞),这限制了CNN的学习空间(角度)。为了解决这个缺点,SphereFace提出删除底部的relu非线性。直观地说,删除relu可以大大有利于特征学习,因为它提供了更大的可行学习空间(从角度度量学习角度考虑)。

SphereFace Deep Hypersphere Embedding for Face Recognition

  • 将权重归一化可以隐式地减少训练数据不平衡问题(例如训练数据的长尾分布)带来的先验问题。
  • 去除偏差:标准CNNs通常保留全连接层中的偏置项,但这些偏置项使得分析所提出的A-SoftMax loss 变得困难。这是因为SphereFace的目的是优化角度和产生角度间隔。实验得,将偏置归零对特征分布没有直接影响。有偏置和无偏置的学习特征都能充分利用学习空间。
  • MNIST数据集上A-Softmax loss的二维可视化:很明显,随着m的增大,学习到的特征由于较大的类间角度间隔而变得更具辨别力。

ace的目的是优化角度和产生角度间隔。实验得,将偏置归零对特征分布没有直接影响。有偏置和无偏置的学习特征都能充分利用学习空间。**

  • MNIST数据集上A-Softmax loss的二维可视化:很明显,随着m的增大,学习到的特征由于较大的类间角度间隔而变得更具辨别力。

SphereFace Deep Hypersphere Embedding for Face Recognition