Hao Wang, Yitong Wang, Zheng Zhou, Xing Ji, Dihong Gong, Jingchao Zhou,
Zhifeng Li∗, and Wei Liu∗

Tencent AI Lab

{hawelwang,yitongwang,encorezhou,denisji,sagazhou,michaelzfli}@

gongdihong@ wliu@ee.columbia.edu

Abstract

由于深度卷积神经网络 (CNN) 的进步,人脸识别取得了非凡的进步。 人脸识别的核心任务,包括人脸验证和识别,涉及人脸特征识别。 然而,传统的深度CNNs的softmax loss通常缺乏辨别力。为了解决这个问题,最近提出了几种损失函数,例如中心损失、大边距 softmax 损失和角度 softmax 损失。 所有这些改进的损失都有相同的想法:最大化类间方差和最小化类内方差。 在本文中,我们提出了一种新的损失函数,即大余弦损失(LMCL),以从不同的角度实现这一想法。 更具体地说,我们通过 L2 对特征和权重向量进行归一化以消除径向变化,将 softmax 损失重新表示为余弦损失,在此基础上引入余弦间隔项以进一步最大化角度空间中的决策间隔。 结果,通过归一化和余弦决策间隔最大化实现了最小类内方差和最大类间方差。 我们将使用 LMCL 训练的模型称为 CosFace。对最流行的公共领域人脸识别数据集进行了广泛的实验评估,例如 MegaFace Challenge、Youtube Faces (YTF) 和 Labeled Face in the Wild (LFW)。 我们在这些基准测试中达到了最先进的性能,这证实了我们提出的方法的有效性。

5. Conclusion

在本文中,我们提出了一种名为 LMCL 的创新方法来引导深度 CNN 学习具有高度辨别力的人脸特征。 我们提供了格式良好的几何和理论解释来验证所提出的 LMCL 的有效性。 我们的方法在多个面部基准测试中始终如一地取得了最先进的结果。 我们希望我们通过 LMCL 学习判别特征的大量探索将有益于人脸识别社区。

1. Introduction

在本文中,我们通过 L2 归一化特征和权重向量以消除径向变化,将 softmax 损失重新表示为余弦损失,在此基础上引入余弦间隔项 m 以进一步最大化角度空间中的决策间隔。具体来说,我们提出了一种新算法,称为大边距余弦损失(LMCL),该算法将归一化特征作为输入,通过最大化类间余弦边距来学习具有高度判别性的特征。 形式上,我们定义了一个超参数 m,使得决策边界由 cos(θ1) − m = cos(θ2) 给出,其中 θi 是类 i 的特征和权重之间的角度。为了比较,A-Softmax 的决策边界在角度空间上定义为 cos(mθ1) = cos(θ2),由于余弦函数的非单调性,这在优化上存在困难。 为了克服这样的困难,我们必须为 A-Softmax 使用一个额外的技巧即需要一个特殊的分段函数。 更重要的是,A-softmax 的决策间隔取决于 θ,这导致不同类别的间隔不同。 因此,在决策空间中 (decision space),一些类间特征(inter-class features)具有较大的间隔,而另一些则具有较小的间隔,这降低了判别力。 与 A-Softmax 不同,我们的方法定义了余弦空间中的决策间隔,从而避免了上述缺点。

2. Related Work

为了鼓励有更好的判别性能,已经进行了许多研究 [42, 5, 7, 10, 39, 23]。所有这些研究对于最大判别性能力都有相同的想法:最大化类间方差和最小化类内方差。例如,[42, 5, 7, 10, 39] 提出采用多损失学习以增加特征判别能力。虽然这些方法比传统的 softmax 损失提高了分类性能,但它们通常会带来一些额外的限制。对于[42],它仅显式地最小化类内方差而忽略类间方差,这可能导致次优解。 [5, 7, 10, 39] 需要彻底计划对或三重样本的挖掘,这是一个非常耗时的过程。最近,[23] 提出从不同的角度解决这个问题。更具体地说,[23] (A-softmax) 投影原始将特征的欧几里德空间转换为角度空间,并为更大的类间方差引入角度余量。

与 [42, 5, 10] 建议的 Euclidean margin 相比,angular margin 是首选,因为角度的余弦与 softmax 具有内在的一致性。【内在一致性?】 余弦公式与经常应用于人脸识别的相似度测量相匹配。 从这个角度来看,直接在不同类之间引入余弦间隔来提高余弦相关判别信息更为合理。

Normalization Approaches.

请注意,通过在训练期间更多地关注角度【?】,特征向量或权重向量的归一化实现了更低的类内角度变化性。 因此,可以很好地优化身份之间的角度。

3. Proposed Approach

3.1. Large Margin Cosine Loss

softmax函数通过最大化真实标签类的后验概率来区分来自不同类的特征。

