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损失得到的后验概率

在这里插入图片描述

其中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 (W1W2)x+b1b2=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 WiTxcos(θi)+bi其中 θ i \theta_i θi W i 和 x W_i和x Wix之间的角度。注意,如果我们将权重标准化,使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=xcos(θ1) p 2 = ∥ x ∥ c o s ( θ 2 ) p_2=\begin{Vmatrix}x\end{Vmatrix}cos(\theta_2) p2=xcos(θ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+1m1θ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,m1].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 m2时,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,v0}因为 ∥ W ∥ 1 = ∥ W ∥ 2 = 1 \begin{Vmatrix}W\end{Vmatrix}_1=\begin{Vmatrix}W\end{Vmatrix}_2=1 W1=W2=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 mmin2+3

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

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

在这里插入图片描述

在这里插入图片描述

解两不等式可以得到 m m i n ≥ 2 + √ 3 m_{min}≥2+√3 mmin2+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。

img

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

img

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

在这里插入图片描述

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

img

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

img

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

img

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

img

附录

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

img

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

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

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

img

本课程适合具有一定深度学习基础,希望发展为深度学习计算机视觉方向的算法工程师和研发人员的同学们。基于深度学习计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习计算机视觉方向的算法工程师和研发人员。本课程系统全面地讲述基于深度学习计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。通过本课程的学习,学员可把握基于深度学习计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值