原文地址:

https://blog.csdn.net/qq_33414271/article/details/78756366

土豆洋芋山药蛋

--------------------------------------------------------------------------------------------------------

目录:
一、什么是迁移学习?
二、为什么要迁移学习?
三、具体怎么做?
3.1目标数据和原始数据都有标签
3.1.1模型Fine-tune
3.1.2模型Multitask Learning
3.2原始数据有标签,目标数据没有标签
3.2.1域对抗 Domain-adversarial training
3.2.2零样本学习 Zero-shot Learning
四、总结一下

一、什么是迁移学习?

迁移学习将一个场景中学到的知识迁移到另一个场景中

达叔也说将来迁移学习也会向现在的机器学习一样的火

例如将猫狗分类的学习模型迁移到其它相似的任务上面,用来分辨老鹰和布谷鸟(因为都是拍摄的真实图片,所以属于相同的域,抽取特征的方法相同),或者是分别卡通图像(卡通图像和真实图片属于不同的域,迁移时要消除域之间的差异)

二、为什么要迁移学习?
使用深度学习技术解决问题的过程中,最常见的障碍在于:模型有大量的参数需要训练,因此需要海量的训练数据作支撑
在面对某一领域的具体问题时,通常可能无法得到构建模型所需的规模的数据
借助迁移学习,在一个模型训练任务中针对某种类型数据获得的关系也可以轻松地应用于同一领域的不同问题

三、具体怎么做?

具体有如下方法:

由于在最后一列的两种情况中,截止写博客的时间还应用的不广,所以就先介绍第一列的两种情况。

3.1目标数据和原始数据都有标签

3.1.1模型Fine-tune

任务现状:
1. 原始数据和目标数据都有标签
2. 目标数据很少

例子:(有监督学习)电商小品类商品识别
源数据:Imagenet多种物体图片
目标数据:电商小品类商品图片

基本思想:
1.用原始Imagenet训练一个效果比较好的模型
2.用训练好的模型在自己的数据集上进行调优(重点:微微调整,防止过拟合)

模型Fine-tune实现方法:
方法1:保守训练 Conservative Training
方法2:层迁移 Layer Transfer

方法1:保守训练 Conservative Training

保守训练的做法: 
先训练好一个Model,得到参数和是某类图片的概率向量,接着有两种不同角度来训练新的数据(注意:重点是微微调整,防止过拟合):

    • 保证原模型参数变化不大

    • 让输出结果的概率向量很接近

方法2:层迁移 Layer Transfer

层迁移做法: 
规定某些层的参数固定(learning rate设置为0或者很小),不允许抖动。 
防止无法无天的变动

问题:应该拷贝哪些层的参数呢?

  1. 语音识别问题一般是最后的一些层 
  2. 图像的通常是开始的一些层

3.1.2模型Multi-task Learning

在原来任务和目的任务的效果都不会差组合网络,公用某些层 
基本思想:将不同的任务数据线放在一起共同提取出共性,然后分开训练,已解决具体的问题(捕捉共性以提升两个任务的效果)

相比较而言,上图左边方式的比较常用

典型应用:不同语种的识别问题上,提取人类语言特性,然后再去识别不同的语言

3.2原始数据有标签,目标数据没有标签

3.2.1域对抗 Domain-adversarial training

如下图任务:识别彩色的识别手写体 
MNIST中,数据有标签 
MNIST-M中,不使用数据标签

思想:
两类不同Domain的图像目标:将Domain消除掉
实际上识别过程可以分为两部分:1.抽取特征(如得到一个4096维的向量),2.分类(到底是1,2,3···)

那么我们就可以通过feature区分,如果用feature区分不出来是来自哪个Domain的(同时还要保证能分出来1,2,3……),就说明说明成功了

我们需要设置一个警察,时刻监督是否真的区分不出来是哪个Domain图片

注意:红色区域表示负责监督的警察,警察要把自己的loss降低,警察的loss越低说明越容易区分,所以要做一个反向的变换,我越不让你能区分是哪一个,如此反复警察直至分不清(对抗),这样就得到了通用的特征。

3.2.2零样本学习 Zero-shot Learning

任务描述: 
有了一个能区分猫和狗的模型,但此时来了一个之前从未见过的草泥马,应该怎么区分呢?

解决思路: 
不识别动物本身,只识别动物的属性,将动物的属性放在一个大的数据库里面,有了新的样本,直接对比数据库中的属性来区分是哪种动物

在语音识别领域这种思路就像是提取出语言的属性,所有语言在某些属性上都很相似,就像是世界通用语言一样,但不同语言又有独特的属性

四、总结一下
迁移学习就是将已得到的结果迁移到那些难以解决的问题上去

而问题难以解决的原因大概有两个:1.数据不够,2.无法区分
对于问题1可以将原有的Model稍微改一下拿过去用或者共同训练
对于问题2可以和原问题结合,消除数据间差异(不同域之间的迁移)或划分属性(直接拆分后判断属性)来将原问题的结果给现问题参考借鉴

