欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

浅层人脸学习的半暹罗式训练

最编程 2024-04-30 12:42:20
...

Semi-Siamese Training for Shallow Face Learning

  • 作者:Hang Du, Hailin Shi , Yuchi Liu , Jun Wang , Zhen Lei , Dan Zeng
  • 机构:NLPR, Institute of Automation, Chinese Academy of Sciences, Beijing, China
  • 联系方式:{duhang, dzeng}@shu.edu.cn, {shihailin, wangjun492, tmei}@jd.com
  • 项目地址:github.com/JDAI-CV/Fac…

摘要

大多数现有的公共人脸数据集,如MS-Celeb-1M和VGGFace2,在广度(大量ID)和深度(足够数量的样本)方面提供了丰富的信息用于训练。然而,在许多实际的人脸识别场景中,训练数据集在深度上是有限的,即每个ID只有两张人脸图像可用。我们将这种情况定义为浅层人脸学习,并发现现有的训练方法存在问题。与深层人脸数据不同,浅层人脸数据缺乏类内多样性。因此,它可能导致特征维度坍塌(collapsed dimensio),从而导致学习到的网络容易在坍塌维度中退化和过拟合。在本文中,旨在通过引入一种名为半孪生训练( Semi-Siamese Training SST)的新型训练方法来解决这个问题。一对半孪生网络构成了前向传播结构,训练损失通过更新图库队列计算,对浅层训练数据进行有效优化。我们的方法不依赖于额外的依赖关系,因此可以灵活地与现有的损失函数和网络架构集成。在各种人脸识别基准测试上的广泛实验表明,所提出的方法显著改善了训练效果,不仅在浅层人脸学习中如此,而且对于传统的深层人脸数据也是如此。

关键词:人脸识别,浅层人脸学习

1 Introduction

Fig1

人脸识别(FR)在过去几年取得了显著进展,并被广泛应用。这可以归因于三个方面,包括卷积神经网络(CNNs)[26,15,31,16],损失函数[29,28,37,23,44,36]和大规模训练数据集[40,12,18,1]。近年来,常用的公共训练数据集,如CASIA-WebFace [40],MS-Celeb-1M [12],VGGFace2 [1] 等提供了丰富的信息,不仅在广度上(大量的ID),还在深度上(每个ID有数十张人脸图像)。在本文中,将这种类型的数据集称为深度人脸数据。不幸的是,在许多现实场景中并不存在这样的深度人脸数据。通常,训练会遇到“浅层人脸数据”的问题,即每个ID只有两张人脸图像可用(通常是一张注册照片(registration photo)和一张点照片(spot photo),所谓的“图库”galley和“探针”probe)。因此,它缺乏类内多样性,这阻碍了网络的有效优化,并导致特征维度的塌陷。在这种情况下,发现现有的训练方法要么出现模型退化问题,要么出现过拟合问题。

维度坍塌:学到的嵌入都只存在于某个子空间(Subspace)。比如让模型学一个 3 维的嵌入,模型偷懒学了一个表面上是 3 维的嵌入实际上只有 2 维有用,剩下一维被浪费了。虽然没有完全的坍塌,但是这也使得区别不同嵌入变的困难,因为多一个维度会让空间变的更加的稀疏,向量之间并不拥挤,更容易让下游任务的分类器来区分不同的嵌入从而获得更好的泛化性

在本文中,将浅层人脸数据的训练视为一个特定的任务,称为浅层人脸学习(Shallow Face Learning, SFL)。SFL与人脸识别中的现有问题——低样本学习(LSL)类似,但它们有两个显著的区别。首先,LSL执行闭集识别[11,38,3,34],而SFL包括开放集识别任务,其中测试ID从训练ID中排除。其次,LSL需要在源域(具有深度数据)进行预训练,然后再对目标域进行微调[47,3,41],然而,预训练并不总是对于人脸识别的实际开发是一个好的选择,原因如下:

  • 一旦完成预训练,网络架构就固定了,因此在微调中改变架构是不方便的
  • 部署新架构需要从预训练重新开始,而预训练通常耗时较长;
  • 预训练数据和微调数据之间存在领域差距,因此微调仍然受到浅层数据问题的影响。

