原文: Large Scale Fine-Grained Categorization and Domain-Specific Transfer Learning

概要

通过微调从大规模数据集(如ImageNet)中学习知识,为特定领域的细粒度视觉分类(fgvc,fine-grained visual categoriza- tion)任务(如识别鸟类或汽车品牌和模型)提供了有效的解决方案。在这种情况下,数据标注经常会需要专门的领域知识,因此数据集很难扩大规模。在本文工作中,我们首先要解决一个FGVC任务的大规模数据集问题。我们的方法在iNaturalist2017大规模物种分类挑战中获得第一名。我们的方法成功的核心是使用更高的用来训练的图像分辨率和处理训练数据的长尾分布。接下来,我们通过研究迁移学习从大规模数据集微调到小规模的,特定领域的FGVC数据集。我们提出了通过Earth Mover的距离进行域相似性估算方法,,并证明转移学习可以从与此目标域类似的源域上的预训练中获益。我们提出的转移学习优于ImageNet预训练,并在多个常用的FGVC数据集上获得最出色的结果

介绍

细粒度视觉分类(fgvc)旨在区分从属视觉类别。例如,识别自然分类,如鸟类、狗和植物的种类,或人工分类,如汽车制造和模型。一个成功的FGVC模型应该能够区分细微的类别差异,这是一个巨大的挑战,但是这个模型设计为其它应用提供了参考,丰富的图像字幕,图像生成,机器教学等应用。

卷积神经网络的最新进展视觉识别(CNN)推动了FGVC的显着进步。一般而言,为了在CNN上实现相当好的性能,需要训练具有大量监督的网络数据。 但是,收集标记的细粒度数据集,需要专家级的领域知识,因此很难扩大规模。所以,常用的FGVC数据集相对较小,通常包含大约10k个标记的训练图像。在这种情况下,通常采用微调使用如ImageNet这样的大数据集预训练的网络的方法。

这种常见的用法提出了两个问题:1)什么是在大规模FGVC数据集上取得良好性能的重要因素? 虽然其他大规模通用视觉 像ImageNet这样的数据集包含一些细粒度的类别,它们的图像通常是标志性的Web图像包含中心的对象,具有相似的比例和简单背景。 随着大规模的有限可用性FGVC数据集,如何设计表现良好的模型对于具有细粒度类别的大型非标志性图像仍然是一个不发达的领域。 2)怎么样通过在大规模数据集上先进行训练,然后有效地进行迁移学习,对其进行微调在特定领域的细粒度数据集? 现代FGVC绝大多数方法使用ImageNet预训练网适用于微调。鉴于目标细粒度域已知,我们可以做得比ImageNet更好吗?

本文旨在回答两个上述问题,关于最近iNaturalist 2017年推出大规模细粒度数据集(INAT)。iNat包含来自5,089个细粒度类别的675,170个训练和验证图像。所有图像都是在自然条件下拍摄的不同的物体尺度和背景。因此,INAT提供了一个很好的机会,探讨背后的如何训练神经网络上在大规模FGVC上表现良好的关键因素。 在此外,与ImageNet一起,iNat使我们能够学习在大规模数据集上学习的知识转移到小规模的细粒度域。

在这项工作中,我们首先提出了一个训练计划,使用大规模细粒度分类,在iNat上达到最高分数。与ImageNet不同,iNat中的图像具有更高的分辨率和广泛的物体尺度。iNat上的性能可以是在输入图像分辨率较高的情况下,明显的提高 我们在本文中讨论的另一个问题是长尾分布问题,其中一些类别具有大部分的图片。为了解决这个问题,我们提出了一个简单的问题有效的方法。我们的想法是从中学习好的功能大量的训练数据,然后微调更均匀分布的子集,以平衡网络的效果。我们的实验结果显示在,揭示我们可以大大改善代表性不足的类别和实现更好的整体表现。

