center loss

论文:A Discriminative Feature Learning Approach for Deep Face Recognition

0 摘要

本文为人脸识别任务提出了center loss,可以为每一个人脸类别学习特征中心并惩罚远离中心点的离群样本。center loss使用CNN训练时易于收敛。将center loss和softmax loss结合,可以得到类内聚合、类间远离的深度特征,用于完成人脸识别任务。实验证明center loss取得了在当时领先的人脸验证和识别结果。

1 简介

在这里插入图片描述人脸识别任务是开集识别,不可能所有要识别的人脸都参与了训练,所以学习到的深度特征不能够仅仅是可分的,还应该是有判别力的。softmax损失仅仅保证了特征可分,这对于人脸识别任务来说是不够的。

由于训练CNN的时候,使用的SGD是基于一个mini-batch来计算梯度的,并不能够反映全局的特征分布情况。但是训练集又很大,计算全部样本的梯度进行迭代也不现实。前面提出了对比损失和三元组损失来计算样本对和样本三元组的损失值,但是构建样本对和三元组会增加训练样本的数量,减慢了模型的训练过程,并且构建三元组的技巧性也比较强。

本文作者提出的center loss,在最小化样本特征和其隶属的类中心距离的同时更新样本类的特征中心。训练CNN的时候同时使用softmax loss和center loss,使用一个额外的超参数控制两项损失的加权。物理意义是,softmax loss负责让不同的类可分,而center loss负责让同一类的样本的特征尽可能靠近类别中心。通过联合使用,不仅类间距离变大,类内的变化也在减小,加强了特征的判别能力

2 本文方法

2.1 A toy example

使用MNIST数据集,使用修改后的LeNet网络,网络的最后一个全连接层的输出神经元数量为2以方便可视化,使用softmax损失,绘制不同图像前向计算后的特征的分布情况。结果如下图:
在这里插入图片描述在这里插入图片描述从上图可以得到两个结论:

  • softmax损失的确可以使得学习的特征可分;
  • 但使用softmax损失学习的特征类内变化很大,不适合于人脸识别任务。

2.2 center loss

鉴于上面softmax loss的缺点,作者想到改进的损失应该是在保证特征可分的情况下最小化同类特征的类内变化。因此,提出了center loss,如下式:

在这里插入图片描述CyiC_{y_i}表示第yiy_i类的特征中心。这个公式的目的是为了减少类内的变化。

理想情况下,CyiC_{y_i}应该随着特征的改变而改变,也就是说需要计算整个训练样本集的特征,然后根据每个样本的类别才能计算得到类别中心CyiC_{y_i},但这样计算类别中心的方式效率低,不现实。因此,类别中心不可以直接使用。

作者提出了两项修改

1. 不是基于整个训练样本集计算类别中心CyiC_{y_i},而是基于各mini-batch去计算类别中心,就是基于当前mini-batch中所包含的样本去修正其对应的类别的中心;
2. 为了避免少数误标记样本造成的类别中心的扰动,使用一个标量α\alpha控制类别中心的学习率

在这里插入图片描述δ\delta是示性函数。

总的损失为:
在这里插入图片描述整个的算法过程为:
在这里插入图片描述不同λ\lambda值时学习到的特征的分布情况,可以看出λ\lambda值越大,越强调center loss,学习到的特征越内聚。

在这里插入图片描述

2.3 讨论

使用两项损失联合学习的必要性:如果只使用softmax loss,学习到的特征内聚程度不足;如果只使用center loss,学习到的各类特征和其类别中心会收敛到0(此时center loss值最小,为0)。单独使用任一个loss都不会取得好的结果,因此需要两个损失联合使用;
center loss和对比损失、三元组损失比较:对比损失和三元组损失构建的训练样本对会指数级增长,center loss不需要有这个担心。

3 实验

不同λ\lambdaα\alpha值的影响
在这里插入图片描述λ=0\lambda=0时,等于只使用softmax loss,从上左图可以看出,结合使用softmax loss和center loss(λ>0\lambda > 0)时效果要更好,说明了联合使用两个损失的必要性;上面右图反映α\alpha值在很大范围内变动时都可以取得比较好的验证准确率。下面使用中设置λ=0.003,α=0.5\lambda = 0.003,\alpha=0.5

在这里插入图片描述modelA表示只使用softmax loss,modelB表示联合使用softmax loss和contrastive loss,modelC表示联合使用softmax loss和center loss,从上表的结果证明了作者提出的联合使用softmax loss和center loss的先进性。

在MegaFace上的实验结果
人脸识别:绘制了在不同规模的gallary set的情况下,识别准确率的CMC曲线:

在这里插入图片描述左图是在gallary set为1 million规模的情况下,top-1、top-10,…,top-1000000的准确率,可以看到softmax loss + center loss的曲线位于最上方。右图是在gallary set为10000规模的情况下,top-1、top-10,…,top-10000的准确率,可以看到softmax loss + center loss的曲线位于最上方。

人脸验证
在这里插入图片描述左图是1百万规模的gallary数据集情况下,不同FAR时的TAR值,右图是1万规模的gallary数据集情况下,不同FAR时的TAR值,可以看出作者提出的softmax loss + center loss的曲线都是位于最上方。

在这里插入图片描述在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章