《迁移学习》
一、什么是迁移学习
迁移学习(Transfer learning) 顾名思义就是就是把已学训练好的模型参数迁移到新的模型来帮助新模型训练。考虑到大部分数据或任务是存在相关性的,所以通过迁移学习我们可以将已经学到的模型参数(也可理解为模型学到的知识)通过某种方式来分享给新模型从而加快并优化模型的学习效率不用像大多数网络那样从零学习(starting from scratch,tabula rasa)。
迁移学习的本质是适应
(adaptation)。适应可以是适应一个任务、适应一种模态、适应一个领域、适应一种语言、适应一份新数据等。所谓“适应”,有两方面的内涵:一是只有已经能用的东西才能“适应”新东西,二是这个能用的东西需要在别的场景下发挥作用。
在传统分类学习中,为了保证训练得到的分类模型具有准确性和高可靠性,都有两个基本的假设:
(1) 用于学习的训练样本与新的测试样本满足独立同分布;
(2) 必须有足够可用的训练样本才能学习得到一个好的分类模型。
但是,在实际应用中这两个条件往往无法满足。首先,随着时间的推移,原先可利用的有标签样本数据可能变得不可用,与新来的测试样本的分布产生语义、分布上的缺口。另外,有标签样本数据往往很缺乏,而且很难获得。这就引起了机器学习中另外一个重要问题,如何利用少量的有标签训练样本或者源领域数据,建立一个可靠的模型对具有不同数据分布的目标领域进行预测。
迁移学习是运用已存有的知识对不同但相关领域问题进行求解的新的一种机器学习方法。它放宽了传统机器学习中的两个基本假设,目的是迁移已有的知识来解决目标领域中仅有少量有标签样本数据甚至没有的学习问题[1]。在美国国防部高级研究计划局的信息处理技术办公室发表的公告中,给出的迁移学习的定义是:
把之前任务中学习到的知识和技能应用到新的任务中的能力。
迁移学习是机器学习领域中的一种技术,
它涉及将从一个任务学到的知识应用到另一个不同但相关的任务上
。这种方法特别适用于新任务的数据量有限的情况,或者新任务的标注数据获取成本很高时。通过迁移学习,可以利用已有的模型(通常是在大数据集上预训练的模型)来加速新任务的学习过程,并提高模型的性能。
例如将猫狗分类的学习模型迁移到其它相似的任务上面,用来分辨老鹰和布谷鸟(因为都是拍摄的真实图片,所以属于相同的域,抽取特征的方法相同),或者是分别卡通图像(卡通图像和真实图片属于不同的域,迁移时要消除域之间的差异)
了解迁移学习中有两对主要的概念,域和任务以及源和目标:
