(center loss)A Discriminative Feature Learning Approach for Deep Face Recognition

本文提出了一种新的损失函数——中心损失,用于提高卷积神经网络(CNN)在人脸识别中的深度特征识别能力。中心损失通过最小化类内特征距离,同时保持类间分离,提升了特征的区分性。实验结果显示,这种方法在LFW、YTF和MegaFace Challenge等数据集上实现了最先进的识别精度。
摘要由CSDN通过智能技术生成

论文地址:http://dl.icdst.org/pdfs/files1/c8edf1770d6ac7f5415f8daef7fb9bce.pdf
代码:https://github.com/ydwen/caffe-face

摘要

  卷积神经网络(CNNs)在计算机视觉领域得到了广泛的应用,极大地提高了最先进的技术水平。在现有的网络神经网络中,大部分使用softmax损失函数作为监督信号来训练深度模型。为了提高深度学习的特征的识别能力,本文提出了一种新的人脸识别监督信号,称为中心损失。具体来说,中心损失同时学习了每一类深层特征的中心,并对深层特征与其对应的类中心之间的距离进行了惩罚。更重要的是,我们证明了所提出的中心损失函数在CNNs中是可训练和易于优化的。在softmax损失和中心损失的共同监督下,我们可以训练一个鲁棒的CNN,以获得尽可能多的具有两个关键学习目标的深度特征,即类间的损失和类内的紧密性,这对于人脸识别是非常重要的。令人鼓舞的是,我们的CNN(在这样的联合监督下)在几个重要的人脸识别基准上达到了最先进的精度,如LFW、YTF和“MegaFace挑战”。尤其是我们的新方法实现最好的结果MegaFace(最大的公共领域面临基准)的协议下小训练集(包含500000张图片和20000人),显著改善以前的结果和设置新的先进的人脸识别和验证任务。

1 引言

  卷积神经网络(CNNs)在视觉方面取得了巨大的成功,显著提高了分类问题的最先进技术,如对象[18,28,33,12,11]、场景[42,41]、动作[3,36,16]等。它主要得益于大规模的训练数据[8,26]和端到端学习框架。最常用的CNN进行特征学习和标签预测,将输入数据映射到深层特征(最后一层隐含层的输出),然后映射到预测的标签,如图1所示。
在这里插入图片描述
图1.卷积神经网络的典型框架
  在一般的对象、场景或动作识别中,可能测试样本的类别都在训练集内,也称为闭集识别。因此,预测的标签决定了性能,softmax损失能够直接解决分类问题。这样,标签预测(最后的全连接层)就像一个线性分类器,深入学习的特征很容易分离。
  在人脸识别任务中,深度学习的特征不仅需要是可分离的,而且需要是可区分的。因为预先收集所有可能的测试身份用于训练是不切实际的,所以CNNs中的标签预测并不总是适用。深度学习的特征需要具有足够的鉴别性和泛化性,以便在没有标签的情况下识别新的没有见过的类。区分能力表征了紧密的类别内变化和可分离的类间的差异的特征,如图1所示。判别特征可以通过最近邻[7]或k近邻[9]算法进行很好的分类,这些算法并不一定依赖于标签的预测。(无监督算法)。然而,softmax的损失只会促进特性的可分离性。所得到的特征对人脸识别不是很有效。
  在CNN中构造高效的识别特征学习损失函数是很重要的。由于随机梯度下降(SGD)[19]优化了基于mini-batch的CNN,不能很好地反映深层特征的全局分布。由于训练集规模巨大,在每次迭代中输入所有的训练样本是不现实的。作为替代方法,对比损失[10,29]和三元组损失[27]分别构造了图像对和三元组的损失函数。但是,与图像样本相比,训练对或三元组的数量显著增加。它不可避免地导致缓慢收敛和不稳定。通过仔细选择图像对或三元组,可以部分地缓解问题。但它大大增加了计算复杂度,使训练过程变得不方便。
  为了有效地增强CNN中深度学习特征的识别能力,我们提出了一种新的损失函数,即中心损失函数。具体来说,我们学习了每个类的深度特征的中心(维数与特征维数相同的向量)。在训练过程中,我们同时更新中心,并最小化深度特征与其对应的类中心之间的距离。在softmax损失和中心损失的共同监督下训练CNN,并通过一个超参数来平衡这两个监督信号。直观上,softmax的损失迫使不同的类别的深层特征保持分离。中心损失有效地将同一类的深层特征拉到它们的中心。在共同监督下,不仅扩大了类间特征的差异,而且减少了类内特征的变化。因此,深入学习的特征的鉴别能力可以被高度增强。我们的主要贡献总结如下。

  • 我们提出了一个新的损失函数(中心损失)来最小化深度特征的类内距离。据我们所知,这是第一次尝试使用这种损失函数来帮助监督CNN的学习。实验结果表明,在中心损失和softmax损失的共同监督下,可以获得具有高度识别性的特征,从而实现鲁棒人脸识别。
  • 我们表明,提出的损失函数是很容易在CNN实现。我们的CNN模型是可训练的,可以直接通过标准SGD优化。
  • 我们现在广泛的实验数据集的MegaFace挑战[23] (最大的公共领域人脸数据库和100万张面孔识别)和设置新的先进的评估协议下的小训练集。我们也验证了性能优良的新方法标记面临在(LFW)[15]和YouTube的脸(YTF)数据集[38]。

