CVPR 2022 Oral | 大连理工提出小样本识别DeepBDC,6项基准性能最好(1)

简介: CVPR 2022 Oral | 大连理工提出小样本识别DeepBDC,6项基准性能最好

在本文中,来自大连理工大学等机构的研究者提出了 DeepBDC 用于小样本分类任务,DeepBDC 通过度量样本对之间的联合分布从而获得更准确的相似度,极大的提升了小样本分类的性能。论文已被 CVPR 2022 接收为 Oral Presentation


本文首次将布朗距离协方差这一基于概率和统计的相似性度量引入到深度学习中,提出了一种端到端的小样本识别方法 DeepBDC。所提出的方法在包括一般目标识别、细粒度分类和跨域分类等任务的 6 个标准数据库上都取得了当前最好的性能。论文已被 CVPR 2022 接收为 Oral Presentation。




第一章 简介

人类在认识新事物时,通常仅需要很少量的学习数据便可以快速掌握相关知识,比如通过几张图片便可以认识一些之前从未见过的动物等。而现代的人工智能系统所依托的深度学习算法往往需要大量的数据进行训练,训练代价非常大。同时,获得大量的人工标注数据也是非常耗时耗力的。因此理想状态下的人工智能系统需要具备人类相同的快速学习能力,也就是说在每一类训练数据仅有极少量标注样本的情况下,使得深度学习模型具备出色的识别能力,这个便是小样本分类任务。

这个任务非常具有挑战性,因为从少量的样本中很难学习到丰富的知识,同时也容易导致过拟合。目前一种可行的解决方案是基于元学习(或者称之为 “Learning to learn”) 去跨任务学习更深层的知识,并迁移到新的任务上。在这种情况下,训练是由一系列子任务构成,这种被称为 episode 训练。在最新的研究中,基于度量的方法吸引了大量的关注,其核心在于通过深度神经网络提取 query 和 support 图像的表征,并度量表征之间的距离,从而进行类别的判断。

从统计学上讲,query 图像的特征 (或 support 图像) 可以看作是高维空间中的一个随机向量 X (或 Y)。因此,图像之间的相似性可以通过概率分布来度量。然而,建模高维特征的分布是困难的,常用的方法是建模统计矩。ProtoNet 及其变体通过一阶矩 (mean vector) 表示图像,并使用欧几里德距离或余弦相似度进行度量学习。为了获取更丰富的统计量,前人一些工作研究了二阶矩 (Covariance matrix) 或一、二阶矩的组合 (Gaussian distribution),并采用了 Frobenius 范数或 Kullback-Leiberler (KL) 散度作为相似度度量。然而,这些方法只利用边缘分布 (Marginal distribution) 而忽略了联合分布 (Joint distribution),没有充分挖掘分布之间的统计特性。此外,使用协方差只能度量两个具有分布之间的线性相关,而深度神经网络的高维特征往往是非线性的,因此很难准确的进行度量。


表 1:DeepBDC 与同类方法的比较

一般情况下,X 和 Y 之间的相关性应根据它们的联合分布来衡量。最优传输理论中的推土距离(EMD 距离)是测量这种相关性的一种有效方法。如在前人的一些工作中所述,EMD 寻求最优联合分布,其边缘分布被限制为给定的,使运输成本的期望最小。

在小样本分类中,DeepEMD 提出了可微分 EMD 对图像区域进行最优匹配,从而能够更好的利用图像之间的联合分布去度量相似度。尽管 DeepEMD 实现了很有竞争力的性能,但是因为其计算时需要求解线性规划方程,导致计算成本很高,实际的训练和测试会很耗时。除此之外,互信息 (Mutual Information, MI) 也是一种典型的度量方法,它可以通过两个随机变量的联合分布与边缘乘积之间的 KL - 散度来量化其相关性。但遗憾的是,在高维空间中,MI 的计算比较困难,往往涉及到复杂的概率密度建模或 KL-divergence 的下界估计。在本文中,该研究提出了一种基于深度布朗距离协方差 (DeepBDC) 的方法用于小样本分类任务。布朗距离协方差 (Brownian Distance Covariance, BDC) 最早由 Gábor 等人提出,其定义为联合特征函数与边缘乘积之间的欧氏距离。它可以很自然地量化两个随机变量之间的相关性。


在 DeepBDC 中,该研究将 BDC 实现成一个即插即用的模块,可以灵活的接入到深度神经网络中,获得 BDC 矩阵,以此作为图像的表征。通过计算一对图像的 BDC 矩阵内积便可得到两个图像的相似度。

同时,该研究实现的 BDC 模块也可以应用在基于简单迁移学习的框架下,比如 Chen 等人提出的 baseline/baseline++。相比于经典协方差,布朗距离协方差能够刻画非线性随机变量之间的相关性和独立性,因此可以更准确的度量分布之间的相似度。

和同样考虑联合分布的 EMD 相比,BDC 的计算效率很高,几乎不影响网络的推理速度。同时由于 BDC 不需要建模概率密度,因此相比于 MI 来说,计算更简洁。在上表 1 中,该研究展示了 DeepBDC 和其对应方法之间的差异。


