CosFace Large Margin Cosine Loss for Deep Face Recognition

CosFace: Large Margin Cosine Loss for Deep Face Recognition

3. Proposed Approach

在本节中,我们首先详细介绍了所提出的LMCL(第3.1节)。并与其它损失函数进行了比较,证明了LMCL(第3.2节)的优越性。进一步描述了LMCL所采用的特征归一化技术,以阐明其有效性(第3.3节)。最后,我们对提出的LMCL(第3.4节)。

3.1. Large Margin Cosine Loss

我们首先从余弦的角度重新考softmax loss。softmax loss通过最大化ground-truth类的后验概率来分离不同类的特征。给定输入特征向量xi及其对应的标记yi,softmax loss可表示为:
CosFace Large Margin Cosine Loss for Deep Face Recognition

其中pi表示xi被正确分类的后验概率。N是训练样本的数量,C是类的数量。fj通常表示带有权向量Wj和偏置Bj的全连通层的**。*:*为了简单,我们修正了偏置Bj = 0,得到fj为:

fj=WjTx=Wjxcos(θj)f_j=W^T_jx=\begin{Vmatrix}W_j\end{Vmatrix}\begin{Vmatrix}x\end{Vmatrix}cos(\theta_j) (2)

其中θj\theta_j是Wj和x之间的角度。这个公式表明向量的范数和角度都有助于后验概率。为了开发有效的特征学习,W的范数必须是不变的。为此,我们通过L2规范化来修正Wj=1\begin{Vmatrix}W_j\end{Vmatrix}=1。**在测试阶段,通常根据两个特征向量之间的余弦相似度来计算测试人脸对的人脸识别分数。这说明特征向量x的范数对评分函数没有贡献。因此,在训练阶段,我们修正x=s\begin{Vmatrix}x\end{Vmatrix}=s。**因此,后验概率仅仅依赖于角度的余弦值。修正损失可表示为
CosFace Large Margin Cosine Loss for Deep Face Recognition

图2。二元类情形下不同损失函数的决策裕度比较。虚线表示决策边界,灰色区域表示决策裕度(decision margins)。因为我们通过固定x=s\begin{Vmatrix}x\end{Vmatrix}=s消除了径向的变化,得到的模型学习角空间中可分离的特征。本文将此损耗称为Softmax Loss (NSL)的标准化版本。

然而,由于NSL只强调正确的分类,因此NSL所学习的特征没有足够的区分性。为了解决这个问题,我们将余弦裕度引入到分类边界中,并将其自然地融入到Softmax的余弦公式中。

例如,考虑到二进制类的一个场景,让θi\theta_i表示学习的特征向量和类Ci的权重向量之间的角度(i=1,2)。对C1分类NSL强制cos(θ1)>cos(θ2)cos(\theta_1)>cos(\theta_2),C2类似,这样来自不同类的特性就被正确地分类了。为了开发大边界分类器,我们进一步要求cos(θ1)m>cos(θ2)cos(\theta_1)-m>cos(\theta_2)cos(θ2)m>cos(θ1)m0cos(\theta_2)-m>cos(\theta_1),m\ge0是一个固定的参数,用来控制cosine margin的大小。这个约束对于分类来说更加严格。上述分析可以很好地推广到多类场景。因此,通过在余弦空间中增加额外的边缘,改变的损失加强了对习得特征的识别。

在形式上,我们定义了大馀弦损失(LMCL):

CosFace Large Margin Cosine Loss for Deep Face Recognition

其中n是训练样本的数量,xi是对应被分类为yi类别的特征向量,Wj是第j类的权重向量,而θj\theta_j 是Wj和Xi之间的夹角。

3.2. Comparison on Different Loss Functions

CosFace Large Margin Cosine Loss for Deep Face Recognition

在本小节中,我们将我们的方法(LMCL)的决策裕度与:Softmax、NSL和A-Softmax进行比较,如图2所示。为了简化分析,我们只考虑类C1和C2的二进制类场景。设W1和W2分别表示C1和C2的权向量。

