https://kns.cnki.net/kcms2/article/abstract?v=3uoqIhG8C44YLTlOAiTRKibYlV5Vjs7ioT0BO4yQ4m_mOgeS2ml3UDKtyAQtTA0dGC-TDvW_fPi0YZxfWg8dHOnpSvOL7pVA&uniplatform=NZKPT
摘 要:
近年来,借助大规模数据集和庞大的计算资源,以深度学习为代表的人工智能算法在诸多领域取得成 功。其中计算机视觉领域的图像分类技术蓬勃发展,并涌现出许多成熟的视觉任务分类模型。这些模型均需 要利用大量的标注样本进行训练,但在实际场景中因诸多限制导致数据量稀少,往往很难获得相应规模的高 质量标注样本。因此如何使用少量样本进行学习已经逐渐成为当前的研究热点。针对分类任务系统梳理了 当前小样本图像分类的相关工作,
小样本学习主要采用元学习、度量学习和数据增强等深度学习方法
。从有 监督、半监督和无监督等层次归纳总结了小样本图像分类的研究进展和典型技术模型,以及这些模型方法在 若干公共数据集上的表现,并从机制、优势、局限性等方面进行了对比分析。最后,讨论了当前小样本图像分 类面临的技术难点以及未来的发展趋势。
关键词:
深度学习;监督学习;元学习;度量学习;图像分类
大规模标注数据集是深度学习成功的必要条件 之一[1- 4]
。在现实世界的真实场景中,许多领域并不 具有获得大规模数据集的条件,这对于工作开展十分不便。也有一些领域,涉及到隐私、成本、道德等 问题,也很难获得高质量数据。例如,在医疗诊断领 域,医学图像的来源是病例,而病例会因为隐私等问 题获取难度较大;在半导体芯片缺陷检测领域,会面 临半导体芯片的型号不同和缺陷数据较少等问题。
为了解决诸多领域中数据有限和获取难度较大 的问题,小样本学习(few-shot learning
,
FSL
)
[5- 8]
方法 被提出。小样本学习是指在训练类别样本较少的情 况下,进行相关的学习任务。机器通过学习大量的 基类(base class
)后,仅仅需要少量样本就能快速学习到新类(new class
)。通常情况下,小样本学习能够利用类别中的少量样本,即一个或者几个样本进行学习。例如,一个小朋友去动物园并没有见过“黄莺”这个动物,但是阅读过有关动物书籍,书籍上有“黄 莺”的信息,通过学习书上的内容,小朋友就知道动物园中哪个动物是“黄莺”。这是因为人们可以高效地利用以往的先验知识,对现在的任务快速理解。人们这种快速理解新事物的能力,也是当前深度学习难以具备的。本文针对小样本图像分类问题介绍小样本学习的相关技术,主要是介绍小样本图像分类。小样本图像分类的最终目的是达到人类的水平[9]
。
小样本图像分类问题建模如图
1
所示。图中将任务划分为两部分,训练集(training set
)也叫作支持集(support set
),其中分为
N
个数据类别
,
每
N 个数
据 类 别 包 括
K
个 样 本 ,简 称 为
N
-
way
K
-
shot
问
题。测试集(
test set
)也叫作查询集(
query set
),查询
集的类别属于支持集中的类别。解决
N
-
way
K
-
shot
小样本图像分类问题,首先从辅助的数据集学习先
验知识
[10]
,再在标注有限的目标数据集上利用已经学
习的先验知识进行图像分类和预测。
图 1 小样本图像分类示例
目前已经有一些关于小样本学习各方面的综述。赵凯琳等人[11]
从基于模型微调、数据增强和迁移
学习的三个方向来介绍小样本学习的方法,并且进行了归纳总结;刘春磊等人[12]
将小样本学习方法归纳为基于迁移学习的范式和基于元学习的范式,再按照改进策略的不同进行小样本目标检测综述介绍;张振伟等人[13]
从基于度量学习、数据增强、模型结构、元学习等六方面对小样本目标检测方法进行了总结分析。综合近些年小样本学习发展,元学习、度量学习和数据增强等深度学习方法已经逐渐成为解决小样本图像处理的主流方法。随着无监督学习[14]
、半监督学习[15]
和主动学习
[16]
的兴起和发展,很多研究者也将其应用到小样本图像分类问题中。与这些综述[11-13] 不同,本文首先将这些方法分为有监督、半监督和无监督三种范式,如图 2
所示,再按照各种情况的不同
方法,从度量学习、元学习、伪标注、对比学习等角度进行归纳总结,对比分析了这些方法的性能表现,并总结了各自的核心思想以及使用领域。
图 2 小样本图像分类方法
1
小样本图像分类框架及其数据集介绍
1.1
符号和定义
在标准 FSL
场景中,一般需要建立两个数据集:一个带有 C
base
类的基集和一个带有
C
novel
类的新集,其中 C
base
∩
C
novel
=
∅
。
C
base
是一个辅助数据集,目的是通过迁移学习来训练分类器。 C
novel
是执行任务分类的数据集。训练通常在 C
base
类上进行,其目标是 将学到的知识迁移到基于 C
novel
构建的新任务中。在 测试期间,需要为每个任务都建立一个支持集 S
和一 个查询集 Q
。支持集
S
包含
N
个类,每个类有
K
个图像。查询集 Q
包括
N
×
Q
个未标记的图像。在大多数文献中,N
设置为
5
,
K
设置为
1
或
5
。
1.2
小样本图像分类方法
针对小样本图像分类任务,现有的基于小样本 图像分类方法可以总结以下三类:(1)元学习[17]
;(2)度 量学习[18]
;(3)数据增强
[19-25]
。
1.2.1
元学习
元学习也称为 learn to learn
,利用以往的知识经 验指导新任务的学习,被广泛应用在小样本学习 中。元学习通过既有数据集和元学习器跨任务提取的元知识来解决新任务。具体来说,元学习器逐步学习跨任务的通用信息(元知识),并且学习器使用特定于任务的信息将元学习器概括为新任务。
如图 3所示,在小样本学习中元学习将数据集划分为训练任务和测试任务。在训练阶段,通过对已
有的数据进行随机采样,区分出支持集和查询集,从
而构造出多个不同的元任务。其中支持集用于训
练,查询集用于验证训练阶段的分类是否正确。之
后,在测试阶段,对训练阶段未见过的小样本数据集
也做相同数据划分,便可以在训练好的模型上直接 对小样本查询集进行判别。图
3
中,对于各种鸟类的小样本分类问题,可以利用已有的各种鸟类数据,通 过采样构造支持集和查询集,训练小样本模型。测
试阶段,对于黄雀和海鸥等未知鸟类,用同样的采样
方法区分出支持集和查询集,之后提取图像特征,并
计算支持集和查询集特征的距离或相似度。对于一
个小样本分类任务,元学习不会直接学习如何做到
这件事情,它要做的是去学习一些相似的任务,在这
些任务中有足够的知识或样本来学习,当学习了很
多这样的任务之后,元学习模型便学会了举一反三,
之后用这个分类任务来测试元学习模型,只要模型
在之前的训练中已经具备了足够好的举一反三的能
力,那么模型就可以完成任务。
1.2.2
度量学习
度量学习是解决小样本图像分类最常用也是很 有效的方法之一。度量学习可以解释为是一种空间映射的方法,能够学习到某种特征空间。在小样本图像分类中,可以理解为将数据转换成特征向量。 度量学习也指相似度学习,衡量在嵌入空间中两个目标特征或者多个相似度或者距离,相同的类特征 距离较近,反之不同的类特征距离较远。
度量学习的小样本图像分类方法,如图
4
所示。
度量学习网络主要由嵌入模块
f
(特征提取器)和度
量模块
g
(分类器)两部分组成。首先将样本分为支
持集和测试集,将图像输入嵌入模块
f
获得特征,并
且以一定的规则计算得到支持集图像中每类的中心
特征,以这些中心特征作为支持集中各类图像的代
表,再使用度量模块
g
求得与查询集中样本最近的
中心特征,将这个中心特征所属的类别标签作为该
查询集样本的预测标签。最终根据相似度得分获得
分类结果。
通过卷积神经网络和循环神经网络等方法来实现特征的提取。度量分类器可以使用基于布雷格曼 散度的欧氏距离、马氏距离和余弦距离的固定度量方法或者基于深度神经网络的可学习度量方式[26]。基于度量学习的小样本图像分类方法的性能取决于两方面:一方面是特征提取器和分类器的性能;另一方面是特征与分类器的匹配程度。因此,如何设计一个小样本条件下表达能力强的特征提取器,并使提取的特征与分类器的要求相匹配,对于提升网络的分类性能十分重要。
1.2.3
数据增强
数据增强又称为数据扩充,通过增加既有数据的多样性,而不是实际收集新数据来缓解数据稀缺问题。基于增广数据集,可以明显降低过度拟合[27]
的风险,有效地增强模型的泛化能力。数据增强方法可以分为基于数据扭曲的数据扩充和基于深度生成模型的数据扩充。
基于数据扭曲的数据扩充:数据扭曲是一种通 过基于现有数据执行基本图像操作来生成新样本的 方法。常用的变换技术包括裁剪、翻转、过滤、旋转 和去噪。这些转换较容易实现,以增加数据规模。然而,这些方法均无法生成新的语义信息来增加数据的多样性,并且数据增强方法对提高模型性能的 效果有限。因此,这种方法不能完全解决样本限制问题,通常被用作数据预处理的辅助技术。
基于深度生成模型的数据扩充:深度生成模型 可用于学习目标图像上丰富的概率分布,并生成具有变化的新样本。生成对抗网络(generative adversarial network,GAN
)
28]
是生成模型中较有代表性的一类,是由 Goodfellow
等人于
2014
年提出来的一种新颖的生成模型框架。GAN
包含生成器(
generator
,
G
) 和判别器(discriminator
,
D
)两个神经网络。训练
G 和 D
的过程可以看作是造假团队
G
与警察团队
D
之间的一种相互博弈。造假团队 G
的目标是生成以假乱真的图片,而警察团队 D
的目标是判别图片的真假。两者通过不断地对抗来提高自己的水平[29]
。直到警察团队 D
无法判别图像真假时,说造假团队
G 能够生成骗过警察团队 D
的图像。
生成对抗网络的基本模型如图 5所示。
生成式对抗网络巧妙地利用了博弈的思想,将图像生成任务转化为最大最小化目标函数的优化问题。进一步地,又转化为两个神经网络采取梯度下降方法交替训练的问题。
无论是基于数据扭曲还是基于深度生成模型, 数据增强的手段都是来增加小样本数据,缓解小样本分类中因为缺乏数据导致分类率低的问题。采用数据增强的思路来解决小样本学习问题是人们最常用、最简单的一种方式,并且这种方式相对来说方式较为灵活,选择也很多。基于数据增强的小样本图像分类研究具有普遍通用性,是不可或缺的。
1.3
小样本图像分类数据集
本节介绍了用于小样本图像分类的公共数据集,如图 6所示。下面列出了数据集的统计数据和常 用实验设置。
Mini-ImageNet[30]
:
Mini-ImageNet
数据集是另一 个广泛使用的数据集。它由 ImageNet
中选择的
100 个类组成,每个类有 600
张图像。该数据集最初由Vinyals 等人提出,但最近的研究遵循
Ravi
和
Larochelle 提供的实验设置,将
100
个类分为
64
个基类、16个验证类和
20
个测试类。
Tiered-ImageNet[31]
:与
Mini-ImageNet
一样,它是 ILSVRC-12的子集,但Tiered-ImageNet
代表了
ILSVRC- 12 的更大子集(
608
个类,而
Mini-ImageNet
则为
100 个类)。类似于将字符分组为字母的Omniglot
,
Tiered ImageNet将类别分为与
ImageNet
层次结构中较高级别的节点相对应的更广泛的类别,共有 34
个大类别,每个类别包含 10
到
30
个小类别。数据集分为
20
个基类、6个验证类和
8
个测试类。
CIFAR- FS[32]
:
CIFAR- Fewshot
数 据 集 建 立 在 CIFAR-100 之上,包含
100
个类,每个类
600
张图像。数据集划分为64
个基类、
16
个验证类和
20
个测试类。
CUB- 200[33]
:
CUB- 200
数 据 集 全 称 为
Caltech UCSD Birds-200-2011 数据集。
CUB
数据集是一个细粒度的鸟类分类数据集 ,共包含 200
个类别和11 788张图像。数据集通常分为
100
个基类、
50
个验证类和 50
个测试类。
Omniglot[34]
:
Omniglot
数据集包含
50
个不同字母(语言的 1 623
个不同手写字符)。每一个字符都是由 20
个不同的人通过亚马逊的
Mechanical Turk在线绘制的。每个字符产生了 20
幅图像,相当于1 623 个类,每类
20
个样本。在实验时,取
1 200
个字符进行训练,其余 423
个字符进行测试。此外,将每个图像的大小调整为 28×28
像素,并旋转
90°
作为数据增强。
2
有监督小样本图像分类
2.1
基于元学习的有监督小样本学习
元学习在处理小样本问题时包括元训练(
metatraining)和元测试(
meta-testing
)两个阶段。在元训练阶段,如图 7
所示,基础学习器将面对元学习器提供的许多个独立的监督任务 T
,任务之间所包含样本的类别不完全相同。在每一个任务内,从已有的基础类别集 C
base
中随机抽取
N
个类别,从每类样本中抽取 K
个样本(共
N
×
K
个样本)组成支持集
S
作为基础学习器的输入,再从这 N
类的剩余样本中随机抽取一批作为查询集用于测试。
本节回顾了近年来用于小样本图像分类的代表 性有监督元学习方法。调查研究发现,小样本元学
习的一个主流方法是梯度迭代,通过迭代,获得合适的模型,因此众多研究基于迭代的研究思路展开。
2.2 基于度量学习的有监督小样本学习
Snell
等人
[45]
在
2017
年提出了原型网络(
proto typical network)。原型网络的思想为每个类别在向量空间中都存在一个原型(prototype
),也称为类别中心点。原型网络使用深度神经网络将图像映射成特征向量,对于同属一个类别的样本,求得这一类样本向量的平均值作为该类别的原型。通过不断训练模型和最小化损失函数,使同一类别的样本距离更加接近,不同类别的样本更加远离,从而更新嵌入函数的参数。原型网络思路架构如图 8
所示,在原型网络中 f
和
g
是参数共享的嵌入网络,这种思路框架也是许多后续基于度量的小样本学习方法的基石。
早期的小样本度量学习方法,如孪生网络(
Siamese network)和匹配网络(
matching network),通过测
量和比较查询样本与支持样本的距离来对查询样本
进行分类。孪生卷积神经网络(
Siamese convolutional
neural network
)
[46]
是首个用于一次性图像分类的深度
度量学习方法。孪生网络首先在文献
[47]
中引入,由
两个具有相同架构和共享权重的子网络组成。孪生
神经网络可以提取两个输入图片在同一分布域的特
征,从而判断两个输入图片的相似性。匹配网络
[48]
在
整个支持集的上下文中使用不同的网络对支持和查询图像进行编码,并且将情景训练引入小样本分类,支持图像通过双向 LSTM
网络嵌入。该网络不仅考虑图像本身,还考虑集合中的其他图像;查询图像通过具有注意机制的 LSTM
嵌入,以启用对支持集的依赖。早期度量学习方法特征学习能力有限,鲁棒性较差,无法达到理想的效果。这些方法为度量学习建立了理论基础,近几年度量学习方法在此基础上取得了较好的效果。
很多研究者将度量学习下小样本学习目光放在 了特征问题上,通过有效提取特征之间的关联性,来提高小样本图像分类的准确率。
子空间是度量学习经常用到的一种方法。
Simon等人[49]
在
2020
年提出了深度子空间网络(
deep sub space networks,
DSN
)。引入小样本构建的动态分类器,为小样本学习提供了一个框架。通过使用子空间来扩展现有的动态分类器。子空间方法被用作动态分类器的中心块,这种建模会导致对扰动异常值的鲁棒性。还引入了一个判别公式,在训练期间鼓励子空间之间的最大区分,并在监督和半监督的小样本分类任务上产生较有竞争力的结果。
Hou
等人
[50]
在
2019
年提出了一种新颖的交叉注意网络(cross attention network
,
CAN
)来解决小样本 分类问题,CAN
引入交叉注意力模块来处理看不见类的问题。该模块为每一对类特征和查询样本特征生成交叉注意力图,以突出目标对象区域,使提取的特征更具判别力。其次提出了一种转导推理算法来缓解低数据问题,该算法迭代地利用未标记的查询集来扩充支持集,从而使类特征更具代表性。
国内
Zhang
等人
[51]
也在
2020
年提出了具有可微推 土 机 距 离 和 结 构 化 分 类 器(deep earth mover
’s distance,
DeepEMD
)的小样本图像分类。地球移动距(earth mover
’
s distance,
EMD
)可以作为度量来计 算密集图像表示之间的结构距离,以确定图像相关性。EMD
生成具有最小匹配成本的结构元素之间的最佳匹配流,用于表示分类的图像距离。EMD
中的最佳匹配流参数和特征嵌入中的参数以端到端的方式进行训练。为了生成 EMD
公式中元素的重要权重, Zhang等人设计了一种交叉引用机制,可以有效地减少由杂乱的背景和较大的类内外观变化造成的影响。
通过设计归纳偏差提出一种新颖的特征学习方 法。Rizve
等人
[52]
在
2021
年提出了小样本学习不变和等变表示的互补优势,实现了输入变换所需的特征,可以提供更好的区分。专注于转换判别的特征对于类判别不是最优的,而是有助于学习数据结构的等变属性,从而获得更好的可迁移性。
CAN
、
DSN
、
DeepEMD
和互补优势等方法从度量学习的特征角度入手,通过设计有效的特征学习
方法,使得小样本学习性能得以提升。也有众多研究者从度量学习其他角度来解决小样本图像分类问题,如质心、类空间等方法,并同样使得性能得到提升。
基于质心的方法通过最近邻规则实现了较好分 类性能。Liu等人[53]认为这些方法本质上忽略了每类分布,由于类内方差的多样性,决策边界是有偏差的。Liu 等人在 2021 年提出了用于改进小样本分类的类度量尺度机制(class-wise metric scaling,CMS)。CMS 使得度量标量在训练阶段被设置为可学习的参数,有助于学习更具区分性和可转移性的特征表示。CMS 构建了一个凸优化问题来生成一个最优标量向量,以优化最近邻决策。CMS 可以应用于训练 和测试阶段,充分利用类分布之间的信息来解决小样本问题。
从基集类空间的角度来看,研究者要么侧重于通过常规预训练来利用全局视图下的所有类,要么
更注重采用情节式的方法在局部视图中对少数类内的元任务进行训练。Zhou等人[54]在 2021年提出小样本分类的双目互学习(binocular mutual learning,BML)。 BML通过视图内和交叉视图建模来实现全局视图和 局部视图的兼容。全局视图在整个类空间中学习以捕捉丰富的类间关系。同时,局部视图在每一集的局部类空间中学习,专注于正确匹配正对。此外,跨视图交互进一步促进了协作学习和对有用知识的隐性探索。由于这两个视图捕获了互补的信息,大大提高了分类的准确性。
选择一个距离度量来直接计算查询和支持图像 之间的距离以进行分类,然而这些方法中的大多数
使用图像级池表示进行分类,可能会失去相当大的 判别性局部线索,这些线索在类之间享有良好的可转移性。Wu
等人
[55]
在
2021
年通过将自动零件挖掘过程集成到 FSL
的基于度量的模型中,提出了一个端到端的任务感知零件挖掘网络(task-aware part mining network,
TPMN
)。
TPMN
设计了一个元过滤器学习器,以元学习方式基于任务嵌入生成任务感知部分过滤器。任务感知部分过滤器可以适应任何单个任务,并自动挖掘与任务相关的本地部分,即使是看不见的任务。其次,提出了一种自适应重要性生成器来识别关键的局部部分,并将自适应重要性权重分配给不同的部分。