其次,我们研究如何从知识转移在大规模数据集上学到了小规模的细粒度域。数据集通常在内容和风格统计方面存在偏差。 在CUB200 Birds ,iNat预训练的网络比ImageNet表现得更好 预先训练好的; 而在Stanford-Dogs,ImageNet预先训练好的网络可以提高性能。这是因为iNat中有更多视觉上相似的鸟类和ImageNet中的狗类别。鉴于此,我们提出了一种测量基于陆地移动距离的源和目标域的图像级视觉相似性的的新方法。通过微调基于我们提出的选定子集训练的网络域相似性,我们实现了更好的转移学习ImageNet预训练和最先进的细粒度数据集的最新结果。 图1给出了一个解释图。

我们相信,我们对大规模FGVC和特定领域转移学习的研究可以为研究类似问题的研究人员提供有用的指导。

相关工作

最近的FGVC方法通常将有用的细粒度信息结合到CNN中并对端到端的网络进行训练。值得注意的是,二阶双线性特征相互作用被证明是非常有效的。这个想法后来扩展到紧凑的双线性池化,然后是更高阶的相互作用.为了捕捉微妙的视觉差异,经常使用视觉注意和深度量学习。 除了像素,我们还利用其他信息,包括部分,属性,人类交互和文本描述。 处理缺乏训练数据,可以收集额外的网络图像以增加原始数据集。我们的方法与它们的不同之处在于,在不收集新数据的情况下,在现有的大规模数据集上预训练网络.
使用高分辨率图像进行fgvc已经变得越来越流行。在图像网视觉识别方面也有类似的趋势,从Alexnet最初的224×224到最近提出的NASNET中的331×331。然而,目前还没有像本文所做的那样系统地研究图像分辨率对大规模细粒度数据集的影响。
如何处理长尾分布是现实数据中的一个重要问题。然而,这是一个相当未开发的领域,主要是因为常用的基准数据集经过预处理后接近均匀分布。vanHorn等人指出,尾部类别的表现要比头部类别的表现差得多,后者有足够的训练数据。我们提出了一个简单的两步训练方案来处理长尾分布,在实践中效果很好。
通过直接使用预训练网络作为特征提取器或微调网络,在ImageNet上训练的卷积神经网络(CNN)已广泛用于迁移学习。由于使用预先训练的CNN进行转移学习取得了显着成功,因此在理解迁移学习方面做了大量工作。特别是,一些先前的工作不精确地证明了转移学习和领域相似性之间的联系。例如,两个随机分割之间的迁移学习比ImageNet中的自然/人造对象分割更容易[64];手动添加所有可用类中的512个附加相关类别,改进了PASCAL VOC上常用的1000个ImageNet类;从组合的ImageNet和Places数据集转移可以在视觉识别任务列表中产生更好的结果。 Azizpour等人对与原始ImageNet分类任务具有不同相似性的迁移学习任务列表进行了有用的研究(例如,图像分类被认为比实例检索更相似等)。我们的工作之间的主要差异有两方面:首先,我们提供了一种方法来量化源域和目标域之间的相似性,然后从源域中选择更相似的子集以实现更好的迁移学习。其次,他们都使用预先训练的CNN作为特征提取器,并且仅训练最后一层或在提取的特征上使用线性SVM,而我们微调网络的所有层。

大规模细粒度分类

在本节中,我们将介绍我们的训练计划-- 在充满挑战的2017年数据集iNaturalist上取得最佳成绩 ,尤其是使用更高的分辨率的图像 和处理长尾分布的处理。

图像分辨率的影响

在训练CNN时,为了便于网络设计和 批量训练,输入图像通常是预处理的 为一定大小的正方形。 每个网络架构 通常有一个默认的输入大小。 例如,AlexNet 和VGGNet采用224×224的默认输入大小 并且这个默认输入大小不容易改变 - 在卷积需要之后导致完全连接的层 固定大小的要素图。 最近的网络包括 ResNet和Inception是完全卷积的,最后有全局平均池化。 此设计使网络能够接收输入 任意大小的图像。 采用具有不同分辨率的图像 在网络内引入了不同下采样大小的特征图 。
分辨率较高的输入图像通常包含 更丰富的信息和细微的细节 视觉识别,特别是对于FGVC。 因此, 更高分辨率的输入图像产生更好的性能 。 对于在ImageNet上优化的网络,有一个 使用具有更高分辨率的输入图像的趋势 :从最初的224×224在AlexNet [33]到 331×331最近提出的NASNet [72],如图所示 表3.然而,来自ImageNet的大多数图像都有一个 分辨率为500×375并包含相似尺度的物体, 限制我们可以从使用更高分辨率获得的好处。 我们探索使用范围广泛的效果 在iNat中输入图像大小从299×299到560×560 数据集,高分辨率输入显示出更高的性能。

