CNN RNN图像分类技术

CNN RNN图像分类技术

技术开发 编程 技术框架 技术发展

 

CNN RNN图像分类技术

1 简介

图像分类一直是研究的一个活跃领域,其目的是将图像分类为预定义的类别,并帮助人们了解图像包含的对象类型。传统上,图像分类主要由编码当地手工制作的特征和使用它们作为输入分类器执行的处理的小数据集,20,  47,  51 ]。

近年来,这项任务发生了两个根本性的变化:首先,数字图像的数量呈指数增长。在从大量数据中查找相关图像时,这给人们带来了更多的选择和更多的困难。为了帮助人们以轻松而有意义的方式访问数据,我们需要一个良好的类别语义组织。其次,深度学习方法已被证明是成功的图像分类。近年来,研究人员已经建立的各种深层结构[ 12,  35,  41 ],并取得了小数据集相当准确的预测[ 4,  10 ]。

因此,目前的研究焦点已经移动到更大和更有挑战性的数据集[ 3,  34 [],如ImageNet 6 ]。这些数据集通常根据其语义所有物来组织层次结构中的大量类别。层次结构越深入,类别就越具体。与仅关注叶类别的当前方法相比,我们认为以粗到细模式生成分层标签可以呈现语义类别如何演变,从而可以更好地描述对象是什么。例如,对于图  1c,预测的叶子类别标签是“三角龙”。没有专业知识,我们无法了解此类别标签属于更高级别的类别标签'Horned Dinosaur'。在新窗口中打开图片图。1图1

具有“粗→精”标签的示例图像

本文的第一个贡献是通过集成强大的卷积神经网络(CNN)和递归神经网络(RNN),能够生成分层标签的框架。CNN用于生成判别特征,RNN用于生成顺序标签。

CNN-RNN框架有几个值得注意的优点:

(1)以分层方式学习事物与人类感知和概念组织一致。通过预测由粗到细的图案标签,我们可以更好地理解什么对象是,如在图中描绘  1 ℃。

(2)它可以利用粗类和精类之间的关系,这反过来又有助于传统的图像分类任务。例如,当我们使用wrn-28-10构建CNN-RNN框架[ 53 ]时,我们可以将粗略和精细类别的准确度分别提高2.8%和1.68%。据我们所知,这是第一个尝试使用RNN通过利用层次标签之间的关系来提高分类性能的工作。

(3)它是可转移的。原则上,该框架可以构建在任何CNN架构之上,该架构主要用于单级分类,并提升每个层级的性能。为了验证这一点,我们对三个高性能网络进行了大量实验,即CNN-7 [ 25 ],wrn-28-10 [ 53 ]和我们提出的更广泛的Resnet。

(4)结构可以端到端地进行训练。在与其它的方法只能模型预先计算的图像特征的类别关系[ 7,  30 ]中,CNN-RNN框架可以共同学习的功能和关系在端至端的方式,从而可以提高最终预测相当多。对于ImageNet 2010的子集,我们比较了使用预先计算的CNN特征来训练RNN以及CNN和RNN的端到端训练,并且证明了子类别准确度从77.27%到82%的显着改善。

(5)分层标签的数量可以是可变的。RNN的灵活性允许我们生成不同长度的分层标签,即更具体的类别将具有更多分层标签。我们已经在广泛使用的ImageNet 2012数据集[ 32 ] 上演示了这个属性。

由于该框架是可转移的,我们打算构建一个高性能的CNN模型,并利用其CNN-RNN变体来进一步提高准确性。因此,本文的第二个贡献是,我们建立了一个高性能的网络,即更广泛的ResNet。近年来,深度残留网络(ResNet)[ 12 ]因其在多种图像分类任务中的领先性能和Zagoruyko等人而备受关注。[ 53 ]提出了一个关于ResNet几个重要方面的全面实验研究,例如宽度和深度,并提出了一个广泛的Resnet,它获得了比原始ResNet更好的性能。与[ 53]相比,我们打算进一步提高绩效并建立更广泛的ResNet]。我们的实现表明,更广泛的Resnet 在CIFAR-100上的性能优于[ 53 ],并且在数千层的情况下也优于原始的ResNet。此外,通过利用CNN-RNN框架,我们获得了比现有技术更好的结果。

