《P2SGrad Refined Gradients for Optimizing Deep Face Models》论文阅读

P2SGrad: Refined Gradients for Optimizing Deep Face Models

CVPR2019的一篇关于人脸识别的论文
地址:http://openaccess.thecvf.com/content_CVPR_2019/papers/Zhang_P2SGrad_Refined_Gradients_for_Optimizing_Deep_Face_Models_CVPR_2019_paper.pdf

Abstract

基于余弦的softmax损失[20,29,27,3]显着改善了深度识别网络的性能。然而,这些损失总是包括敏感的超参数,这可能使训练过程不稳定,并且为特定数据集设置合适的超参数是非常棘手的。本文通过以自适应方式直接设计训练梯度来解决这一挑战。我们首先从梯度的角度研究和统一以前的余弦softmax损失。这种统一的观点激发我们提出一种新的梯度,称为P2SGrad(概率相似度梯度),它利用余弦相似性而不是分类概率来控制更新神经网络参数的梯度。 P2SGrad具有自适应性和超参数自由度,使培训过程更加高效和快速。我们在三个人脸识别基准上评估我们的P2SGrad,LFW [7],MegaFace [8]和IJB-C [16]。结果表明,P2SGrad在训练中是稳定的,对噪声具有鲁棒性,并且在所有三个基准测试中都达到了最先进的性能。

1. Introduction

在过去的几年中,深度卷积神经网络显着提高了人脸识别的准确性。最先进的方法基于深度神经网络并采用以下pipeline:训练具有不同类型的softmax损失的分类模型,并使用训练的模型作为特征提取器来测试unseen的样本。然后利用测试面部特征之间的余弦相似性来确定这些特征是否属于同一身份。与其他视觉任务不同,例如物体检测,其中训练和测试具有相同的目标和评估程序,传统的人脸识别系统使用softmax损失进行训练,但使用余弦相似性进行测试。换句话说,训练中的softmax概率与测试中的内积相似性之间存在差距。

图1.当前人脸识别系统的流水线。在这个通用pipeline中,训练分类任务的深面模型被视为特征提取器。

这个问题在经典的softmax交叉熵损失函数(其余部分的softmax损失)中没有得到很好的解决,主要考虑训练类的概率分布而忽略了测试设置。为了弥补这一差距,余弦softmax损失[28,13,14]及其基于角度边缘的变量[29,27,3]直接使用余弦距离而不是内积作为输入原始分类得分,即logits。特别地,基于角度边缘的变体旨在以不同类别之间的边界来学习决策边界。这些方法在具有挑战性的设置中改善了面部识别性能。

尽管取得了成功,但基于余弦的softmax损失只是一种权衡:训练的监督信号仍然是分类概率,在测试期间从未进行评估。考虑到两个测试面部图像之间的相似性仅与其自身相关而分类概率与所有身份相关的事实,余弦softmax损失不是面部识别中的理想训练测量

本文旨在从不同的角度解决这些问题。深度神经网络通常使用随机梯度下降(SGD)算法进行训练,其中梯度在此过程中起重要作用。除了损耗函数,我们还关注余弦softmax损失函数的梯度。这种新观点不仅使我们能够分析以往方法的关系和问题,而且还激发我们开发一种新颖的自适应梯度形式P2SGrad,它可以缓解训练测试不匹配的问题,进一步提高实践中的人脸识别性能。

更具体地说,P2SGrad通过精心设计的梯度来优化深度模型。与基于余弦的softmax损耗的传统梯度相比,P2SGrad使用余弦距离来代替原始梯度中的概率。P2SGrad将梯度与超参数和类的数量分离,并匹配测试目标

本文主要从以下几个方面做出贡献:
1、我们从梯度的角度分析了最近的余弦softmax损失及其基于角度边缘的变量,并提出了统一不同余弦softmax交叉熵损失的一般公式;
2、利用这种统一模型,我们提出了一种自适应超参数梯度法 - 用于训练深度人脸识别网络的P2SGrad。该方法保留了在训练中使用余弦距离的优点,但在后向传播中取代了具有余弦相似性的分类概率;
3、我们在大型人脸数据集上进行了大量实验。实验结果表明,P2SGrad在同一设置上优于最先进的方法,明显提高了训练过程的稳定性。