长尾分布

现实世界图像的统计数据是长尾的:少数 类别具有很强的代表性,并且具有大部分 图像,而大多数类别很少被观察到, 只有几张图片。这与流行的基准数据集中的均匀图像分布形成鲜明对比,例如ImageNet [12],COCO [34]和CUB200 [58]。

由于iNaturalist数据集[55]中各类别的图像数量高度不平衡,我们发现在代表性不足的尾部类别上表现不佳。 我们认为这主要是由两个原因引起的:1)缺乏训练数据。 iNat训练集中大约1,500个细粒度类别的图像少于30个。 2)训练期间遇到的极端不平衡:最大类和最小类中的图像数之间的比率约为435.没有对训练图像进行任何重新采样或重新加权损失,具有更多图像的类别 头部将主导那些尾巴。 由于我们在第一期缺乏训练数据方面做得很少,我们提出了一种简单有效的方法来解决第二类不平衡问题。

训练分为两个阶段。 在第一阶段,我们像往常一样在原始不平衡数据集上训练网络。 利用来自所有类别的大量训练数据,网络可以获得良好的特征表示。 然后,在第二阶段,我们使用较少的学习对包含更平衡数据的子集进行微调 率。 我们的想法是慢慢转移学习的功能,让网络在所有类别之间重新平衡。 图2显示了我们分别在第一阶段训练的iNat训练集和第二阶段训练的子集中的图像频率分布。 第二节的实验 5.2验证所提出的策略可以提高整体性能,特别是对于代表性不足的尾部类别。

迁移学习

本节描述了从大型数据集上训练的网络到小型细粒度数据集的迁移学习。介绍了一种测量两个域之间视觉相似性的方法,并给出了在给定目标域的情况下,如何从源域中选择一个子集。

域相似度

假设我们有一个源域S和一个目标域T.我们定义两个图像之间的距离s∈S和t∈T作为它们的特征表示之间的欧几里德距离:

d(s, t) = ||g(s) − g(t)||      (1)
复制代码

其中g(·)表示图像的特征抽取器。为了更好地捕获图像相似性,特征抽取器g(·)需要能够以一种通用的、无偏见的方式从图像中提取高级信息。因此,在我们的实验中,我们g(·)使用在大规模JFT数据集上训练的Resnet-101的倒数第二层的特征。

通常,使用更多图像会产生更好的迁移学习。 为简单起见,在本研究中,我们忽略了域规模(图像数量)的影响。 具体来说,我们规范化源域和目标域中的图像数量。 由陈等人研究。 [49],迁移学习绩效与训练数据量呈对数增加。 这表明,当我们已经具有足够大的数据集(例如,ImageNet)时,由于使用更多训练数据而导致的转移学习中的性能增益将是微不足道的。 因此,忽略域规模是一个合理的假设,可以简化问题。 我们对域相似性的定义可以概括为通过添加比例因子来考虑域规模,但我们发现忽略域规模在实践中已经很好地运行。

在这种假设下,转移学习可以被视为将一组图像从源域S移动到目标域T.需要通过将图像移动到另一个图像来完成的工作可以被定义为它们在等式1中的图像距离。 然后,两个域之间的距离可以定义为所需总工作量的最小值。 域相似性的这种定义可以通过地球移动器的距离(EMD)来计算。

为了使计算更容易处理,我们进一步进行了额外的简化,以通过其特征的平均值来表示类别中的所有图像特征。 形式上,我们将源域表示为且目标域为,其中是S中的第i类,是 该类别中的标准化图像数量; 类似地,对于T中的。 m和n分别是源域S和目标域T中的类别总数。 我们归一化了图像总数,我们得到表示来自源域的类别i中的图像特征的平均值,类似于目标中的域。 S和T之间的距离定义为他们的陆地移动距离(EMD),表示为:


其中, 最优流对应于通过求解EMD优化问题的总工作量的最小值。 最后,域相似性定义为