深度模型的性能受益于准确和大规模的注释,如ImageNet [ 6 ]。然而,手动标记是一项过于繁琐且昂贵的任务,特别是对于细粒度的类,这通常需要专业知识(例如狗的品种,花种等)。例如,对于图  1a和b,使用粗标签'dog'很容易注释图像,但是它需要专门的知识将它们分成'Bsenji'和'Leonberg'子类别。一个可选的想法是,如果训练数据的一部分仅用粗类别标签注释,我们是否可以利用粗略标记的训练数据来提高精细类别的分类性能?

本文的第三个贡献是,当一小部分训练数据只有粗标签时,我们研究如何利用CNN-RNN框架来改进子类别分类。通过在训练集中的完全注释数据上训练CNN-RNN框架,我们可以利用粗略和精细类别之间的关系。因此,我们可以预测粗标记训练数据的精细标签,然后重新训练CNN-RNN模型。实验结果表明,粗标记训练数据通常可以帮助子类别分类。在某些情况下,它甚至可以超过完全注释的训练数据的性能。这减轻了细粒度标记的昂贵过程。

2 相关工作

2.1  CNN-RNN框架的使用

近年来,深学习方法已经引起显著的关注[ 11 ]在各种应用中取得了革命性的成功[ 12,  24 ]。深度学习的两个重要结构是CNN和RNN。CNN已被证明在处理类似图像的数据方面是成功的,而RNN更适合于建模顺序数据。近日,几部作品[ 8,  23,  44,  48,  52,  54 ]曾试图将它们结合在一起,并内置各种CNN-RNN框架。通常,组合可以分为两种类型:统一组合和级联组合。

统一组合通常试图将复现属性引入传统CNN结构中以提高分类性能。例如,Zuo等人。[ 54 ]通过连接不同区域的CNN特征将每个图像转换为1D空间序列,并利用RNN来学习图像区域的空间依赖性。类似的工作出现在[ 46 ]中。拟议的ReNet用四个递归神经网络取代普遍存在的卷积+汇集层,这两个神经网络在图像的两个方向上水平和垂直扫描。为了改进多标签分类,Wang等人。[ 48]提出了CNN-RNN框架,以学习联合嵌入空间来建模语义标签依赖性以及图像标签相关性。

另一方面,级联组合将分别处理CNN和RNN,其中RNN将CNN的输出作为输入,并返回不同时间步的顺序预测。级联的CNN-RNN框架通常用于不同的任务,而不是图像分类。例如,[ 8,  45,  52 ]采用CNN-RNN以解决图像字幕任务,和[ 50 ]利用CNN-RNN排名基于视觉重要性的标签列表。

在本文中,我们建议利用级联CNN-RNN框架来解决新任务,即分层图像分类,其中我们利用CNN生成判别图像特征,并利用RNN来模拟分层标签的顺序关系。

2.2 图像分类的分层模型

分层模型已广泛用于图像分类。例如,Salakhutdinov等人。[ 33 ]提出了一种分层分类模型,以分享类别之间的特征,并提高了几乎没有训练样例的对象的分类性能。严等人。[ 49 ]提出了一个分层的深CNN(HD-CNN),它由在所有类别上训练的粗分量以及在类的子集上训练的几个精细分量组成。Murdock等人没有使用固定的架构进行分类。[ 29 ]提出了一种正则化方法,即Blockout,以自动学习层次结构。

采用分层模型的另一个管道倾向于通过利用层次结构中类别的关系来提高分类性能。例如,邓等人。[ 7 ]引入了HEX图来捕捉类别之间的等级和排他关系。Ristin等。[ 30 ]利用随机森林并提出了一个正则化的目标函数来模拟类别和子类别之间的关系。这种分层模型不仅可以提高传统的图像分类性能,还可以提供一种利用粗标记训练数据的替代方法。

与以往的工作相比,本文利用RNN来利用粗类和精类之间的层次关系,旨在使模型适应层次图像分类任务,同时为图像生成层次标签。与[比较7,  30 ],可以仅处理预先计算的图像的特征,我们提出的CNN-RNN框架可以被训练的端至端。

3 我们提出的方案

