文档章节

浅说“迁移学习”(Transfer Learning)

雪饼
 雪饼
发布于 2018/01/29 13:10
字数 1534
阅读 10364
收藏 10

—— 原文发布于本人的微信公众号“大数据与人工智能Lab”(BigdataAILab),欢迎关注。

 

什么是迁移学习?

迁移学习(Transfer Learning)是一种机器学习方法,是把一个领域(即源领域)的知识,迁移到另外一个领域(即目标领域),使得目标领域能够取得更好的学习效果。

通常,源领域数据量充足,而目标领域数据量较小,这种场景就很适合做迁移学习,例如我们我们要对一个任务进行分类,但是此任务中数据不充足(目标域),然而却又大量的相关的训练数据(源域),但是此训练数据与所需进行的分类任务中的测试数据特征分布不同(例如语音情感识别中,一种语言的语音数据充足,然而所需进行分类任务的情感数据却极度缺乏),在这种情况下如果可以采用合适的迁移学习方法则可以大大提高样本不充足任务的分类识别结果。

 

为什么现在需要迁移学习?

前百度首席科学家、斯坦福的教授吴恩达(Andrew Ng)在曾经说过:「迁移学习将会是继监督学习之后的下一个机器学习商业成功的驱动力」。 

在本次2016年的 NIPS 会议上,吴恩达 给出了一个未来 AI方向的技术发展图,还是很客观的: 

毋庸置疑,监督学习是目前成熟度最高的,可以说已经成功商用,而下一个商用的技术 将会是 迁移学习(Transfer Learning),这也是 Andrew 预测未来五年最有可能走向商用的 AI技术。

吴恩达在一次采访中,也提到迁移学习会是一个很有活力的领域,我们之所以对迁移学习感到兴奋,其原因在于现代深度学习的巨大价值是针对我们拥有海量数据的问题。但是,也有很多问题领域,我们没有足够数据。比如语音识别。在一些语言中,比如普通话,我们有很多数据,但是那些只有少数人说的语言,我们的数据就不够庞大。所以,为了针对数据量不那么多的中国少数人所说的方言进行语音识别,能将从学习普通话中得到的东西进行迁移吗?我们的技术确实可以做到这一点,我们也正在做,但是,这一领域的进步能让人工智能有能力解决广泛得多的问题。

 

传统的机器学习与迁移学习有什么不同呢?

在机器学习的经典监督学习场景中,如果我们要针对一些任务和域 A 训练一个模型,我们会假设被提供了针对同一个域和任务的标签数据。如下图所示,其中我们的模型 A 在训练数据和测试数据中的域和任务都是一样的。 

即使是跟迁移学习比较相似的多任务学习,多任务学习是对目标域和源域进行共同学习,而迁移学习主要是对通过对源域的学习解决目标域的识别任务。下图就展示了传统的机器学习方法与迁移学习的区别: 

什么适合迁移?

在一些学习任务中有一些特征是个体所特有的,这些特征不可以迁移。而有些特征是在所有的个体中具有贡献的,这些可以进行迁移。

有些时候如果迁移的不合适则会导致负迁移,例如当源域和目标域的任务毫不相关时有可能会导致负迁移。

 

迁移学习的分类

根据 Sinno Jialin Pan 和 Qiang Yang 在 TKDE 2010 上的文章,可将迁移学习算法,根据所要迁移的知识表示形式(即 “what to transfer”),分为四大类:

  • 基于实例的迁移学习(instance-based transfer learning):源领域(source domain)中的数据(data)的某一部分可以通过reweighting的方法重用,用于target domain的学习。

  • 基于特征表示的迁移学习(feature-representation transfer learning):通过source domain学习一个好的(good)的特征表示,把知识通过特征的形式进行编码,并从suorce domain传递到target domain,提升target domain任务效果。

  • 基于参数的迁移学习(parameter-transfer learning):target domain和source domian的任务之间共享相同的模型参数(model parameters)或者是服从相同的先验分布(prior distribution)。

  • 基于关系知识迁移学习(relational-knowledge transfer learning):相关领域之间的知识迁移,假设source domain和target domain中,数据(data)之间联系关系是相同的。

前三类迁移学习方式都要求数据(data)独立同分布假设。同时,四类迁移学习方式都要求选择的sourc doma与target domain相关,

