浅谈迁移学习

  1. 迁移学习背景

吴恩达(Andrew Ng)曾说:迁移学习将会是继监督学习之后的下一个机器学习商业成功的驱动力。

现如今数据大爆炸,对机器学习模型来说要求快速构建,强泛化;对于数据来说,大部分数据没有标签。而传统的机器学习需要对每个领域都标定大量训练数据,这将会耗费大量的人力与物力。而没有大量的标注数据,会使得很多与学习相关研究与应用无法开展。其次,传统的机器学习假设训练数据与测试数据服从相同的数据分布。然而,在许多情况下,这种同分布假设并不满足。通常可能发生的情况如训练数据过期。这往往需要我们去重新标注大量的训练数据以满足我们训练的需要,但标注新数据是非常昂贵的,需要大量的人力与物力。从另外一个角度上看,如果我们有了大量的、在不同分布下的训练数据,完全丢弃这些数据也是非常浪费的。如何合理的利用这些数据就是迁移学习主要解决的问题。

图1.传统机器学习(a)与迁移学习(b)的区别

2.什么是迁移学习?

迁移学习(Transfer Learning)是一种机器学习方法,是把一个领域(即源领域)的知识,迁移到另一个领域(即目标领域),使得目标领域可以取得更好的学习效果。

一般,源领域数据量充足,而目标领域数据量较小,这种场景就很适合作迁移学习,例如语音情感识别中,一种语言的语音数据充足,然而所需进行分类任务的情感数据却极度缺少。在这种状况下若是能够采用合适的迁移学习方法则能够大大提升样本不充足任务的分类识别结果。

3.迁移学习思想

迁移学习的主要思想就是从相关领域中迁移标注数据或者知识结构、完成或改进目标领域或任务的学习效果。通俗的来讲就是举一反三、照猫画虎,找到不同任务之间的关系

人在实际生活中有很多迁移学习,比如学会骑自行车,就比较容易学摩托车,学会了C语言,在学一些其它编程语言会简单很多。

4.迁移学习分类

根据所要迁移的知识表示形式(即 “what to transfer”),可将迁移学习分为四大类:

基于实例(样本)的迁移:通过对源域中有标记样本加权利用完成知识迁移

基于特征的迁移:通过将源域和目标域特征变换到相同的空间(或者将其中之一映射到另一个的空间中)并最小化源域和目标域的距离来完成知识迁移;目前使用最多也最易于上手完成。

基于参数(模型)的迁移:将源域和目标域的模型与样本结合起来调整模型的参数;该类方法在神经网络里面用的特别多。

基于关系知识的迁移:主要就是说通过在源域中学习概念之间的关系,然后将其类比到目标域中,完成知识的迁移。用的较少。

具体描述如下:

  • 基于实例(样本)的迁移

在源域中找到与目标域相似的数据,把这个数据的权值进行调整,使得新的数据与目标域的数据进行匹配。然后进行训练学习,得到适用于目标域的模型。这样的方法优点是方法简单,实现容易。缺点在于权重的选择与相似度的度量依赖经验,且源域与目标域的数据分布往往不同。

图2. 基于实例(样本)的迁移

在基于实例的迁移学习方面,我们推广了传统的AdaBoost算法,提出一种具有迁移能力的boosting算法:Tradaboosting ,使之具有迁移学习的能力,从而能够最大限度的利用辅助训练数据来帮助目标的分类。我们的关键想法是,利用boosting的技术来过滤掉辅助数据中那些与源训练数据最不像的数据。其中,boosting的作用是建立一种自动调整权重的机制,于是重要的辅助训练数据的权重将会增加,不重要的辅助训练 数据的权重将会减小。调整权重之后,这些带权重的辅助训练数据将会作为额外的训练数据,与源训练数据一起从来提高分类模型的可靠度。

  • 基于特征的迁移

基于特征映射的迁移学习算法,关注的是如何将源领域和目标领域的数据从原始特征空间映射到新的特征空间中去。当源域和目标域含有一些共同的交叉特征时,我们可以通过特征变换,将源域和目标域的特征变换到相同空间,使得该空间中源域数据与目标域数据具有相同分布的数据分布,从而可以在新的空间中,更好地利用源领域已有的有标记数据样本进行分类训练,最终对目标领域的数据进行分类测试。优点是对大多数方法适用,效果较好。缺点在于难于求解,容易发生过适配。

图3.基于特征的迁移

  • 基于模型的迁移