本文的贡献可以总结如下:

  • 该研究首次将布朗距离协方差 (BDC) 引入基于深度网络的小样本分类,表明了 BDC 在深度学习中有巨大潜力和未来应用价值。
  • 该研究将提出的 DeepBDC 实现成一个即插即用的模块,可适用于不同的小样本学习框架。同时,该研究结合两种不同范式的小样本学习框架对 DeepBDC 进行了实例化,即基于原型网络框架的 Meta DeepBDC 和基于简单迁移学习框架的 STL DeepBDC。
  • 该研究对提出的方法进行了深入的消融研究,并在 6 个小样本分类基准上进行了广泛的实验。实验结果表明,两种实例都取得了当前最好的分类性能。

         第二章 深度布朗距离协方差

2.1 理论

BDC 理论最早是 Gábor 等人建立的,可以表示为随机变量之间的联合特征函数和其边缘分布的乘积之间的欧式距离。记分别是维度为随机向量,则X和Y间的 BDC 测度可以表示为如下:


其中表示为XY之间的联合特征函数,分别为XY的边缘分布,为它们的联合概率密度函数。

以上为 BDC 的连续表达形式,在离散情况下,可以定义,其中是根据计算的欧氏距离矩阵。类似地,我们可以获得的欧氏距离矩阵,其中那么这种情况下,BDC 测度可以写为:



其中表示矩阵迹,表示矩阵转置,称为 BDC 矩阵。这里,其中后三项分别表示第列、第行和所有项的均值。矩阵可以用类似的方法从计算出来。且由于 BDC 矩阵是对称的,也可以写成两个 BDC 向量的内积,即:


其中(或) 通过提取(或) 的上三角部分得到,然后进行向量化。

BDC 测度具有如下优异的特性:

  • 它是非负的,且当且仅当立时它等于。
  • 它可以表征之间的线性和非线性相关性。
  • 它对的平移和标准正交变换是不变的,对它们的各自尺度变换是等变的。即对于任意向量,标量正交矩阵


2.2 BDC 模块

从上节可以得知,对于一对输入图像来说,可以独立的计算其 BDC 矩阵,再进行内积操作获得二者的相似度。因此该研究将该过程实现为一个独立的模块,用于计算每张图像高层卷积特征的 BDC 矩阵。且由于 BDC 矩阵的大小为输入卷积特征维度的二次方,因此为了控制输出维度,该研究引入了一个 1×1 的卷积层进行降维。

该研究首先将降维后的卷积特征进行 reshape 获得,其中为空间高度和宽度,为通道数。其中每一列或者每一行都可以看作是随机向量的观察值。接下来以为例介绍 BDC 模块的计算过程。

如下面公式所示,计算分为三个步骤,第一步是计算欧式距离平方矩阵的第列和第列之间的平方欧氏距离;紧接着对其开平方得到欧式距离矩阵最后对距离矩阵减去行均值,列均值以及总体均值得到 BDC 矩阵。


这里是一个矩阵,每个元素都是 1,是单位矩阵,◦表示哈达玛乘积。该研究表示

2.3 DeepBDC 的两种实例化

在实际的小样本分类训练中,研究者通常会构建一系列分类任务,即共有类,每类个样本。其中这个样本组成支撑集,同时每一类中有张图像称为查询集

一种典型的小样本学习范式是以 ProtoNet 为代表的元学习,在每次训练时抽取一部分数据组成支撑集和查询集进行学习,使得网络能够从各种任务中学习到如何学习,并将这种能力迁移到全新的类别上。同时另一种基于简单迁移学习的学习框架也取得了不错的泛化性能,其在训练阶段是一个一般的图像分类任务,通过学习使得网络获得更好的嵌入特征,在新的类别上测试时,能够快速适应。基于这两种学习框架,该研究构建了基于元学习的 Meta DeepBDC 和基于简单迁移学习的 STL DeepBDC。如图 1 所示,Meta DeepBDC 是在 ProtoNet 架构的基础上构建的,通过对支撑集图像得到的 BDC 表达进行平均得到了每一类的原型表达,通过计算查询图像的 BDC 表达和每一类原型表达之间的内积,获得与每类之间的距离,从而进行类别判断。在实验环节,该研究评估了几种不同的获取原型表达的方式。

图 1:Meta DeepBDC。

STL DeepBDC 基于一个典型的迁移学习框架 Good-Embed,使用大量的标注数据进行训练,获得一个更好的基础模型用来得到图像的嵌入特征。在新的类别空间里,通过线性层或者回归器对得到的嵌入特征进行学习,得到一个分类器用于识别。如图 2 所示,该研究将 BDC 矩阵当作输入图像的嵌入特征送到尾部的分类器中进行学习,利用交叉熵损失函数进行网络的优化。

图 2:STL DeepBDC。

第三章 实验

3.1 数据集和实验设置