2. Related Works

人脸识别[9,6,18,25]的准确性改进享有大规模的训练数据和神经网络结构的改进。现代人脸数据集包含大量身份,如LFW [7],PubFig [10],CASIA-WebFace [32],MS1M [4]和MegaFace [17,18],它们可以有效训练非常深的神经网络。最近的一些研究表明,精心设计的网络架构可以带来更好的性能,例如DeepFace [26],DeepID2,3 [22,23]和FaceNet [21]。

在人脸识别中,将特征限制在固定半径超球面上的特征表示归一化是增强模型最终性能的常用操作。COCO损失[13,14]和NormFace [28]通过数学分析研究了归一化的影响,并通过重新设计softmax损失和度量学习提出了两种策略。巧合的是,L2-softmax [20]也提出了类似的方法。这些方法从不同的视角获得相同的余弦softmax损失公式。

优化辅助度量损失功能也是提高性能的常用选择。在早期,大多数人脸识别方法都使用公制损失函数,例如三重损失[30]和对比损失[2],它们使用欧氏边界来测量特征之间的距离。利用这些工作,中心损失[31]和距离损失[33]被提出通过最小化目标类别内的距离来减少类内变化[1]。

仅使用欧几里德距离或欧几里德边距不足以最大化分类性能。为了克服这个困难,提出了基于角度边缘的softmax损失函数,并且在面部识别中变得流行。传统的softmax损失函数增加了角度约束,以改善L-softmax [12]和A-softmax [11]中的特征判别性,其中A-softmax应用权重归一化但L-softmax [12]则没有。与上述方法相比,CosFace [29],AM-softmax [27]和ArcFace [3]也采用了角度边缘的概念,并采用了更简单,更直观的损失函数。归一化应用于这些方法中的特征和权重。

3. Limitations of cosine softmax losses

在本节中,我们将讨论由人脸识别模型的训练和测试之间的不匹配引起的限制。我们首先简要回顾余弦softmax损失的工作流程。然后,我们将分别从前向和后向计算的角度揭示人脸识别中现有损失函数的局限性。

3.1. Gradients of cosine softmax losses

在人脸识别任务中,余弦softmax交叉熵损失具有优雅的两部分公式,softmax函数和交叉熵损失

我们首先讨论softmax函数。假设vector_xi表示面部图像的特征表示,softmax函数的输入是logit f i , j f_{i, j} fi,j,即,
f i , j = s ⋅ ⟨ x ⃗ i , W ⃗ j ⟩ ∥ x ⃗ i ∥ 2 ∥ W ⃗ j ∥ 2 = s ⋅ ⟨ x ^ i , W ^ j ⟩ = s ⋅ cos ⁡ θ i , j ( 1 ) f_{i, j}=s \cdot \frac{\left\langle\vec{x}_{i}, \vec{W}_{j}\right\rangle}{\left\|\vec{x}_{i}\right\|_{2}\left\|\vec{W}_{j}\right\|_{2}}=s \cdot\left\langle\hat{\mathbf{x}}_{i}, \hat{\mathbf{W}}_{j}\right\rangle= s \cdot \cos \theta_{i, j} (1) fi,j=sx i2W j2x i,W j=sx^i,W^j=scosθi,j1
其中s是超参数和 f i , j f_{i, j} fi,j是xi被分配给j类的分类分数(logit), W ⃗ j \vec{W}_{j} W j是j类的权重向量。 x ⃗ i \vec{x}_{i} x i W ⃗ j \vec{W}_{j} W j分别是 x ⃗ i \vec{x}_{i} x i和Wj的归一化矢量。 θ i , j \theta_{i, j} θi,j是特征 x ⃗ i \vec{x}_{i} x i和类权重 W ⃗ j \vec{W}_{j} W j之间的角度。然后将logits f i , j f_{i, j} fi,j输入到softmax函数以获得概率 P i , j = Softmax ⁡ ( f i , j ) = e f i , j ∑ k = 1 C e f i , k P_{i, j}=\operatorname{Softmax}\left(f_{i, j}\right)=\frac{e^{f_{i}, j}}{\sum_{k=1}^{C} e^{f_{i, k}}} Pi,j=Softmax(fi,j)=k=1Cefi,kefi,j,其中C是类的数量,输出 P i , j P_{i, j} Pi,j可以解释为 x ⃗ i \vec{x}_{i} x i被分配给某个类j的概率。如果j = yi,则 P i , j P_{i, j} Pi,j x ⃗ i \vec{x}_{i} x i被分配给其对应类yi的概率。

