论文阅读:A Survey on Transfer Learning

  本文主要内容为论文《A Survey on Transfer Learning》的阅读笔记,内容和图片主要参考 该论文 。其中部分内容引用与博客《迁移学习综述a survey on transfer learning的整理下载》,感谢博主xf__mao的资源贡献。在这里我主要记录下自己觉得重要的内容以及一些相关的想法,希望大家多多留言评论,相互交流~

0. Abstract

  许多机器学习和数据挖掘算法中的一个主要假设是,训练和未来(测试)数据必须在相同的特征空间中,并且具有相同的分布。然而,在许多实际应用中,这种假设可能不成立。例如,我们有时在一个感兴趣的域中有一个分类任务,但我们在另一个感兴趣的域中只有足够的训练数据,后者的数据可能在不同的特征空间中,或者遵循不同的数据分布。在这种情况下,如果成功地进行知识迁移,将避免大量昂贵的数据标记工作,从而极大地提高学习的性能。近年来,迁移学习已经成为解决这个问题的一个新的学习框架。这篇综述的重点是分类和回顾目前迁移学习在分类,回归和聚类问题的进展。在这篇综述中,我们讨论了迁移学习与其他相关机器学习技术的关系,如领域适应,多任务学习和样本选择偏差,以及协变量移位。我们还探讨了迁移学习研究中的一些潜在的未来问题。

1. Introduction

  机器学习与数据挖掘技术在很多应用上都取得了成功,但是许多算法表现良好是因为它们有一个共同的假设:训练和测试数据必须来自相同的特征空间中,并且具有相同的分布。当分布发生改变时,绝大多数统计模型需要从头开始使用新收集的训练数据进行重建。在真实世界的应用中,重新收集训练数据并且重新训练模型是昂贵的或者不可能的。如果能够减少重新收集训练数据的需要和努力将会是美好的。在这种情况下,任务域之间的知识迁移或迁移学习是可取的。

  在迁移学习确实是有益的知识工程中可以找到许多例子。下面分别给了三个例子进行说明,第一个例子是Web文档分类,在原始网站上训练的分类器无法直接应用到新网站上,因为新创建的网站里的数据特征和数据分布可能不同,有可能是一个缺乏标记的训练数据,所以可以采用迁移学习的方法。第二个例子是室内 Wifi 定位,因为采用 WIFI 数据进行训练会产生大量的标注任务,所以使用信号强度随时间、装置或者其他因子及建模,并对不同的时间段或者设备进行迁移学习。第三个例子是评论的情感分析,如果对所有的商品都进行标注(贴标签)的话是一项巨大的任务,所以通过在一部分商品上训练分类模型在迁移到另外一些类别的商品。

  本文的主要内容是机器学习和数据挖掘领域中的分类、回归和聚类的迁移学习作了全面的概述。虽然也有大量的工作关于强化学习的迁移学习的论文,但是不是数据挖掘研究的问题。

  综述的其余部分安排如下。在接下来的四节中,我们首先给出了一个总体回顾,然后定义一些我们稍后会用到的符号。然后简要回顾了迁移学习的历史,对迁移学习给出了统一的定义,并将迁移学习分为三种不同的设置(如表2和图2所示)。对于每个设置,我们将详细回顾表3中给出的不同方法。之后,在第6节中,我们回顾了关于知识迁移对目标学习产生负面影响的“负迁移”的研究现状。在第7部分中,我们介绍了迁移学习的一些成功应用,并列出了一些已发布的数据集和软件工具包,用于迁移学习研究。最后,我们结束文章,在第8部分中讨论未来工作。

2. OVERVIEW

2.1 A Brief History of Transfer Learning

  传统的机器学习方法包括有监督学习、无监督学习和半监督学习,针对不完全数据,有监督和半监督学习还有相应的变形,如处理噪声分类标签问题以及代价敏感学习。然而,这些方法的大多数都假设已标注数据与未标注数据的分布是相同的。与之相反的是,迁移学习允许源空间、任务空间,并且在测试集和训练集中的分布是不同的。接下来举了人进行迁移学习的例子,即人可以智能地使用先前学习的知识来更快更好地解决新的问题。迁移学习最早起源于NIPS-95 上的“Learning to Learn”。

  迁移学习兴起于 1995 年,别名有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。与迁移学习密切相关的学习技术是多任务学习框架,这个框架尝试同时学习多个任务,即使它们是不同的。多任务学习的一个典型方法是发现能使每个任务受益的共同(潜在)特征。多任务学习的一个典型方法是发现能使每个任务受益的共同(潜在)特征。

  在2005年,XXX赋予了迁移学习新的任务,系统识别和应用以前任务中所学到的知识和技能的能力。在这个定义中,迁移学习的目的是从一个或多个源任务中提取知识,并将知识应用于目标任务。与多任务学习相比,迁移学习最关心的是目标任务,而不是同时学习所有的源任务和目标任务。在迁移学习中,源和目标任务的作用不再对称。

  下图是传统机器学习与迁移学习的差别,传统机器学习对于不同的目标任务要进行重新训练,而迁移学习则不用。