其中γ在所有实验中设定为0.01。 图3示出了通过EMD计算所提出的域相似性。

源域选择

我们在公式2中定义了域相似性,这样就可以从源域中选择一个更类似于目标域的子集。我们使用贪婪的选择策略,在源域中逐步包含最相似的类别。也就是说,对于源域中的每个类别,我们通过以下公式计算其与目标域的域相似性:,如公式3中所定义。然后选择具有最高域相似性的前K类。注意,虽然这种贪婪的选择方式不能保证从域相似性的角度来选择K大小子集的最优性,但我们发现这种简单的策略在实践中很有效。

实验

实验设置

数据集

  • iNaturalist 2017.

  • ImageNet.

  • Fine-Grained Visual Categorization.

网络结构

我们使用3种网络类型:ResNet,Inception,SENet

  • Residual Network (ResNet).
    最初由He等人引入,残差连接的网络极大地减少了优化困难,并使更深层网络的训练成为可能。重新建立的网络后来得到了改进。通过使用身份映射作为skip con的预激活残差模块之间的连接。我们使用最新的带有50、101和152层的Resnet版本

  • Inception.
    Inception模块首先由Szegedy等人提出。在Googlenet中,设计用于在参数和计算方面非常有效,同时实现最先进的性能。然后使用批标准化、因子分解卷积和剩余连接进一步优化初始模块,我们在实验中使用Inception- v3 , Inception-v4 和 Inception-ResNet-v2。

  • Squeeze-and-Excitation (SE)
    最近由Hu等人提出。S模块在ILSVRC2017中获得了最佳性能。SE模块通过空间平均池挤压来自特征图的响应,然后学习重新缩放特征图的每个通道。由于SE模块设计简单,几乎可以在任何现代网络中使用,以提高性能,而无需额外开销。我们使用inception-v3 SE和inception-resnet-v2 SE作为基线。

对于所有网络架构,我们严格遵循其原始设计,但替换了最后一个线性分类层,以匹配数据集中的类别数。

实现

我们使用开源TensorFlow[2]在多个Nvidia Tesla K80 GPU上异步实现和训练所有模型。在训练过程中,将输入图像从原始图像中随机剪切,并通过比例和纵横比增大重新调整为目标输入尺寸。我们使用rmsprop优化器对所有网络进行了训练,动量为0.9,批量大小为32。9次学习率设为0.045,每2个时期后指数衰减0.94;对于迁移学习中的微调,每4个时期后学习率衰减0.94,初始学习率降低到0.0045。我们还使用了标签平滑。在推理过程中,原始图像被中心裁剪并重新调整为目标输入大小。

大规模细粒度分类

为了验证所提出的大规模细粒度分类学习方案,我们对iNaturalist 2017数据集进行了大量的实验。为了获得更好的性能,我们从ImageNet预训练的网络中进行微调。如果从头开始训练INAT,前5个错误率≈1%更差。 我们训练了具有3种不同输入分辨率(299、448和560)的Inception-v3。图像分辨率的影响如表3所示。从表中可以看出,使用更高的输入分辨率可以在INAT上获得更好的性能。 我们提出的处理长尾分布的微调方案的评估如图4所示。通过对学习率较小的更平衡子集(我们的实验中为10-6)进行进一步微调,可以获得更好的性能。表4显示了通过微调对头部和尾部类别进行的性能改进。训练图像大于或等于100的头部类别的改善率分别为前1名的1.95%和前5名的0.92%;而训练图像小于100的尾部类别的改善率分别为前1名的5.74%和前5名的2.71%。这些结果验证了所提出的微调方案大大改善了表现不足的尾翼类的性能。

表5给出了我们在2017年iiNaturalist挑战赛中获胜的详细表现分类。使用更高的图像分辨率和对更平衡的子集进行进一步微调是我们成功的关键。

域相似性和迁移学习