--------------------------------------------------------------------------------------------------------

【转载】 迁移学习简介(tranfer learning)的更多相关文章

  1. 迁移学习(Transfer Learning)(转载)

    原文地址:http://blog.csdn.net/miscclp/article/details/6339456 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型 ...

  2. 迁移学习( Transfer Learning )

    在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型:然后利用这个学习到的模型来对测试文档进行分类与预测.然而,我们看到机器学习算法在当前的Web挖掘研究中存在着一个关 ...

  3. 迁移学习(Transfer Learning)

    原文地址:http://blog.csdn.net/miscclp/article/details/6339456 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型 ...

  4. Domain adaptation:连接机器学习(Machine Learning)与迁移学习(Transfer Learning)

    domain adaptation(域适配)是一个连接机器学习(machine learning)与迁移学习(transfer learning)的新领域.这一问题的提出在于从原始问题(对应一个 so ...

  5. 【47】迁移学习(Transfer Learning)

    迁移学习(Transfer Learning) 如果你要做一个计算机视觉的应用,相比于从头训练权重,或者说从随机初始化权重开始,如果你下载别人已经训练好网络结构的权重,你通常能够进展的相当快,用这个作 ...

  6. 【迁移学习】2010-A Survey on Transfer Learning

    资源:http://www.cse.ust.hk/TL/ 简介: 一个例子: 关于照片的情感分析. 源:比如你之前已经搜集了大量N种类型物品的图片进行了大量的人工标记(label),耗费了巨大的人力物 ...

  7. AI小白必读:深度学习、迁移学习、强化学习别再傻傻分不清

    摘要:诸多关于人工智能的流行词汇萦绕在我们耳边,比如深度学习 (Deep Learning).强化学习 (Reinforcement Learning).迁移学习 (Transfer Learning ...

  8. 【转载】 迁移学习(Transfer learning),多任务学习(Multitask learning)和端到端学习(End-to-end deep learning)

    --------------------- 作者:bestrivern 来源:CSDN 原文:https://blog.csdn.net/bestrivern/article/details/8700 ...

  9. 【深度学习系列】迁移学习Transfer Learning

    在前面的文章中,我们通常是拿到一个任务,譬如图像分类.识别等,搜集好数据后就开始直接用模型进行训练,但是现实情况中,由于设备的局限性.时间的紧迫性等导致我们无法从头开始训练,迭代一两百万次来收敛模型, ...

随机推荐

  1. 算法笔试过程中的几个输入输出python语句

    title: python在线笔试学习笔记 localimage: image1 urlname: writenexam categories: summary tags: [writen, exam ...

  2. Linux下Mysql服务安装【1】

    https://www.cnblogs.com/xiaxiaoxu/p/9978976.html 第一步:获取mysql8.0的yum源 进入mysql官网获取RPM包下载地址 https://dev ...

  3. PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能

    PHP开启目录引索 一. 前言 不知为何对nginx情有独钟, 最近练习php, 为了方便写代码, 便想要开启nginx的目录索引功能, 显然不如Apache开启的方便, 几次尝试都崩了... 我这个 ...

  4. 交付Dubbo微服务到kubernetes集群

    1.基础架构 1.1.架构图 Zookeeper是Dubbo微服务集群的注册中心 它的高可用机制和k8s的etcd集群一致 java编写,需要jdk环境 1.2.节点规划 主机名 角色 ip hdss ...

  5. TODO Android +jacoco的增量覆盖率测试和一些概念

    查了下资料,工具要用mac开发,,,,陷入窘境,正在寻找替代方案. Android中的jacoco只支持offline模式,spring支持on-the-fly(在加载class文件进行,运用java ...

  6. Spring Boot 项目在 IntelliJ IDEA 中配置 DevTools 实现热部署(macOS 系统)

    要配置的内容: 1.Preference -> Build, Execution, Deployment -> Complier -> Build project automatic ...

  7. 10 loader - 配置处理less文件的loader

    第一步:装包 cnpm i less-loader -D 安装完提示警告 peerDependencies WARNING less-loader@* requires a peer of less@ ...

  8. Java中String、StringBuffer、StringBuilder、StringTokenizer的区别

    Java语言中,有4个类可以对字符或字符串进行操作,它们是Character.String.StringBuffer.StringTokenizer,其中Character用于单个字符操作,Strin ...

  9. comm shell command

    1.awk command 1.1 Purpose 1: want to distinct and then count and sort by num 1.1.1 Command: cat resu ...

  10. PHP流程控制之嵌套if...else...elseif结构

    还记得本章开篇我们讲了一个王思总同学的例子: 王同学是生活极度充满娱乐化和享受生活的人.他抵达北京或者大连的时候做的事,他抵达后做的事情,如下:直线电机参数 半夜到达,先去夜店参加假面舞会 早上抵达, ...