迁移学习 (Transfer Learning)

502 阅读8分钟

文章目录

​ ​0.迁移学习一些概念​​ ​ ​1.什么是迁移学习?​​ ​ ​2.为什么现在需要迁移学习?​​ ​ ​3.传统的机器学习与迁移学习有什么不同呢?​​ ​ ​4.什么适合迁移?​​ ​ ​5.迁移学习的分类​​ ​ ​6.迁移学习的应用​​ ​ ​7.迁移学习的价值​​ ​ ​8.总结​​ ​ ​9.参考:​​

0.迁移学习一些概念 在文章的一开始,先来学习迁移学习一些概念:

​域:​ 一个域D由一个特征空间X和特征空间上的边际概率分布 P(X) 组成,其中 X = x 1 , . . . , x n X=x_1,...,x_n X=x1​,...,xn​ 。举个例子:对于一个有文档,其有很多词袋表征(​​bag-of-words representation​​)X 是所有文档表征的空间,而 x i x_i xi​ 是第 i 个单词的二进制特征。P(X)代表对X的分布。

​任务 :​ 在给定一个域 D = { X , P ( X ) } D ={X,P(X)} D={X,P(X)} 之后,一个任务 T 由一个标签空间 y 以及一个条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X) 构成,其中,这个条件概率分布通常是从由特征—标签对 x i ∈ X , y i ∈ Y x_i\in X,y_i\in Y xi∈X,yi∈Y组成的训练数据中学习得到。

​源域(source domain),目标域(target domain):​ 在迁移学习中,我们已有的知识叫做源域(​​source domain​​​),要学习的新知识叫目标域(​​target domain​​)。

​负迁移:​ 指的是在源域上学习到的知识,对于目标域上的学习产生负面作用。

产生负迁移的原因主要有两个:

一个是源域和目标域的相似度很低,无法做迁移。

另一个是虽数据问源域和目标域是相似的,但是,迁移学习方法不够好,没找到可迁移的成分,导致负迁移。

1.什么是迁移学习? 迁移学习(​​Transfer Learning​​)目标是将从一个环境中学到的知识用来帮助新环境中的学习任务。

The ability of a system to recognize and apply knowledge and skills learned in previous tasks to novel tasks。

入门推荐一篇公认的比较好的 【Survey】: ​ ​A Survey on Transfer Learning,Sinno JialinPan, Qiang Yang,IEEE Trans​​

另外,戴文渊的硕士学位论文也可以看一下: 基于实例和特征的迁移学习算法研究

​​Survey​​​ 作者归纳了​​Transfer Learning​​ 相关的知识域,有必要了解一下这些名词:

● Learning学习 - learning to learn ● 终身学习 - life-long learning ● 知识转移 - knowledge transfer ● 归纳迁移 - inductive transfer ● 多任务学习 - multi-task learning ● 知识的巩固 - knowledge consolidation ● 上下文相关学习 - context sensitive learning ● 基于知识的归纳偏差 - knowledge-based inductive bias ● 元学习 - meta learning ● 增量学习 - and incremental/cumulative learning 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 另外,进展及​​Open Source Toolkit​​ 可以参考:www.cse.ust.hk/TL/index.ht…

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

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

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

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

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

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

3.传统的机器学习与迁移学习有什么不同呢? 传统学习中,我们会给不同任务均提供足够的数据,以分别训练出不同的模型:

但是如果 新任务 和旧任务类似,同时 新任务缺乏足够数据去从头训练一个新模型,那该怎么办呢?

迁移学习所做的事,就是将旧任务上训练好的模型拿过来放在新任务上,再加上点少量数据稍微调一调,效果往往并不输海量数据下的从头训练:

这是因为A任务和B任务很多共同特征:

迁移学习试图把处理A任务获取的知识,应用于B任务中。此时因为B任务中的大部分特征已经被A任务中预训练好的模型学得了,相当于提前完成了B任务中大部分的活儿,那么B任务自然只需再提供少量数据,即可炼得新模型。

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

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

5.迁移学习的分类 ​迁移学习(Transfer Learning)​ 根据领域和任务的相似性,可以这样划分:

我们根据​源Domain​和​目标Domain​ 之间的关系,​源Task​ 和​目标Task​之间的关系,以及任务方法更详细的整理为下表:

实际上,归纳式迁移学习是应用最广泛的一种方法,从这点上看,迁移学习更适合有标签的应用域。

根据技术方法,我们将迁移学习的方法划分为:

迁移学习方法虽然在学术有很多研究工作,实际上在应用领域并不算成熟,这本身就是一个很大的命题,关于迁移学习的条件 和 本质也并未形成一套正统的体系来引领研究方向,更多的也是在实验摸索。

迁移学习目前面临如下几个问题:

  1. 哪种情况适合做迁移学习? - What 这里先给个自己的理解: 分类和回归问题是比较适合做迁移学习的场景,有标签的源数据是最好的辅助。

  2. 该选择哪种方法? - Which 简单而行之有效的方法是首选,领域在快速发展,也不必拘泥算法本身,改善结果才是硬道理。

  3. 如何避免负迁移? - How 迁移学习的目标是改善目标域的 Task效果,这里面 负迁移(Negative Transfer)是很多研究者面临的一个问题,如何得到行之有效的改进,避免负迁移是需要大家去评估和权衡的。

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

7.迁移学习的价值

复用现有知识域数据,已有的大量工作不至于完全丢弃; 不需要再去花费巨大代价去重新采集和标定庞大的新数据集,也有可能数据根本无法获取; 对于快速出现的新领域,能够快速迁移和应用,体现时效性优势。

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

©著作权归作者所有:来自51CTO博客作者我是天才很好的原创作品,请联系作者获取转载授权,否则将追究法律责任 迁移学习 (Transfer Learning) blog.51cto.com/u_15274944/…