源域和目标域共享模型参数,也就是将之前在源域中通过大量数据训练好的模型应用到目标域上进行预测。基于模型的迁移学习方法比较直接,这样的方法优点是可以充分利用模型之间存在的相似性。缺点在于模型参数不易收敛。

举个例子:比如利用上千万的图象来训练好一个图象识别的系统,当我们遇到一个新的图象领域问题的时候,就不用再去找几千万个图象来训练了,只需把原来训练好的模型迁移到新的领域,在新的领域往往只需几万张图片就够,同样可以得到很高的精度。

图4.基于模型的迁移

  • 基于关系的迁移

当两个域是相似的时候,那么它们之间会共享某种相似关系,将源域中学习到的逻辑网络关系应用到目标域上来进行迁移,例如说生物病毒传播规律到计算机病毒传播规律的迁移。这部分的研究工作比较少。典型方法就是mapping的方法。

图5.基于关系的迁移

5.如何实现迁移学习?

实际上有两种类型的迁移学习,特征提取和微调网络。

所谓特征,就是一事物异于其他事物的特点。比如,我们判断动物是否昆虫,有一个简单的原则:少于三对或多于三对足的动物都不是昆虫。再比如我们识别猫和狗,也一定是从某些特征入手,虽然有些时候我们并不能清晰的描述出特征。

在深度学习流行之前,人们通常手工提取特征,这通常面临着特征提取困难、效率低下等问题。到了深度学习阶段,我们通常采用端到端的训练方式,也就是由计算机自动识别特征(为了提高效率,训练前,我们也可能会对数据进行预处理,比如归一化、图片缩放等等,但这和以前的特征提取并不是一回事)。

在计算机视觉领域,卷积神经网络是应用得最广泛的模型,卷积运算实际上是进行图像特征的提取,到最后一层,才是进行分类(softmax、logistic),所以如果我们获得最后一层的输入,也就得到了提取的特征。

所谓微调网络,相当于给预训练的模型做一个“换头术”,即“切掉”最后的全连接层(可以想象为卷积神经网络的“头部”),然后接上一个新的参数随机初始化的全连接层,接下来我们在这个动过“手术”的卷积神经网络上用我们比较小的数据集进行训练。

在新模型上进行训练,有几点需要注意:

  • 开始训练时,“头部”以下的层(也就是没有被替换的网络层)的参数需要固定(frozen),也就是进行前向计算,但反向传递时不更新参数,训练过程只更新新替换上的全连接层的参数。
  • 使用一个非常小的学习率进行训练,比如0.001
  • 最后,作为可选,在全连接层的参数学习得差不多的时候,我们可以将“头部”以下的层解冻(unfrozen),再整体训练整个网络。

6.迁移学习的应用-从模拟中学习

模拟是针对这个问题的首选工具,在现实世界中它被用来实现很多先进的机器学习系统。从模拟中学习并将学到的知识应用在现实世界,其源域和目标域的特征空间是一样的(仅仅依靠像素),但是模拟和现实世界的边际概率分布是不一样的,即模拟和目标域中的物体看上去是不同的,尽管随着模拟的逐渐逼真,这种差距会消失。同时,模拟和现实世界的条件概率分布可能是不一样的,因为模拟不会完全复制现实世界中的所有反应,例如,一个物理引擎不会完全模仿现实世界中物体的交互。

图 6:谷歌的自动驾驶车辆

从模拟中学习有利于让数据收集变得更加容易,因为物体可以容易地被限制和分析,同时实现快速训练,因为学习可以在多个实例之间并行进行。因此,这是需要与现实世界进行交互的大规模机器学习项目的先决条件,例如自动驾驶汽车。Udacity 已经开源了它用来进行无人驾驶汽车工程纳米学位教学的模拟器,在图 7 中可以看到,OpenAI 的 Universe 平台将可能允许用《侠盗飞车 5(GTA 5)》或者其他视频游戏来训练无人驾驶汽车。

图 7:Udacity 的无人驾驶汽车模拟器

另一个必需从模拟中学习的领域是机器人:在实际的机器人上训练模型是非常缓慢和昂贵的。从模拟中学习并且将知识迁移到现实世界的机器人上的方式能缓解这个问题,并且这种方面最近正得到越来越多的关注。图 8 中可以看到一个在现实世界和模拟中操作数据的一个例子。

图 8:机器人和模拟图片

最后,另一个方向是通向通用人工智能的途径,其中模拟会是一个必需的组成部分。在现实世界中直接训练一个代理来实现通用人工智能的代价太高,并且不必要的复杂度还会在初始的时候阻碍训练。

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值