CVPR 2020 | 利用自适应边际损失增强小样本学习

简单介绍一下我们被 CVPR 2020 录用的一个小样本学习的工作《Boosting Few-Shot Learning With Adaptive Margin Loss》(代码稍后放出),论文地址如下:

1、背景

近年来,在深度网络的帮助下,计算机已经在图像识别上取得了超越人类的效果。然而,深度神经网络参数量巨大,因此需要大量有标签的数据来训练。现实世界中,有很多场景没有这么多的标注数据,获取标注数据的成本也非常大,例如在医疗领域、安全领域、终端用户手动标注等。相比之下,借助于之前丰富的知识积累,人类只需看一次就能轻松识别出新的类别。受到人类这种利用少量样本即可识别新类能力的启发,人们开始研究小样本学习问题:在没有大量训练数据的条件下,如何让深度神经网络也能够像人类一样,把过往的经验迁移到新的类别上。

小样本学习问题中,我们假设有一组基类,以及一组新类。每个基类具有足够的训练样本,而每个新类只有少量标记样本。 小样本学习的目的是通过从基类转移知识来学习识别具有少量标注样本的新类别。常见的 setting 有如下两种:

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

基于度量学习元学习方法在小样本学习上表现出了很好的性能,它通过学习一个好的特征表示,使得在特征空间中,同类样本聚集,异类样本分开。这样,只需简单通过和各类样本的距离比较,就能预测一个新类样本所属的类别。

特征空间聚类结构和自适应边际示意图
在已有的方法中,相似类别的样本常常在特征空间里的距离挨得很近以至于难以区分,大大限制了分类精度。本文提出在类别之间加入自适应的边际距离来提升基于度量学习元学习性能,其中的边际距离是通过类别之间的语义相似度自动生成的。直观上,语义上越相似的类别之间越难区分,设定的边际距离也应该越大。大量的实验表明,本文的方法在标准小样本分类和广义小样本分类任务上都显著超越了现有的方法。

2、回顾——基于度量学习元学习方法

元学习(meta-learning)是一种处理小样本学习的常用框架,它包含 meta-training 和 meta-testing 两个阶段。在 meta-training 阶段,模型按照一个个 episode 来训练:在每个 episode 中,首先构造一个 task(从整个 base class 数据集中抽取一些样本来组成一个小训练集和小测试集) ,然后用它来更新模型。在 meta-testing 阶段,我们用学到的模型来预测 novel class 中的样本。近年来,基于度量学习(metric learning)的元学习方法变得很流行,它假设存在这样一个 embedding space,每个类别的样本聚类在一个代表点(class representation)周围,而这些类代表点当作每个类的参考点来预测测试样本的标签(比如距离测试点最近的 class representation 所对应的类别作为测试样本的标签)。【可以参看 Prototypical NetworkGlobal Class Representation 两个文章】

损失函数

3、自适应边际损失(Adaptive Margin Loss)

自适应边际生成流程图

3.1 类别相关的边际损失(CRAML)

3.2 任务相关的边际损失(TRAML)

到目前为止,我们都只考虑边际与任务无关。如果每次只考虑一个 meta-training task 中涉及的类别,那么可以更加精细地生成适合的边际。通过将一个 meta-training task 中的每个类与该 meta-training task 中其他类一一比对,我们可以衡量一个 task 内“相对的”语义相似度,从而生成适合这个 task 的边际。

任务相关的边际生成示意图

3.3 扩展到广义小样本学习

广义小样本学习中,测试数据既有来自新类也有来自基类,因此比标准小样本学习更加挑战。我们的自适应边际设计得非常灵活,用它训练得到的 embedding 和度量模块可以直接用来预测测试样本的标签。

4、实验验证

4.1 标准小样本学习

我们在 mini-ImageNet 上进行验证,选取了 AM3 和 Prototypical Network 作为 backbone。可以看到, TRAML 的引入显著提高了两个 backbone 的分类精度,这说明我们的设计可以有效增强基于度量学习元学习方法。同时,AM3 + TRAML 超越了 state-of-the-art 的结果。

4.2 广义小样本学习

我们在 ImageNet 2012 上进行验证,选取了 Dynamic FSL 作为 backbone。我们首先加入 TRAML 在基类上训练 embedding 模块,然后用训练得到的 embedding 模块来提取所有训练样本的特征。后续 Dynamic FSL 中用到的 weight generator 采用刚刚计算出的特征作为输入。最后,我们把训练 weight generator 的原始分类损失函数替换为 TRAML 来进行训练。可以看到,TRAML 的引入在新类和全类上的性能都超越了 baseline,同时对于不同的 shot 数也都一致地好。


4.3 Ablation Study

我们以 AM3 为 backbone,分别测试了原始分类损失,NAML,CRAML 和 TRAML 的性能。

5、总结

本文从 CV 和 NLP 多模态的视角切入,通过考虑类别的语义信息来提升小样本学习的性能。本文提出在类别之间加入自适应的边际距离来提升基于度量学习元学习性能,其中的边际距离是通过类别之间的语义相似度自动生成的。直观上,语义上越相似的类别之间越难区分,设定的边际距离也越大。大量的实验表明,本文的方法在标准小样本分类和广义小样本分类任务上都显著超越了现有的方法。

理论CVPR 2020
相关数据
损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

元学习技术

元学习是机器学习的一个子领域,是将自动学习算法应用于机器学习实验的元数据上。现在的 AI 系统可以通过大量时间和经验从头学习一项复杂技能。但是,我们如果想使智能体掌握多种技能、适应多种环境,则不应该从头开始在每一个环境中训练每一项技能,而是需要智能体通过对以往经验的再利用来学习如何学习多项新任务,因此我们不应该独立地训练每一个新任务。这种学习如何学习的方法,又叫元学习(meta-learning),是通往可持续学习多项新任务的多面智能体的必经之路。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

小样本学习技术

人类非常擅长通过极少量的样本识别一个新物体,比如小孩子只需要书中的一些图片就可以认识什么是“斑马”,什么是“犀牛”。在人类的快速学习能力的启发下,研究人员希望机器学习模型在学习了一定类别的大量数据后,对于新的类别,只需要少量的样本就能快速学习,这就是 Few-shot Learning 要解决的问题。

度量学习技术

即学习一个度量空间,在该空间中的学习异常高效,这种方法多用于小样本分类。直观来看,如果我们的目标是从少量样本图像中学习,那么一个简单的方法就是对比你想进行分类的图像和已有的样本图像。但是,正如你可能想到的那样,在像素空间里进行图像对比的效果并不好。不过,你可以训练一个 Siamese 网络或在学习的度量空间里进行图像对比。与前一个方法类似,元学习通过梯度下降(或者其他神经网络优化器)来进行,而学习者对应对比机制,即在元学习度量空间里对比最近邻。这些方法用于小样本分类时效果很好,不过度量学习方法的效果尚未在回归或强化学习等其他元学习领域中验证。

推荐文章
暂无评论
暂无评论~