我们的方法的目标是同时生成图像的分层标签。为此,我们可以使用两种类型的发电机:基于CNN的发电机和CNN-RNN发电机。除最后一层外,它们都保留基本CNN结构的前面层。

3.1 基于CNN的发电机

基于CNN的发生器旨在通过利用传统CNN结构产生粗糙和精细标签。它是履行这一特定任务的通用做法。在本文中,我们将最后一层传统CNN替换为两层,通过这两层为粗略类别和精细类别提供单独的监控信号。这两层可以以串行模式(图  2:策略1和2)或以并行模式(图2:策略3)排列  。在新窗口中打开图片图2图2

可以联合训练和生成粗略和精细标签的四种策略的说明

在训练阶段,我们利用softmax损失函数联合优化粗略和精细标签预测,如(1)中所定义。

大号ø 小号小号= - 1ñΣ我=1Ñ(ΣĴ =1c ^ 1 { X我 = Ĵ }登录pĴ +Σķ =1˚F1 { Ŷ我 = ķ }登录pķ)损耗=-1NΣi= 1N(Σj= 1C1 {xi = j}log⁡pj+Σk= 1F1 {yi = k}log⁡pk)

(1)其中1 {⋅}是指标函数。 N,  C,  F  分别表示图像的数量,粗略类别和精细类别。 p  j 和  p  k 分别是粗类和精类的softmax概率。

在推理阶段,我们可以利用训练有素的网络同时确定粗标签和精细标签。

基于CNN的发电机有两个潜在的缺点:首先,它单独处理两个监控信号,并没有利用它们之间的关系。其次,当层次结构具有可变长度时,我们无法定义基于CNN的通用生成器来同时确定层次标签。

3.2  CNN-RNN发生器

CNN-RNN生成器使用其中CNN的最后一层被RNN替换的架构来确定分层预测(图  2:策略4)。

