基于小样本学习的图像分类技术综述
人工智能技术与咨询 昨天
本文来自《自动化学报》,作者李颖等
关注微信公众号:人工智能技术与咨询。了解更多咨询!
图像分类是一个经典的研究课题, 典型的图像分类算法涉及两个问题, 一是如何对图像特征进行更好的表示, 二是如何学习好的分类参数. 随着卷积神经网络(Convolutional neural networks, CNN)的设计越来越深层化, 图像特征的表示能力越来越强, 同时也能对图像进行自动分类. 在CNN提出之前, 人类通过人工设计的图像描述符对图像特征进行提取, 效果卓有成效, 例如尺度不变特征变换(Scale-invariant feature transform, SIFT)[1]、方向梯度直方图(Histogram of oriented gradient, HOG)[2], 还有词袋模型(Bag-of-words, BoW)[3-6]等, 但是人工设计特征通常需要花费很大精力, 并且不具有普适性. 基于CNN的深度学习在2012年的ILSVRC挑战赛上取得了巨大成功, 同时由于大数据、计算硬件的发展以及反向传播算法[7]的提出, 深度学习在图像分类领域[8]表现出优异性能.
深度学习的优势有赖于大数据, 在大数据的驱动下, 机器能够进行有效学习, 然而数据量不足会导致模型出现过拟合等问题, 虽然简单的数据增强(Data augmentation, DA)和正则化技术可以缓解该问题, 但是该问题并没有得到完全解决[9], 故针对小数据集的小样本学习成为了解决这类问题的关键技术. 2003年Li等首次提出了One-shot learning问题并利用贝叶斯框架[10-11]对视觉对象进行学习, 与之相比, 深度学习技术在小样本图像分类任务上具有更大的潜力. 小样本学习的产生有两个因素, 一是训练数据量少. 比如在医疗领域, 医学影像的产生来源于病例, 通常少量的病例并不能够辅助机器对医疗影像进行分析. 二是让机器学会以人类的方式进行学习, 即类人学习. 人类能够在获取少量样本的情况下, 对样本进行分类和识别, 并且具有快速理解新概念并将其泛化的能力[12], 小样本学习的目的之一就是让机器以人类的学习方式完成任务. 小样本学习目前在目标识别[13]、图像分割[14]、图像分类与检索[15]等多种图像处理任务中都有应用, 文献[16-19]从样本数量、带标签样本的数量、先验知识的作用等不同角度对小样本学习技术进行了分类讨论和分析.
在2010至2015年间, 大量的文献利用语义迁移来解决训练样本不足的问题. 例如, Mensink等[20-21]借鉴了聚类和度量学习的方法对ImageNet数据集进行分类, 并且探索了KNN (K-nearest neighbor)和NCM (Nearest class mean)分类器, 通过对每个类的语义描述, 学习一个度量, 使其在训练和测试类别间共享, 达到迁移效果; 文献[22]将语义知识迁移扩展到直推式学习, 利用已知类别推测未知类别的表示, 计算未知类别的样本相似性, 在构建数据空间分布关系时, 将数据投影到低维的语义空间, 再进一步寻找数据的空间分布, 并在AwA (Animals with attributes)[23]、ImageNet[24]以及MPII composites activities[25]数据集上取得很好的分类效果; 文献[26]提出直推式多视图嵌入框架来解决领域漂移问题, 利用异构多视图标签传播来解决原型稀疏性问题, 有效利用了不同语义表示提供的互补信息, 并在AwA、CUB (Caltech-UCSD-Birds)[27]、USAA (Unstructured social activity attribute)[28]数据集上取得了很好效果; Fu等[28]为解决带有稀疏和不完整标签的社交媒体数据的属性学习问题, 利用零样本学习思想提出了一种学习半潜在属性空间的模型, 它能够表达用户自定义和潜在的属性信息, 在USAA数据集上取得很好的效果. 这些文章针对的多是零样本学习问题, 本文主要介绍小样本下的图像分类算法, 因此综述算法更集中于Few-shot learning.
近年来现有文献中基于小样本学习的图像分类算法都是采用深度学习. 将深度学习中的技术用于小样本学习中, 比如使用数据增强技术来增加样本的数量, 通过注意力机制和记忆力机制来对图像特征进行提取, 设计提取特征网络和分类器之间的映射关系, 与此同时, 迁移学习、元学习、对偶学习、贝叶斯学习以及图神经网络方法也被用于小样本图像分类的任务. 本文的小样本学习算法与其他几篇小样本文献相比较有两点区别, 一是本文阐述的小样本学习算法是针对图像分类任务, 文献[16-19]中的小样本学习算法不仅应用于图像分类, 还有识别、分割等图像任务以及小样本学习在语音、视频中的算法应用, 本文集中地对小样本图像分类算法进行了分类并归纳总结; 二是本文探索了不同的网络建模方式, 将小样本图像分类算法分为卷积神经网络模型和图神经网络模型两大类, 卷积神经网络模型主要基于CNN对图像数据建模, 图神经网络模型进一步将CNN应用在图神经网络上, 通过图结构中的节点和边来对图像数据建模.
本文的结构如下, 第1节介绍了小样本图像分类的流程, 小样本图像分类数据集和实验评价指标; 第2节将现有小样本图像分类算法按照数据结构类型分为卷积神经网络模型和图神经网络模型两大类并进行详细介绍; 第3节通过实验数据对比分析了各种算法的性能; 第4节总结了小样本图像分类面临的技术挑战并讨论了未来研究趋势; 第5节总结全文.
1. 小样本图像分类介绍
1.1 基于小样本学习的图像分类算法
小样本学习是指训练类别样本较少的情况下, 进行相关的学习任务, 一般地, 我们也希望机器通过学习大量的基类(Base class)后, 仅仅需要少量样本就能快速学习到新类(New class). 通常情况下, 小样本学习能够利用类别中的少量样本, 即一个或者几个样本进行学习. 类别下的训练样本只有一个的情况下, 小样本学习被称为One-shot learning[10], 类别下的训练样本有多个的情况下, 称为Few-shot learning[29-30], Few-shot learning包含有One-shot learning的情况.
小样本图像分类流程如图1所示, 包括准备数据集、构建用于图像特征提取的网络和设计分类器三个步骤. 以下对建立小样本图像分类流程的三个步骤进行具体介绍.
图 1 小样本图像分类流程
Fig. 1 The procedure of small sample image classification
下载: 全尺寸图片 幻灯片
1.1.1 数据集处理
本文将处理小样本图像数据集的方式分为两种. 一是进行数据增强, 将数据集进行量级扩增和模式扩增, 量级扩增是指针对数据量级的扩大, 模式扩增是指在量级扩增的同时, 让不同的样本包含更多的语义特性. 训练模型时, 如果每类包含大量的样本, 且这些样本包含大量的模式, 则在缓解过拟合问题的同时, 模型会具有更好的鲁棒性和泛化能力. 除了图像样本数目的扩增, 图像特征的增强也是一种数据增强的方式[31]; 二是不对小样本数据集进行处理, 在只有少量样本的情况下, 让模型适应数据, 针对数据的特点进行建模[32]. 对于小样本数据集, 设计用于提取表示能力强的特征的网络架构往往非常重要.
小样本图像数据集不足以让模型捕捉到足够的数据模式, 而应用于深度学习的卷积神经网络又需要大量带标签的训练样本, 因此最直接的解决办法就是进行数据增强[33]. 数据增强包括三种方式: 一是通过旋转、加噪、裁剪、压缩等操作[34], 这种数据增强的方式在处理样本不足的问题中都有应用; 二是利用生成模型生成新的样本或者生成新的特征. 例如, Jia等提出使用贝叶斯方法生成新的样本[35]. 生成对抗网络可为训练样本提供更多的生成图像, 增加训练样本的多样性. 2017年Mehrotra等提出了生成网络 + 孪生网络的网络结构[36], 生成对抗网络由生成器和判决器组成, 如图2所示, 利用生成器进行数据增强, 孪生网络用于判决器. 孪生网络第一次被Bromley等在1993年提出并用来解决一种匹配问题的签名验证[37]; 三是通过函数变换, 将图像中需要关注的物体本身或者其模式通过某种变换, 达到增加样本数量或者特征数量的目的. 例如, Dixit等利用含有属性标注的语料库来生成新的样本[38]. 如果收集到的数据包含少量带标签的样本和大量未带标签的样本, 可以利用带标签的样本去标注未带标签的样本, 产生的伪样本也可以作为增加的训练样本[39].
图 2 生成对抗网络 + 孪生网络[36]
Fig. 2 Generative adversarial networks + siamese networks[36]
下载: 全尺寸图片 幻灯片
1.1.2 特征提取
这个过程主要是为适应数据分布建立特征提取模型, 该模型能够提取图像的有效特征, 图像特征的有效性可解释为, 对于一个模型, 提取到的图像特征可以对图像进行有效表示, 达到更好的分类效果. 为了提高图像特征的有效性, 注意力机制[31]、记忆力机制[34]等技术被应用于小样本图像分类算法中.
1)注意力机制
注意力机制是人类视觉所特有的大脑信号处理机制, 人类视觉通过快速扫描全局图像, 获得重点需要关注的目标区域, 然后抑制其他无用信息, 极大地提高了视觉信息处理的效率与准确性. 注意力模型在图像领域被广泛使用, 它借鉴了人类的注意力机制, 在对图像的处理过程中, 始终关注感兴趣的部分区域, 因此在建立提取图像特征模型的过程时, 注意力机制扮演着将图像信息进一步提取为有效信息的角色, 学习不同局部的重要性.
注意力机制在数学形式上可以理解为加权求和, 通常情况下使用Softmax形式, 并通过引入新的参数来弥补模型的拟合能力. 文献[40]在对图像特征提取的过程中使用了单一注意力机制, 文献[41]认为单一的注意力机制对图像信息的提取不够充分, 提出利用多注意力机制将类别标签信息与视觉信息联系起来, 减小视觉信息与语义信息之间的鸿沟.
2)记忆力机制
循环神经网络(Recurrent neural network, RNN)解决了短期记忆的问题, 其变体长短期记忆网络(Long short-term memory, LSTM)解决了短期记忆和长期依赖的问题. 在图像领域, 基于LSTM的记忆力机制近年来发挥着重要作用, 它增强了模型的拟合能力和图像特征的表示能力. 小样本图像分类算法对于记忆力机制的应用可分为两类, 一是直接利用LSTM对图像进行编码, 提高图像特征的表示能力[9]; 二是利用读写控制器对记忆信息进行写入和读出[42].
1.1.3 分类器
分类器的设计取决于图像特征的有效性和分类器与图像特征之间的适应性. 分类器与图像特征之间的适应性可解释为, 在假定图像特征具有有效性的前提下, 分类器能够最大程度地区分不同类别的图像特征. 通常小样本图像分类中所使用的分类器, 大多数是在卷积神经网络的最后一层构建带有Softmax的全连接层, 或者对提取的图像特征应用K近邻(K-nearest neighbor, KNN)算法, 还有对分类器的权重进行重新生成, 使模型同时适用于基类数据集和新类数据集, 目前现有的元学习方法一般不研究将基类和新类一起进行分类的问题.
分类器本质上是对特征进行相似性度量并对不同类别进行最大程度的区分. 传统机器学习中最简单的度量方式KNN, 可对每个样本间的距离进行度量, 然后进行相似性距离排序, 例如, 可以利用1-nearest neighbor, 即1-NN来完成One-shot learning任务, 但实验表明分类效果并不好[43]. 除此之外, 还可以通过支持向量机(Support vector machine, SVM)进行分类度量[44-46]. 近邻成分分析(Neighborhood component analysis, NCA)[47]及其非线性方法[48]、基于集合的弱度量方法[49]等都是样本特征度量工作的范畴. 在小样本图像分类任务中, 也有利用余弦距离和欧氏距离以及点乘方式对特征距离进行度量.
一般地, 当模型学习到新的类别后, 会忘记之前学习过的类别, 与之前所做工作不同的是, Gidaris等[50]提出了基于注意力机制的分类器权重生成器, 通过重新设计分类器来适应分类器权重和图像特征之间的匹配程度, 使模型同时适用分类基类和新类样本. 类似于上述工作, Chen等[51]将线性分类器替换为基于距离的分类器, 以比较两种分类器在不同数据集上的优劣.
1.2 数据集及分类指标
1.2.1 小样本公用数据集介绍
近年来, 现有文献中的小样本公用数据集主要包括: Omniglot[52]、CIFAR-100[53]、Mini-ImageNet[9]、Tiered-ImageNet[54]和CUB-200[27]. 从数据量级的大小来看, 数据集Tiered-ImageNet, 不仅数据量级较大、类别多, 而且每类包含的样本也多; 量级较小的数据集, 例如Mini-ImageNet数据集、CIFAR-100数据集、CUB-200数据集, 这类数据集类别较少、类内样本数相对较多; Omniglot数据集类别较多, 但是相对类内样本少. 从数据类型的复杂度来看, Omniglot数据集属于字符类型的图像, 包含的类型和模式较为简单, 对其进行实验往往分类精度较高; 其他数据集都属于自然图像, 包含的图像模式较为复杂, 对其进行实验分类精度往往相对较低.
上述数据集的相关信息如表1和图3所示. 小样本图像分类使用的公用数据集图像类别均达到或超过100类, 总体数据量均超过10000, Tiered-ImageNet数据集达到77多万, Omniglot数据集和CUB-200数据集的平均类内样本数未达到100, Tiered-ImageNet数据集的平均类内样本数超过1000. 从本文第3节的实验分析将看到, 类别越多, 类内样本越多, 越有利于进行小样本图像分类, 这表明数据量级的大小对小样本图像分类结果具有一定的影响.
表 1 小样本公用数据集的数量信息
Table 1 Quantitative information of small sample public data sets
数据集 | 数据数量 | 类别数量 | 平均类内样本 |
Omniglot[52] | 32460 | 1623 | 20 |
CIFAR-100[53] | 60000 | 100 | 600 |
Mini-ImageNet[9] | 60000 | 100 | 600 |
Tiered-ImageNet[54] | 778848 | 608 | 1281 |
CUB-200[27] | 11788 | 200 | 58 |
下载: 导出CSV
| 显示表格
图 3 小样本公用数据集样本示例
Fig. 3 Sample examples of small sample public data sets
下载: 全尺寸图片 幻灯片
1.2.2 评价指标
小样本图像分类算法的实验评价指标通常称为N-way K-shot[9]. 也有使用top-1和top-5来评价图像分类精度[55]. N-way K-shot: 选取N类图像样本, 每类图像选取K个样本或样本对, 一般地, N∈{5,10,15,20},K∈{1,5}N∈{5,10,15,20},K∈{1,5}. 模型训练阶段, 构建好训练模型并在选取的N×K个样本或样本对上进行训练; 在验证阶段和测试阶段, 选取N类样本中的K个样本或者样本对, 执行N-way K-shot分类任务. 根据预测结果来确定预测类别, 预测类别与实际类别相符的准确率即为评价指标. Top-1: 指预测排名第一的类别与实际结果相符的准确率. Top-5: 指预测排名前五的类别包含实际结果的准确率.
2. 小样本图像分类算法
针对不同类型数据的建模方式, 本文将小样本图像分类算法分为卷积神经网络模型和图神经网络模型. 根据学习范式, 卷积神经网络模型可分为迁移学习、元学习、对偶学习和贝叶斯学习. 基于迁移学习的小样本图像分类有三种实现方式, 基于特征、基于相关性和基于共享参数; 基于元学习的小样本图像分类有三种实现方式, 基于度量、基于优化和基于模型; 基于对偶学习的小样本图像分类有两种实现方式, 一是利用自动编码机, 二是利用生成对抗网络. 本节将对以上小样本图像分类算法进行详细介绍, 并在Omniglot数据集、Mini-ImageNet数据集、CIFAR-100数据集和CUB-200数据集上进行实验分析.
2.1 迁移学习
利用迁移学习[56-57]可以减小模型训练的代价, 同时达到让卷积神经网络适应小样本数据的目的. 迁移学习的思想是, 相似任务之间的学习是有相同规律可寻的, 并且学习第n个任务比第1个任务要更为简单[58]. 迁移学习关注的是目标任务, 给定一个源域DsDs和一个学习任务TsTs, 一个目标域DtDt和一个学习任务TtTt, 迁移学习的目的是使用在DsDs和TsTs上的知识帮助提高在目标域DtDt上的预测函数ft(x)ft(x)的学习, 以更好地执行学习任务TtTt, 其中Ds≠DtDs≠Dt或Ts≠TtTs≠Tt. 如果迁移学习中的源数据和目标数据不同但是具有相关性[59], 则需要进一步处理. 比如, 使用多源域的决策知识预测目标域的样本标签[60].
如图4所示, 从小样本图像分类的流程来看, 迁移学习是在图像特征提取阶段实现的. 具