因此,SFL主张直接从头开始在浅层人脸数据上进行训练。

简而言之,浅层人脸学习的目标是从零开始对浅层人脸数据进行有效的训练,以实现开放集人脸识别。我们回顾了当前的方法,并研究了它们如何受到浅层数据问题的影响。近年来,大多数主流的深度人脸识别方法[21,33,32,7,20]都是基于softmax或其变体的分类学习发展而来的。它们建立在全连接(FC)层、softmax函数和交叉熵损失之上。FC层的权重可以被视为代表每个类别中心的原型。学习目标是最大化对真实类别的预测概率。这种方法在深度数据上具有很强的学习和区分能力。然而,由于浅层数据导致了极度缺乏类内信息,如第3.1节所示,发现这种训练方法要么会导致模型退化,要么会导致过拟合

人脸识别中的另一个主要常规是嵌入学习方法[6,13,28,24,27],它可以在没有分类层的情况下学习人脸表示。例如,对比损失[28]和三元组损失[24]计算样本之间的欧氏距离,并通过样本关系优化模型。一般来说,当数据变得浅时,嵌入学习的表现优于分类学习潜在原因是嵌入学习利用样本之间的特征比较,而不是将它们分类到包含大量参数的特定类别中

然而,嵌入学习的性能和效率取决于批量匹配的样本对数量,这受到GPU内存和硬采样策略的限制。在本文中,希望利用嵌入学习的优势来实现浅层数据的成功分类学习。如果解决了模型退化和过拟合的问题,训练将极大地受益于分类学习的能力和效率。一个直接的解决方案是简单地将两个过程结合起来,使用样本特征作为原型来初始化全连接权重,并用它们进行分类学习。类似的修改已经在之前的方法中提出[47]。具体而言,对于浅层数据的每个ID,使用一张照片作为初始原型,另一张照片作为训练样本。然而,当在浅层数据上进行训练时(例如图4.3中的DP-softmax),这种原型初始化仍然只能带来有限的改进。为了解释这个结果,假设原型与其同类训练样本变得过于相似,导致梯度极小并阻碍了优化。

为了解决这个问题,我们提出从扩大类内多样性的角度改进训练方法。以对比损失或三元组损失为例,特征由骨干网络提取。骨干网络可以被视为一对(或三元组)孪生网络,因为参数在网络之间完全共享。我们发现解决问题的关键技术是强制骨干网络成为半孪生网络,这意味着两个网络具有接近(但不完全相同)的参数。其中一个网络从图库中提取特征作为原型,另一个网络从探测中提取特征作为训练样本,对于训练中的每个ID,特征之间的类内多样性由网络之间的差异保证

有许多方法可以限制这两个网络之间的差异。例如,在随机梯度下降(SGD)更新过程中,可以在参数之间添加网络约束;或者对于一个使用SGD更新,另一个使用移动平均更新(如[14]提出的动量方法)。我们进行了广泛的实验,并发现所有这些方法都对浅层人脸学习有效。此外,将半孪生骨干与基于更新的特征原型队列(即图库队列)结合起来,取得了显著的浅层人脸学习改进。我们将这种训练方案称为半孪生训练,可以与任何现有的损失函数和网络架构集成。正如第4.3节所示,无论使用哪种损失函数,通过使用所提出的方法进行浅层人脸学习都可以获得很大的改进。

此外,进行了两个额外的实验来展示SST在广泛范围内的优势。

  • (1)尽管SST是针对浅层数据问题提出的,但对传统深度数据的实验表明,使用SST仍然可以获得领先的性能。
  • (2)另一个验证SST在实际场景中的有效性的实验,采用预训练-微调设置,也表明SST优于传统的训练方法。

总之,本文包括以下贡献:

  • 正式描述了人脸识别的一个关键问题,即浅层人脸学习,该问题严重影响了人脸识别的训练。这个问题存在于许多真实场景中,但以前被忽视了。
  • 通过深入实验研究了浅层人脸学习问题,并发现缺乏类内多样性阻碍了优化,导致特征空间塌陷。在这种情况下,模型在训练中遭受退化和过拟合
  • 提出了半孪生训练(SST)方法来解决浅层人脸学习中的问题。SST能够灵活地与现有的损失函数和网络架构进行组合。
  • 进行了全面的实验,展示了SST对浅层人脸学习的显著改进。此外,额外的实验还表明SST在传统深度数据和预训练-微调任务中也具有优势。