Softmax loss定义了一个决策边界:

W1cos(θ1)=W2cos(θ2)\begin{Vmatrix}W_1\end{Vmatrix}cos(\theta_1)=\begin{Vmatrix}W_2\end{Vmatrix}cos(\theta_2)。因此,它的边界既依赖于权向量的大小,又依赖于角度的余弦,从而导致余弦空间中的一个重叠的决策区域(margin < 0)。图2的第一个子图对此进行了说明。如前所述,在测试阶段,通常的策略是只考虑人脸特征向量之间的余弦相似性。因此,具有Softmax loss的训练分类器不能很好地对余弦空间中的测试样本进行分类。

NSL对权向量W1和W2进行归一化,使其具有常数量级1,从而得到的决策边界为:

cos(θ1)=cos(θ2)cos(\theta_1)=cos(\theta_2)

NSL的决策边界如图2的第二个子图所示。我们可以看到,通过去除径向变化,NSL能够很好地对余弦空间中的测试样本进行分类,margin = 0。但是,它对噪声的鲁棒性不是很强,因为没有决策裕度:决策边界周围的任何小扰动都可能改变决策。

A-Softmax通过引入额外的裕度来改善softmax的损失,其决策边界为:

C1:cos(mθ1)cos(θ2)C_1:cos(m\theta_1)\ge cos(\theta_2)

C2:cos(mθ2)cos(θ1)C_2:cos(m\theta_2)\ge cos(\theta_1)

因此,C1需要θ1θ2m\theta_1\le \frac{\theta_2}{m},C2也是一样。图2的第三个子图描述了这个决策区域,其中灰色区域表示决策裕度。

然而,A-Softmax的边距在所有θ\theta值上并不一致(m1m+1Θ,Θ\frac{m-1}{m+1}\Theta,\Theta代表W1,W2间的夹角):边距随着θ\theta减小而变小,当θ\theta=0时完全消失。这导致了两个潜在的问题。首先,对于在视觉上相似,因而在W1和W2之间有较小角度的困难类C1和C2,其边界因此也较小。*:*其次,从技术上讲,我们必须使用一个特殊的分段函数来克服余弦函数的非单调性。

LMCL(我们的建议)在余弦空间中定义了一个决策裕度,而不是像a - softmax那样在角度空间中定义了一个决策裕度

C1:cos(θ1)cos(θ2)+mC_1:cos(\theta_1)\ge cos(\theta_2)+m

C2:cos(θ2)cos(θ1)+mC_2:cos(\theta_2)\ge cos(\theta_1)+m

图2中的最后一个子图说明了LMCL在余弦空间中的决策边界,在这里我们可以看到一个清晰的边界(2\sqrt2m)中产生的夹角余弦分布。这表明LMCL比NSL更健壮,因为围绕决策边界(虚线)的一个小扰动不太可能导致错误的决策。不论权向量的角度如何,余弦余量始终适用于所有样本。

3.3. Normalization on Featur

在所提出的LMCL中,为了推导余弦损失公式并消除径向变化,引入了一种归一化方案。与文献[23]只规范化权向量不同,我们的方法同时规范化权向量和特征向量。结果,特征向量分布在超球体上,其中缩放参数s控制半径的大小。在这一小节中,我们讨论了为什么特征规范化是必要的,以及在所提出的LMCL方法中,特征规范化如何鼓励更好的特征学习。