我们通过对源域上的网络进行从头开始的预训练,然后对目标域进行微调,从而对所提出的传输学习方法进行评估,以实现细粒度的可视化分类。除了在Imagenet和INAT上分别进行训练外,我们还在一个组合的Imagenet+INAT数据集上训练网络,该数据集包含来自6089个类别的1946640个训练图像(即,来自Imagenet的1000个和来自INAT的5089个)。所有网络均采用299×299的输入尺寸。表6显示了在IMAGENET VAL和INAT MiniVAL上评估的训练前绩效。值得注意的是,在组合的IMAGENET+INAT数据集上训练的单个网络与单独训练的两个模型相比,具有竞争性的性能。总的来说,在开始和开始SE的情况下,联合训练优于单独训练,而在resnet的情况下则更糟。基于SEC中定义的建议域选择策略。4.2,我们从组合的IMAGENET+INAT数据集中选择以下两个子集:A子集是通过包含7个FGVC数据集的前200个IMAGENET+INAT类别来选择的。删除重复的类别会导致源域包含832个类别。B子集是通过增加CUB200、Nabirds、Stanford Dogs前100个类别和Stanford Cars and Aircraft前50个类别中最相似的400个类别来选择的,总共给我们提供了585个类别。图6显示了根据我们提出的域相似性计算的所有fgvc数据集在imagenet+inat中最相似的10个类别。很明显,对于cub200、flowers-102和nabirds来说,最相似的分类来自于inat;而对于斯坦福狗、斯坦福汽车、飞机和food101来说,最相似的分类来自于imagenet。这表明IMAGENET和INAT中的数据集偏差很大。

表7显示了通过微调细粒度数据集上的inception-v3实现的迁移学习性能。我们可以看到IMAGENET和INAT都有很大的偏差,在目标数据集上实现了显著不同的迁移学习性能。有趣的是,当我们迁移在组合的imagenet+inat数据集上训练的网络时,性能介于imagenet和inat预训练之间,这表明我们不能通过简单地使用更大规模的组合源域在目标域上实现良好的性能。

此外,在图5中,我们展示了迁移学习性能与我们提出的领域相似性之间的关系。当从更相似的源域微调时,我们观察到更好的转移学习性能,除了food101,在该源域上转移学习性能几乎与域相似性变化保持一致。我们认为这很可能是因为Food101中有大量的训练图像(每节课750张训练图像)。因此,目标域包含足够的数据,因此迁移学习几乎没有帮助。在这种情况下,我们忽略域规模的假设不再有效。

从表7和图5可以看出,所选子集B在所有fgvc数据集中都取得了良好的性能,在cub200和nabirds上大大超过了imagenet预培训。在表8中,我们将我们的方法与现有的fgvc方法进行了比较。结果表明,所提出的转移学习方法在常用的fgvc数据集上具有最先进的性能。注意,由于我们对域相似性的定义计算速度很快,所以我们可以轻松地探索选择源域的不同方法。在不进行任何预训练和微调的情况下,可以直接根据域相似性来估计迁移学习性能。在我们的工作之前,在fgvc任务上获得良好性能的唯一选择是基于ImageNet微调设计更好的模型,或者通过收集更多的图像来增强数据集。然而,我们的工作提供了一个新的方向,即使用更相似的源域对网络进行预训练。我们表明,在源域中选择适当的子集后,只需对现成的网络进行微调,就可以匹配或超过这些性能增益。

结论

在这项工作中,我们提出了一个训练方案,通过使用高分辨率的输入图像和微调来处理长尾分布,从而在大规模非自然数据集上获得最佳性能。我们进一步提出了一种新的获取与地球运动距离域相似性的方法,表明从更相似的域进行微调可以获得更好的转移学习性能。未来,我们计划研究领域相似性之外的其他重要因素。

致谢。这项工作部分得到了谷歌重点研究奖的支持。我们要感谢谷歌的同事们提供的有益的讨论。

转载于:https://juejin.im/post/5cdbc10fe51d45379a16433c

