详细解读浅表人脸学习-Semi-Siamese Training for Shallow Face Learning

文章目录

  • 文章简介
  • Introduction
  • Related Work
    • Existing Problem
  • Paper Work
    • Training Diagram
    • Method Analysis
  • Experiment
    • Ablation study And Performence
    • Other Performence

文章简介

Semi-Siamese Training for Shallow Face Learning

作者:Hang Du, Hailin Shi, Yuchi Liu, Jun Wang, Zhen Lei, Dan Zeng, Tao Mei

单位:上海大学;京东AI;中科院自动化研究所

论文:https://arxiv.org/abs/2007.08398

代码:https://github.com/dituu/Semi-Siamese-Training

会议:ECCV 2020 Spotlight

Introduction

  近年来由于深度学习技术的发展,人脸识别技术有了显著的突破和广泛的应用。在足够宽又足够深的人脸数据集上,深度技术可以提取出有效信息来支撑人脸识别。但是在很多实际应用场景下,我们往往没有足够的深度数据集来支持人脸识别的学习。一般情况下会遇到浅表数据学习问题,也即一个人脸ID只有两张人脸数据可用,一张被叫做gallery(图库),另一张叫做Probe(探针)。那么这样的话会因为缺乏类内损失而造成网络退化或者过拟合等问题。
详细解读浅表人脸学习-Semi-Siamese Training for Shallow Face Learning_第1张图片

  因此这篇文章把在浅表数据集上的学习归纳为浅表人脸学习(shallow face learning),另外浅表学习与少样本学习相似,但不同之处在于:少样本学习主要用于闭集任务,而浅表学习包含了开集识别任务;另外少样本学习从源域到目标需要一定的微调。但是微调在实际应用中不一定是个好的选择,因为微调中改变结构是比较麻烦的事,部署新的网络结构还需重新训练,此外微调数据集和预训练数据集存在一定程度上的域差,依然会遇到浅表学习问题。
  当前主流的人脸识别方法主要包含两种:softmax及其变体的分类方法和多元对比的embedding方法。第一种方法最后学习到的FC层权重可以被认为是每个ID的中心原型,目标就是最大化分类到真实ID上的概率。这种学习方法对于深度数据表现会比较出色,但是对于浅表数据,就会遇到网络退化和过拟合的问题。embeding learning是抛弃了分类学习来学习特征表示,对比损失和三元损失都是如此。embeding learning在浅数据上比分类学习要好的原因主要有:embeding learning学习样本间的对比特征,并不是单纯的学分类,而分类原型包含了巨大的参数量。但同时embeding learning受限于硬件条件和样本对的batch大小。
  本篇工作的想法是利用embeding learning 的优势来实现对浅表数据的分类学习,主要贡献有:

  • 1 正式描述了人脸识别的一个关键问题,即浅层人脸学习,这使传统人脸识别学习效果降低。
  • 2 通过深入的实验研究了浅面学习问题,发现类内多样性的缺乏阻碍了优化,导致特征空间的崩溃。在这种情况下,模型在训练中出现了退化和过拟合。
  • 3 提出了半孪生训练(Semi-Siamese Training, SST)方法来解决浅层人脸学习中的问题。
  • 4 SST能够与现有的损失和网络架构灵活结合。并进行了综合实验,证明了SST对浅层人脸学习的显著改善。此外,额外的实验表明,SST在常规深度数据和训练前微调任务中都是有效的。

Related Work

  如今流行的学习方法都发展自softmax及其变体,通常包含FC层、softmax函数和交叉熵损失,而FC层的输出代表了样本与各个类别之间的向量内积,当特征和权重被L2正则化之后,内积也可以看作是样本与类别之间余弦角度。如下就是一个经典的损失函数,其目标就是最大化类间样本距离,最小化类内样本距离。把预测的结果看作是预测为真值y的概率,经过变换后可得这个式子,这个式子隐含了两个最优化条件,条件(i):理想情况下,最优原型W_y为类中心,等于该类中特征的平均值。条件(ii):将原型W_y在许多维度上都推向了崩溃为零的风险。如果数据够深,学到了有效的类内差异,避免了维度塌缩的风险,但是对于浅表数据来说,显然存在问题,在一个类别里,原型w_y仅由两个样本决定,也就是说,图库xg和探针xp。因此,w_y和xg、xp会快速接近,以此达到最小损失。而考虑到网络是由SGD进行的宽batch训练,每次迭代时,网络在某个少样本的类别上适应很好,到了其他类别适应度又会下降,因此整体损失会很震荡,削弱了最终训练结果。而且,因为所有的类别都会逐渐失去特征空间级别的类内差异,原型wy根据条件二最终使得大部分维度都为0,无法建立起判别性的特征空间。
