ICCV 2019 | 基于全局类别表征的小样本学习 GCR(附代码)

ICCV 2019 | 基于全局类别表征的小样本学习 GCR(附代码)

简单介绍一下我们在今年 ICCV 2019 的一个小样本学习的工作《Few-Shot Learning with Global Class Representations》(项目地址备用地址),论文地址如下:

Few-Shot Learning With Global Class Representationswww.weiranhuang.com

图像识别是计算机对图片进行理解和处理的第一步。

  • 常见应用场景:手机相册自动分类,识别拍摄物体以便进行后续处理等
  • 近年来,在深度网络的帮助下,计算机已经在图像识别上取得了超越人类的效果
  • 存在的问题:
    • 现有的图像识别技术集中于大规模的物体识别,因为深度网络需要大量训练数据
    • 现实世界中,有很多场景没有这么多的标注数据,获取标注数据的成本也非常大,例如在医疗领域、安全领域、终端用户手动标注等
    • 在没有大量训练数据的条件下,如何让深度神经网络也能够像人类一样,把过往的经验迁移到新的类别
小样本学习:5 个类别,每个类别只有 1 个样本(称作 5-way 1-shot),如何对测试图片进行分类。

相比之下,借助于之前丰富的知识积累,人类只需看一次就能轻松识别出新的类别。受到人类这种利用少量样本即可识别新类能力的启发,研究者们开始研究小样本学习问题。 在小样本学习问题中,我们假设有一组基类,以及一组新类。每个基类具有足够的训练样本,而每个新类只有少量标记样本。 小样本学习的目的是通过从基类转移知识来学习识别具有少量标注样本的新类别。我们提出一种基于全局类别表征的小样本学习方法,可以应用于:

  1. 标准小样本学习问题:给定一个大规模的训练集作为基类,可以类比于人类的知识积累,对于从未见过的新类(与基类不重叠),借助每类少数几个训练样本,需要准确识别新类的测试样本。
  2. 广义小样本学习问题:相比与小样本学习,广义小样本学习中测试样本不仅包含新类,还包含了基类。

传统小样本学习的方法,通常只使用基类数据进行学习。由于基类和新类之间存在严重的样本不均衡问题,导致容易过拟合到基类数据,这一点在广义小样本问题中尤为突出。通过在训练阶段引入新类的数据,我们同时对基类和新类学习全局类别表征,并利用样本生成策略解决类别不均衡问题,有效防止训练模型在基类数据中出现过拟合的现象,从而提高了模型泛化到新类的能力。

解决方案

我们的思路是将每个类(包括基类和新类)表示为特征空间中的一个高维向量(称为类别表征),然后将测试图片到各个类的表征的距离进行比较,来对测试图片进行分类。我们同时使用基类与新类的 “所有训练样本” 来学习这种类别表征,因此称这种表征为全局类别表征

“注册” 和 “样本生成” 的几何意义

上图给出了一个直观的几何解释:第一个框是尚未进行 “样本生成” 和 “注册” 的初始状态,其中每个点代表一个样本在特征空间中的位置,绿色三角形的点代表某个基类的样本,橙色的圆点代表某个新类的样本。为了能够将两类分开,我们需要对特征空间做变换,使得绿色和橙色的点能够分开(如第三个框所示)。第二个框表示了对特征空间做变换的过程:首先我们先对新类数据进行样本生成(生成的样本用橙色的叉表示),然后将绿色和橙色两类的样本分别往各自的全局类别表征 “拉近”,同时把不同类的样本互相 “推开”。这个过程被称作 “注册”。

下图是我们训练框架的示意图(点开看大图):

训练框架示意图

训练方法:

输入基类图片池和新类图片池,我们分阶段进行训练(episodic training)。初始状态时,我们把各个类别所有训练样本的特征向量的平均值作为对应全局类别表征。在每个训练阶段(training episode),我们先选取若干个类作为本轮训练的数据。将样本通过特征提取网络提取图像特征,然后对于每个基类,我们使用该类样本的特征向量的平均值作为该类的阶段性类别表征;对于每个新类,由于样本量小,我们首先使用数据增强手段进行样本生成,然后将其作为该新类的阶段性类别表征。之后将得到的阶段性类别表征送入注册模块和全局类别表征进行配准,得到对应的全局类别表征以及注册误差。随后通过将每个问询集中的样本与配准后的全局表征进行比较,用最近邻的方法预测样本的标签,然后与真实标签对比,得到分类误差。把注册误差和分类误差相加得到总体误差,然后用来训练我们的模型(需要更新的是特征提取网络,全局类别表征和注册模块)。

测试方法:

将测试图片提取图片特征向量后,与配准后的全局类别表征进行比较,用最近邻的方法预测样本的标签。测试方法与训练过程中对问询数据进行预测的方法一致。

具体的实现细节,可以参看论文原文

部分实验效果

  1. 标准小样本学习

我们从 miniImageNet 中取 64 类用作 training,16 类用作 validation,20 类用作 testing。待分类的测试图片只从新类中选取。1 shot 表示在训练集中每个新类有 1 个样本,5 shot 表示每个新类有 5 个样本。每次预测需要从 5 个候选类中选择一个作为给定图片的分类。下表给出了我们的方法和其他小样本学习方法的对比结果。从表中可以看出,我们的方法具有很好的表现。

在 miniImageNet 上的实验结果:平均准确率 + 标准差

2. 广义小样本学习

我们仍然在 miniImageNet 上进行实验,具体设定和小样本学习的设定相同。唯一的区别在于测试样本同时从基类和新类抽取。每个新类包含 5 个训练样本。衡量指标有三个:

  • acc_b :基类(base)测试样本的分类准确度;
  • acc_n :新类(novel)测试样本的分类准确度;
  • acc_a :所有(all)测试样本的分类准确度。

下表给出了我们的方法和其他方法的对比实验结果,从表中可以看出,我们的方法显著超过了对比算法。

广义小样本学习结果对比

总结

  1. 我们提出的方法同时使用了基类数据和新类的小样本数据来学习类别表征,可以防止训练的模型在基类上过拟合。
  2. 相比于之前学习阶段性类别表征的方法,我们提出的全局类别表征直接与所有基类和新类训练样本进行比较,可能更具可分辨性。
  3. 我们的方法能同时有效处理标准小样本学习和广义小样本学习。

传送门:

如何评价 ICCV 2019 的论文接收结果?有哪些亮点论文?www.zhihu.com图标

最后,打个小广告,我们正在招 2-3 名实习生,如果您感兴趣,欢迎点击如下链接了解:

一份实习邀约zhuanlan.zhihu.com图标

编辑于 2020-05-29

文章被以下专栏收录