论文阅读:A Survey on Transfer Learning

2.2 Notations and Definitions

  (1)domain. 数据域(domain)由两个部分组成:特征空间 XX 和边缘概率分布 P(X) ,这里 X=x1,,x2XX

  举例说明,如果我们的任务是文档分类,把每一个单词看作二值的特征即出现或者不出现,然后 XX 是所有词向量的空间,xi 是与一些文档有关的第 i 个词向量,并且 X 是一个具体的学习样本。总体来看如果两个域是不同的,它们具有不同的特征空间或者不同的边缘概率分布

  (2)task. 给定一个具体的域 D=XX,P(X) ,一个任务(task)由两个部分组成:空间的标签 YY,和一个目的预测函数 f(.) ,task 用 T=YY,f(.) 表示,目标函数不能够被观察,但是i可以通过训练数据被学习到,其中包含变量 xi,yi ,其中 xiX,yiYY。函数 f(x) 可以用来预测新的变量标签。从概率的角度,可以将 f(x) 写成 P(y|x)。在本文中为了简化问题,只讨论一个 Ds 和一个 Dt 的情况。

  (3)Transfer Learning. 给定一个源域 Ds 和 一个学习任务 Ts,一个目标域 Dt 和 一个学习任务 Tt,迁移学习的目的是使用在 DsTs 上的知识帮助提高在目标域 Dt上的预测函数 fT(x) 的学习,其中 DsDt 或者 TsTt

  根据上述定义 D=XX,P(X),所以 DsDt 表示两者的特征空间不相同或者特征不相同或者特征的边缘概率分布不相同。同样地,由于 T=YY,P(Y|X)TsTt 意味着标签空间 YY 不相同或者 P(YS|XS)P(YT|XT) 。当 Ds=DtTs=Tt 的时候是传统的机器学习算法。比如在文本分类的例子中, DsDt 可能两个文本的语言不同,也有可能文本相同但是多关注的主题不同; TsTt 可能是一个是二分类问题,另一个十分类问题,也有可能是根据用户定义的类源和目标中的文本是不均衡的。

  此外,当两个域的特征空间存在显式或隐式关系时,我们表示源域和目标域是相关的。

2.3 A Categorization of Transfer Learning Techniques

  在迁移学习中主要关注三个主要研究问题:(1) What to transfer; (2) How to transfer; (3) When to transfer。即迁移什么、怎么迁移和什么时候迁移。

  “What to transfer”问的是哪一部分知识可以跨域或任务传递?某些知识对于特定的域或任务是特定的,一些知识可能在不同的域之间是通用的,因此它们可能有助于提高目标域或任务的性能。在发现了那一部分的知识可以进行迁移之后,需要发展学习算法来迁移知识,这就与“how to transfer”这个问题相关。“When to transfer”问的是在哪一种情况下,应该使用迁移学习。同样地我们也关注在什么情况下只是不应该被迁移。在某些情况下,当源域和目标域彼此不相关时,暴力转移可能失败。在最坏的情况下,它甚至可能损害目标域学习的性能,这种情况通常称为负迁移。目前关于迁移学习的研究主要集中在“转移什么”和“如何转移”上,隐含地假设源域和目标域是相互关联的。然而,如何避免负迁移是一个重要的开放课题,正受到越来越多的关注。

  如下表所示,根据源任务与目标任务数据域和任务的不同,我们将迁移学习分为以下的几类

论文阅读:A Survey on Transfer Learning

  (1)归纳式迁移学习

  只要目标任务不同,无论源和目标数据域是相同的还是不同的,都属于归纳学习。在这种情况下需要一些目标域中的带标签的数据来产0生一个在目标数据域中的目标预测模型 fT() 。并且根据源数据域中的将归纳式学习分为两类:

  (a)源数据域包含有大量标签数据,这时归纳式迁移学习和多任务学习类似。然而,推断学习只是希望通过从源任务迁移知识以在目标任务中获得好的表现,而多任务学习试图将源与目标任务同时学习。

  (b)源数据域没有可用的标签数据,这时归纳式迁移学习相当于自我学习。因为在自我学习中源数据域和目标数据域的标签是不同的,所以也可以理解为没有标签。

  (2)直推式迁移学习

  在这种情况,在目标数据域中没有可获得的、带标记的数据,然而在源数据域中有许多可获得的带标记的数据。并且根据源和目标数据域的不同情况,可以将直推式迁移学习分为两种情况:

  (a)源和目标数据域的特征空间是不同的,即 XXSXXT

  (b)源和目标数据域的特征空间是相同(XXS=XXT),但是输入数据的边缘概率分布是不同的,即 P(XS)P(XT),这种情况可以使用域适应,样本选择偏差和Covariate Shift。

  (3)无监督迁移学习

  在源域和目标域中都没有带标签的数据,关注与目标任务上的聚类、降维和密度估计。

  不同的迁移学习方法及相关领域总结如下表(下表是原文的扩展板,并入了表 1 中部分信息)及下图

