简单理解迁移学习

在实际场景中,经常碰到的问题是标注数据的成本十分高,无法为一个目标任务准备足够多相同分布的训练数据。

如果有一个相关任务已经有了大量的训练数据,虽然这些训练数据的分布和目标任务不同,但是由于训练数据的规模比较大,我们假设可以从中学习某些可以泛化的知识,那么这些知识对目标任务会有一定的帮助。

如何将相关任务的训练数据中的可泛化知识迁移到目标任务上,就是迁移学习(Transfer Learning)需要解决的问题。

迁移学习指两个不同的领域的知识迁移过程,利用源领域(Source Domain)中学到的知识来帮助目标领域(Target Domain)上的学习任务。源领域的训练样本数量一般远大于目标领域。

迁移学习一般来说大多数是归纳迁移学习。下文中的迁移学习皆指归纳迁移学习。

一般而言,迁移学习要求源领域和目标领域是相关的,并且源领域有大量的训练样本,可以是有标注的,也可以是无标注的。

迁移学习主要分为以下两种。

源任务为无监督学习任务(即无标注数据)

一个典型的例子是自然语言处理领域。由于语言相关任务的标注成本较高,很多自然语言处理任务的标注数据都比较少,导致了在这些自然语言处理任务上经常会受限于训练样本数量而无法充分发挥深度学习模型的能力。

同时,由于我们可以低成本地获取大规模的无标注的自然语言文本,因此一种自然的迁移学习方式是将大规模文本上的无监督学习(如语言模型)中学到的知识迁移到一个新的目标任务上。

从早期的预训练词向量到句子级表示都对自然语言处理任务有很大的促进作用。

源领域有大量的标注数据

可以直接将源领域上训练的模型迁移到目标领域上。
例如,在计算机视觉领域有大规模的图像分类数据集ImageNet,在该数据集上有很多预训练的图像分类模型(AlexNet,VGG-16,ResNet),可以将这些预训练模型迁移到目标任务上。

迁移学习一般有以下两种方式:

  • ①基于特征的方式:将预训练模型的输出或者是中间隐藏层的输出作为特征直接加入到目标任务的学习模型中。目标任务的学习模型可以是一般的浅层分类器(如svm)或一个新的神经网络模型。典型的例子是FCN
  • ②精调(fine-tuning)的方式:在目标任务上复用预训练模型的部分组件,并对其参数进行精调。

假设预训练模型是一个深度神经网络,这个预训练网络的每一层的可迁移性能也不尽相同。通常来说,网络的地层学习一些通用的低层特征,中层或高层学习抽象的高级语义特征,而最后几层一般学习和特定任务相关的特征。

根据目标任务的特点以及和源任务的相关性,可以有针对性地选择预训练模型的不同层来迁移到目标任务中。

迁移学习的好处:

  • ①性能比随机初始化的模型好
  • ②学习速度更快,收敛性更好
  • ③模型最终性能更好,具有更好的泛化性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值