RNN [ 9 ]是一类人工神经网络,其中单元之间的连接形成有向循环,如图3所示  。它可以有效地模拟具有任意长度的序列的动态时间行为。然而,RNN遭受消失和爆炸梯度问题,因为梯度需要向下传播通过循环网络的许多层。因此,很难对长期动态进行建模。相反,长短期记忆(LSTM)[ 14通过结合存储器单元以在每个时间步骤编码知识来提供解决方案。具体地,单元的行为由三个门控制:输入门,遗忘门和输出门。这些门用于控制它应该读取多少输入(输入门  i),是否忘记当前单元值(忘记门  f)以及是否输出新单元值(输出门  o)。这些门有助于输入信号在不影响输出的情况下通过循环隐藏状态,因此,LSTM可以很好地处理爆炸和消失的梯度,并有效地模拟RNN无法学习的长期时间动态。在新窗口中打开图片图3图3

RNN(左)和LSTM(右)的管道

在本文中,我们使用LSTM神经元作为我们的复发神经元。门的定义和时间步长t的LSTM更新如下:

it =σ(Wxixt +Whiht -1 +Wviv+bi)it =σ(Wxixt + Whiht - 1 + Wviv + bi)

(2)ft =σ(Wx fxt +Whfht -1 +Wvfv+bf)ft =σ(Wxfxt + Whfht - 1 + Wvfv + bf)

(3)ot =σ(Wxoxt +Whoht -1 +Wvov+bo)ot =σ(Wxoxt + Whoht - 1 + Wvov + bo)

(4)gt =φ(Wxcxt +Whcht -1 +Wvcv+bc)gt =φ(Wxcxt + Whcht - 1 + Wvcv + bc)

(5)Ç吨 =˚F吨 ⊙Ç吨-1 +我吨⊙克吨 CT =ft⊙ct-1 +it⊙gt

(6)ħ吨 =ö吨⊙φ(ç吨)HT =ot⊙φ(CT)

(7)其中⊙代表产品操作,  σ  是S形函数(σ(x)=(1 +  e  - x )- 1),  φ  是双曲正切函数( φ (x )= ex- e-xex+ e-xφ(x)= ex-e-xex + e-x )。其他符号的定义是: i t , f t , o  t , g  t 分别表示输入门,忘记门,输出门和输入调制门。 x, h, v 和 c分别 表示输入矢量,隐藏状态,图像视觉特征和存储器单元。我们建议 在更新LSTM时在每个时间步长处施加图像视觉特征 v。 W 和 b 是需要学习的权重和偏差。

我们的方法的目标是为图像生成分层标签。标签按粗到细的顺序排列,即较粗的标签出现在列表的前面。为此,我们将C  粗类和  F  细类合并  为  C  +  F  超类。对于不同的时间步长,CNN-RNN生成器将不同级别的标签作为输入,其中较粗级别的标签出现在前面的时间步长处。通过这种方式,较粗级标签可以为更精细标签的预测提供有见地的信息。程序如图4所示  。在新窗口中打开图像图4图4

CNN-RNN框架的管道

在训练阶段,CNN-RNN生成器利用groundtruth较粗级标签作为输入,并联合优化粗略和精细预测,如(8)所示。

大号ø 小号小号= - 1ñΣ我=1Ñ(Σ吨=1ŤΣĴ =1c ^+ ˚F 1 { X我吨 = Ĵ }登录pĴ)损耗=-1NΣi= 1N(σT=1TΣj= 1C + F1 { xti = j}log⁡pj)

(8)在推理阶段,当地面较粗级标签不可用时,CNN-RNN发生器首先预测当前时间步的最大似然标签,即   Wt = a r g m a xWt -1 p(Wt -1 | I ) Wt = argmaxWt-1p(Wt-1 | I) ,然后利用预测的标签作为下一个时间步的输入。

此外,我们使用CIFAR-100 [ 18 ] 上的t-SNE技术[ 43 ] 可视化不同时间步长的LSTM激活,如图5所示  。这两次激活分别用于粗略和精细预测。我们可以看到,第二个时间步的激活比第一个时间步的激活更具辨别力。在新窗口中打开图片图5图5

不同时间步长的LSTM激活的可视化。左边是用于粗标签分类的特征,而右边的特征用于精细标签分类

由于CNN-RNN生成器定义了超类别,并且它同样训练和预测超类别,因此我们不需要为不同级别的类别设计特定网络。因此,CNN-RNN生成器是健壮的,并且可以用于生成不同长度的分层标签。

4 实验

我们在三个众所周知的数据集上进行实验:CIFAR-100 [ 18 ],ImageNet 2012 [ 32 ]和ImageNet 2010的子集[ 30 ]。这三个数据集提供了分层图像标签。表1总结了三个数据集的特征  。表格1

数据集的特征,包括层次结构的深度,粗类别和精细类别的数量性能基于前1精度测量。所有实验均使用带有NVIDIA TITAN X卡的Caffe [ 16 ]库进行。

实验可分为两部分。在第一部分中,我们评估分层预测的性能。在第二部分中,我们研究了子类别分类的性能,当只有一部分训练数据标有精细标签而其余部分只有粗标签时。

4.1 分层预测

我们评估了两个广泛使用的数据集的层次结构预测:CIFAR-100 [ 18 ]和ImageNet 2012 [ 32 ]。

4.1.1  CIFAR-100

CIFAR-100包含100个类,每个类有500个训练图像和100个测试图像。这些类进一步分为20个超类。因此,每个图像都带有两个级别标签:一个精细标签(它所属的类)和一个粗标签(它所属的超类)。对于数据预处理,我们使用通道平均值和标准偏差对数据进行标准化。符号“+”表示标准数据增强,即首先在每侧填充4个像素的零填充,并从填充图像或其水平反射中随机裁剪32×32图像。

评估分层图像分类任务

基于CNN的生成器和CNN-RNN生成器被认为是实现分层图像分类任务的两种替代结构。与基于CNN的发生器相比,CNN-RNN生成器可以有效地利用分层标签的依赖性,从而实现粗略和精细类别的更好的分类性能。我们比较它们在表2中的表现  。表2

粗类别和精细类别的准确性比较。

本部分的所有评估均基于[ 25 ]中提出的CNN模型进行,因为它具有较高的培训效率和CIFAR-100的良好性能。CNN结构如图6所示  。我们采用与[ 25 ]中使用的完全相同的实验配置。在新窗口中打开图片图6图6

[ 25 ]中提出的CNN基线

可以看出,CNN-RNN发生器可以明显优于基于CNN的发生器,用于具有/不具有数据增强的粗略/精细预测。具体地,对于粗略预测,CNN-RNN发生器优于基于CNN的发生器至少5.05%,而对于精细预测,CNN-RNN发生器甚至更有利,具有超过6.7%的改进。这表明,通过利用粗略和精细类别之间的潜在关系,RNN可以正确地解决基于分层的任务。

评估传统的图像分类任务

传统的图像分类任务包括将图像分类为一个预定义的类别,而不是多个分层类别。

由于CNN-RNN发生器可以同时生成粗标签和精细标签,在这一部分中,我们进一步将其性能与“粗略特定”和“精细特定”网络进行比较。“精细特定”网络使用常见的CNN结构,该结构专门用于精细类别分类。“粗略特定”网络与“精细特定”网络共享相同的前一层,其中最后一层适合于等于粗略类别编号,例如对于CIFAR-100而言为20。

可以基于任何CNN架构来构造粗略特定的,精细特定的和CNN-RNN框架。为了使比较更加通用和令人信服,我们评估了三个网络的性能:CNN-7 [ 25 ],wrn-28-10 [ 53 ]和我们提出的更广泛的Resnet。这三个数据集的结果如表4所示  。我们可以看到,CNN-RNN可以同时生成粗略和精细标签,而无需开发两个单独的模型,两个类别的准确性都优于特定网络。以我们提出的更广泛的Resnet为例,CNN-RNN结构在粗略特定和精细特定网络上分别提高了2.85%和1.17%的粗精度和精确度。该优点表明,通过利用粗略和精细类别的潜在关系,CNN-RNN可以帮助传统的图像分类任务。表4

粗类别和精细类别的准确性比较。对于每个网络,CNN-RNN可以获得更好的结果,并且他们的结果是粗体我们对wrn-28-10 [ 53 ]的实现不能重现原始发表的结果,可能是由于平台(Torch vs Caffe)的差异,或者预处理步骤的差异(垫与原始图像与垫的反射)零)。尽管如此,通过利用CNN-RNN结构,我们仍然可以将粗精度和精确度分别提高2.8%和1.68%。

