【转载】 迁移学习简介(tranfer learning)
原文地址:
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或者很小),不允许抖动。
防止无法无天的变动
问题:应该拷贝哪些层的参数呢?
- 语音识别问题一般是最后的一些层
- 图像的通常是开始的一些层
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)的更多相关文章
- 迁移学习(Transfer Learning)(转载)
原文地址:http://blog.csdn.net/miscclp/article/details/6339456 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型 ...
- 迁移学习( Transfer Learning )
在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型:然后利用这个学习到的模型来对测试文档进行分类与预测.然而,我们看到机器学习算法在当前的Web挖掘研究中存在着一个关 ...
- 迁移学习(Transfer Learning)
原文地址:http://blog.csdn.net/miscclp/article/details/6339456 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型 ...
- Domain adaptation:连接机器学习(Machine Learning)与迁移学习(Transfer Learning)
domain adaptation(域适配)是一个连接机器学习(machine learning)与迁移学习(transfer learning)的新领域.这一问题的提出在于从原始问题(对应一个 so ...
- 【47】迁移学习(Transfer Learning)
迁移学习(Transfer Learning) 如果你要做一个计算机视觉的应用,相比于从头训练权重,或者说从随机初始化权重开始,如果你下载别人已经训练好网络结构的权重,你通常能够进展的相当快,用这个作 ...
- 【迁移学习】2010-A Survey on Transfer Learning
资源:http://www.cse.ust.hk/TL/ 简介: 一个例子: 关于照片的情感分析. 源:比如你之前已经搜集了大量N种类型物品的图片进行了大量的人工标记(label),耗费了巨大的人力物 ...
- AI小白必读:深度学习、迁移学习、强化学习别再傻傻分不清
摘要:诸多关于人工智能的流行词汇萦绕在我们耳边,比如深度学习 (Deep Learning).强化学习 (Reinforcement Learning).迁移学习 (Transfer Learning ...
- 【转载】 迁移学习(Transfer learning),多任务学习(Multitask learning)和端到端学习(End-to-end deep learning)
--------------------- 作者:bestrivern 来源:CSDN 原文:https://blog.csdn.net/bestrivern/article/details/8700 ...
- 【深度学习系列】迁移学习Transfer Learning
在前面的文章中,我们通常是拿到一个任务,譬如图像分类.识别等,搜集好数据后就开始直接用模型进行训练,但是现实情况中,由于设备的局限性.时间的紧迫性等导致我们无法从头开始训练,迭代一两百万次来收敛模型, ...
随机推荐
- SpringBoot自定义servlet、注册自定义的servlet、过滤器、监听器、拦截器、切面、webmvcconfigureradapter过时问题
[转]https://www.cnblogs.com/NeverCtrl-C/p/8191920.html 1 servlet简介 servlet是一种用于开发动态web资源的技术 参考博客:serv ...
- 织梦阿里云OSS解决方案
准备工作 申请OSS账号,并且创建一个public-read的bucket.这里需要权限为public-read是因为后面需要匿名访问. 详细步骤 1.开启织梦远程附件功能2.现在织梦还有远程附件还有 ...
- matlab(6) Regularized logistic regression : plot data(画样本图)
Regularized logistic regression : plot data(画样本图) ex2data2.txt 0.051267,0.69956,1-0.092742,0.68494, ...
- CSS定位有几种?分别描述其不同
static(静态定位):即默认值,元素框正常生成的,top.right.bottom.left这些偏移属性不会影响静态定位的正常显示(属性不应用): relative(相对定位):元素相对自身偏移某 ...
- Django REST framework+Vue 打造生鲜电商项目(笔记九)
(from:http://www.cnblogs.com/derek1184405959/p/8859309.html) 十二.支付宝沙箱环境配置 12.1.创建应用 进入蚂蚁金服开放平台(https ...
- 密码加密与微服务鉴权JWT详细使用
[TOC] 1.1.了解微服务状态 微服务集群中的每个服务,对外提供的都是Rest风格的接口,而Rest风格的一个最重要的规范就是:服务的无状态性. 什么是无状态? 1.服务端不保存任何客户端请求者信 ...
- Appium自动化测试教程-自学网-monkey自定义脚本实践
自定义脚本的稳定性测试 常规Monkey测试执行的是随机的事件流,但如果只是想让Monkey测试某个特定场景这时候就需要用到自定义脚本了,Monkey支持执行用户自定义脚本的测试,用户只需要按照Mon ...
- mysql更新数据,条件为实时查询出来的数据
--将更新条件保存到临时表里 CREATE TABLE tmp3 AS (SELECT username FROM oa_user WHERE username NOT IN (SELECT user ...
- 数据结构实验之查找一:二叉排序树 (SDUT 3373)
二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),也称二叉搜索树. #include <stdio.h> #include <s ...
- 如何在微信小程序中国引入fontawesome字体图标
fontawesome官网地址:http://fontawesome.dashgame.com/ 一. 二. 下载之后的字体图标 找到 文件中的如下图.ttf文件 三. 在https://transf ...