1. 迁移学习的基本知识
在开始介绍迁移学习的基础之前,推荐一本我觉得还不错的迁移学习入门读物:王晋东《迁移学习简明手册》。这本资料深入浅出,涉及了很多和迁移学习相关的内容,已经更新到了v1.1版本。与之相对应的是王晋东整理的Transfer learning papers。这几乎涵盖了2016年以来在迁移学习比较重要或者热门的亮点论文,而且做了明确的分类和部分标注。
推荐几篇比较权威的迁移学习的综述:
- Pan S J , Yang Q . A Survey on Transfer Learning[J]. IEEE Transactions on Knowledge and Data Engineering, 2010, 22(10):1345-1359. 杨强教授组的迁移学习的综述,论文重点是对分类,回归和聚类问题的迁移学习进行分类,并且论证了迁移学习和其他机器学习技术的关系,如领域适应,多任务学习和样本选择偏差以及协变量偏移等。
- Mei W , Weihong D . Deep Visual Domain Adaptation: A Survey[J]. Neurocomputing, 2018:S0925231218306684-. 深度视觉域适应的综述。
- Sun S , Shi H , Wu Y . A survey of multi-source domain adaptation[J]. Information Fusion, 2015, 24:84-92.关于多域-域适应的综述。
推荐迁移学习领域的几座山头:
推荐几篇个人认为比较全面的迁移学习的博客/知乎/bilibili视频等:
(如果小伙伴们有比较好的推荐请在评论里留言,大家共同学习!!!)
- CSDN——迁移学习基本知识:这篇博客主要罗列了一些迁移学习的基本概念,大概有20条左右,涉及到迁移学习基本概念、分类、域适应等。
- 机器不学习:初识迁移学习:里面包含了迁移学习一些概念、分类和一些应用场景。对于迁移学习的分类描述的比较详细,
- 机器学习的明天——迁移学习:这是2017年的一篇博客,有些内容已经比较老了,但是里面有一个具体的案例可以辅助理解,还有对于传递式的迁移学习的简单介绍。
- 知乎种豆南山下——迁移学习的专栏:中科院学生对于迁移学习的专栏,里面对于Domain Adaptaion大概有8篇文章,是深度Deep Domain Adaptaion的论文集,总结的非常全面,也对于DA有很明确的分类,可以参考。
- 见微知著——细粒度图像分析进展综述:这是一片有关细粒度检索的博客综述,虽然和我们迁移学习的关联性较弱,但是里面记述了一些有关弱标签soft-lable的知识点,可以参考。
1.1 为什么要迁移学习?
2016年,吴恩达在NIPS上也提到,“在监督学习之后,迁移学习将引领下一波机器学习技术商业化浪潮。” 也就是说,迄今为止机器学习或者深度学习在业界的应用和成功,大多数主要由监督学习推动,而监督学习依靠的数据标注,需要海量标记数据才能训练出成功的模型。这也从侧面反映出了机器学习或者深度学习的局限性,也就是在不同于训练集的情况下泛化能力较差。所以我们的措施就是迁移学习,提高模型在多种场景上的泛化能力。迁移学习,最重要的就是迁移,也就是说把在旧知识里面学到的知识应用到新知识里面。而在这个问题中最关键的就是找到旧知识和新知识的相似性。
在王晋东《迁移学习简明手册》里面概括了几个为什么要进行迁移学习的原因,主要是:
- 大数据与少标注之间的矛盾(人工标注耗时耗力等)
- 大数据与弱计算之间的矛盾(计算资源的匮乏等)
- 普适化模型与个性化需求之间的矛盾(泛化能力和隐私需求等)
- 特定应用的需求(推荐系统的冷启动等)
所以对于上述几方面的原因,在迁移学习中也有不同的应对手段:
- 大数据与少标注:迁移数据标注(例:可以构建模型对于数据进行标注,如soft-label/lazy-label)
- 大数据与弱计算:模型迁移(例:基于模型的迁移)
- 普适化模型与个性化需求:自适应学习
- 特定应用的需求:相似领域知识迁移(例:基于数据和模型的迁移)
1.2 什么是迁移学习
1.2.1 迁移学习的基本定义
迁移学习有两个最基本的概念:域(Domain)和任务(Task)。
- 域: 一个域 D D D 由一个特征空间 X X X 和特征空间上的边缘概率分布 P ( X ) P(X) P(X) 组成,其中 X = x 1 , x 2 , . . . x n X=x_1,x_2,...x_n X=x1,x2