与最先进的技术进行比较

我们将更广泛的Resnet网络及其CNN-RNN变体与现有技术进行比较,如表5所示  。表5

CIFAR-100数据集上不同方法的测试误差,标准数据增强(平移/镜像)。最好的结果是大胆的

通过比较,我们进一步证明了更广泛的网络对CIFAR-100数据集的优越性,因为我们不是非常深的更宽的Resnet网络(29层)超过了具有超深层(1001层)的ResNet的性能。与具有相似深度的另一个广泛的ResNet [ 53 ] 相比,更宽的Resnet也表现出很大的改进,并且在相同平台和预处理步骤下将分类误差从25.45%显着降低到22.03%。

总的来说,我们提出的更广泛的Resnet实现了比以前的工作更好的性能,更广泛的Resnet-RNN进一步将最新技术提升到20.86%。尽管如此,我们仍在寻求在未来最先进的架构之上构建CNN-RNN框架,以提升分类性能。

4.1.2  ImageNet 2012

RNN的一个显着优点是它可以生成具有可变长度的序列。为了证明这一点,我们在广泛使用的ImageNet 2012数据集[ 32 ] 上研究了CNN-RNN框架。

ImageNet是根据WordNet层次结构组织的图像数据集[ 27 ]。它的规模和多样性比其他图像分类数据集更大。ImageNet 2012使用ImageNet的一个子集,在1000个类别中每个都有大约1300个图像。图像用不同长度的分层标签注释。总共有大约120万个训练图像和50000个验证图像。对于所有实验,我们在训练图像上训练我们的模型,并测试ImageNet 2012数据集的验证图像。

我们使用ResNet-152 [ 12 ]作为我们的CNN模型。为简单起见,预先训练的模型权重保持固定而不进行微调。对于RNN模型,我们使用1000维度进行嵌入和LSTM内存的大小。在实验过程中,我们首先将所有图像调整为224×224像素并使用ResNet-152提取最后的池特征,然后将这些特征发送到LSTM以对类别依赖性进行建模。

展示了一些示例图像的分层预测,我们可以从中观察到:首先,RNN能够生成具有不同长度的预测,并且更具体的类别将具有更多分层标签。其次,层次标签可以描述精细类别如何从更高级别的粗类别演变而来,从而可以使我们更好地理解对象。考虑例如图7中的上图 a,我们可能会对叶级标签感到困惑:'Granny Smith'。但是当提供粗级标签时,我们观察到'格兰尼史密斯'是一种苹果。第三,将图像分类为叶级别类别可能比分支级别类别更难。当我们为给定的图像错误的叶级的预测,我们仍可能会学到什么形象从粗预测描述,如图。  7湾 在新窗口中打开图片图7图7

一些示例图像的分层预测。 a  和  c  显示了一些积极的例子。 b  显示了部分错误预测的示例,例如正确的粗标签和错误的精细标签。 d  显示与(c)相同类别的例子,但它们具有完全错误的预测

4.2 从粗略类别到精细类别

在上一节中,我们研究了当所有粗标签和精细标签可用于训练数据时CNN-RNN的分级分类性能。但是,为大量训练数据注释精细标签非常昂贵,尤其是在需要专业知识时。在本小节中,我们将重点放在一个场景中,其中一部分训练数据用精细标签注释,而其余部分只有粗标签。这可以被视为弱监督学习的一个特例,并且在[ 30 ]中曾经被研究过。

我们遵循[ 30 ] 的实验设置,并在ImageNet 2010的子集上进行我们的实验。该数据集特别选择了ImageNet 2010中具有唯一父类的类,并相应地获得了143个粗类和387个精细类。减少的训练集包含487K图像,其中每个粗类具有1.4K和9.8K之间的图像,并且每个精细类具有668到2.4K图像。测试集包含21450个图像,每个粗类包含150个图像。

所有的图像特征都是从VGG-Net [ 35 ] 中提取出来的,正如[ 30 ]中的初步实验所做的那样。

评估所有培训标签可用时的分类性能

当所有粗标签和精细标签都可用时,我们可以直接在完整训练集上训练RNN,并评估测试集上的分类性能。为了更好地展示RNN的优势,我们进一步在训练集的一小部分上进行训练。此外,我们研究了为测试数据提供粗标签时,以及当我们以端到端的方式训练CNN-RNN而不是使用现成的图像功能时性能可以提高多少。作为与CNN-RNN框架的比较,我们还对ImageNet 2010子集上的VGG-Net进行了微调。

RNN:使用VGG-Net提取的图像特征训练RNN [ 35 ]; CNN:微调ImageNet 2010子集上的VGG-Net [ 35 ]; CNN-RNN:以端到端的方式联合训练VGG-Net [ 35 ]和RNN; 我们使用上标'*'来表示在预测测试阶段的精细标签时提供粗标签

我们可以注意到,对更多数据的训练可以产生更强大的RNN模型,从而可以获得更好的性能。训练有素的训练集的部分,即0.2车型相比小号  和0.4 小号,利用完整的训练集  小号  分别表现出2.18%和1.1%,同比提高。它揭示了,大型训练数据集对于训练深层模型至关重要。

与[ 30 ]中列出的其他方法相比,RNN通过固有地利用粗类和精类之间的关系实现了卓越的分类性能。值得注意的是,即使仅使用20%的训练数据,RNN也能提供更好的性能。

CNN-RNN框架的另一个优点是可以端到端地进行训练。与现有CNN功能产生的预测相比,联合训练CNN和RNN的结果显着改善,从77.27%提高到82%。它也比在ImageNet 2010子集上直接微调VGG-Net要好得多(82%对76.01%)。当为测试图像提供粗标签时,CNN-RNN达到90.69%的准确度。

在缺少部分培训用标签时评估分类性能

该 部分中的训练集  S被随机分为两个不相交的集合:  S  c  o  a  r  s  e 和  S  f  i  n  e 。 小号 Ç  Ô  一个 ř  小号 Ë 仅具有粗糙的标签,而  小号 ˚F  我 Ñ  Ë 同时具有粗和细的标签。我们变化| S  f  i  n  e |∈{0.1 | S |,0.2 | S |,0.5 | S |},以及每个  S  f  i  n  e ,我们进一步改变| S  c  o  a  r  s  e  |∈{0.1 | S |,0.2 | S |,0.5 | S |}。