本文中该研究在通用识别任务 miniImageNet 和 tieredImageNet,以及细粒度识别任务 CUB, Cars, Aircraft 上进行了评估。在这些数据集上,为了和前人的工作可以公平比较,该研究使用了标准的数据集划分,数据增广和训练策略。其中每个数据集都被划分为 meta-training,meta-validation 和 meta-testing 三个子集,每个子集之间的类别不重叠。除 CUB 使用 224×224 大小的图像作为输入之外,其他实验均使用 84×84 分辨率的输入。

骨干模型使用了前人工作中使用的 ResNet-12(针对 84×84 输入的图像)和 ResNet-18(针对 224×224 输入的图像)。其中 ResNet-12 的 residual block 是由连续 3 个 3×3 且通道数一致的卷积层成,网络的每一个 stage 的通道数分别为 [64,160,320,640],residual block 数量为 [1,1,1,1]。ResNet-18 是使用 He 等人提出的 ResNet 论文中的原始架构。同时为了评估更深层模型上的性能,该研究也使用了 ResNet-34 和其变体,分别应用于 224×224 和 84×84 输入的实验。ResNet-34 的变体是在 ResNet-12 的基础上将每一个 stage 的 residual block 的数量从 [1,1,1,1] 改为 [2,3,4,2]。


相关文章
|
自然语言处理 算法 数据挖掘
自蒸馏:一种简单高效的优化方式
背景知识蒸馏(knowledge distillation)指的是将预训练好的教师模型的知识通过蒸馏的方式迁移至学生模型,一般来说,教师模型会比学生模型网络容量更大,模型结构更复杂。对于学生而言,主要增益信息来自于更强的模型产出的带有更多可信信息的soft_label。例如下右图中,两个“2”对应的hard_label都是一样的,即0-9分类中,仅“2”类别对应概率为1.0,而soft_label
自蒸馏:一种简单高效的优化方式
|
机器学习/深度学习 运维
Moment:又一个开源的时间序列基础模型
MOMENT团队推出Time-series Pile,一个大型公共时间序列数据集,用于预训练首个开源时间序列模型家族。模型基于Transformer,采用遮蔽预训练技术,适用于预测、分类、异常检测和输入任务。研究发现,随机初始化比使用语言模型权重更有效,且直接预训练的模型表现出色。MOMENT改进了Transformer架构,调整了Layer norm并引入关系位置嵌入。模型在长期预测和异常检测中表现优异,但对于数值预测的效果尚不明朗。论文贡献包括开源方法、数据集创建和资源有限情况下的性能评估框架。
1221 0
|
JSON API PHP
Python/PHP:免费IP归属地查询接口和通过ip获取大致位置信息
Python/PHP:免费IP归属地查询接口和通过ip获取大致位置信息
1811 0
|
数据采集 运维 数据挖掘
一文速学-Pandas异常值检测及处理操作各类方法详解+代码展示
一文速学-Pandas异常值检测及处理操作各类方法详解+代码展示
1821 0
一文速学-Pandas异常值检测及处理操作各类方法详解+代码展示
|
机器学习/深度学习 存储 数据采集
【博士每天一篇文献-综述】A survey on few-shot class-incremental learning
本文是一篇关于少量样本增量学习(Few-shot Class-Incremental Learning, FSCIL)的综述,提出了一种新的分类方法,将FSCIL分为五个子类别,并提供了广泛的文献回顾和性能评估,讨论了FSCIL的定义、挑战、相关学习问题以及在计算机视觉领域的应用。
1186 6
|
7月前
|
Linux 编译器 开发工具
在CentOS环境下升级GCC编译器的指南
总结:本文提供了一种方法来升级CentOS的GCC编译器,通过使用CentOS的软件集合和开发者工具集工具,可以比较平滑地进行升级。在整个过程中无需从源代码编译,这样既省去了复杂的编译过程,也避免了可能出现的与系统库不兼容的风险。请注意,使用第三方仓库可能会带来系统稳定性和安全性上的潜在影响。所有操作都应谨慎进行,并确保有相应的数据备份。
971 19
|
存储 Ubuntu Linux
ceph的rbd块设备的使用指南
这篇文章介绍了如何在CentOS和Ubuntu环境下使用Ceph的RBD(Rados Block Device)进行块设备的创建、修改、删除和挂载操作。
922 3
|
存储 缓存 负载均衡
图解一致性哈希算法,看这一篇就够了!
近段时间一直在总结分布式系统架构常见的算法。前面我们介绍过布隆过滤器算法。接下来介绍一个非常重要、也非常实用的算法:一致性哈希算法。通过介绍一致性哈希算法的原理并给出了一种实现和实际运用的案例,带大家真正理解一致性哈希算法。
27898 66
图解一致性哈希算法,看这一篇就够了!
|
机器学习/深度学习 运维 安全
异常检测|深度学习(李宏毅)(二十一)
异常检测|深度学习(李宏毅)(二十一)
1326 0
异常检测|深度学习(李宏毅)(二十一)
关于处理电商系统订单状态的流转,分享下我的技术方案(附带源码)
关于处理电商系统订单状态的流转,分享下我的技术方案(附带源码)
793 0