大规模细粒度分类和特定领域的迁移学习相关推荐

  1. 竞赛:汽车领域多语种迁移学习挑战赛(科大讯飞)

    目录 一.赛事背景 二.赛事任务 三.评审规则 1.数据说明 2.评估指标 四.准备阶段 1.报名比赛 2.查看训练集和测试集字段类型 五.文本分析与文本分词 1.使用jieba对中文进行分词 2.使 ...

  2. 【练一下2】汽车领域多语种迁移学习挑战赛[2022.7.8]

    文章目录 任务1:报名比赛 步骤1:报名比赛http://challenge.xfyun.cn/topic/info?type=car-multilingual&ch=ds22-dw-zmt0 ...

  3. 汽车领域多语种迁移学习挑战赛-Coggle 30 Days of ML

    前言 依然是coggle的7月竞赛学习活动,本博客围绕着汽车领域多语种迁移学习挑战赛展开. 比赛地址:http://challenge.xfyun.cn/topic/info?type=car-mul ...

  4. NLP竞赛参与打卡记录:汽车领域多语种迁移学习挑战赛

    NLP竞赛参与打卡记录:汽车领域多语种迁移学习挑战赛 本博客为Coggle 30 Days of ML(22年7月)竞赛打卡活动记录页面,会记录本人的打卡内容.活动链接为:活动链接 任务1:比赛报名 ...

  5. 4个计算机视觉领域用作迁移学习的模型

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|AI公园 导读 使用SOTA的预训练模型来通过迁移学习解决 ...

  6. keras提取模型中的某一层_Keras做图片分类(四):迁移学习--猫狗大战实战

    本项目数据集来自kaggle竞赛,地址: https://www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition/data 数据的训练集放在train文 ...

  7. 【Coggle 30 Days of ML】汽车领域多语种迁移学习挑战赛(4)

    目录 任务 Just Do It! 1.Bert模型入门 1.1前置知识 1.2导入预训练模型 1.3训练数据处理 1.4数据及读取及模型定义 2.Bert文本分类 2.1开始读取数据集 2.2加载模 ...

  8. 【Coggle 30 Days of ML】汽车领域多语种迁移学习挑战赛(2)

    目录 任务 Just Do It! 1.中文分词:jieba ​编辑 2.日语分词:nagisa 任务 任务2:文本分析与文本分词 步骤1:使用jieba对中文进行分词: 步骤2:使用negisa对日 ...

  9. 【综述】NLP领域迁移学习现状

    跟着博主的脚步,每天进步一点点 NAACL 2019 tutorial 完整呈现 翻译 | 栗 峰 校对 | 杨晓凡 在过去一年多的时间里,以预训练模型形式进行的迁移学习已经成为NLP领域的主流,许多 ...

最新文章

  1. opencv 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突
  2. Docker学习笔记之二,基于Dockerfile搭建JAVA Tomcat运行环境
  3. 科来网络分析系统概要介绍
  4. 8086存储器编址 和 I/O编址
  5. SQLServer如何删除字段中的某个字符串,或者替换为空格?
  6. 洛谷 - P4197 Peaks(Kruskal重构树+dfs序+主席树)
  7. 美国安全厂商在云安全上的最新进展
  8. 警惕开源代码库中的安全隐患
  9. linux dd 硬盘 脚本,如何使用dd命令测试Linux磁盘的读写速度
  10. 后端用的nodejs怎么打包_你怎么也想象不到,平板玻璃、玻璃瓶这些竟可以用PET塑钢带打包!...
  11. Altium AD20导出为PDF、导出BOM表
  12. mysql删除myisam表数据影响_Mysql 下 Myisam表delete 后 数据恢复问题
  13. 杰理之串口通讯之AT指令集【篇】
  14. callmode php_phper必须了解的php常识
  15. lay-ui treeTable无限折叠
  16. 参数估计与假设检验—拒绝域的数学证明(手写)
  17. linux查看pro文件,Linux下.pro文件的写法简介
  18. pygame 游戏开发
  19. Swift macOS NSTextField 响应键盘按键 Enter 回车键,或者其它按键
  20. mongod 启动 Illegal instruction (core dumped)

热门文章

  1. ORA-12504:TNS:监听程序在CONNECT_DATA中未获得SERVICE_NAME
  2. varnish4.0简介
  3. NSDate的使用方便的分类(提供判断是否为今天,昨天,今年的方法)
  4. 每天学一点flash(76)百度MP3音乐APi接口使用
  5. Linux服务笔记之一:Telnet远程登录
  6. Gitter - 高颜值GitHub小程序客户端诞生记 1
  7. B站智能防挡弹幕的一种python实现
  8. macOS U盘烧录Linux iso镜像
  9. java.sql.SQLException
  10. 什么是Hadoop,怎样学习Hadoop