【Transfer Learning】迁移学习的总体概述和阅读推荐(会持续更新)

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视频等:
(如果小伙伴们有比较好的推荐请在评论里留言,大家共同学习!!!)

  • ****——迁移学习基本知识:这篇博客主要罗列了一些迁移学习的基本概念,大概有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)

  • 域: 一个域 DD 由一个特征空间 XX 和特征空间上的边缘概率分布 P(X)P(X) 组成,其中 X=x1,x2,...xnX=x_1,x_2,...x_n也就是:域=数据XX+生成这些数据的概率分布F(X)F(X)
  • 任务: 在给定一个域 D=X,P(X)D={X,P(X)} 之后,一个任务 TT 由一个标签空间 yy 以及一个条件概率分布 P(Y/X)P(Y/X) 构成,其中,这个条件概率分布通常是从由特征—标签对 xix_i, yiy_i组成的训练数据中学习得到。也就是:任务=标签+标签对应的函数。
  • 域和任务可以用源(Source)/目标(Target) 来区分,及对应的是源域(DsD_s)-源任务(DtD_t),目标域(TsT_s)-目标任务(TtT_t)。此外,还包括在目标域上的预测函数:Ft(.)F_t(.)

迁移学习的定义: 给定源域 Ds=Xs,Fs(X)D_s={X_s, F_s(X)} 和学习任务 TsT_s ,目标域 DT=Xt,Ft(X)D_T={X_t,F_t(X)} 和学习任务 TtT_t ,迁移学习旨在源域不同于目标域或学习任务 TtT_t 不同于学习任务 TsT_s 的条件下,通过使用学习任务 TsT_s 和源域 Ds=Xs,Fs(X)Ds={X_s,F_s(X)} 所获取的知识来帮助学习目标的在目标域 DtD_t 的预测函数 Ft(.)F_t(.)
举例:陆地雾的分类–》海洋雾的分类:源域(陆地雾数据和概率分布)和目标域(海洋雾数据和概率分布)不同,学习任务(分类识别)相同。

1.3 迁移学习的分类

对于迁移学习的分类,可以按照特征分类、按照场景和有无标签分类、按照学习方法分类、按照离线在线形式分类。具体见下图⬇️(这是自己总结的图,如果有不周到的地方还请小伙伴们指出)。
【Transfer Learning】迁移学习的总体概述和阅读推荐(会持续更新)

1.3.1 按照特征分类的迁移学习

  • 同构迁移学习:源域和目标域的特征维度相同分布不同
  • 异构迁移学习:源域和目标域的特征空间不同

1.3.2 按照迁移情景分类的迁移学习

  • 归纳式迁移学习(Inductive TL):源域和目标域的学习任务不同
  • 直推式迁移学习(Transductive TL):源域和目标域不同,学习任务相同
  • 无监督迁移学习(Unsupervised TL):源域和目标域均没有标签

1.3.3 按照学习方法分类的迁移学习

  • 基于实例的迁移学习方法
    在源域中找到与目标域相似的数据,把这个数据的权值进行调整,使得新的数据与目标域的数据进行匹配。然后进行训练学习,得到适用于目标域的模型。这样的方法优点是方法简单,实现容易。缺点在于权重的选择与相似度的度量依赖经验,且源域与目标域的数据分布往往不同。
    【Transfer Learning】迁移学习的总体概述和阅读推荐(会持续更新)

  • 基于特征的迁移学习方法
    当源域和目标域含有一些共同的交叉特征时,我们可以通过特征变换,将源域和目标域的特征变换到相同空间,使得该空间中源域数据与目标域数据具有相同分布的数据分布,然后进行传统的机器学习。优点是对大多数方法适用,效果较好。缺点在于难于求解,容易发生过适配。
    【Transfer Learning】迁移学习的总体概述和阅读推荐(会持续更新)

  • 基于模型的迁移学习方法
    源域和目标域共享模型参数,也就是将之前在源域中通过大量数据训练好的模型应用到目标域上进行预测。基于模型的迁移学习方法比较直接,这样的方法优点是可以充分利用模型之间存在的相似性。缺点在于模型参数不易收敛。
    【Transfer Learning】迁移学习的总体概述和阅读推荐(会持续更新)

  • 基于关系的迁移学习方法
    当两个域是相似的时候,那么它们之间会共享某种相似关系,将源域中学习到的逻辑网络关系应用到目标域上来进行迁移,比方说生物病毒传播规律到计算机病毒传播规律的迁移。这部分的研究工作比较少。典型方法就是mapping的方法。
    【Transfer Learning】迁移学习的总体概述和阅读推荐(会持续更新)