2 相关工作

  近年来,通过深度学习进行人脸识别取得了一系列突破[30,34,29,27,25,37]。将一对人脸图像映射到距离的想法是从[6]开始的。他们训练siamese网络,使其对正配对的相似性度量小,对负配对的相似性度量大。Hu等人[13]学习了一种非线性变换,并产生具有正负人脸图像对之间的边界的判别深度度量。这些方法都需要图像对作为输入。
  最近,[34,31]通过挑战识别信号(softmax loss function)来监督CNNs中的学习过程,这给深入学习的特征带来了更丰富的身份相关信息。之后,文献[29,37]采用识别-验证联合监督信号,使得特征更具鉴别性。[32]通过增加全连接层和每个卷积层的loss函数增强了监督功能。在[27,25,21]中已经证明了三元组损失的有效性。通过深度嵌入,使anchor与positive之间的距离最小,使anchor与negative之间的距离最大,直到满足边界。他们在LFW和YTF数据集实现了最先进的性能。

3 我们的方法

  在本节中,我们将详细阐述我们的方法。我们首先使用一个小例子来直观地展示深入学习的特征的分布。在此基础上,我们提出了利用中心损失来提高深度学习特征的识别能力,并进行了一些讨论。
在这里插入图片描述
表1.我们在小例子中使用的CNNs架构称为LeNets++。一些卷积层后面是最大池。 ( 5 , 32 ) / 1 , 2 × 2 (5,32)_{/1,2}×2 (5,32)/1,2×2表示32个大小为5×5的滤波器的2个级联卷积层,其中stride为1,padding为2。 2 / 2 , 0 2_{/2,0} 2/2,0表示网格为2×2的最大池化层,其中stride为2,padding为0。在LeNets++中,我们使用参数修正单元(PReLU)[12]作为非线性单元。

3.1 一个小例子

  在本节中,将展示一个关于MNIST[20]数据集的简单示例。我们将LeNets[19]修改为一个更深更宽的网络,但将最后一个隐含层的输出数减少为2(即深层特征的维数为2),这样我们就可以直接将特征绘制在二维表面上进行可视化。表1给出了网络架构的更多细节。softmax损失函数如下。
L s = − ∑ i = 1 m l o g e W y i T x i + b y i ∑ j = 1 n e W j T x i + b j L_s=-∑_{i=1}^mlog{e^{W^T_{y_i}x_i+b_{y_i}}\over ∑^n_{j=1}e^{W^T_jx_i+b_j}} Ls=i=1mlogj=1neWjTxi+bjeWyiTxi+byi</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值