0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

了解迁移学习,哪种情况适合做迁移学习?

电子工程师 来源:未知 作者:李倩 2018-08-05 10:39 次阅读

▌一. 了解迁移学习

迁移学习(Transfer Learning)目标是将从一个环境中学到的知识用来帮助新环境中的学习任务。

> The ability of a system to recognize and apply knowledge and skills learned in previous tasks to novel tasks。

入门推荐一篇公认的比较好的 【Survey】:A Survey on Transfer Learning,Sinno JialinPan, Qiang Yang,IEEE Trans

http://www.cse.ust.hk/faculty/qyang/Docs/2009/tkde_transfer_learning.pdf

另外,戴文渊的硕士学位论文也可以看一下:基于实例和特征的迁移学习算法研究

https://download.csdn.net/download/linolzhang/9872535

Survey 作者归纳了 Transfer Learning 相关的知识域,有必要了解一下这些名词:

● Learning学习 - 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

另外,进展及 Open Source Toolkit 可以参考:

http://www.cse.ust.hk/TL/index.html

▌二. 迁移学习分类

迁移学习(Transfer Learning)根据领域 和 任务的相似性,可以这样划分:

我们根据 源Domain和目前Domain 之间的关系,源Task 和 目标Task之间的关系,以及任务方法更详细的整理为下表:

实际上,归纳式迁移学习 是应用最广泛的一种方法,从这点上看,迁移学习更适合 有标签的应用域。

根据威廉希尔官方网站 方法,我们将迁移学习的方法划分为:

迁移学习方法虽然在学术有很多研究工作,实际上在应用领域并不算成熟,这本身就是一个很大的命题,关于迁移学习的条件 和 本质也并未形成一套正统的体系来引领研究方向,更多的也是在实验摸索。

迁移学习 目前面临如下几个问题:

1. 哪种情况适合做迁移学习? - What

这里先给个自己的理解:分类和回归问题是比较适合做迁移学习的场景,有标签的源数据是最好的辅助。

2. 该选择哪种方法? - Which

简单而行之有效的方法是首选,领域在快速发展,也不必拘泥算法本身,改善结果才是硬道理。

3. 如何避免负迁移? - How

迁移学习的目标是改善目标域的 Task效果,这里面负迁移(Negative Transfer)是很多研究者面临的一个问题,如何得到行之有效的改进,避免负迁移是需要大家去评估和权衡的。

▌三. 经典算法 TrAdaBoost

TrAdaBoost 算法是基于 样本迁移的 开山之作,由戴文渊提出,有着足够的影响力放在第一位来进行讲解。

论文下载:Boosting for Transfer Learning

http://home.cse.ust.hk/~qyang/Docs/2007/tradaboost.pdf

算法的基本思想是从源 Domain 数据中筛选有效数据,过滤掉与目标 Domain 不match的数据,通过 Boosting方法建立一种权重调整机制,增加有效数据权重,降低无效数据权重,下图是 TrAdaBoost 算法的示意图(截图来自于 庄福振 -迁移学习研究进展):

TrAdaBoost 算法比较简单,用一句话概括就是 从过期数据里面 找出和目标数据最接近的样本数据。

来看 TrAdaBoost 的算法步骤:

这里需要说明的一点就是 权重的更新方式,对于辅助样本来讲,预测值和标签越接近,权重越大;而对于目标数据则是相反,预测值和标签差异越大,权重越大。这种策略狠容易理解,我们想找到辅助样本中 和 目标数据分布最接近的样本,同时放大目标样本Loss的影响,那么理想的结果就是:

目标样本预测值与标签尽量匹配(不放过一个没匹配好的数据),辅助样本在前面的基础上筛选出最 match(权重大的) 的部分。

作者在后面给出了理论证明,这里有两个公式(来证明算法收敛):

因篇幅问题,这里就不再展开了(和作者说的一样),有兴趣可以参考原Paper,看下实验结果:

实验发现,当 同分布数据(目标数据)占比当低于0.1时,算法效果明显,当比例超过 0.1时,TrBoost 退化为 SVM 的效果。

这又是一个显而易见的结论,我们认为大于0.1时,仅仅依靠 目前数据就足够完成样本训练,这种情况下,辅助样本的贡献可以忽略。

另外,当 目标数据 和 辅助数据 差别比较大时,该方法是不 Work的,印证了最初的假设,这里不再展开证明。

最后,给出网友提供的C代码:【下载地址】

https://download.csdn.net/download/linolzhang/9880438

▌四. 多任务学习

多任务学习(Multi-Task Learning, MTL)是一种同时学习多个任务的机器学习方法,该方法由来已久,和深度学习没什么关系。

如果非要把它 和深度学习加上一个 link,我们可以这样来表示:

input1->Hidden1->H1->Out1input1->Out1input2->Hidden2->H2->Out2==>input2->Hidden123->H123->Out2input3->Hidden3->H3->Out3input3->Out3

也比较好理解,相当于把多个 Task网络进行合并,同时训练多个任务,这种情况并不鲜见,比如以下2个方向:

1)目标检测 - 复合多任务

目标检测是 分类问题+回归问题的组合,这是一个典型的 Multi-Task,比如:

Detection=Classification+Location

Mask RCNN =Classification+Location+Segmentation

检测问题前面描述的比较多了,这里就不再贴图了。

2)特征提取

多任务特征提取,多个输出,这一类问题代表就是 数据结构化,特征识别。

下图是香港中文大学汤晓鸥组发表的TCDCN(Facial Landmark Detection by Deep Multi-task Learning),很多讲 Multi-Task的软文都拿出来说,我们也借用一下。

在这里 Multi-Task 被同时用作 人脸关键点定位、姿态估计和属性预测(比如性别、年龄、人种、微笑?戴眼镜?)

多任务学习适用于这样的情况:

1)多个任务之间存在关联,比如行人和车辆检测,对于深度网络也可以理解为有部分共同的网络结构;

2)每个独立任务的训练数据比较少,单独训练无法有效收敛;

3)多个任务之间存在相关性信息,单独训练时无法有效挖掘;

可以看一下这篇 Tutorial:

www.public.asu.edu/~jye02/Software/MALSAR/MTL-SDM12.pdf

关于多任务学习的应用,比如分类任务下的二级分类、人脸识别等,大家可以更进一步了解。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7007

    浏览量

    88958
  • 算法
    +关注

    关注

    23

    文章

    4608

    浏览量

    92847
  • 迁移学习
    +关注

    关注

    0

    文章

    74

    浏览量

    5559

原文标题:一文了解迁移学习经典算法

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    迁移学习的原理,基于Keras实现迁移学习

    我面对的大多数计算机视觉问题没有非常大的数据集(5000-40000图像)。即使使用极端的数据增强策略,也很难达到像样的精确度。而在少量数据集上训练数百万参数的网络通常会导致过拟合。所以迁移学习是我的救星。
    的头像 发表于 05-09 03:44 1.5w次阅读
    <b class='flag-5'>迁移</b><b class='flag-5'>学习</b>的原理,基于Keras实现<b class='flag-5'>迁移</b><b class='flag-5'>学习</b>

    什么是迁移学习迁移学习的实现方法与工具分析

    向于不要求海量数据也能达到应用的精准要求,因此“小数据学习”正在成为新的热点,以迁移学习,强化学习为代表的小数据学习威廉希尔官方网站 ,更能体现人工智能的
    发表于 05-11 09:12 1.2w次阅读

    使用哪种运放比较适合做衰减用,且不会失真很严重?

    您好:我想用运放做衰减用,输入信号的幅度为0~10V,衰减5倍左右。输入信号的频率为135H和15Hz组成的正弦波包络。 请问,使用哪种运放比较适合做衰减用,且不会失真很严重,谢谢!
    发表于 09-10 07:20

    迁移学习训练网络

    keras 之 迁移学习,改变VGG16输出层,用imagenet权重retrain
    发表于 09-09 11:02

    【木棉花】学习笔记--分布式迁移

    也可以查看我上一篇学习笔记了解一下。那今天我要整理到学习笔记中的呢,就是在分布式能力里算是比较简单的分布式迁移。为了更好地熟练掌握鸿蒙手机应用开发,为了供大家更方便的
    发表于 09-05 10:49

    迁移学习

    经典机器学习算法介绍章节目标:机器学习是人工智能的重要威廉希尔官方网站 之一,详细了解机器学习的原理、机制和方法,为学习深度
    发表于 04-21 15:15

    基于局部分类精度的多源在线迁移学习算法

    近年来,迁移学习得到越来越多的关注,现有的在线迁移学习算法一般从单个源领域迁移知识。然而,当源领域与目标领域相似度较低时,很难进行有效的
    发表于 12-25 11:04 0次下载

    机器学习方法迁移学习的发展和研究资料说明

    近年来,迁移学习已经引起了广泛的关注和研究。迁移学习是运用已存有的知识对不同但相关领域问题进行求解的一种新的机器学习方法。它放宽了传统机器
    发表于 07-17 08:00 0次下载
    机器<b class='flag-5'>学习</b>方法<b class='flag-5'>迁移</b><b class='flag-5'>学习</b>的发展和研究资料说明

    基于脉冲神经网络的迁移学习算法

    使用脉冲序列进行数据处理的脉冲神经网络具有优异的低功耗特性,但由于学习算法不成熟,多层网络练存在收敛困难的问题。利用反向传播网络具有学习算法成熟和训练速度快的特点,设计一种迁移学习算法
    发表于 05-24 16:03 15次下载

    基于WordNet模型的迁移学习文本特征对齐算法

    基于WordNet模型的迁移学习文本特征对齐算法
    发表于 06-27 16:14 8次下载

    基于迁移深度学习的雷达信号分选识别

    基于迁移深度学习的雷达信号分选识别   来源:《软件学报》 ,作者王功明等   摘要:  针对当前雷达信号分选识别算法普遍存在的低信噪比下识别能力差、特征参数提取困难、分类器模型参数复杂等问题,提出
    发表于 03-02 17:35 1486次阅读

    一文详解迁移学习

    迁移学习需要将预训练好的模型适应新的下游任务。然而,作者观察到,当前的迁移学习方法通常无法关注与任务相关的特征。在这项工作中,作者探索了重新聚焦模型注意力以进行
    的头像 发表于 08-11 16:56 6321次阅读
    一文详解<b class='flag-5'>迁移</b><b class='flag-5'>学习</b>

    视觉深度学习迁移学习训练框架Torchvision介绍

    Torchvision是基于Pytorch的视觉深度学习迁移学习训练框架,当前支持的图像分类、对象检测、实例分割、语义分割、姿态评估模型的迁移学习
    的头像 发表于 09-22 09:49 899次阅读
    视觉深度<b class='flag-5'>学习</b><b class='flag-5'>迁移</b><b class='flag-5'>学习</b>训练框架Torchvision介绍

    迁移学习的基本概念和实现方法

    迁移学习(Transfer Learning)是机器学习领域中的一个重要概念,其核心思想是利用在一个任务或领域中学到的知识来加速或改进另一个相关任务或领域的学习过程。这种方法在数据稀缺
    的头像 发表于 07-04 17:30 1620次阅读

    预训练和迁移学习的区别和联系

    预训练和迁移学习是深度学习和机器学习领域中的两个重要概念,它们在提高模型性能、减少训练时间和降低对数据量的需求方面发挥着关键作用。本文将从定义、原理、应用、区别和联系等方面详细探讨预训
    的头像 发表于 07-11 10:12 1021次阅读