选自MachineLearningMastery
作者:Jason Brownlee
机器之心编译
参与:Nurhachu Null、刘晓坤
本文介绍了迁移学习的基本概念,以及该方法在深度学习中的应用,引导构建预测模型的时候使用迁移学习的基本策略。
迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。
深度学习中在计算机视觉任务和自然语言处理任务中将预训练的模型作为新模型的起点是一种常用的方法,通常这些预训练的模型在开发神经网络的时候已经消耗了巨大的时间资源和计算资源,迁移学习可以将已习得的强大技能迁移到相关的的问题上。
读完本文,你将学会如何使用迁移学习来加速训练过程,提升深度模型的性能。
读完本文之后,你会了解以下内容:
什么是迁移学习?如何使用它?
迁移学习在深度学习中的简单例子。
什么时候可以在你自己的预测模型问题中使用迁移学习。
什么是迁移学习?
迁移学习是一种机器学习的方法,指的是一个预训练的模型被重新用在另一个任务中。
迁移学习和域适应指的是在一种环境中学到的知识被用在另一个领域中来提高它的泛化性能。
——《深度学习》,第 526 页
迁移学习与多任务学习以及概念飘移这些问题相关,它不是一个专门的机器学习领域。
然而,迁移学习在某些深度学习问题中是非常受欢迎的,例如在具有大量训练深度模型所需的资源或者具有大量的用来预训练模型的数据集的情况。仅在第一个任务中的深度模型特征是泛化特征的时候,迁移学习才会起作用。
在迁移学习中,我们首先在一个基础数据集和基础任务上训练一个基础网络,然后我们再微调一下学到的特征,或者说将它们迁移到第二个目标网络中,用目标数据集和目标任务训练网络。如果特征是泛化的,那么这个过程会奏效,也就是说,这些特征对基础任务和目标任务都是适用的,而不是特定的适用于某个基础任务。
——论文《How transferable are features in deep neural networks?》(https://arxiv.org/abs/1411.1792)
深度学习中的这种迁移被称作归纳迁移。就是通过使用一个适用于不同但是相关的任务的模型,以一种有利的方式缩小可能模型的搜索范围。
归纳学习的解释
如何使用迁移学习
你可以在自己的预测模型问题上使用迁移学习。
以下是两个常用的方法:
开发模型的方法
预训练模型的方法
开发模型的方法
选择源任务。你必须选择一个具有丰富数据的相关的预测建模问题,原任务和目标任务的输入数据、输出数据以及从输入数据和输出数据之间的映射中学到的概念之间有某种关系,
开发源模型。然后,你必须为第一个任务开发一个精巧的模型。这个模型一定要比普通的模型更好,以保证一些特征学习可以被执行。
重用模型。然后,适用于源任务的模型可以被作为目标任务的学习起点。这可能将会涉及到全部或者部分使用第一个模型,这依赖于所用的建模技术。
调整模型。模型可以在目标数据集中的输入-输出对上选择性地进行微调,以让它适应目标任务。
预训练模型方法
选择源模型。一个预训练的源模型是从可用模型中挑选出来的。很多研究机构都发布了基于超大数据集的模型,这些都可以作为源模型的备选者。
重用模型。选择的预训练模型可以作为用于第二个任务的模型的学习起点。这可能涉及到全部或者部分使用与训练模型,取决于所用的模型训练技术。
调整模型。模型可以在目标数据集中的输入-输出对上选择性地进行微调,以让它适应目标任务。
第二种类型的迁移学习在深度学习领域比较常用。
深度学习中使用迁移学习的例子
下面用两个常见的例子具体介绍一下深度学习模型中的迁移学习。
使用图像数据进行迁移学习
在使用图像作为输入的预测建模问题中应用迁移学习是很常见的,其中使用图像或视频作为输入。
对于这种类型的问题而言,使用为大规模的挑战性图像数据集预训练的模型是很常见的做法,例如 ImageNet(1000 类图像分类挑战赛的数据集)。
为这个竞赛开发模型的研究组织通常会将最终模型发布出来,并且具备重新使用的许可。这些模型的训练一般会耗费几天到几星期不等的时间,这取决于所用的硬件环境。
这些模型可以直接下载到,它们将图像作为输入。
以下是这种类型的模型的三个例子:
牛津 VGG 模型(http://www.robots.ox.ac.uk/~vgg/research/very_deep/)
谷歌 Inception 模型(https://github.com/tensorflow/models/tree/master/inception)
微软 ResNet 模型(https://github.com/KaimingHe/deep-residual-networks)
可以在 Caffe Model Zoo(https://github.com/BVLC/caffe/wiki/Model-Zoo)中找到更多的例子,那里分享了很多预训练的模型。
这个方法是有效的,因为大量的图片在这个模型上进行训练,需要模型能够预测出相对比较多的图片类型,反过来,这需要模型能够有效地学习从图片中提取特征,以较好地解决这个问题。
在斯坦福大学的课程《Convolutional Neural Networks for Visual Recognition》(视觉识别中的卷积神经网络)中,作者特别提醒,要仔细选择将预训练模型在多大程度上利用到新模型中。
卷积神经网络的前面几层提取到的特征更泛化,后面层提取到的特征与原始数据集更相关。
——迁移学习,CS231 卷积神经网络视觉识别课程 (http://cs231n.github.io/transfer-learning/)
语言数据中的迁移学习
在以文本作为输入-输出的自然语言处理任务中,使用迁移学习是很常见的。
对于这类问题,首先会使用词向量(Word embedding)将单词映射到连续的高维空间,在这个高维空间中,意思相近的不同单词具有相似的向量表征。
目前已经有学习这些分散词表征的高效算法,并且研究组织经常在大规模文本语料库上基于许可 license 发布预训练模型。
这类例子包括:
谷歌的 word2vec 模型(https://code.google.com/archive/p/word2vec/)
斯坦福的 GloVe 模型(https://nlp.stanford.edu/projects/glove/)
这些分立词表征的模型可以在上述地址下载,并且结合使用在将单词表征作为输入或者生成单词作为输出的深度语言学习模型中。
Yoav Goldberg 在他的书中提醒道:
..... 你可以下载到这些基于特大数量的文本训练得到的预训练词向量...... 但是,训练方法和本质语料库的不同对结果表征有着严重的影响,并且可以获取的预训练表征可能不是你的实际案例中的最佳选择。
——《Deep Learning for Natural Language Processing》(自然语言处理的深度学习方法),2017,第 135 页
什么时候使用迁移学习?
迁移学习是一种优化,是一种节省时间或者得到更好性能的捷径。
通常而言,在模型经过开发和测试之前,并不能明显地发现使用迁移学习带来的性能提升。
Lisa Torrey 和 Jude Shavlik 在他们关于迁移学习的章节中描述了使用迁移学习的时候可能带来的三种益处:
更高的起点。在微调之前,源模型的初始性能要比不使用迁移学习来的高。
更高的斜率。在训练的过程中源模型提升的速率要比不使用迁移学习来得快。
更高的渐进。训练得到的模型的收敛性能要比不使用迁移学习更好。
迁移学习能够改善学习的三种方式
理想情况下,在一个成功的迁移学习应用中,你会得到上述这三种益处。
如果你能够发现一个与你的任务有相关性的任务,它具备丰富的数据,并且你也有资源来为它开发模型,那么,在你的任务中重用这个模型确实是一个好方法,或者(更好的情况),有一个可用的预训练模型,你可以将它作为你自己模型的训练初始点。
在一些问题上,你或许没有那么多的数据,这时候迁移学习可以让你开发出相对不使用迁移学习而言具有更高性能的模型。
对源数据和源模型的选择是一个开放问题,可能需要领域专家或者实际开发经验。
延伸阅读
如果你想进一步了解相关内容,这一部分给出了更多关于这个主题的学习资源。
书籍
深度学习,2016(http://amzn.to/2fwdoKR)
自然语言处理的神经网络方法,2017(http://amzn.to/2fwTPCn)
论文
迁移学习综述,2010(https://pdfs.semanticscholar.org/a25f/bcbbae1e8f79c4360d26aa11a3abf1a11972.pdf)
机器学习应用研究手册,第 11 章:迁移学习(http://amzn.to/2fgeVro)
深度神经网络中的特征具有怎么样的可迁移性?(https://arxiv.org/abs/1411.1792)
预训练模型
牛津 VGG 模型(http://www.robots.ox.ac.uk/~vgg/research/very_deep/)
谷歌 inception 模型(https://github.com/tensorflow/models/tree/master/inception)
微软 ResNet 模型(https://github.com/KaimingHe/deep-residual-networks)
谷歌 Word2vec 模型(https://code.google.com/archive/p/word2vec/)
斯坦福 GloVe 模型(https://nlp.stanford.edu/projects/glove/)
Caffe 模型库 Model Zoo(https://github.com/BVLC/caffe/wiki/Model-Zoo)
文章
迁移学习维基百科(https://en.wikipedia.org/wiki/Transfer_learning)
迁移学习——机器学习的下一个前沿,2017(http://ruder.io/transfer-learning/)
迁移学习(CS231,卷积神经网络视觉识别)(http://cs231n.github.io/transfer-learning/)
Quora 话题:迁移学习是如何起作用的?(https://www.quora.com/How-does-transfer-learning-work)
人工智能赛博物理操作系统
AI-CPS OS
“人工智能赛博物理操作系统”(新一代技术+商业操作系统“AI-CPS OS”:云计算+大数据+物联网+区块链+人工智能)分支用来的今天,企业领导者必须了解如何将“技术”全面渗入整个公司、产品等“商业”场景中,利用AI-CPS OS形成数字化+智能化力量,实现行业的重新布局、企业的重新构建和自我的焕然新生。
AI-CPS OS的真正价值并不来自构成技术或功能,而是要以一种传递独特竞争优势的方式将自动化+信息化、智造+产品+服务和数据+分析一体化,这种整合方式能够释放新的业务和运营模式。如果不能实现跨功能的更大规模融合,没有颠覆现状的意愿,这些将不可能实现。
领导者无法依靠某种单一战略方法来应对多维度的数字化变革。面对新一代技术+商业操作系统AI-CPS OS颠覆性的数字化+智能化力量,领导者必须在行业、企业与个人这三个层面都保持领先地位:
重新行业布局:你的世界观要怎样改变才算足够?你必须对行业典范进行怎样的反思?
重新构建企业:你的企业需要做出什么样的变化?你准备如何重新定义你的公司?
重新打造自己:你需要成为怎样的人?要重塑自己并在数字化+智能化时代保有领先地位,你必须如何去做?
AI-CPS OS是数字化智能化创新平台,设计思路是将大数据、物联网、区块链和人工智能等无缝整合在云端,可以帮助企业将创新成果融入自身业务体系,实现各个前沿技术在云端的优势协同。AI-CPS OS形成的数字化+智能化力量与行业、企业及个人三个层面的交叉,形成了领导力模式,使数字化融入到领导者所在企业与领导方式的核心位置:
精细:这种力量能够使人在更加真实、细致的层面观察与感知现实世界和数字化世界正在发生的一切,进而理解和更加精细地进行产品个性化控制、微观业务场景事件和结果控制。
智能:模型随着时间(数据)的变化而变化,整个系统就具备了智能(自学习)的能力。
高效:企业需要建立实时或者准实时的数据采集传输、模型预测和响应决策能力,这样智能就从批量性、阶段性的行为变成一个可以实时触达的行为。
不确定性:数字化变更颠覆和改变了领导者曾经仰仗的思维方式、结构和实践经验,其结果就是形成了复合不确定性这种颠覆性力量。主要的不确定性蕴含于三个领域:技术、文化、制度。
边界模糊:数字世界与现实世界的不断融合成CPS不仅让人们所知行业的核心产品、经济学定理和可能性都产生了变化,还模糊了不同行业间的界限。这种效应正在向生态系统、企业、客户、产品快速蔓延。
AI-CPS OS形成的数字化+智能化力量通过三个方式激发经济增长:
创造虚拟劳动力,承担需要适应性和敏捷性的复杂任务,即“智能自动化”,以区别于传统的自动化解决方案;
对现有劳动力和实物资产进行有利的补充和提升,提高资本效率;
人工智能的普及,将推动多行业的相关创新,开辟崭新的经济增长空间。
给决策制定者和商业领袖的建议:
超越自动化,开启新创新模式:利用具有自主学习和自我控制能力的动态机器智能,为企业创造新商机;
迎接新一代信息技术,迎接人工智能:无缝整合人类智慧与机器智能,重新
评估未来的知识和技能类型;
制定道德规范:切实为人工智能生态系统制定道德准则,并在智能机器的开
发过程中确定更加明晰的标准和最佳实践;
重视再分配效应:对人工智能可能带来的冲击做好准备,制定战略帮助面临
较高失业风险的人群;
开发数字化+智能化企业所需新能力:员工团队需要积极掌握判断、沟通及想象力和创造力等人类所特有的重要能力。对于中国企业来说,创造兼具包容性和多样性的文化也非常重要。
子曰:“君子和而不同,小人同而不和。” 《论语·子路》云计算、大数据、物联网、区块链和 人工智能,像君子一般融合,一起体现科技就是生产力。
如果说上一次哥伦布地理大发现,拓展的是人类的物理空间。那么这一次地理大发现,拓展的就是人们的数字空间。在数学空间,建立新的商业文明,从而发现新的创富模式,为人类社会带来新的财富空间。云计算,大数据、物联网和区块链,是进入这个数字空间的船,而人工智能就是那船上的帆,哥伦布之帆!
新一代技术+商业的人工智能赛博物理操作系统AI-CPS OS作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。
产业智能官 AI-CPS
用“人工智能赛博物理操作系统”(新一代技术+商业操作系统“AI-CPS OS”:云计算+大数据+物联网+区块链+人工智能),在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的认知计算和机器智能;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链。
长按上方二维码关注微信公众号: AI-CPS,更多信息回复:
新技术:“云计算”、“大数据”、“物联网”、“区块链”、“人工智能”;新产业:“智能制造”、“智能农业”、“智能金融”、“智能零售”、“智能城市”、“智能驾驶”;新模式:“财富空间”、“数据科学家”、“赛博物理”、“供应链金融”。
官方网站:AI-CPS.NET
本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!
版权声明:由产业智能官(公众号ID:AI-CPS)推荐的文章,除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,与您共同协商解决。联系、投稿邮箱:erp_vip@hotmail.com