论文:https://arxiv.org/pdf/1801.09414.pdf
代码:https://github.com/yule-li/CosFace
CosFace: Large Margin Cosine Loss for Deep Face Recognition
摘要
随着深度卷积神经网络(CNN)的快速发展,人脸识别也取得了巨大的进展。人脸识别的核心任务包括了: 人脸验证(face verification)和人脸身份识别(face identification), 还涉及到人脸特征区分性。然而, 深度卷积神经网络中传统的softmax loss通常存在特征区分能力不足的问题。 为了解决这一点, 最近研究者们提出了一些其他形式的损失函数,如center loss, large margin softmax loss和angular softmax loss等。 这些改进的s损失函数都有共同的思路,即最大化类间差异和最小化类内差异。本文提出了一个新的损失函数, 我们称之为large margin cosine loss(LMCL),从另一个角度实现了相同的思路。具体来说,我们用另一种方式对softmax loss进行表示,通过对特征和权重向量进行L2范数归一化来移除其径向变化,然后引入了一个余弦间隔项(cosine margin term)来进一步最大化在角度空间上的不同类别的决策间距。这样,通过归一化以及最大化余弦决策间距就可以实现最小化类内差异同是最大化类间差异了。我们把利用LMCL方法训练得到的人脸识别模型简称为CosFace。我们在MegaFace Challenge,Youtube Faces 和LFW等最常用的人脸识别公开数据集上进行了大量的实验,在这些数据集上取得了state-of-the-art的表现,从而证实了所提出方法的有效性。
1.简介
最近深度卷积神经网络在许多不同的计算机视觉任务上都取得了重大的进展,使之成为了计算机视觉领域中一个主要的机器学习方法。人脸识别作为计算机视觉最常见的任务之一,近几十年来被广泛地研究。早期研究都建立在浅层模型和底层人脸特征之上,而最新的人脸识别技术则更多地使用深度卷积神经网络。人脸识别通常包括了两个子任务:face verification和face identification。而这两个任务都包含了以下三个步骤:人脸检测(face detection)、特征提取(feature extraction)和分类(classification)。深度卷积神经网络可以提取干净的高层特征,使得可能只需要一个相对简单的分类方法就可以获得很好的表现:比如一个多层感知网络加一个softmax loss。然而,最近的研究发现传统的softmax loss不足以获得很好的鉴别能力用于分类。
为了促进更好的鉴别性能,许多研究工作又被提出了。这些研究都有着同样的思路来使分类器的鉴别能力最大化,即最大化类间差异和最小化类内差异。比如,[42, 5, 7, 10, 39]这些论文提出采用多损失函数学习(mult-loss learning)的方式来增加特征的区分能力。但这些方法相比softmax loss,在改进分类效果的同时又带来了另外一些限制。比如[42]只显示地最小化类内差异而忽略了类间差异的处理,这样会导致陷入局部最优的问题。[5, 7, 10, 39]需要一个穷尽策略来挖掘样本对或样本组,这是一个非常耗时的步骤。而最近,[23]从另一个角度来解决如何提升鉴别的问题。具体来说,[23] (A-softmax)将原始的欧式空间特征投影到一个角度空间上,然后引入了一个角度间距来尽量拉大类间距离。
对比[42, 5, 10]中用的欧式间距,角度间距因角度余弦与softmax loss有着内在一致性而更适合softmax loss优化。而且余弦形式的表示也和人脸识别中常用的相似性计算方法匹配。从这个角度来说,直接采用不同类之间的余弦间距来改进余弦相关的鉴别信息的做法更加合理。
在本文中,我们用另一种方式对softmax loss进行表示,通过对特征和权重向量进行L2范数归一化来移除其径向变化,然后引入了一个余弦间隔项(cosine margin term)来进一步最大化在角度空间上的不同类别的决策间距。具体而言,我们提出了一个新的算法,称为Large Margin Cosine Loss(LMCL),将归一化后的特征作为输入,通过最大化类间余弦间距去学习得到区分性更好的特征。形式上,我们定义了一个超参数m,令决策边界由
cos
(
Θ
1
)
−
m
=
cos
(
Θ
2
)
\cos (\Theta 1) -m = \cos(\Theta 2)
cos(Θ1)−m=cos(Θ2)决定,其中
Θ
1
\Theta 1
Θ1为特征向量和类别i的权值向量的夹角。
作为对比,A-Softmax的决策边界是由
cos
(
m
Θ
1
)
=
cos
(
Θ
2
)
\cos (m\Theta 1) = \cos(\Theta 2)
cos(mΘ1)=cos(Θ2) 决定的,这一形式会比较难优化因为余弦函数的非单调性。为了克服这种困难,他们在A-Softmax中采用了an ad-hoc piecewise function这种附加技巧。更重要的是,A-Softmax的决策间距与
Θ
\Theta
Θ 有关,这样会导致不同类别之间的决策间距会各不相同。这样的结果是,在决策空间上,有些有些类别之间的特征间距会比较大而有些则比较小,导致模型鉴别能力下降。不同于A-Softmax,我们的方法在余弦空间上定义了决策间距,从而避免这一不足。
基于LMCL,我们创建了一个精致的深度模型,简称CosFace,如图1所示。在训练阶段,LMCL指导卷积网络学习得到较大余弦间距的特征。在测试阶段,人脸特征可以从卷积网络提取得到,然后应用于face verification或者face identification。我们对本文工作的贡献总结如下:
(1)我们采用最大化类间差异和最小化类内差异的思路,提出了一个新颖的损失函数,简称LMCL,去学习得到具有高度鉴别能力的深度特征应用于人脸识别中。
(2)我们基于超球面特征分布的假设对LMCL算法做了合理的理论分析。
(3)提出的方法在多个人脸识别公开数据集(包括LFW, YTF和Megaface等)上取得了state-of-the-art的效果。
2.相关工作
人脸识别:最近,由于深度卷积神经网络的巨大成功使得人脸识别领域也取得了很多重要的进展。在DeepFace[35]和DeepID[32]中,人脸识别被当成了一个多分类的问题,深度卷积神经网络首次被引入用来从大规模的多类标数据集中学习特征。DeepID2[30]利用身份(identification)和认证(verification)信号来获得更好的feature embedding。他们最新的工作DeepID2+[33]和DeepID3[31]进一步探索了更先进的网络结构来改进识别效果。FaceNet[29]使用triplet loss来学习一个欧式空间嵌入(Euclidean space embedding),他们的网络用了接近200百万人脸图像来训练,得到了state-of-the-art的效果。另外的算法如[41, 11]等同样也是改进深度卷积神经网络并应用于人脸识别中。
损失函数 损失函数在深度特征学习中扮演了重要的角色。Contrastive loss 和 triplet loss经常被用于增加欧式距离间距从而得到更好的特征。Wen等人[42]提出了center loss来学习每个ID的特征的中心,以此减少类内差异。Liu等人[24]提出L-Softmax损失函数,通过对每个id增加角度限制来改进特征鉴别性。A-Softmax[23]通过对权值向量作归一化对L-Softmax进行改进,在一系列公开人脸识别数据集上获得了更好的效果。其他基于contrastive loss或者center loss的损失函数同样在增强特征区分性上表现不错。
归一化方法:归一化方法的研究在最近的人脸识别研究中很常见。[38]对权值向量进行归一化然后用余弦相似度替代了softmax loss层中的inner product。[28]采用对特征进行L2约束从而将人脸特征嵌入到归一化后的空间上。注意到,对特征向量或者权值向量做归一化,在训练时可以让角度更集中从而获得更小的类内角度变化。因此不同类别之间的角度就可以被很好地优化。基于von-Mises=Fisher的方法和A-Softmax同样在特征学习中采用了归一化。
3.提出的方法
在这一节,我们首先详细介绍了提出的LMCL方法(见3.1节)。然后给出其他损失函数与我们提出的方法的对比实验,展示了LMCL的优越性能(见3.2节)。接着我们深入描述了LMCL中用到的特征归一化技巧,以此证明LMCL的有效性(见3.3节)。最后我们对提出的LMCL方法进行了理论分析。
3.1 Large Margin Cosine Loss
我们从余弦的角度重新思考softmax loss,softmax loss通过最大化ground-truth类别的后验概率来区分不同类别。给定一个输入特征向量 x i x_i xi 及其类标 y i y_i yi,softmax loss可以表示成下式:
公式(1)见原文
其中 p i p_i pi表示 x i x_i xi被分类正确的后验概率。 N N N为训练样本数量, C C C 为类别数。 f j f_j fj通常表示经过全连接层(权值向量为 W j W_j Wj,bias为 B j B_j Bj)后特征的激活值。为了简化,我们令 B j = 0 B_j=0 Bj=0,则 f j f_j fj可以表示成:
公式(2)见原文
其中
θ
j
\theta_j
θj表示
W
j
W_j
Wj和
x
x
x 之间的夹角。该公式表明向量的模和它们之间的夹角都对有验概率值有影响。
w为了更有效地特征学习,权值向量
W
W
W 的模有必要保持不变。为此,我们通过
L
2
L_2
L2范数归一化令
∣
∣
W
j
∣
∣
=
1
||W_j||=1
∣∣Wj∣∣=1。在测试阶段,一对测试人脸图片的识别分数通常是通过计算两个特征向量的余弦相似度得到。这意味着特征向量的模应该也对识别分数没有影响,因此我们令
∣
∣
x
∣
∣
=
s
||x||=s
∣∣x∣∣=s。从而后验概率只依赖于夹角的余弦值。修改后的loss可以表示为:
公式(3)见原文
(待续.