**从两个方面说明了特征归一化的必要性:一是无特征归一化的 original softmax loss隐式学习特征向量的欧几里德范数(L2范数)和角度的余弦值。**通过自适应学习l2 -范数,使总体损失最小化,得到相对较弱的余弦约束。特别地,简单样本的自适应l2 -范数比困难样本大得多,从而弥补了余弦度量的不足。相反,我们的方法要求整个特征向量集具有相同的l2范数,使得学习只依赖于余弦值来发展识别能力。将同一类的特征向量聚在一起,将不同类的特征向量在超球面上拉开。此外,我们还考虑模型开始最小化LMCL时的情况。给定一个特征向量x,让cos(θi)cos(\theta_i)cos(θj)cos(\theta_j)分别表示两个类的余弦值。如果不对特征进行归一化,则LMCL强制x(cos(θi)m)>xcos(θj)\begin{Vmatrix}x\end{Vmatrix}(cos(\theta_i)-m)>\begin{Vmatrix}x\end{Vmatrix}cos(\theta_j)。注意cos(θi)cos(\theta_i)cos(θj)cos(\theta_j)最初可以相互比较。因此,只要(cos(θi)m)(cos(\theta_i)-m)cos(θj)cos(\theta_j)小,为了使损失最小化,x\begin{Vmatrix}x\end{Vmatrix}需要减小,从而使优化退化。因此,在LMCL的监督下,特征归一化是至关重要的,特别是当网络是从零开始训练时。同样,固定尺度参数s比自适应学习更有利。

此外,缩放参数s应设置为适当的大值,以产生性能更好、训练损失更低的特征。对于NSL,损失随s的增大而不断减小,s过小则导致收敛不足甚至不收敛。对于LMCL,我们还需要足够大的s来确保有足够的超空间来进行特征学习,并且期望有足够大的Margin。CosFace Large Margin Cosine Loss for Deep Face Recognition

图3。从特征角度对LMCL的几何解释。不同的颜色区域代表不同类的特征空间。与NSL相比,LMCL具有相对紧凑的特征区域。

在下面,我们展示了参数s应该有一个下界来获得预期的分类性能。给定归一化学习特征向量x和单位权向量W,我们表示类的总数为C。假设所学习的特征向量分别位于超球面上,以相应的权向量为中心。设PW为类中心的期望最小后验概率(即, W), s的下界为:
CosFace Large Margin Cosine Loss for Deep Face Recognition

证明:

CosFace Large Margin Cosine Loss for Deep Face Recognition
由于 CosFace Large Margin Cosine Loss for Deep Face Recognition 是一个凸函数,根据Jensen不等式可得:

CosFace Large Margin Cosine Loss for Deep Face Recognition

另外已知

CosFace Large Margin Cosine Loss for Deep Face Recognition

联立式子11,12,13,得到:

CosFace Large Margin Cosine Loss for Deep Face Recognition

最后化简得到:

CosFace Large Margin Cosine Loss for Deep Face Recognition

根据这个不等式,可以推断:对于具有一定数量的类,也就是固定 CC 不变,期望分类是得到一个最优的 PwP_w ,由式6可知 ssPwP_w 正相关,那么 ss 也应该增大。固定 PwP_w ,增加类的数量 CC ,会提高在相对紧凑的空间中进行分类的难度,需要更大的 ss 来处理更多的类。为了嵌入类内距离小、类间距离大的特征,需要一个半径为 ss 的超球面。

3.4. Theoretical Analysis for LMCL

下来,我们将研究特征空间中的决策边界和角裕度,从而得到超参数m的理论界。
CosFace Large Margin Cosine Loss for Deep Face Recognition

首先,考虑类C1和C2的二元类情况,假设给出了归一化特征向量x。设Wi表示规范化的权重向量,θi\theta_i表示x和Wi之间的角度。对于NSL,决策边界定义为cos(θ1)cos(θ2)=0cos(\theta_1)-cos(\theta_2)=0,它等于W1和W2的角平分线,如图3左边所示。这解决了由NSL监督的模型将底层特征空间划分为两个紧密区域的问题,在这两个区域中,边界附近的特征非常模糊。,属于任何一类都可以)。不同的是,LMCL驱使由cos(θ1)cos(θ2)=mcos(\theta_1)-cos(\theta_2)=m表示的C1的判定边界,这导致θ1\theta_1要远远小于θ2\theta_2,C2也一样。因此,类间方差增大,类内方差减小。

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