对于每个培训/测试配置,我们进行三次评估:

1)小号 ˚F  我 Ñ  Ë :我们培养的RNN  小号 ˚F  我 ñ  é ,并在测试集评估;

2)小号 ˚F  我 ñ  ë  +   小号-ç Ø 一个[R小号Ë Scoarse- :首先,我们培养的RNN  小号 ˚F  我 ñ  ë ,并用它来预测的精细标签  小号 ç  Ø  一个 [R  小号 Ë 。通过这种方式,我们得到了一个新的训练集   小号-ç Ø 一个[R小号ê Scoarse- ,它同时包含粗和(预测)的罚款标签。接下来,我们利用  S  f  i  n  e 和  小号-ç ö 一个ř 小号ë Scoarse-  重新训练RNN,并在测试组评价。

3)小号 ˚F  我 Ñ  Ë  +   小号+Ç ö 一个ř 小号ë Scoarse + :我们训练RNN上  小号 ˚F  我 Ñ  Ë 和   小号+Ç ö 一个ř 小号ë Scoarse + ,并在测试组评价。  小号+Ç ö 一个ř 小号ë Scoarse +   意味着我们利用的地面实况细标签  小号 Ç  ö  一个 ř  小号 ë 。

一般而言,  小号 ˚F  我 Ñ  ë  +   小号-Ç ö 一个ř 小号ë Scoarse-   执行优于  小号 ˚F  我 Ñ  Ë ,表明即使是一些细标签数据丢失的训练的,细类型分类可以从中受益CNN-RNN结构。

由于S  f  o  a  r  s  e 的精细标签  是由在S  f  i  n  e 训练的RNN预测的  ,因此无法保证它们的准确性。因此,RNN的第二次训练可以在部分错误的标记数据集上进行。当|时,这尤其严重 S  f  i  n  e  | 是小。正如我们在图8a中所见  ,当| S  f  i  n  e  | = 0.1 | S |,分类几乎没有受益于使用  S  c  o  a  r  s  e 与仅在S  f  i  n  e 上训练的RNN相比  。

相反,当| S  f  i  n  e  | 很大,例如| S  f  i  n  e  | = 0.5 | 小号 |,我们就可以实现通过将相当大的改进  小号 ç  Ø  一个 [R  小号 Ë 。值得注意的是,当| S  f  i  n  e  | = 0.5 | S|,| S  c  o  a  r  s  e  | = 0.1 | S |,  S  f  i  n  e  +   S-c o一个ř 小号ë Scoarse-  甚至表现得比稍好 小号 ˚F 我 Ñ Ë +  小号+Ç ö 一个ř 小号ë Scoarse + ,表明在弱监督分类其巨大潜力。

我们进一步将我们的方法与NN-H-RNCMF [ 30 ]进行比较,后者也试图通过利用层次结构来改进分类。我们将粗标记数据的数量设置为| S  c  o  a  r  s  e  | = 0.5 | S |,并且变化| S  f  i  n  e  |∈{0.1 | S |,0.2 | S |,0.5 | S |},结果如表7所示  。可以看出,RNN在所有配置中都比NN-H-RNCMF表现得好得多,证明了它在利用层次关系方面的巨大潜力。表7

为测试集分类精细类别的准确性。我们将粗标记数据的数量设置为| S  c  o  a  r  s  e  | = 0.5 | S |。最好的结果是大胆的

5 结论

在本文中,我们提出将CNN和RNN集成以完成分层分类任务。CNN-RNN框架可以端到端地进行训练,并且可以建立在主要用于叶级分类的任何CNN结构之上,并且进一步促进精细类别的预测。此外,我们还研究了分类如何从粗略标记的训练数据中受益,这减轻了细粒度注释的专业和昂贵的手动过程。

目前,为了训练RNN,必须在训练集中具有分层标签。但是,这不适用于许多小型数据集。将来,我们将研究利用传统的聚类方法自动构建对象的层次结构,并使用CNN-RNN来提高一般数据集的分类性能。

技术开发 编程 技术框架 技术发展