Content area
Full text
1 引言
近年来,深度卷积神经网络在通用对象分类任务方面取得重大突破[1]。然而,在实际应用中,不仅需要从图像中识别出目标的基本类型,而且需要进一步识别出目标的子类型或者对目标进行更加精细的分类,通常称为细粒度图像分类。有别于通用对象分类问题,细粒度图像分类不仅可以对某一类别下的子类别进行分类,而且能够区分相似度极高的同一物种,例如对狗类的子类“哈士奇”和“爱斯基摩犬”进行区分。
同类别物种的不同子类往往仅在某些部件的外观上存在细微差别,一般需要依靠对象的姿态特征作为分类的先决条件。因此通常情况下训练细粒度分类模型首先从图像中提取特征,然后据此进一步构造出相应的派生特征来训练多级分类器。Donahue等人[2]借助细粒度图像中物体标注框和部件标注训练出检测模型,并对得到的检测框添加位置几何约束。Branson等人[3]提出利用部件标注的预测点来获取物体级别和部件级别的检测框,采用姿态对齐操作和不同层特征融合的方式。这些方法都取得了较好的细粒度分类效果,然而,由于物体部件标注点等信息需要大量的人工参与,这在一定程度上限制了上述强监督模型算法的实际应用。
目前,细粒度图像分类的一个明显趋势是使用弱监督细粒度分类模型,在模型训练时仅使用图像级别标签信息,而不再使用额外的部件标注信息。Simon等人[4]利用卷积网络特征产生关键点,再利用这些关键点来提取局部区域信息,但是弱监督模型的分类精度与强监督模型的精度相比依然存在差距。由于多个任务可以通过使用包含在相关任务监督信号中的领域知识来改善泛化性能,即使对于优化目标只有一个的特殊情形,辅助任务仍然可以改善主任务的学习性能,所以本文拟用额外的样本标签对细粒度图像原属性进行分类以解决由于姿态、视点等差异引起的细粒度数据集类内差异较大的问题。
基于深度卷积神经网络的分类任务通常需要使用大量的训练样本,以此来避免过拟合,而且细粒度数据的类别标注通常需要专业知识。因此,获取大量有标记样本成本巨大,很多数据集仅有几千张,有些数据集甚至只有几百张图片。本文着重研究稀缺样本下的细粒度图像分类问题,将样本量稀缺的细粒度数据集称为微型细粒度数据集。
研究表明[5],利用学习目标和已有知识之间的相关性,可以把知识从已有的模型和数据中迁移到要学习的目标上。迁移学习能够学习到领域无关的特征表达,这与深度学习不谋而合,将两者结合可以充分利用神经网络图像表征的能力,学习域不变的特征表示。Tzeng等人[6]通过共享卷积神经网络进行特征自适应,将源域中的类关系迁移到目标域。Ge等人[7]使用低级别特征在大规模标记数据集中搜索最近邻,进行特殊类型的传输学习。深层网络较低层内核提取低级别特征,而这些低级别特征的质量却决定了网络特征的质量。又有研究表明[8],卷积神经网络前几层所提取的基本上是一般性特征,进行特征的迁移学习效果比较好。所以本文设计将微型细粒度数据集放入模型的目标域中,将源域网络中间层提取的特征迁移至目标域用于微型细粒度数据集的训练。值得注意的是,虽然此种迁移学习效果取决于源域与目标域之间任务的相似程度,但细粒度数据集之间却具有特征相似性。因此,本文充分利用这种细粒度数据集之间的关联性,引入衔接域的概念,提出一种基于相似度匹配的方法对域间任务的关联程度进行度量。本文工作具体如下:
1) 本文提出一种基于相似度匹配的方法,对于源域和目标域的关联程度进行度量;
2) 本文冻结部分网络层提取细粒度样本的特征表示进行域间迁移,从而达到加速网络学习与优化的目的;
3) 本文使用额外的样本标签对细粒度图像原属性进行分类以解决由于姿态、视点等差异引起的细粒度数据集类内差异较大的问题。
2 本文方法
传统的机器学习一般通过人类先验知识将未加工数据预处理成特征,再对特征进行分类。由于分类结果取决于特征的好坏,所以长期以来机器学习专家将大部分时间花费在设计特征上。而深度学习是多层次的特征提取器与识别器统一训练和预测的网络,因此,端到端的训练显得尤为重要,本文模型的设计理念就是充分发挥卷积神经网络自身能够进行端到端处理的优势。本文旨在进行端到端的联合调整,通过对嵌入跨数据集图像信息的学习,捕捉更难的跨领域知识,以尽量减少源域任务和目标域任务中原始函数的损失。对于域间迁移网络问题,本文将网络层数较少的卷积神经网络的部分层冻结,部分层权值共享来提取源域细粒度数据集中明确的属性特征以迁移至目标域。由于姿态、视点等差异引起的细粒度数据集类内变化较大的问题,本文拟用额外的样本标签对细粒度原属性进行分类。
针对迁移学习中源域任务与目标域任务关联程度度量和细粒度图像分类任务中样本量稀缺这两个问题,本文提出了一个基于关联度度量的深度迁移学习模型,模型包括两个部分:1)域间任务关联度度量阶段,详细论述将在2.1节给出;2)特征迁移适应性调节阶段,详细论述将在2.2节给出。
2.1 域间任务关联度度量
迁移学习研究最大局限之一是其学习能力很大程度上取决于源域任务与目标域任务的关联程度,若两个领域之间没有任何的相似部分则对其进行知识的迁移显然是无效的。但一般情况下,源域与目标域之间直接共享少量特征,迁移学习通过一系列的辅助概念将两个域连接起来[5]。不失一般性,本论文引入衔接域的概念,如图 1所示,衔接域作为源域与目标域之间的桥梁实现领域间任务的关联度度量。直观地说,若源域中分类任务比目标域更难,那么从源域数据中学习到的模型具有高度的预测性,并且能在目标域上实现高性能。另一方面,若衔接域能扩大源域和目标域之间的距离,那么源域和目标域之间知识迁移的过程将会减少信息丢失。
[Image omitted: See PDF]
故对于定量计算源域任务与目标域任务之间的关联程度,本文制定了一个用于学习图片相似性度量的判别式训练方法。该方法无需输入所有样本进行训练,适用于源域数据集类别数量较多的情况,其相似性度量可用于匹配未在先前类别中出现的样本。从当前目标域所取用的数据集中随机选一定比例的样本输入衔接域,与此同时,从源域的每个数据集中选取同样数量的样本输入衔接域。
首先,对目标域中每个类别的数据集选取相同数量的c个样本。然后,根据目标域中每个类别的数据集样本总量,选取一定样本量的源域样本输入衔接域进行两域之间关联程度的判断性训练,样本量为c×(源域每类数据集样本量/目标域每类数据集样本量)。将成对输入衔接域训练的源域样本和目标域样本分别定义为 \({X_{\rm{S}}}\) 和 \({X_{\rm{T}}}\) ,定义一个二元标签P,当P=0时, \({X_{\rm{S}}}\) 和 \({X_{\rm{T}}}\) 属于同一类型样本为正对;否则 \({X_{\rm{S}}}\) 和 \({X_{\rm{T}}}\) 为负对,P=1。设 \({W_1}\) 是学习的共享参数,设 \({G_{{W_1}}}({X_{\rm{S}}})\) 和 \({G_{{W_1}}}({X_{\rm{T}}})\) 为低维空间中由映射 \({X_{\rm{S}}}\) 和 \({X_{\rm{T}}}\) 产生的特征向量,衔接域中系统可以看作是一个用来衡量 \({X_{\rm{S}}}\) 和 \({X_{\rm{T}}}\) 之间兼容性的标量能量函数 \({E_{{W_1}}}({X_{\rm{S}}}, {X_{\rm{T}}})\) ,定义为
\({E_{{W_1}}}({X_{\rm{S}}}, {X_{\rm{T}}}) = ||{G_{{W_1}}}({X_{\rm{S}}}) - {G_{{W_1}}}({X_{\rm{T}}})||。\)(1)
给定训练集中正对 \(({X_{\rm{S}}}, {X_{\rm{T}}})\) 与负对 \(({X'_{\rm{S}}}, {X_{\rm{T}}})\) ,当其满足以下条件时衔接域中系统合理化运行:存在一个大于零的数e,使得
\({E_{{W_1}}}({X_{\rm{S}}}, {X_{\rm{T}}}) + e < {E_{{W_1}}}({X'_{\rm{S}}}, {X_{\rm{T}}}), \)(2)
成立,其中正数e为余量。
本文定义 \({L_{\rm{P}}}\) 和 \({L_{\rm{N}}}\) 分别为正对损失和负对损失,最小化损失时期望总体损失可以减少正对能量,增加负对能量[9],即损失 \({L_{\rm{P}}}\) 单调增加,损失 \({L_{\rm{N}}}\) 单调减小,所以定义总体损失为
\( L({E_{{W_1}}}({X_{\rm{S}}}, {X_{\rm{T}}}), {E_{{W_1}}}({X'_{\rm{S}}}, {X_{\rm{T}}}))\\ \;\;\;\;\;\;\;\;\;\;\;\;= {L_{\rm{P}}}({E_{{W_1}}}({X_{\rm{S}}}, {X_{\rm{T}}}))+ {L_{\rm{N}}}({E_{{W_1}}}({X'_{\rm{S}}}, {X_{\rm{T}}}))。\)(3)
由于只使用小样本进行特征相似性的度量,所以图像的局部特征显得尤为重要。传统的卷积神经网络利用单独的线性滤波器来检测相同概念的不同变化,然而对于单个概念而言,拥有过多的滤波器需要考虑前层所有变化的组合,此种做法会给下一层造成负担。较高层的滤波器能映射到原始输入的更大区域,可以通过结合底层的低级概念产生更高层次的概念,所以微型网络将每个位置的块结合到更高层次的概念之前先将每个块做一个很好的抽象。此时特征提取的过程相当于在一个普通的卷积上级联交叉通道参数,每个输出层都在输入特征图上执行加权线性重组后通过整形线性单元,跨通道汇集的特征图在下一层中反复汇集。本文使用非线性替代线性模型,将上述微型网络作为衔接域中的特征提取器,结构如图 2所示。微型网络由两层的多层感知卷积层和一个全局平均池化层组成。使用多层感知器主要是因为其反向传播训练与卷积神经网络的结构相一致,并且多层感知器本身是一个深层模型可以进行特征重用。多层感知器对成对输入的样本卷积过程如下:
\( f_{a, b, {k_1}}^1 = {\rm{max(}}\omega {_{{k_1}}^1{^{\rm{T}}}}{x_{a, b}} + {b_{{k_1}}}, 0{\rm{)}} \cdots f_{a, b, {k_n}}^n\\ \;\;\;\;\;\;\;\;\;\;= {\rm{max}}(\omega {_{{k_n}}^n{^{\rm{T}}}}f_{a, b}^{n - 1} + {b_{{k_n}}}, 0), \)(4) [Image omitted: See PDF]
其中:n表示多层感知器的层数, \({x_{a, b}}\) 表示在位置 \((a, b)\) 的输入块,k表示特征图的通道。网络输出特征向量后进行相似性(用 \({S_{{\rm{Sim}}}}\) 表示)计算,其函数定义为
\( {S_{{\rm{Sim}}}}({D_{\rm{S}}}, {D_{\rm{T}}}) = \mu \frac{{\sum\nolimits_{j = 1}^n {({C_{\rm{S}}}(j) \times {C_{\rm{T}}}(j))} }}{{\sqrt {\sum\nolimits_{j = 1}^n {{{({C_{\rm{S}}}(j))}^2}} \times \sum\nolimits_{j = 1}^n {{{({C_{\rm{T}}}(j))}^2}} } }}\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;+ \rho \frac{{\sum\nolimits_{g = 1}^m {({K_{\rm{S}}}(g) \times {K_{\rm{T}}}(g))} }}{{\sqrt {\sum\nolimits_{g = 1}^m {{{({K_{\rm{S}}}(g))}^2}} \times \sum\nolimits_{g = 1}^m {{{({K_{\rm{T}}}(g))}^2}} } }}, \)(5)
其中: \(\mu \) , \(\rho \) 分别表示细粒度特征与视图类特征权重,给定包括源域、目标域的一个二元组 \({A_{{\rm{tr}}}} = \{ {\rm{S}}, {\rm{T}}\} \) ,本论文从两个域中分别提取三个视图类特征和三个细粒度特征,记为 \(F = \{ ({C_{\rm{S}}}(1), {C_{\rm{T}}}(1)), \cdots , ({C_{\rm{S}}}(3), {C_{\rm{T}}}(3))\) , \(({K_{\rm{S}}}(1), {K_{\rm{T}}}(1)), \cdots , ({K_{\rm{S}}}(3), {K_{\rm{T}}}(3))\} \) ,再将各域中同类型特征两两做交叉域计算,共36个特征,前12个特征总结了单个域内特征,后24个特征捕获了成对交叉域距离,这些特征共同影响着本论文模型中的关联度学习算法。
然而,设计通用的领域关联程度判断标准是不现实的,因为对于不同的问题可能对这些特征具有不同的权重。所以本论文提出了对领域内图像特征的统一表达式:
\(Cov({A_{{\rm{tr}}}}) = \varphi (\sum\nolimits_i^{n = 36} {\alpha {f_i}} + \beta ), \)(6)
其中: \(\varphi (x) = \frac{1}{{1 + \exp ( - x)}}\) , \(\alpha \) , \(\beta \) 表示常参数。
则可以将领域间的关联度(degree of association,DoA,用DDoA表示)定义为
\( {D_{{\rm{DoA}}}} = \sum\nolimits_{i = 1}^n {{I^{(i)}}\log Cov({A_{{\rm{tr}}}})}\\ \;\;\;\;\;\;\;\;\;\;\;\;+ (1 - {I^{(i)}})\log (1 - Cov({A_{{\rm{tr}}}})), \)(7)
其中: \({I^{(i)}}\) 是一个二进制标签,当视图类特征与细粒度特征同时大于阈值时, \({I^{(i)}}\) =1;否则 \({I^{(i)}}\) =0。衔接域是源域与目标域之间的一个桥梁,不仅增强了领域间的关联程度,而且使得目标域中的分类任务不只是由目标域内的特征来决定。关联度的输出会反馈给模型的特征迁移适应性调节阶段,第二阶段会根据第一阶段的反馈调整迁移网络的权重。
2.2 特征迁移适应性调节
本文使用属性标签在源域数据集中训练整个网络。由于卷积神经网络前几层提取的基本上是一般性特征,进行特征迁移学习效果比较好[8],所以本论文选择固定网络的前三层所提取的特征来创建学习目标,这样做的目的是为了节约训练时间的同时保证特定特征的提取。为了兼顾模型的计算速度,本文选用SqueezeNet[10]作为最终的特征迁移学习网络,该网络结构中大量采用1×1和3×3卷积核来提升速度,对于类似caffe[11]这样的深度学习框架,在卷积层的前向计算中,采用1×1卷积核直接利用通用矩阵乘法进行矩阵加速运算,可避免对索引图像块重排列为矩阵列的额外操作,在保证精度的同时使用最少的参数。
卷积神经网络在相邻层上以复杂且易受影响的方式进行交互[8],这就使得相邻层间的神经元在训练时会产生共适应,然而这种共适应不仅仅是由上层学习得到,即冻结网络的某一层时,网络无法重新获取这种共适应。所以在深度卷积神经网络中进行特征迁移学习不仅要考虑网络高层中所提取特征通用性的下降,还要考虑中间层的相邻层间神经元共同适应性的下降。因此本文选取网络的中间层4、5、6作为特征迁移网络的冻结最高层,并制定了一个投票机制来对不同层的特征迁移进行适应性调节。
在模型第一阶段衔接域反馈损失为目标域选择相匹配的迁移网络之后,投票机制根据目标域中微型细粒度数据集的迁移网络,再适应性调节出适合每个数据集进行学习的分层参数。冻结SqueezeNet[10]的1~4层、1~5层、1~6层作为竞争投票的候选者,每个候选者为同质个体且相互之间不存在依赖性关系,因此可以并行生成。进行预测的候选者类别为 \(\{ {L_A}, {L_B}, {L_C}\} \) ,对于任意一个目标域任务,给出分层预测的结果分别为 \(\{ {h_A}, {h_B}, {h_C}\} \) 。本文使用的投票机制是相对多数投票法,即三个候选者对目标域任务的预测结果中,数量最多的候选者作为最终的选择。若不止一个候选者获得最高票,则随机选取一个最高票候选者作为最终选择。在每个目标域任务执行过程中,循环迭代对候选者进行投票选择,聚合各数据集间完整的训练得到最终的迁移特征效果。表 1给出了投票机制的候选者作为单一个体进行独立迁移学习的结果。
表 1 单一任务与增加辅助任务对比结果 Table 1 Categorization result comparisons between single- task and auxiliary-task
Single-task | Auxiliary-task | |
BMVC[15] | 97.4 | 97.7 |
BMW-10[16] | 80 | 80.32 |
Oxford-ⅢT Pet[17] | 83.6 | 84.2 |
Birds[18] | 99.8 | 99.8 |
Xie等人[12]通过利用细粒度识别模型和超类标签识别模型之间的正则化来建立新的学习模型。受此启发,本论文利用来源于数据集本身且易于标注的视图类信息,视图类的类别标签如图 3所示。给定细粒度与视图类有标签数据,通过共享共同特征和学习分类器来训练多个任务深度卷积神经网络,每个任务提供一个对应于其来源的函数,各域内任务本论文定义一个损失函数。
[Image omitted: See PDF]
假设有