论文阅读:A Survey on Transfer Learning

论文阅读:A Survey on Transfer Learning

从中我们看到,可以根据 Ds & Dt 或者 Ts & Tt 的关系对迁移学习的种类进行区别,也可以给根据源及目标数据源中的数据是否有标签对迁移学习的种类进行区别。但是不一定说源及目标中的数据都具有标签,就能确定 Ds & Dt 的关系。

  在上述三种不同的环境中,基于“转移什么”可将迁移学习的方法可以归纳为四种情况。下表展示了这四种情况并给出了简单的描述。

论文阅读:A Survey on Transfer Learning

  实例学习,假设源域中的某一部分数据确实可以通过重新赋权的方法应用于目标域任务的学习中实例的权重调整和重要性采样是在这样的背景下的两大技术。主要思想就是在目标领域的训练中,虽然源数据域不能直接使用,但是可以从中挑选部分,用于目标领域的学习。

  基于特征表示的迁移,主要思想是寻找一个“好”的特征表示,最小化域间差异和分类回归的误差。可以分为有监督和无监督两种情况。有监督特征构造的基本思想是学习一个低维的特征表示,使得特征可以在相关的多个任务*享,同时也要使分类回归的误差最小;无监督特征构造的基本思想包含两步,第一步在源领域上学习一个基向量b和基于这组基对于输入x的新的表示a

  基于参数的迁移,参数迁移方法假定在相关任务上的模型应该共享一些参数、先验分布或者超参数。多任务学习中多使用这种方法,通过将多任务学习对于源域和目标域的权值做改变(增大目标域权值,减小源域权值),即可将多任务学习转变成迁移学习。

重点内容*基于相关性的迁移*,和前三种方式不同,相关知识迁移方法在相关域中处理迁移学习的问题,它不假设每一个域的数据都是独立同分布的,而是将数据之间的联系从源域迁移到目标域。

3. 未来的发展趋势

  第一,针对领域相似性、共同性的度量,目前还没有深入的研究成果,未来还需要确定更加准确的度量方法。第二,在算法研究方面,迁移学习的应用范围很广。迁移学习多用于分类算法方面,其他方面的应用算法有待进一步研究。比如情感分类、强化学习、排序学习、度量学习、人工智能规划等。第三,关于可迁移学习条件,获取实现正迁移的本质属性还没有完全摸透,如何避免负迁移,实现迁移的有效性也是方向之一。

4. 技术难点

  负迁移是一个重要的技术难点。负迁移表示目标域训练中源域数据的使用不仅没有提升模型能力,反而降低了识别率的现象。尽管实际当中如何避免负迁移现象是很重要的问题,但是在这个问题上的研究依然很少,经验表明如果两个任务太不相似,那么鲁莽的强制迁移会损害性能。目前已有一些对任务和任务之间聚类的探索,旨在对如何自动避免负迁移提供指导。
另外在非简单分类或者回归的问题上,如何更好地优化迁移算法,以达到适合任务的最佳效果,也是一个难点。在不同的应用背景下,迁移学习是否适合以及需要做怎样的改进都是值得去考虑的。

迁移学习主要解决三个方面的问题:(1)数据的特征空间不同(就是源任务与目标任务的特征是不同的);(2)数据的分布是不同的(这种情况一般特征空间是相同的);(3)标注标签的花费很昂贵以至于很难标注或者几乎不可能标注。

概念区分:
(1)与多任务学习相比,迁移学习最关心的是目标任务,而不是同时学习所有的源任务和目标任务
(2)如果两个域是不同的,它们具有不同的特征空间或者不同的边缘概率分布

相关结论:
(1)当源域与目标域相互不相关的时候,暴力迁移可能是不成功的。在更糟的情况下,它可能伤害在目标域中学习的表现,常常称这种情况为负迁移。
(2)归纳式迁移学习。只要源域与目标域的任务不同,就满足归纳式迁移学习的条件。在这种情况下,需要在目标域中的一些标记数据来归纳出一个客观的预测模型。