2 Related Work

2.1 Deep Face Recognition

在深度人脸识别中有两种主要的方案。一方面,基于分类的方法是从softmax损失及其变体发展而来的。

  • SphereFace [21]引入了角度边界来扩大类别之间的差距。
  • CosFace [33]和AM-softmax [32]提出了对正logit的加性边界
  • ArcFace [7]在余弦内部采用了加性角度边界,并给出了更清晰的几何解释。

另一方面,基于特征嵌入方法.

  • Contrastive loss对比损失[6,13,28]和Triplet loss三元组损失[24],计算样本对或三元组之间的成对欧氏距离,并优化网络之间的关系。
  • N-pairs损失[27]通过每个小批量的局部softmax公式优化正负对。

除了这两种方案,Zhu等人[47]提出了一种分类-验证-分类训练策略和DP-softmax损失,以逐步提高ID与spot人脸识别任务的性能。

2.2 Low-shot Face Recognition

低样本学习(LSL)在人脸识别中旨在通过少量的人脸样本进行近距离的ID识别。

  • Choe等人[5]使用数据增强和生成方法来扩大训练数据集。
  • Cheng等人[3]提出了一种包含最优dropout、选择性衰减、L2归一化和模型级优化的强制softmax。
  • Wu等人[38]通过使用CNN和最近邻模型开发了混合分类器。
  • Guo等人[11]提出将一次性类别和正常类别的权重向量的范数对齐
  • Yin等人[41]通过将主成分从正常类别转移到低样本类别来增强低样本类别的特征空间。

上述方法专注于MS-Celeb-1M低样本学习基准[11],该基准对于基础集中的每个ID具有相对充足的样本,并且对于新集合中的每个ID只有一个样本,目标是从基础集和新集合中识别人脸。

然而,正如前一节所讨论的,浅层人脸学习SFL和LSL之间存在两个方面的差异

  • 首先,LSL方法旨在进行闭集分类,例如,在MS-Celeb-1M低样本学习基准测试中,测试ID包含在训练集中;而浅层人脸学习SFL包括开放集识别,其中测试样本属于未见过的类别。
  • 其次,与LSL通常从源数据集(预训练)到目标低样本数据集(微调)进行迁移学习不同,浅层人脸学习主张从头开始在目标浅层数据集上进行训练

2.3 Self-supervised Learning

最近的自监督方法[8,39,48,14]在视觉表示学习方面取得了令人兴奋的进展。Exemplar CNN [8]首次引入了替代类别的概念,它在训练和测试过程中采用了参数化范式。Memory Bank [39]将实例级判别问题形式化为度量学习问题,其中实例之间的相似性是通过非参数化的方式从特征中计算得出的。MoCo [14]提出了一个带有队列和动量更新编码器的动态字典,可以实时构建一个大型且一致的字典,促进对比无监督学习。这些方法将每个训练样本视为一个实例级别的类别。尽管它们对每个样本进行了数据增强,但实例级别的类别仍然缺乏类内多样性,这类似于浅层人脸学习问题。受到自监督学习方法的有效性的启发,我们使用类似的技术来解决浅层人脸学习中的问题,例如半孪生骨干的移动平均更新(moving-average updating)和监督损失的原型队列

举例来说,SST(Shallow Face Learning)的gallery队列是基于画廊集中的样本构建,而不是样本增强技术;SST旨在处理浅层人脸学习,这是监督学习中的一个特定任务。从学习对抗缺乏类内多样性的角度来看,我们的方法将自监督方案的优势推广到浅层数据上的监督方案

3 The Proposed Approach

3.1 Shallow Face Learning Problem

浅层人脸学习是现实世界人脸识别场景中的一个实际问题。例如,在身份验证应用中,人脸数据通常包含每个身份证的注册照片(gallery)和现场照片(probe探针)。身份证号码可能很多,但浅层数据的缺乏导致类内信息极度匮乏。在这里,研究当前基于分类的方法如何受到这个问题的影响,以及浅层数据带来的后果。