一般来说,为了扩展,我们假设所有的特性都被很好地分隔开,并且我们有C类的总数。m的理论变量范围应为:0m(1max(WiTWj))0\le m \le (1-max(W^T_iW_j)),where $ i,j\le n,i\ne j$。softmax的损失试图最大的角度之间的任何两个不同的类权向量,以执行完美的分类。由此可见,软最大损失的最优解应该均匀地将权向量分布在一个单位超球面上。基于此假设,引入的余弦余量m的变量范围可以推导如下
CosFace Large Margin Cosine Loss for Deep Face Recognition

其中C为训练类的数量,K为学习特征的维数。

证明:

对于 K=2K=2 ,权重向量均匀分布在单位圆上。由 max(WiTWj)=cos2πCmax(W^T_iW_j)=cos\frac{2\pi}{C} ,得出:

0m(1max(WiTWj))=1cos2πC0\le m\le(1-max(W^T_iW_j))=1-cos\frac{2\pi}{C}

对于 k2k \geq 2 下面的不等式成立:

因为c2c\ge2,有

CosFace Large Margin Cosine Loss for Deep Face Recognition

所以, max(WiTWj)>1C1max(W^T_iW_j)>\frac{-1}{C-1} ,最后得到:

0m(1max(WiTWj))=CC10\le m\le(1-max(W^T_iW_j))=\frac{C}{C-1}

类似地,当且仅当每个 WiTWj(ij)W^T_iW_j(i\ne j) 相等,和 ΣiWi=0\Sigma_iW_i=0 时,不等式取等号。只有在CK+1C\le K+1时才能满足。在这种情况下,两个任意 WW 的顶点之间的距离应该是相同的。换句话说,如果是 C=3C=3 ,它们形成一个规则的单形,例如等边三角形。如果 C=4C=4 ,则形成正四面体。

对于 C>K+1C>K+1的情况,不等式不能取等号。事实上,它是无法制定严格的上限。因此,得到 0<m<<1C10<m<<\frac{-1}{C-1} 。因为类 CC 的数量可能比特征维度 KK 大得多,所以在实践中不等式不能取等号。

其中C为训练类的数量,K为学习特征的维数。该不等式表明,随着类数的增加,类间余弦边的上界相应减小。特别是当类数远远大于特征维数时,余弦边界的上界会变得更小。
CosFace Large Margin Cosine Loss for Deep Face Recognition

图4。一个玩具实验不同的损失函数对8个身份与二维特征。第一行将2D特征映射到Euclidean空间,而第二行将2D特征映射到angular空间。随着保证金期限m的增加,差距变得明显。

合理选择较大m[0,CC1)m\in [0,\frac{C}{C-1})可以有效地促进具有高度辨别性的特征的学习。但在实际应用中,由于特征空间的消失,参数m往往达不到理论上界。即所有的特征向量根据对应类的权向量集中在一起。事实上,当m太大时,由于余弦约束变得更严格且难以满足,模型无法收敛。此外,m值过大的余弦约束使得训练过程对噪声数据更加敏感。不断增长的m 由于未能收敛,在某个点开始降低整体性能。

我们执行了一个玩具实验,以便更好地可视化特性并验证我们的方法。我们从8个不同的身份中选择了包含足够样本的人脸图像,以清晰地显示出图上的特征点。用原始的softmax loss和具有不同参数m的LMCL训练了几个模型。如上所述,m不应该大于1cos(π4)1-cos(\frac{\pi}{4})(大约为0.29,公式(7)),所以我们设置了三个m的选项进行比较,分别是m = 0, m = 0.1,和m = 0.2。如图4所示,第一行和第二行分别表示了特征在欧氏空间和角空间中的分布。我们可以观察到original softmax loss在决策边界上产生了模糊性,而所提出的LMCL表现得更好。随着m的增大,不同类之间的角边被放大。

4. Experiments

4.1. Implementation Details

预处理。首先,使用MTCNN[16]对整组训练和测试图像进行人脸区域和关键点检测。然后,利用5个面部点(两个眼睛、鼻子和两个嘴角)进行相似性变换。在那之后,我们获得裁剪面,然后调整大小为11296。跟随着[42,23],RGB图像中的每个像素(in[0,255])通过减去127.5然后除以128进行归一化。