然后我们讨论与softmax函数相关的交叉熵损失,它测量预测概率 P i , j P_{i, j} Pi,j和ground truth 分布之间的差异:
L C E ( x ⃗ i ) = − log ⁡ P i , y i = − log ⁡ e f i , y i ∑ k = 1 C e f i , k ( 2 ) \mathcal{L}_{\mathrm{CE}}\left(\vec{x}_{i}\right)=-\log P_{i, y_{i}}=-\log \frac{e^{f_{i, y_{i}}}}{\sum_{k=1}^{C} e^{f_{i, k}}} (2) LCE(x i)=logPi,yi=logk=1Cefi,kefi,yi2
其中 L C E ( x ⃗ i ) \mathcal{L}_{\mathrm{CE}}\left(\vec{x}_{i}\right) LCE(x i)是输入特征 x ⃗ i \vec{x}_{i} x i的损失。 P i , y i P_{i, yi} Pi,yi的概率越大, L C E ( x ⃗ i ) \mathcal{L}_{\mathrm{CE}}\left(\vec{x}_{i}\right) LCE(x i)的损失越小。

为了减少 L C E ( x ⃗ i ) \mathcal{L}_{\mathrm{CE}}\left(\vec{x}_{i}\right) LCE(x i)的损失,模型需要放大 P i , y i P_{i, yi} Pi,yi,从而放大 f i , y i f_{i, yi} fi,yi。然后 θ i , y i \theta_{i, yi} θi,yi变小。总之,余弦softmax损失函数将 θ i , y i \theta_{i, yi} θi,yi映射到概率 P i , y i P_{i, yi} Pi,yi并计算交叉熵损失以监督训练。

余弦softmax损失中的xi和Wj的梯度计算为:
∂ L C E ( x ⃗ i ) ∂ x ⃗ i = ∑ j = 1 C ( P i , j − 1 ( y i = j ) ∇ f ( cos ⁡ θ i , j ) ⋅ ∂ cos ⁡ θ i , j ∂ x ⃗ i ∂ L C E ( x ⃗ i ) ∂ W ⃗ j = ( P i , j − 1 ( y i = j ) ∇ f ( cos ⁡ θ i , j ) ⋅ ∂ cos ⁡ θ i , j ∂ W ⃗ j ( 3 ) \begin{aligned} \frac{\partial \mathcal{L}_{\mathrm{CE}}\left(\vec{x}_{i}\right)}{\partial \vec{x}_{i}} &=\sum_{j=1}^{C}\left(P_{i, j}-\mathbb{1}\left(y_{i}=j\right) \nabla f\left(\cos \theta_{i, j}\right) \cdot \frac{\partial \cos \theta_{i, j}}{\partial \vec{x}_{i}}\right.\\ \frac{\partial \mathcal{L}_{\mathrm{CE}}\left(\vec{x}_{i}\right)}{\partial \vec{W}_{j}} &=\left(P_{i, j}-\mathbb{1}\left(y_{i}=j\right) \nabla f\left(\cos \theta_{i, j}\right) \cdot \frac{\partial \cos \theta_{i, j}}{\partial \vec{W}_{j}}\right.\end{aligned} (3) x iLCE(x i)W jLCE(x i)=j=1C(Pi,j1(y

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值