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对应的最后一个全连通层的权值和偏差。如果p1>p2,则将预测标签分配给第1类;如果p1<p2,则将分配给第2类。通过比较p1和p2,我们可以清楚地看到和决定分类结果。决策边界为。然后我们重写为其中是之间的角度。注意,如果我们将权重标准化,使偏差为零后验概率变成和。请注意,p1和p2共享相同的x,最终结果仅取决于角度和。决策边界也变(即向量W1和W2的角平分线)。虽然上述分析建立在二进制类的案例上,但是将分析推广到多类的案例上是类似的。在训练中,修改了softmax loss鼓励第i类特征之间比与其他不同类特征具有更小的角度(较大的余弦距离)。这使得wi和特征之间的角度成为一个可靠的分类度量。
为了给出修改后的softmax loss的正式表达式,我们首先定义了输入特征xi及其标签yi。原始的softmax损失可以写成
其中fj表示类得分向量f的第j个元素(,K是类别数量),N是训练样本的个数。在CNNs中,f通常是一个全连通层的输出,所以,,其中,分别为第i个训练样本,W的第j个列和第个列。
我们进一步在公式(3)as中重新表述Li:
其中是Wj和xi之间的角度。如前所述,我们首先进行规范化在每次迭代中,使偏差为0。然后是修改后的softmax loss:
虽然我们可以通过改进的softmax loss来学习带有角边界的特征,但这些特征不一定具有很强的区分能力。由于我们使用角度作为距离度量,为了提高识别能力,自然会将角度裕度加入到学习特征中。为此,我们提出了一种合并角边的新方法。
3.2. Introducing Angular Margin to Softmax Loss
我们提出了一种更自然的方法来学习角裕度,而不是设计一种新的损失函数,并构造一个与softmax损失(类似于对比损失)的加权组合。通过前面对softmax损失的分析,我们了解到决策边界对特征分布的影响很大,所以我们的基本思想是操纵决策边界产生角裕度。我们首先给出一个二分类的例子来解释我们的想法是如何工作的。
假设已知一个属于第1类的特征x和是x和Wi之间的角度,已知,修改后的softmax loss需要正确分类x。但如果我们要求其中m为大于等于2的整数来正确分类x呢?它本质上使决策比以前更严格。类1的决策边界为,类2也同样推理。假设所有训练样本都被正确分类,这样的决策边界将产生一个angular margin,其中是W1和W2之间的角度。从angular的角度来看,正确地从identity 1中分类x需要,正确地从identity 2中分类x是需要。两者都比原来的难。通过将这一思想直接表达到修正的softmax loss方程(5)中,我们得到了
必须在的范围内。为了摆脱这一限制,使其在CNNs中可优化,
我们扩展了的定义范围将其推广为单调递减的角函数,这个在的范围内与相等。因此,我们提出的A-Softmax loss为:
我们定义,,m是一个大于等于1的整数,它控制了角边距的大小。当m=1时,为修正的softmax损失。也可以从决策边界的角度对A-Softmax损失进行论证。A-Softmax损失针对不同的类别采用不同的判决边界(每个边界比原始边界更严格),从而产生角裕度。决策边界的比较 表1。
从改进的softmax loss到a -softmax loss,使决策边界更加严格和分离。角裕度随着m的增大而增大,当m=1时为0。在A-Softmax损失的监督下,CNNs利用几何可解释的角度裕度来学习人脸特征。因为ASoftmax loss要求wi =1;如果bi=0,则预测结果只取决于样本x和wi之间的夹角。所以x可以分为角度最小的恒等式。添加参数m是为了学习不同恒等式之间的角裕度。为了便于梯度计算和反向传播,我们将和替换为只包含W和xi的表达式,这很容易通过定义余弦和多角度公式来实现(这也是我们需要m是整数的原因)。没有,我们可以计算x和W的导数,类似于softmax loss。
3.3. Hypersphere Interpretation of ASoftmax Loss
当时,A-Softmax-loss对正确分类有更高的要求,它在不同类别的学习特征之间产生角度分类裕度。A-Softmax损失不仅通过角裕度对学习到的特征施加判别能力,而且给出了一种新颖的超球面解释方法。如图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损失的分类规则是,相当于。值得注意的是等于他们相应的弧长在单位超球面因为,决策取决于弧长。决策边界等价于,将x正确分类为第一类的约束区域为。从几何学上讲,这是一个位于超球面流形上的超圆形区域,例如,在三维情况下,它是单位球面上的一个圆形区域,如图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的最低下界在二分类的情况下)。在二分类的情况下,我们有
证明。我们考虑w1和w2所跨越的空间。因为,很容易得到类别1跨度的最大角度,其中是W1和W2之间的角度。
为了使类内最大特征角距离小于类间最小特征角距离,需要对其进行约束
解两不等式可以得到。
属性2(mmin的最低下界在多分类的情况下)。假设Wi,是均匀间隔的我们有欧几里德空间mmin。
证明:我们考虑二维k类(k)情形的下界。因为Wi,是均匀间隔的二维欧氏空间,我们有是Wi和Wi+1之间的角度。因为Wi,是对称的,我们只需要分析其中一个。对于第i类(Wi),我们需要约束
解这个不等式,我们有mmin,是多分类情况下的下界。基于此,我们使用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的增大,学习到的特征由于较大的类间角度间隔而变得更具辨别力。