机器之心专栏
作者:谢江涛、龙飞、吕佳铭、王旗龙、李培华
在本文中,来自大连理工大学等机构的研究者提出了 DeepBDC 用于小样本分类任务,DeepBDC 通过度量样本对之间的联合分布从而获得更准确的相似度,极大的提升了小样本分类的性能。论文已被 CVPR 2022 接收为 Oral Presentation。
本文首次将布朗距离协方差这一基于概率和统计的相似性度量引入到深度学习中,提出了一种端到端的小样本识别方法 DeepBDC。所提出的方法在包括一般目标识别、细粒度分类和跨域分类等任务的 6 个标准数据库上都取得了当前最好的性能。论文已被 CVPR 2022 接收为 Oral Presentation。
- 论文链接:https://arxiv.org/pdf/2204.04567.pdf
- 代码链接:http://www.peihuali.org/DeepBDC
第一章 简介
人类在认识新事物时,通常仅需要很少量的学习数据便可以快速掌握相关知识,比如通过几张图片便可以认识一些之前从未见过的动物等。而现代的人工智能系统所依托的深度学习算法往往需要大量的数据进行训练,训练代价非常大。同时,获得大量的人工标注数据也是非常耗时耗力的。因此理想状态下的人工智能系统需要具备人类相同的快速学习能力,也就是说在每一类训练数据仅有极少量标注样本的情况下,使得深度学习模型具备出色的识别能力,这个便是小样本分类任务。
这个任务非常具有挑战性,因为从少量的样本中很难学习到丰富的知识,同时也容易导致过拟合。目前一种可行的解决方案是基于元学习(或者称之为 “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 测度可以表示为如下:
其中
表示为X和Y之间的联合特征函数,
和
分别为X和Y的边缘分布,
为它们的联合概率密度函数。
以上为 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]。
3.2 和 SOTA 方法的比较
该研究首先评估了 DeepBDC 在 miniImageNet 上的 1-shot/5-shot 性能。从表 2 可以看出,STL DeepBDC 均取得了最好的性能,Meta DeepBDC 也表现优异,取得了超越或者和当前最好工作可比的性能。其中,在 5-shot 任务中,Meta DeepBDC 和 STL DeepBDC 分别比之前最好的 BML 高出 0.83% 和 1.82%。
在细粒度识别任务 CUB 上,为了公平可比,该研究首先根据设置重新实现了基线模型 ProtoNet 和 Good-Embed。表 2 表明该研究实现的 ProtoNet 和 Good-Embed 与原文中的准确率相比很具有竞争力,同时和当前最好的工作相比,该研究也是大幅度领先的。在 1-shot 上,Meta DeepBDC 和 STL DeepBDC 分别比 FRN 高 1% 和 1.46%; 在 5-shot 上,这两种实现也分别领先 FRN 0.84% 和 1.04%。
在跨域任务上,该研究以 miniImageNet 为源域,以三个细粒度数据集 CUB,Cars,Aircraft 为目标域进行跨域评估。他们将 miniImageNet 的全集作为训练集,分别在目标域数据集上进行测试。结果如表 3 所示,在 miniImageNet→CUB 上,基于协方差的 CovNet 是非常有竞争力的,仅略低于当前最好的 FRN。和 FRN 相比,Meta DeepBDC 和 STL DeepBDC 分别比高性能 FRN 高出 0.8% 和 3.1%;在 miniImageNet→Aircraft 上,该研究的两种实现也比其他方法有着显著的提高,性能提升大于 3.2%;在 miniImageNet→Cars 上,该研究的方法同样也是处于领先,其中比最好的 ADM 在 1-shot 和 5-shot 上分别提高了 0.7% 和 4.2%。这些结果都充分证明了本文方法具有很好的域迁移能力。
表 2:在通用分类任务和细粒度识别任务上的性能比较。黑色表示最好的性能,红色表示次好性能。
表 3:在领域迁移任务上的性能比较。黑色表示最好的性能,红色表示次好性能。
3.3 消融实验
首先该研究评估了降维层对 DeepBDC 和同类方法的性能影响。由上文可知,降维层输出特征通道数为 d, 研究分别评估了 d 取不同值时的 5-shot 性能。如图 3 可以看出随着维度的升高,ADM 和 CovNet 分别在 d=196,和 d=256 时达到最高,之后性能会下降,和一阶的 ProtoNet 接近。Meta DeepBDC 也是类似的情况,但只有当维度超过 640 时,才会出现性能降低。另外我们也可以看出该研究两种实现在各个维度上都能显著的高于同类方法,进一步的展示了利用布朗距离协方差的优异性能。
图 3:降维层通道数量 d 对性能的影响。
紧接着该研究分别针对 Meta DeepBDC 和 STL DeepBDC 进行评估。Meta DeepBDC 中的一处关键实现是计算两个表达之间的距离,该研究在相同的实验设置下评估了其他两种常用的度量方式,即欧式距离和余弦距离,结果如表 4 所示。
从中我们可以看到各个距离函数的计算代价基本是可比的,其中在 1-shot 任务中,使用内积可以获得最好的性能;在 5-shot 中使用欧式距离可以获得最好的性能。针对 STL DeepBDC,该研究评估了使用不同分类器对性能的影响,其中可以看出使用 SVM 具有最小的时间代价,但是性能不理想;使用逻辑回归器可以获得最好的性能,同时计算效率并没有受太大影响,尤其是和 Softmax 分类器相比时,具有明显的优势。根据这两个实验结论,该研究在所有实验中使用这样的设置。
表 4 :Meta DeepBDC 的距离函数评估。
表 5:STL DeepBDC 的分类器评估。
此外,该研究还对各个方法的运行时间进行了比较。在相同的计算设备上,测量 DeepBDC 和同类方法在 meta-training 和 meta-testing 时每个任务的运行时间(ms/episode)。结果如表 6 所示,可以看出在同类方法中考虑联合分布的 DeepEMD 性能最好,但是其训练和测试代价极大,远超过其他所有方法。DeepBDC 的训练和测试代价略高于 CovNet 和 ProtoNet,但是性能有着显著的优势。因此这部分实验证明了 DeepBDC 是性能优异且高效的方法,能够适用于实际的应用中。
表 6:STL DeepBDC 的分类器评估。
同时该研究也探究了 DeepBDC 在容量更大的模型上的表现。目前的小样本学习方法通常使用 ResNet-12 或者 ResNet-18 作为基础骨干模型,因此该研究使用更深层的 ResNet-34 进行了实验。他们在 miniImageNet 和 CUB 上分别和同类方法进行了比较,结果如表 7 和表 8 所示。我们可以看出当使用更大容量模型时,该研究的两种实现均有持续的性能提升。
表 7 :DeepBDC 基于 ResNet-34 在 miniImageNet 上的性能。
表 8 :DeepBDC 基于 ResNet-34 在 CUB 上的性能。
最后,该研究在一些线性和非线性相关的样本上展示了布朗距离相关系数(BDCorr)和经典协方差相关系数(Corr)上的建模相关性的能力。如图 9 所示,BDCorr 在线性相关的样本上和 Corr 具有相似的能力,且由于其非负性,BDCorr 无法反映方向性;二者都不能反映斜率的大小。但从图 10 中我们可以看出,对于所有的非线性相关样本,Corr 都等于 0,无法度量非线性相关性;而 BDCorr 可以刻画这种复杂非线性情况下的相关性。这一点充分证明了 BDC 在度量分布之间的相关性时,比经典协方差的能力更强。
表 9 :在线性相关的样本上的比较。
表 10 :在非线性相关的样本上的比较。
第四章 结论
在本文中,该研究提出了 DeepBDC 用于小样本分类任务,DeepBDC 通过度量样本对之间的联合分布从而获得更准确的相似度,极大的提升了小样本分类的性能。据了解,这是首次将布朗距离协方差这一潜力巨大、但又严重低估的统计学方法引入到深度学习中,并将其实现为一个高效的即插即用的模块,可以灵活的嵌入到任意深度卷积网络中。该研究提供的两种实现方案,即无论是基于度量学习的 Meta DeepBDC 还是基于简单迁移学习的 STL DeepBDC 都证明了这种易用性。
大量的实验表明,该研究的方法都在多个通用、细粒度、跨域小样本学习任务上获得了非常具有竞争力的性能,取得了当前最好的结果。该研究提出的 DeepBDC 是一种基本的度量距离 / 相似性和建模相关性的深度学习技术,在计算机视觉和机器学习中具有广泛的应用前景。
© THE END
转载请联系本公众号获得授权
投稿或寻求报道:content@jiqizhixin.com