入门 | 迁移学习在图像分类中的简单应用策略

2018 年 1 月 4 日 机器之心

选自Miguel Blog

作者:Miguel González-Fierro

机器之心编译

参与:陈韵竹、刘晓坤


迁移学习(Transfer Learning)预期将成为图像分类领域机器学习商业成就的下一驱动力。对深度网络的再利用正影响着学界和业界的走向。本文介绍了迁移学习的基本概念,以及使用迁移学习的策略。本文使用 PyTorch 代码在多个数据集中进行了实验。

 

GitHub 地址:https://github.com/miguelgfierro/sciblog_support/blob/master/A_Gentle_Introduction_to_Transfer_Learning/Intro_Transfer_Learning.ipynb


为什么使用迁移学习?


根据 Coursera 联合创始人、斯坦福副教授吴恩达介绍,迁移学习(Transfer Learning)将会成为机器学习商业成就的下一驱动力。


迁移学习是一种机器学习技术,允许在特定的数据集上再利用已训练的卷积神经网络(CNN),并将其调整或迁移到其他数据集。之所以要复用已经训练的 CNN,是因为训练时间太长。例如,在 4 个英伟达 K80 GPU 中将 ResNet18 训练 30 个 epoch 需要 3 天的时间;而在同样的 GPU 上将 ResNet152 训练 120 个 epoch 需要 4 个月。


迁移学习策略


总体而言,迁移学习有两种策略,不过我还没有看到关于命名的最终一致意见。微调(finetuning)——其中包括使用基础数据集上的预训练网络以及在目标数据集中训练所有层;冻结与训练(freeze and train)——其中包括冻结除最后一层的所有层(权重不更新)并训练最后一层。也可以冻结前面几层,然后微调其余层,这是由于一些证据表明 CNN 的前几层包含纹理过滤器(texture filter)和色彩斑点(color blob)。但是,我们这里的工作只分析两种极端情况:训练所有层,以及只训练最后一层。


最常见的基本数据集是 ImageNet,它包含 120 万个图像、1000 个类别。这些类别主要被分为两大类:动物和物体。每个类别的图像数量大约为 1000 个。大多数深度学习库都提供在 ImageNet 上预训练的 CNN 模型。


在下图中,我们可以看到上述提到的两种迁移学习策略。我们在 ImageNet 上使用了一个预训练的 CNN,并将 Simpsons 数据集的子集 Homer Simpson 作为目标集,用该网络对其进行分类。这个子集包含 20 个类,每个类有 300-1000 个图像。


然后,我们可以使用冻结与训练,只训练最后一层(如图上方所示);或者微调所有层(如图下方所示)。



微调 VS 冻结


我们很难知道在何种情况下应该只训练最后一层,在何种情况下应该微调网络。在「How transferable are features in deep neural networks?」(Yosinsky et. al., 2014) 中,作者解决了在 ImageNet 数据集中量化 CNN 特定层普适程度的问题。他们发现,由于层的相互适应,可迁移性会受到中间层分裂的负面影响。随着任务性质差异的增加,可迁移性的差距会逐渐增长。最终他们发现,通过权重迁移进行网络初始化,而非从零权重开始训练,能够提高泛化性能。


正如 Karpathy 的深度学习教程中指出的,以下是在不同场景中对新数据集使用迁移学习的一些指导原则:


  • 小目标集,图像相似:当目标数据集与基础数据集相比较小,且图像相似时,建议采取冻结和训练,只训练最后一层。

  • 大目标集,图像相似:建议使用微调。

  • 小目标集,图像不同:建议采取冻结和训练,训练最后一层或最后几层。

  • 大目标集,图像不同:建议使用微调。


在实验中,我们使用了有限的几个数据集,以及一个小型网络 ResNet18,所以是否能将结果推广到所有数据集和网络还言之尚早。但是,这些发现可能会对何时使用迁移学习这一问题提供一些启示。以下是结果的总结:



我们观察到的第一个细节是,相比色度数据集而言,训练灰度数据集准确率会下降。这与其他文章作者观察一致,即基础数据集和目标数据集之间的域差异越大,迁移效果越差。


我们同样发现,对于 Simpson 和 Caltech256 数据集而言,冻结会使得准确率大大下降。这在 Simpson 数据集中可以理解,原因可能是域的区别太大了:在 ImageNet 中都是自然图像,但在 Simpson 中大多数都是素色的。在 Caltech 数据集中,除了在冻结时产生的准确率下降,我们最先观察到的是它本身只具有很低的准确率。这可能是因为,对于涵盖很多类别的数据集,每个类别的图像太少了,大约每个类只有几百个而已。


猫狗(dogs vs cats)数据集的域和 ImageNet 最接近。事实上,ImageNet 中就包含着几个品种的猫和狗。在这种情况下,微调和冻结没有多大差别。