训练。为了与使用小训练数据集(小于0.5M图像和20K个目标)的现有结果进行直接和公平的比较[17],我们在一个小训练数据集上训练我们的模型,该数据集是公开可用的CASIAWebFace[46]数据集,包含10575个受试者的0.49M人脸图像。我们还使用一个大型训练数据集来评估我们的方法的性能,以便与基准面部数据集上的最新结果(使用大型训练数据集)进行基准比较。我们在这项研究中使用的大型训练数据集由几个公共数据集和一个私人面部数据集组成,其中包含了来自90K多个身份的大约500万张图像。训练面水平翻转以增加数据。在我们的实验中,我们删除了出现在测试数据集中出现的人脸图像。

为了公平的比较,我们工作中使用的CNN架构类似于[23],它有64个卷积层,基于residual的单元[9]。式(4)中的尺度参数s根据经验设为64。我们使用Caffe[14]来实现损失层的修改并运行模型。CNN模型是用SGD算法训练的,在8gpu上批量大小为64。重量衰减设置为0.0005。

对于小数据集上的训练,在16K、24K、28k次迭代时,学习率最初为0.1除以10,然后在30k次迭代时完成训练过程。而大数据集上的训练终止于240k次迭代,初始学习率在80k,140k,200k次迭代时下降了0.05。

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

4.2. Exploratory Experiments

边缘参数在LMCL中起关键作用。在这一部分中,我们进行了一个实验来研究m。通过将m从0变化到0.45(如果m大于0.45,模型将无法收敛),我们使用小型训练数据(CASIA-WebFace[46])来训练我们的CosFace模型,并评估它在LFW[13]和上的性能YTF[43]数据集,如图5所示。
CosFace Large Margin Cosine Loss for Deep Face Recognition

我们可以看到,没有边际(在本例中为m=0)的模型导致了最差的性能。随着m值的增加,两个数据集的精度不断提高,并在m = 0:35处达到饱和。这说明了边值m的有效性。通过增加边值m,可以显著提高学习特征的识别能力。在本研究中,在后续的实验中,m设置为固定的0.35。

**特征规范化的效果。**为了研究特征规范化方案在我们的方法中的作用,我们将m固定为0.35,在有和无特征规范化方案的CASIA网页上训练CosFace模型,并比较它们在LFW[13]、YTF[43]和Megaface Challenge 1(MF1)[17]上的性能。注意,未经过归一化训练的模型初始化为softmax损失,然后由LMCL提出的方法进行监督。比较结果见表1。很明显,使用特征标准化方案的模型在三个数据集上的性能始终优于不使用特征标准化方案的模型。如前所述,特征归一化消除了基本方差,并且所学习的特征在角空间中更具鉴别性。这个实验验证了这一点。
CosFace Large Margin Cosine Loss for Deep Face Recognition

4.3. Comparison with stateoftheart loss functions

在这一部分中,我们将所提出的LMCL的性能与state-of-the-art的损失函数进行了比较。在[23]中的实验设置之后,我们在CAISAWebFace[46]上使用[23]中描述的相同64层CNN架构,在所提出的LMCL的指导下训练模型。LFW、YTF和MF1的实验比较见表2。为了公平比较,我们严格遵循模型结构(64层ResNet-Like-CNNs)和SphereFace的详细实验设置[23]。从表2中可以看出,与三个数据集的其他损失相比,LMCL始终取得了具有竞争力的结果。特别是,我们的方法不仅在特征规范化方面优于A-Softmax(表2中称为A-Softmax-normfa),而且在YTF和MF1上也显著优于其他损失函数,这证明了LMCL的有效性。
CosFace Large Margin Cosine Loss for Deep Face Recognition

如表3所示,所提出的CosFace算法在LFW上的精度为99.73%,在LFW上的精度为97.6%YTF。FaceNet在LFW上取得了亚军的成绩,它使用了大规模的图像数据集,数据集大约有2亿张脸。在YTF方面,我们的模型是所有方法中排名第一的。

CosFace Large Margin Cosine Loss for Deep Face Recognition