下表给出了迁移内容的迁移学习分类: 

迁移学习的应用

用于情感分类,图像分类,命名实体识别,WiFi信号定位,自动化设计,中文到英文翻译等问题。

 

迁移学习的价值

  • 复用现有知识域数据,已有的大量工作不至于完全丢弃;

  • 不需要再去花费巨大代价去重新采集和标定庞大的新数据集,也有可能数据根本无法获取;

  • 对于快速出现的新领域,能够快速迁移和应用,体现时效性优势。

 

总结

总之,迁移学习将会成为接下来令人兴奋的研究方向,特别是许多应用需要能够将知识迁移到新的任务和域中的模型,将会成为人工智能的又一个重要助推力。

 

欢迎关注本人的微信公众号“大数据与人工智能Lab”(BigdataAILab),获取更多资讯

© 著作权归作者所有

雪饼

雪饼

粉丝 407
博文 61
码字总数 134328
作品 0
广州
私信 提问
加载中

评论(1)

床长
床长
大家都转行学人工智能吧!未来是属于人工智能的!其实人工智能并不难学的,不要被它的高大善吓到了。如果你是零基础,推荐你看床长人工智能教程,这套教程不仅非常通俗易懂,而且还巨风趣幽默,里面还时不时的搞些黄段子。希望更多的人加入到我们人工智能队伍中来!未来是属于我们的!
综述:迁移学习发展现状及未来趋势

the definition of transfer learning Data Feature space source domain和target domain特征空间的一致性 Data availabilit 训练阶段,target domain数据集是否可用,是否充足 Balanced dat......

lirainbow0
05/30
0
0
14 篇论文为你呈现「迁移学习」研究全貌 | 论文集精选 #04

迁移学习对于人类来说,就是掌握举一反三的学习能力。对于计算机而言,所谓迁移学习,就是从一个或多个源任务(source task)中抽取知识和经验,然后将其应用于一个有相关性的目标领域(tar...

技术小能手
2017/11/02
0
0
什么是迁移学习?它都用在深度学习的哪些场景上?这篇文章替你讲清楚了

翻译 | AI科技大本营(微信ID:rgznai100,点击查看更多干货文章) 迁移学习是机器学习方法之一,它可以把为一个任务开发的模型重新用在另一个不同的任务中,并作为另一个任务模型的起点。 这...

2017/12/27
0
0
【迁移学习】迁移学习的干货学习资料 | 干货分享 | 技术解读

一. 了解迁移学习 迁移学习(Transfer Learning)目标是将从一个环境中学到的知识用来帮助新环境中的学习任务。 > The ability of a system to recognize and apply knowledge and skills le...

np4rhi455vg29y2
2018/01/02
0
0
盘点深度学习一年来在文本、语音和视觉等方向的进展,看强化学习如何无往而不利

翻译 | AI科技大本营(点击查看AI科技大本营更多干货文章) 参与 | 刘畅 迁移学习是机器学习方法之一,它可以把为一个任务开发的模型重新用在另一个不同的任务中,并作为另一个任务模型的起点...

AI科技大本营
2017/12/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
今天
8
0
Linux创建yum仓库

第一步、搞定自己的光盘 #创建文件夹 mkdir -p /media/cdrom #挂载光盘 mount /dev/cdrom /media/cdrom #编辑配置文件使其永久生效 vim /etc/fstab 第二步,编辑yun源 vim /ect yum.repos.d...

究极小怪兽zzz
今天
6
0
jar 更新部分文件

C:\Program Files (x86)\Java\jdk1.8.0_102\bin>jar -hIllegal option: hUsage: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...Options: -c c......

圣洁之子
今天
9
0
OSChina 周六乱弹 —— 感谢女装红薯开办了这个网站

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @胖达panda:分享歌词: 我有一只小毛驴我从来也不骑,有一天我心血来潮骑着去赶集,我手里拿着小皮鞭我心里正得意,不知怎么哗啦啦,我摔了一...

小小编辑
今天
2.6K
13
DDD(四)

1,引言 软件开发者大多趋向于将关注点放在数据上,而不是领域上。这对于刚入门的DDD的新手而言也是如此。以我目前的思考方式,数据库依然占据主要的地位。开发一个功能,首先我就会考虑我会...

MrYuZixian
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部