深度学习loss曲线怎么看 deepfacelab的loss曲线_深度学习


fj 通常表示为具有权重向量 Wj 和偏置 Bj 的全连接层的激活。 为简单起见,我们固定偏差 Bj = 0,因此 fj 由下式给出:

深度学习loss曲线怎么看 deepfacelab的loss曲线_权重_02

其中 θj 是 Wj 和 x 之间的角度。 这个公式表明向量的范数和角度都对后验概率有贡献。为了开发有效的特征学习,W 的范数必须是不变的。 为此,我们通过 L2 归一化固定 ‖Wj ‖ = 1。【?】 在测试阶段,通常根据两个特征向量之间的余弦相似度计算测试人脸对的人脸识别分数。 这表明特征向量 x 的范数对评分函数没有贡献。【?】 因此,在训练阶段,我们固定 ‖x‖ = s。 因此,后验概率仅依赖于角度的余弦。 修改后的损失可以表示为

深度学习loss曲线怎么看 deepfacelab的loss曲线_权重_03


因为我们通过固定 ‖x‖ = s 来消除径向(radial directions)的变化,【?】因此生成的模型学习了在角度空间中可分离的特征。 在本文中,我们将这种损失称为 Normalized version of Softmax Loss ((NSL)。

然而,NSL 学习的特征并没有足够的辨别力,因为 NSL 只强调正确的分类。 为了解决这个问题,我们在分类边界中引入了余弦边距,这自然地被纳入到 Softmax 的余弦公式中。

例如,考虑一个二元类的场景,让 θi 表示学习到的特征向量和类 Ci (i = 1, 2) 的权重向量之间的角度。 NSL 强制 C1 的 cos(θ1) > cos(θ2),C2 的类似,所以来自不同类别的特征被正确分类。 为了开发一个大间隔分类器,我们进一步需要 cos(θ1) − m > cos(θ2) 和 cos(θ2) − m > cos(θ1),其中 m ≥ 0 是一个固定参数,用于控制余弦间隔的大小。 由于 cos(θi) - m 低于 cos(θi),因此分类的约束更加严格。 以上分析可以很好地推广到多类的场景。 因此,经过改变的损失通过鼓励余弦空间中的额外间隔加强了对学习到的特征的判别性。

the Large Margin Cosine Loss (LMCL) :

深度学习loss曲线怎么看 deepfacelab的loss曲线_机器学习_04

其中N为训练样本数,xi为ground-truth类yi对应的第i个特征向量,Wj为第j个类的权重向量,θj为Wj与xi的夹角.

深度学习loss曲线怎么看 deepfacelab的loss曲线_神经网络_05

Figure 2. 二值情形下不同损失函数的决策间隔比较。虚线表示决策边界,灰色区域表示决策间隔。

3.2. Comparison on Different Loss Functions

Softmax 损失通过以下方式定义了一个决策边界:

深度学习loss曲线怎么看 deepfacelab的loss曲线_权重_06


因此,它的边界取决于权重向量的大小和角度的余弦,这导致余弦空间中的决策区域重叠(margin < 0)。 这在图 2 的第一个子图中进行了说明。如前所述,在测试阶段,常见的策略是只考虑测试人脸特征向量之间的余弦相似度。 因此,经过训练的具有 Softmax 损失的分类器无法在余弦空间中完美地对测试样本进行分类。【?】NSL将权重向量W1和W2归一化,使它们的大小为常数1,从而得到一个决策边界:

深度学习loss曲线怎么看 deepfacelab的loss曲线_机器学习_07


NSL 的决策边界如图 2 的第二个子图所示。我们可以看到,通过去除径向变化,NSL 能够完美地对余弦空间中的测试样本进行分类,间隔 = 0。但是,它对噪声不是很稳健,因为没有决策间隔:决策边界周围的任何小扰动都可能改变决策。A-Softmax 通过引入额外的间隔来改善 softmax 损失,使得其决策边界由下式给出

深度学习loss曲线怎么看 deepfacelab的loss曲线_权重_08


LMCL(我们提出的)通过以下方式定义了余弦空间而不是角度空间(如 A-Softmax)中的决策余量:

深度学习loss曲线怎么看 deepfacelab的loss曲线_深度学习loss曲线怎么看_09


因此,cos(θ1) 被最大化,而cos(θ2) 被最小化以用于C1(对于C2 类似)以执行大边界分类。 图 2 中的最后一个子图说明了 LMCL 在余弦空间中的决策边界,我们可以在生成的角的余弦分布中看到明显的间隔 (√2m)。 这表明 LMCL 比 NSL 更稳健,因为决策边界(虚线)周围的小扰动不太可能导致错误决策。 余弦间隔始终适用于所有样本,无论它们的权重向量的角度如何。【看不懂图?】

3.3. Normalization on Features

在提出的 LMCL 中,特意采用了归一化方案来推导余弦损失的公式并消除径向变化。 与仅对权重向量进行归一化的 [23] 不同,我们的方法同时对权重向量和特征向量进行了归一化。 结果,特征向量分布在超球面上,其中缩放参数 s 控制半径的大小。 在本小节中,我们将讨论为什么特征归一化是必要的,以及特征归一化如何在提议的 LMCL 方法中鼓励更好的特征学习。

特征归一化的必要性表现在两个方面:首先,没有特征归一化的原始 softmax loss 隐式学习特征向量的欧几里得范数(L2-norm)和角度的余弦值。【?】 自适应学习 L2 范数以最小化整体损失,从而导致相对较弱的余弦约束。 特别是,容易样本(easy samples )的自适应 L2 范数变得比困难样本(hard samples)大得多,以弥补余弦度量的较差性能。 相反,我们的方法要求整个特征向量集具有相同的 L2 范数,以便学习仅依赖于余弦值来发展判别力。来自相同类别的特征向量聚集在一起,来自不同类别的特征向量在超球面(hypersphere)【?】的表面上被拉开。此外,我们考虑模型最初开始最小化 LMCL 的情况。给定一个特征向量 x,让 cos(θi) 和 cos(θj) 分别表示两个类的余弦分数。如果没有对特征进行归一化,LMCL 会强制 ‖x‖(cos(θi) − m) > ‖x‖ cos(θj )。请注意,cos(θi) 和 cos(θj) 最初可以相互比较。因此,只要 (cos(θi) − m) 小于 cos(θj ),就需要减小 ‖x‖ 以最小化损失,【?】这会使优化退化。因此,特征归一化在 LMCL 的监督下至关重要,尤其是当网络从头开始训练时。同样,固定缩放参数 s 比自适应学习更有利 。

此外,缩放参数 s 应设置为适当大的值,以产生性能更好的特征,同时减少训练损失。 对于 NSL,损失随着 s 的增大而不断下降,而 s 太小会导致收敛不足甚至不收敛。 对于 LMCL,我们还需要足够大的 s 以确保有足够的超空间用于具有预期较大裕度的特征学习。【?】

在下面,我们展示了参数 s 应该有一个下限以获得预期的分类性能。 给定归一化的学习特征向量 x 和单位权重向量 W ,我们将类的总数表示为 C。假设学习的特征向量分别位于超球面的表面并以相应的权重向量为中心。 让 PW 表示类中心的预期最小后验概率(即 W )【?】,s 的下界由下式给出(推导见附件):

深度学习loss曲线怎么看 deepfacelab的loss曲线_深度学习_10


基于这个界限,我们可以推断,如果我们期望对具有特定数量的类进行分类的最优 Pw,则 s 应该被一致地扩大。 此外,通过保持固定的 Pw,期望的 s 应该更大以处理更多的类,因为越来越多的类增加了在相对紧凑的空间中分类的难度。【?】 因此,需要具有大半径 s 的超球面来嵌入具有小类内距离和大类间距离的特征。3.4. Theoretical Analysis for LMCL

深度学习loss曲线怎么看 deepfacelab的loss曲线_机器学习_11

前面的小节主要从分类的角度讨论了 LMCL。 在学习超球面上的判别特征方面,余弦间隔作为重要部分,以加强特征的判别能力。 需要详细分析余弦间隔的定量可行选择(即超参数 m 的界限)。 m 的最佳选择可能会导致对高度判别性面部特征的更有希望的学习。 在下文中,我们深入研究特征空间中的决策边界和角间隔,以推导出超参数 m 的理论界限。

首先,考虑之前的类 C1 和 C2 的二元类情况,假设给定了归一化特征向量 x。 让 Wi 表示归一化的权重向量,θi 表示 x 和 Wi 之间的角度。 对于 NSL,决策边界定义为 cos θ1 − cos θ2 = 0,相当于图 3 左侧所示的 W1 和 W2 的角平分线。这解决了由 NSL 监督的模型将底层特征空间划分为两个接近的区域,其中边界附近的特征非常模糊(即,属于任一类都是可以接受的)。相比之下,LMCL 驱动由 cos θ1 − cos θ2 = m 制定的决策边界对于 C1,其中 θ1 应该远小于 θ2(对于 C2 类似)。 因此,类间方差扩大而类内方差缩小。

回到图 3,可以观察到最大角间隔受 W1 和 W2 之间的角度影响。 因此,当 W1 和 W2 给定时,余弦余量应具有有限的可变范围。 具体来说,假设一个场景,属于第 i 类的所有特征向量与第 i 类对应的权重向量 Wi 完全重叠。 换句话说,每个特征向量都与第 i 类的权重向量相同,显然特征空间处于极端情况,所有特征向量都位于它们的类中心。 在这种情况下,决策边界的间隔已经最大化(即余弦间隔的严格上限)。

一般来说,我们假设所有特征都很好地分离,并且我们总共有 C 类。 m 的理论变量范围应该是:

深度学习loss曲线怎么看 deepfacelab的loss曲线_神经网络_12

softmax loss 试图最大化来自两个不同类别的两个权重向量中的任何一个之间的角度,以执行完美的分类。 因此,很明显,softmax 损失的最佳解决方案应该在单位超球面上均匀分布权重向量。 基于这个假设,可以推断引入的余弦余量m的可变范围如下(推导见附件):

深度学习loss曲线怎么看 deepfacelab的loss曲线_深度学习loss曲线怎么看_13

其中 C 是训练类的数量,K 是学习到的特征的维度。 不等式表明,随着类数的增加,类间余弦余量的上限相应地减小。 特别是,如果类的数量远大于特征维度,则余弦边距的上限会变得更小。、

合理选择较大的 m ∈ [0, C /(C−1 )) 应该有效地促进高度判别特征的学习。 然而,由于特征空间的消失,参数m在实践中通常无法达到理论上限。 即所有的特征向量根据对应类的权重向量一起居中。 事实上,当m太大时,模型无法收敛,因为余弦约束(即,cos θ1 -m > cos θ2 或 cos θ2 -m > cos θ1 对于两个类别)变得更严格并且难以满足。 此外,m 过大的余弦约束迫使训练过程对噪声数据更加敏感。 【?】由于未能收敛,不断增加的 m 在某些时候开始降低整体性能。

我们进行了一个玩具实验,以更好地可视化特征并验证我们的方法。 我们从包含足够样本的 8 个不同身份中选择人脸图像,以清楚地显示图上的特征点。 使用原始 softmax 损失和建议的 LMCL 训练多个模型,并具有不同的 m 设置。 为简单起见,我们提取人脸图像的二维特征。 如上所述,m 应不大于 1 − cos π / 4(约 0.29),因此我们设置 m 的三个选择进行比较,分别为 m = 0、m = 0.1 和 m = 0.2。 如图 4 所示,第一行和第二行分别表示欧氏空间和角空间中的特征分布。 我们可以观察到,原始的 softmax 损失在决策边界上产生了歧义,而所提出的 LMCL 表现要好得多。 随着 m 的增加,不同类别之间的角间隔被放大了。

4. Experiments

4.1. Implementation Details

Preprocessing. 首先,MTCNN [16] 检测整个训练和测试图像集的面部区域和地标。 然后,采用5个面部点(两个眼睛,鼻子和两个嘴角)进行相似变换。 之后,我们获得裁剪后的人脸,然后将其调整为 112 × 96。在 [42, 23] 之后,RGB 图像中的每个像素(在 [0, 255] 中)通过减去 127.5 然后除以 128 进行归一化。

Training. 为了与使用小型训练数据集(小于 0.5M 图像和 20K 主题)的现有结果进行直接和公平的比较 [17],我们在小型训练数据集上训练我们的模型,这是公开可用的 CASIA-WebFace [46] 数据集包含来自 10,575 个主题的 0.49M 人脸图像。 我们还使用大型训练数据集来评估我们的方法的性能,以与基准人脸数据集上的最新结果(使用大型训练数据集)进行基准比较。 我们在本研究中使用的大型训练数据集由几个公共数据集和一个私有人脸数据集组成,包含来自超过 9 万个身份的大约 500 万张图像。 训练人脸被水平翻转以进行数据增强。 在我们的实验中,我们删除了属于出现在测试数据集中的身份的人脸图像。

为了公平比较,我们工作中使用的 CNN 架构类似于 [23],它有 64 个卷积层并且基于残差单元 [9]。 公式(4)中的缩放参数 s 根据经验设置为 64。 我们使用 Caffe[14] 来实现损失层的修改并运行模型。 CNN 模型使用 SGD 算法进行训练,在 8 个 GPU 上批量大小为 64。 权重衰减设置为 0.0005。 对于在小数据集上训练的情况,学习率最初为 0.1,并在 16K、24K、28k 迭代时除以 10,我们在 30k 迭代时完成训练过程。 虽然对大型数据集的训练在 240k 次迭代时终止,但初始学习率 0.05 在 80K、140K、200K 次迭代时下降。

Testing. 在测试阶段,原始图像和翻转图像的特征连接在一起以组成最终的人脸表示。 特征的余弦距离被计算为相似度得分。 最后,通过对分数进行阈值和排序来进行人脸验证和识别。 我们在几个流行的公共人脸数据集上测试我们的模型,包括 LFW[13]、YTF[43] 和 MegaFace[17, 25]。