最后,在膜翅目昆虫(hymenoptera)数据库中,我们发现,在冻结时,色度数据集有一点小改善。这可能是因为域很靠近,且数据集比较小。在膜翅目昆虫灰度数据库中,冻结就没有改善,这很可能是由于域的差异。


原文地址:https://miguelgfierro.com/blog/2017/a-gentle-introduction-to-transfer-learning-for-image-classification/



本文为机器之心编译,转载请联系本公众号获得授权

✄------------------------------------------------

加入机器之心(全职记者/实习生):hr@jiqizhixin.com

投稿或寻求报道:content@jiqizhixin.com

广告&商务合作:bd@jiqizhixin.com


登录查看更多
7

相关内容

迁移学习(Transfer Learning)是一种机器学习方法,是把一个领域(即源领域)的知识,迁移到另外一个领域(即目标领域),使得目标领域能够取得更好的学习效果。迁移学习(TL)是机器学习(ML)中的一个研究问题,着重于存储在解决一个问题时获得的知识并将其应用于另一个但相关的问题。例如,在学习识别汽车时获得的知识可以在尝试识别卡车时应用。尽管这两个领域之间的正式联系是有限的,但这一领域的研究与心理学文献关于学习转移的悠久历史有关。从实践的角度来看,为学习新任务而重用或转移先前学习的任务中的信息可能会显着提高强化学习代理的样本效率。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
最新《多任务学习》综述,39页pdf
专知会员服务
263+阅读 · 2020年7月10日
基于小样本学习的图像分类技术综述
专知会员服务
148+阅读 · 2020年5月6日
【教程】自然语言处理中的迁移学习原理,41 页PPT
专知会员服务
95+阅读 · 2020年2月8日
零样本图像分类综述 : 十年进展
专知会员服务
126+阅读 · 2019年11月16日
【教程】TensorFlow2 最新迁移学习教程和实战
简单到出人意料的CNN图像分类策略
机器学习算法与Python学习
4+阅读 · 2019年2月14日
入门 | 从VGG到NASNet,一文概览图像分类网络
机器之心
6+阅读 · 2018年4月2日
使用SSD进行目标检测:目标检测第二篇
专知
29+阅读 · 2018年1月28日
【迁移学习】简述迁移学习在深度学习中的应用
产业智能官
15+阅读 · 2018年1月9日
【迁移学习】迁移学习在图像分类中的简单应用策略
入门 | 简述迁移学习在深度学习中的应用
机器之心
5+阅读 · 2018年1月5日
迁移学习在图像分类中的简单应用策略
炼数成金订阅号
4+阅读 · 2018年1月4日
迁移学习在深度学习中的应用
专知
23+阅读 · 2017年12月24日
入门 | 半监督学习在图像分类上的基本工作方式
机器之心
3+阅读 · 2017年12月23日
Arxiv
5+阅读 · 2020年3月17日
Meta-Transfer Learning for Zero-Shot Super-Resolution
Arxiv
43+阅读 · 2020年2月27日
Few-shot Adaptive Faster R-CNN
Arxiv
3+阅读 · 2019年3月22日
Meta-Transfer Learning for Few-Shot Learning
Arxiv
8+阅读 · 2018年12月6日
Arxiv
3+阅读 · 2018年6月1日
Arxiv
8+阅读 · 2018年1月12日
Arxiv
4+阅读 · 2016年12月29日
VIP会员
相关资讯
【教程】TensorFlow2 最新迁移学习教程和实战
简单到出人意料的CNN图像分类策略
机器学习算法与Python学习
4+阅读 · 2019年2月14日
入门 | 从VGG到NASNet,一文概览图像分类网络
机器之心
6+阅读 · 2018年4月2日
使用SSD进行目标检测:目标检测第二篇
专知
29+阅读 · 2018年1月28日
【迁移学习】简述迁移学习在深度学习中的应用
产业智能官
15+阅读 · 2018年1月9日
【迁移学习】迁移学习在图像分类中的简单应用策略
入门 | 简述迁移学习在深度学习中的应用
机器之心
5+阅读 · 2018年1月5日
迁移学习在图像分类中的简单应用策略
炼数成金订阅号
4+阅读 · 2018年1月4日
迁移学习在深度学习中的应用
专知
23+阅读 · 2017年12月24日
入门 | 半监督学习在图像分类上的基本工作方式
机器之心
3+阅读 · 2017年12月23日
相关论文
Arxiv
5+阅读 · 2020年3月17日
Meta-Transfer Learning for Zero-Shot Super-Resolution
Arxiv
43+阅读 · 2020年2月27日
Few-shot Adaptive Faster R-CNN
Arxiv
3+阅读 · 2019年3月22日
Meta-Transfer Learning for Few-Shot Learning
Arxiv
8+阅读 · 2018年12月6日
Arxiv
3+阅读 · 2018年6月1日
Arxiv
8+阅读 · 2018年1月12日
Arxiv
4+阅读 · 2016年12月29日
Top
微信扫码咨询专知VIP会员