迁移学习简明手册
一点心得体会
版本号:v1.0
王晋东
中国科学院计算技术研究所
tutorial.transferlearning.xyz
2018 年 4 月
摘 要
迁移学习作为机器学习的一大分支,已经取得了长足的进步。本手册简明地介绍迁移
学习的概念与基本方法,并对其中的领域自适应问题中的若干代表性方法进行讲述。最后
简要探讨迁移学习未来可能的方向。
本手册编写的目的是帮助迁移学习领域的初学者快速入门并掌握基本方法,为自己的
研究和应用工作打下良好基础。
本手册的编写逻辑很简单:是什么——介绍迁移学习;为什么——为什么要用迁移学
习、为什么能用;怎么办——如何进行迁移 (迁移学习方法)。其中,是什么和为什么解决概
念问题,这是一切的前提;怎么办是我们的重点,也占据了最多的篇幅。为了最大限度地方
便初学者,我们还特别编写了一章上手实践,直接分享实现代码和心得体会。
推荐语
看了王晋东同学的“迁移学习小册子”,点三个赞!迁移学习被认为是机器学习的下一
个爆点,但介绍迁移学习的文章却很有限。这个册子深入浅出,既回顾了迁移学习的发展历
史,又囊括了迁移学习的最新进展。语言流畅,简明通透。应该对机器学习的入门和提高都
有很大帮助!
——杨强 (迁移学习权威学者,香港科技大学教授,IJCAI president, AAAI/ACM fellow)
迁移学习简明手册
目录
写在前面
致谢
手册说明
1 迁移学习基本概念
1.1 引子 . . . . . . . . . . . . . .
1.2 迁移学习的概念 . . . . . . . .
1.3 为什么需要迁移学习? . . . .
1.4 与已有概念的区别和联系 . .
1.5 负迁移 . . . . . . . . . . . . .
2 迁移学习的研究领域
2.1 按目标域标签分 . . . . . . . .
2.2 按学习方法分类 . . . . . . . .
2.3 按特征分类 . . . . . . . . . .
2.4 按离线与在线形式分 . . . . .
3 迁移学习的应用
3.1 计算机视觉 . . . . . . . . . .
3.2 文本分类 . . . . . . . . . . .
3.3 时间序列 . . . . . . . . . . .
3.4 医疗健康 . . . . . . . . . . .
4 基础知识
4.1 迁移学习的问题形式化 . . . .
4.1.1 领域 . . . . . . . . . .
4.1.2 任务 . . . . . . . . . .
4.1.3 迁移学习 . . . . . . .
4.2 总体思路 . . . . . . . . . . .
4.3 度量准则 . . . . . . . . . . .
4.3.1 常见的几种距离 . . . .
4.3.2 相似度 . . . . . . . . .
4.3.3 KL 散度与 JS 距离 . .
4.3.4 最大均值差异 MMD .
4.3.5 Principal Angle . . . .
4.3.6 A-distance . . . . . . .
4.3.7 Hilbert-Schmidt
In-
dependence Criterion .
4.3.8 Wasserstein Distance .
4.4 迁移学习的理论保证 * . . . .
5 迁移学习的基本方法
5.1 基于样本迁移 . . . . . . . . .
5.2 基于特征迁移 . . . . . . . . .
5.3 基于模型迁移 . . . . . . . . .
5.4 基于关系迁移 . . . . . . . . .
6 第一类方法:数据分布自适应
6.1 边缘分布自适应 . . . . . . . .
6.1.1 基本思路 . . . . . . .
6.1.2 核心方法 . . . . . . .
6.1.3 扩展 . . . . . . . . . .
6.2 条件分布自适应 . . . . . . . .
6.3 联合分布自适应 . . . . . . . .
6.3.1 基本思路 . . . . . . .
6.3.2 核心方法 . . . . . . .
6.3.3 扩展 . . . . . . . . . .
6.4 小结 . . . . . . . . . . . . . .
7 第二类方法:特征选择
7.1 核心方法 . . . . . . . . . . .
7.2 扩展 . . . . . . . . . . . . . .
7.3 小结 . . . . . . . . . . . . . .
8 第三类方法:子空间学习
8.1 统计特征对齐 . . . . . . . . .
8.2 流形学习 . . . . . . . . . . .
8.3 扩展与小结 . . . . . . . . . .
9 深度迁移学习
9.1 深度网络的可迁移性 . . . . .
9.2 最简单的深度迁移:finetune .
9.3 深度网络自适应 . . . . . . . .
9.3.1 基本思路 . . . . . . .
9.3.2 核心方法 . . . . . . .
9.3.3 小结 . . . . . . . . . .
9.4 深度对抗网络迁移 . . . . . .
9.4.1 基本思路 . . . . . . .
9.4.2 核心方法 . . . . . . .
9.4.3 小结 . . . . . . . . . .
10 上手实践
I
I
II
III
1
1
1
2
4
5
7
7
7
8
8
9
9
9
10
11
12
12
12
12
12
13
14
14
14
15
15
16
16
16
16
17
19
19
20
20
21
23
23
23
23
25
26
27
27
27
29
30
31
32
32
32
33
33
35
37
38
38
42
43
43
44
49
49
49
49
52
53
迁移学习简明手册
11 迁移学习前沿
59
11.1 机器智能与人类经验结合迁移 59
59
11.2 传递式迁移学习 . . . . . . . .
11.3 终身迁移学习 . . . . . . . . .
60
61
11.4 在线迁移学习 . . . . . . . . .
62
11.5 迁移强化学习 . . . . . . . . .
11.6 迁移学习的可解释性 . . . . .
62
12 总结语
63
13 附录
64
64
13.1 迁移学习相关的期刊和会议 .
64
13.2 迁移学习研究学者 . . . . . .
13.3 迁移学习资源汇总 . . . . . .
67
13.4 迁移学习常用算法及数据资源 68
II
迁移学习简明手册
写在前面
一直以来都有这样的愿望:无论学习什么知识,总是希望可以快速准确地找到对应的有
价值资源进行学习。我相信我们每个人都梦寐以求。然而,越来越多的学科,尤其是我目前
从事的计算机科学、人工智能领域,当下正在飞速地发展着。太多的新知识都难以事半功倍
地找到快速入手的教程。庄子曰:“吾生也有涯,而知也无涯。以有涯随无涯,殆已。”
我只是迁移学习领域一个很普通的博士生,也同样经历了由“一问三不知”到“稍稍理
解”的艰难过程。我在 2016 年初入门迁移学习之时,迁移学习这个概念还未曾像今天一样
炙手可热。当时所能找到的学习资源只有两种:别人已发表的论文和已做过的演讲。这些还
是不够简单、不够直观。我需要从如此众多的材料中不断归纳,才能站在博士研究的那个圈
子的边缘,以便将来可以做出一点点贡献,往圆圈外突破一点点。
相信不只是我,任何一个刚刚入门的学习者都会经历此过程。
“沉舟侧畔千帆过,病树前头万木春。”
已所不欲,勿施于人。正是因为我在初学之时也经历过如此沮丧的时期,我才在 Github
上对迁移学习进行了整理归纳,在知乎网上以“王晋东不在家”为名分享自己对于迁移学习
和机器学习的理解和教训、在线上线下与大家讨论相关的问题。很欣慰的是,这些免费开放
的资源或多或少地,帮助到了一些初学者,使他们更快速地步入迁移学习之门。
但这些还是不太够。Github 上的资源模式已经固定,目前主要是进行日常更新,不断
加入新的论文和代码。目前还是缺乏一个人人都能上手的初学者教程。也只一次,有读者提
问有没有相关的入门教程,能真正从 0 到 1 帮助初学者进行入门。
最近,南京大学博士 (现任旷视科技南京研究院负责人) 魏秀参学长写了一本《解析卷
积神经网络—深度学习实践手册》,给很多深度学习的初学者提供了帮助。受他的启发,我
也决定将自己在迁移学习领域的一些学习心得体会整理成一本手册,免费进行分享。希望
能借此方式,帮助更多的初学者。我们不谈风月,只谈干货。
我不是大佬,我也是迁移学习路上的一名小学生。迁移学习领域比我做的好的同龄人
太多了。因此,不敢谈什么指导。所有的目的都仅为分享。
本手册在互联网上免费开放。随着作者理解的深入 (以及其他有意者的增补),本手册
肯定会不断修改、越来越好。因此,我打算效仿软件的开发、采取版本更新的方式进行管理。
希望未来可以有更多的有志之士加入,让我们的教程日渐丰富。
I
迁移学习简明手册
致谢
本手册编写过程中得到了许多人的帮助。在此对他们表示感谢。
感谢我的导师、中国科学院计算技术研究所的陈益强研究员。是他一直以来保持着对
我的信心,相信我能做出好的研究成果,不断鼓励我,经常与我讨论以明确问题,才有了今
天的我。陈老师给我提供了优良的实验环境。我一定会更加努力地科研,做出更多更好的研
究成果。
感谢香港科技大学计算机系的杨强教授。杨教授作为迁移学习领域国际泰斗,经常不
厌其烦地回答我一些研究上的问题。能够得到杨教授的指导,是我的幸运。希望我能在杨教
授带领下,做出更踏实的研究成果。
感谢新加坡南洋理工大学的于涵老师。作为我论文的共同作者,于老师认真的写作态
度、对论文的把控能力是我一直学习的榜样。于老师还经常鼓励我,希望可以和于老师有着
更多合作,发表更好的文章。
感谢清华大学龙明盛助理教授。龙老师在迁移学习领域发表了众多高质量的研究成果,
是我入门时学习的榜样。龙老师还经常对我的研究给予指导。希望有机会可以真正和龙老
师合作。
感谢美国伊利诺伊大学芝加哥分校的 Philip S. Yu 教授对我的指导和鼓励。
感谢新加坡 A*STAR 的郝书吉老师。我博士生涯的发表的第一篇论文是和郝老师合作
完成的。正是有了第一篇论文被发表,才增强了我的自信,在接下来的研究中放平心态。
感谢我的好基友、西安电子科技大学博士生段然同学和我的同病相怜,让我们可以一起
吐槽读博生活。
感谢我的室友沈建飞、以及实验室同学的支持。
感谢我的知乎粉丝和所有交流过迁移学习的学者对我的支持。
最后感谢我的女友和父母对我的支持。
本手册中出现的插图,绝大多数来源于相应论文的配图。感谢这些作者做出的优秀的
研究成果。希望我能早日作出可以比肩的研究。
II
迁移学习简明手册
说明
本手册的编写目的是帮助迁移学习领域的初学者快速进行入门。我们尽可能绕开那些
非常理论的概念,只讲经验方法。我们还配有多方面的代码、数据、论文资料,最大限度地
方便初学者。
本手册的方法部分,关注点是近年来持续走热的领域自适应 (Domain Adaptation) 问
题。迁移学习还有其他众多的研究领域。由于作者研究兴趣所在和能力所限,对其他部分的
研究只是粗略介绍。非常欢迎从事其他领域研究的读者提供内容。
本手册的每一章节都是自包含的,因此,初学者不必从头开始阅读每一部分。直接阅读
自己需要的或者自己感兴趣的部分即可。本手册每一章节的信息如下:
第 1 章介绍了迁移学习的概念,重点解决什么是迁移学习、为什么要进行迁移学习这
两个问题。
第 2 章介绍了迁移学习的研究领域。
第 3 章介绍了迁移学习的应用领域。
第 4 章是迁移学习领域的一些基本知识,包括问题定义,域和任务的表示,以及迁移
学习的总体思路。特别地,我们提供了较为全面的度量准则介绍。度量准则是迁移学习领域
重要的工具。
第 5 章简要介绍了迁移学习的四种基本方法,即基于样本迁移、基于特征迁移、基于
模型迁移、基于关系迁移。
第 6 章到第 8 章,介绍了领域自适应的 3 大类基本的方法,分别是:数据分布自适应
法、特征选择法、子空间学习法。
第 9 章重点介绍了目前持续最火的深度迁移学习方法。
第 10 章提供了简单的上手实践教程。
第 11 章对迁移学习进行了展望,提出了未来几个可能的研究方向。
第 12 章是对全手册的总结。
第 13 章是附录,提供了迁移学习领域相关的学习资源,以供读者参考。
由于作者水平有限,不足和错误之处,敬请不吝批评指正。
手册的相关资源:
网站 (内含勘误表):http://t.cn/RmasEFe
开发维护地址:http://github.com/jindongwang/transferlearning-tutorial
作者的联系方式:
邮箱: jindongwang@outlook.com,知乎: 王晋东不在家。
微博: 秦汉日记,个人网站:http://jd92.wang。
III