2.6 迁移学习
2.6.1 迁移学习的基本概念
迁移学习(Transfer Learning),是机器学习的一个重要分支,目标是将某个领域或任务上学习到的知识或模式应用到其他不同但相关的领域中。更具体来说就是,利用数据、任务或者模型之间的相似性,将旧领域学习过的模型应用于新领域的一种学习过程,如图2.15所示。具体地,在迁移学习中,在旧领域已学习到的知识叫作源域(Source Domain),要学习的新领域的知识叫作目标域(Target Domain)。
图2.15 迁移学习示意图
那么为什么需要迁移学习呢?主要有以下几个原因。
(1)优质数据与深度学习的矛盾
大数据时代的到来,使得深度学习技术受到了越来越多的关注与研究,并且已成功应用于多个领域。它可以通过无监督或半监督特征学习算法及分层特征提取来自动提取数据特征,相反,传统的机器学习方法需要手动设计功能,从而增加了用户的负担。但是数据依赖是深度学习中最严重的问题之一。深度学习需要大量数据才能理解数据的潜在模式。对于特定问题,模型的表达空间必须足够大才能发现数据下的模式。许多机器学习和数据挖掘算法中的重要假设是,训练数据和未来数据必须在相同的特征空间中并且具有相同的分布。但是,在许多实际应用中,此假设可能不成立。例如,有时在一个感兴趣的领域中有一个分类任务,但在另一个感兴趣的领域中只有足够的训练数据,其中后者的数据可能在不同的特征空间中或遵循不同的数据分布。并且,在一些特殊领域,训练数据不足的情况是不可避免的,例如,生物信息数据集中的每个样本通常都代表一次临床试验或一名痛苦的患者。
以上原因导致很难高效地构建大规模的数据集,因此这些领域的发展受到了极大的限制。另外,即使我们以昂贵的代价获得训练数据集,也很容易过时,因此无法有效地应用于新任务中。于是,优质数据与深度学习之间的矛盾便是迁移学习兴起的主要原因。
(2)普适模型与个性化需求的矛盾
机器学习的目标是构建一个尽可能完备且通用的模型,使得这个模型对于不同用户、不同设备、不同环境、不同需求,都可以很好地得到满足。这就要求提高模型的泛化能力,使之适用不同的数据情形。但是,由于人们的个性化需求五花八门,数量非常庞大,很难在有限的时间和计算能力中学习到如此万能的模型。比如基于文本任务,有人想做语言态度识别,有人想做作家文风识别,千奇百怪的使用条件就使得通用模型很难得以实现,于是需要拥有将一个通用模型迁移到不同场景使用的学习方法。
为了解决这些问题,研究人员将目光转向了迁移学习。迁移学习可以将某个领域或任务上学习到的知识或模式应用到其他不同但相关的领域中,从而解决训练数据不足的问题。在迁移学习中,不需要从头开始训练目标域中的模型,还可以显著减少目标域中训练数据和训练时间的需求。