目前大多数主流方法都是从 softmax 或其变体发展而来的,这包括一个全连接(FC)层,softmax 函数和交叉熵损失。FC 层的输出是第 ii 个样本特征 xix_i 与第 jj 个类别权重 wjw_j 的内积 wjTxiw_j^Tx_i。当特征和权重通过它们的 L2 范数进行归一化时,内积等于余弦相似度 wjTxi=cos(θij)w_j^Tx_i = cos(θ_i,j)。为了简化,以传统的 softmax 为例,损失函数(省略偏置项)可以被表达为:

1.png

其中,NN 是批处理大小,nn 是类别数,ss 是缩放参数,yy 是第 ii 个样本的实际标签。学习目标是最大化类内成对相似度 wyTxiw_y^Tx_i 并最小化类间成对相似度 wjTxiw_j^Tx_i,以实现类内紧凑特征和类间分离。对数内的项是在实际类别上的预测概率Py=P_y=

ksC2U.png

进而可以得到:

2.png

这个方程意味着原型 wyw_y 的最优解满足两个条件。

3.png

其中,nyn_y 是该类中的样本数量。条件(i)意味着理想情况下,最优原型 wyw_y 将是等于该类中特征的平均值的类中心。与此同时,条件(ii)使原型 wyw_y 有可能在许多维度上坍缩为零。当 nyn_y 足够大(深层数据)时,xix_i 的多样性很大,因此保持原型 wy=1nyi=1nyxiw_y = \frac{1}{n_y}\sum_{i=1} ^{n_y}x_i 远离坍缩。而在浅层数据(ny=2n_y=2)中,原型 wyw_y 仅由类中的两个样本确定,即gallery xgx_g 和probe xpx_p

结果是,三个向量 wyw_yxyx_yxpx_p 会迅速变得非常接近(wyxgxpw_y ≈ x_g ≈ x_p),而这个类将达到非常小的损失值。考虑到网络是通过 SGD 逐批次训练的,在每次迭代中,网络在少数类上拟合良好,在其他类上拟合不佳,因此总损失值将波动,训练将受到影响(如图5a点线所示)。此外,由于所有类别在特征空间中逐渐失去了类内多样性,即 xgxpx_g ≈ x_p,通过条件(ii)推动原型 wyw_y 在大多数维度上趋近于零,并且无法覆盖一个具有区分性的特征空间。

为了探索浅层数据问题带来的后果,使用 softmax、A-softmax [21]、AM-softmax [32] 和 Arc-softmax [7] 的损失函数对深层数据和浅层数据进行了实验。深层数据是 MS1M-v1c [30](MS-Celeb-1M [12] 的清理版本)。浅层数据是 MS1M-v1c 的子集,从深层数据中随机选择每个身份证的两张人脸图像。表1不仅显示了在 LFW [17] 上的测试准确度,还显示了在训练数据上的准确度。我们发现,当训练数据从深到浅时,softmax 和 A-softmax 在训练和测试中的性能都较低,而 AM-softmax 和 Arc-softmax 在训练时较高但在测试时较低。因此,我们认为 softmax 和 A-softmax 遭受了模型退化问题,而 AM-softmax 和 Arc-softmax 遭受了过拟合问题。为了进一步支持这一观点,检查原型 wyw_y 中每个条目的值,并使用 Parzen 窗口计算分布。分布显示在图2a中,横轴表示entry值,纵轴表示密度。可以看到,大多数原型的entry都趋近于零,这意味着特征空间在大多数维度上坍缩。在这样的降维空间中,模型可能很容易发生退化或过拟合

Table1

Fig2

3.2 Semi-Siamese Training

通过以上分析,可以看到,当数据变得浅层时,当前的方法受到模型退化和过拟合问题的影响,而根本原因在于特征空间的坍缩。为了解决这个问题,有两个方向可以继续进行:

  • (1) 正确更新 wyw_yxix_i
  • (2) 保持 wyw_y 的entroy远离零

在第一个方向上,主要问题是网络受到有效优化的阻碍。回顾方程(2)中浅层人脸学习的条件(i),其中每个身份证仅有两张人脸图像,分别用 IgI_g(gallery)和 IpI_p