详细解读浅表人脸学习-Semi-Siamese Training for Shallow Face Learning_第2张图片

Existing Problem

  从这样图可以发现,当训练数据由深到浅时,softmax和A-softmax在训练和测试中的表现都较差,而AM-softmax和Arc-softmax在训练中表现较高,在测试中表现较低。因此,可以认为softmax和A-softmax存在模型退化问题,AM-softmax和Arc-softmax存在过拟合问题。另外在这个分布图中可以看到,原型的大部分条目的值退化为零,这意味着特征空间在很多维度上塌落。在这种降维空间中,模型容易发生退化或过拟合。
详细解读浅表人脸学习-Semi-Siamese Training for Shallow Face Learning_第3张图片

Paper Work

Training Diagram

  如果是直接联合分类和embedding方法,那么对于浅表样本来说,一张照片作为初始化原型,另一张照片作为训练样本,但是这些初始化原型在训练浅表样本时,只能带来有限的提高。作者给出的解释是由于原型样本与训练样本太接近,从而产生了极小的梯度,阻碍了优化。改进的关键一点就是把backbone变成半孪生,这表示两个网络有相同的结构和接近但不相同的参数,这种差异可以保证样本间的类内差异。对于每一个训练数据集里的ID来说,其中一个网络从图库里抽取特征作为原型,另一个网络从探针里抽取特征作为训练样本
  从图上可以看出作者把半孪生骨干和一个基于更新特征的原型队列组合在了一起。这样在浅表人脸学习中取得较好的效果。而且这种方式可以跟任何现有的损失函数和网络结构组合,不管什么损失函数,都可以通过这种方式获得进一步的提升。
详细解读浅表人脸学习-Semi-Siamese Training for Shallow Face Learning_第4张图片

Method Analysis

  前面提到,当数据变浅时,所产生的的模型退化或过拟合问题是由特征空间塌缩造成的。解决这个问题的方向有两个:1)让wy和xi正确的更新;2)保证wy的条目不降到0。
对于第一个方向:主要的问题是网络无法有效的优化。从条件一来看,浅表人脸学习中每个ID只有两张人脸。将其定义为图库和探针,由孪生骨干网络产生的它们的特征xg和xp。根据条件一,wy是图库和探针的中心特征。由于缺乏类内差异,图库和探针的特征通常特别接近。这样会阻碍网络有效优化,需要保持xg和xp有一定的距离,所以引入半孪生网络。具体的做法是,一个图库集网络g得到图库的输入,和探针集网络p得到探针集的输入,g和p有相同的网络结构和不同的网络参数,所以最终两个特征不会变得接近一致。对于保证参数不同,使用了动量更新的方法来更新图库集网络,而对于探针集网络p则使用SGD和训练损失来更新。相较于其他方法,这个方法效果最好。
  第二个方向:直接的想法是在训练损失中增加限制项,去扩大原型的条目值,但是这种方法会无差别的扩大大部分维度的条目,同样会导致性能下降。本文则使用图库特征xg代替wy作为原型。这样这个原型就依赖于骨干网络的输出,避免了为0的问题。2b的红线展示了基于特征的原型避免了塌缩问题,而且相比于限制原型这种方式,还保留了更多判别性特征,缓解过拟合风险。整个原型集通过维护一个图库集队列来更新。某些自学习方法中也研究这项了技术,发现当遇到未曾见过的测试ID时表现了更好地泛化性能。
详细解读浅表人脸学习-Semi-Siamese Training for Shallow Face Learning_第5张图片

Experiment

Ablation study And Performence

  这个表里面,org表示普通训练方式,A表示原型限制,B表示网络限制,C表示图库集队列,D表示B和C的联合,SST表示本文介绍的包含了基于动量更新的半孪生网络和图库集队列的半孪生训练法。可以看出在各个损失函数上,SST方式取得了极其显著的效果。
详细解读浅表人脸学习-Semi-Siamese Training for Shallow Face Learning_第6张图片

Other Performence

  这个图中表示了在误识率为十万分之一时,传统学习方式和SST方式在各个损失函数上在浅表数据集上的测试效果。可以看出,SST取得明显的优势。
详细解读浅表人脸学习-Semi-Siamese Training for Shallow Face Learning_第7张图片
  下图表现了SST在不同损失函数和不同backbone的组合下,有效减缓了训练震荡,实现了损失稳步下降。
详细解读浅表人脸学习-Semi-Siamese Training for Shallow Face Learning_第8张图片

你可能感兴趣的:(#,深度学习,机器学习,人脸识别,计算机视觉,算法)