迁移学习简介(tranfer learning)
目录:
一、什么是迁移学习?
二、为什么要迁移学习?
三、具体怎么做?
3.1目标数据和原始数据都有标签3.1.1模型Fine-tune3.1.2模型Multitask Learning
3.2原始数据有标签,目标数据没有标签3.2.1域对抗 Domain-adversarial training3.2.2零样本学习 Zero-shot Learning
四、总结一下
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
一、什么是迁移学习?
迁移学习将一个场景中学到的知识迁移到另一个场景中
达叔也说将来迁移学习也会向现在的机器学习一样的火
例如将猫狗分类的学习模型迁移到其它相似的任务上面,用来分辨老鹰和布谷鸟(因为都是拍摄的真实图片,所以属于相同的域,抽取特征的方法相同),或者是分别卡通图像(卡通图像和真实图片属于不同的域,迁移时要消除域之间的差异)
二、为什么要迁移学习?
- 使用深度学习技术解决问题的过程中,最常见的障碍在于:模型有大量的参数需要训练,因此需要海量的训练数据作支撑
- 在面对某一领域的具体问题时,通常可能无法得到构建模型所需的规模的数据
- 借助迁移学习,在一个模型训练任务中针对某种类型数据获得的关系也可以轻松地应用于同一领域的不同问题
三、具体怎么做?
具体有如下方法:
由于在最后一列的两种情况中,截止写博客的时间还应用的不广,所以就先介绍第一列的两种情况。
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模型Multitask 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可以和原问题结合,消除数据间差异(不同域之间的迁移)或划分属性(直接拆分后判断属性)来将原问题的结果给现问题参考借鉴
--------------------- 本文来自 土豆洋芋山药蛋 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qq_33414271/article/details/78756366?utm_source=copy
迁移学习简介(tranfer learning)相关推荐
- 迁移学习简介(transfer learning)
迁移学习简介(transfer learning) https://blog.csdn.net/qq_33414271/article/details/78756366 一.什么是迁移学习? 迁移学习 ...
- pytorch图像分类篇:6. ResNet网络结构详解与迁移学习简介
前言 最近在b站发现了一个非常好的 计算机视觉 + pytorch 的教程,相见恨晚,能让初学者少走很多弯路. 因此决定按着up给的教程路线:图像分类→目标检测→-一步步学习用pytorch实现深度学 ...
- 基于Keras Application和Densenet迁移学习(transfer learning)的乳腺癌图像分类模型(良性、恶性)
基于Keras Application和Densenet迁移学习(transfer learning)的乳腺癌图像分类模型(良性.恶性) 概论: 美国癌症学会官方期刊发表<2018年全球癌症统计 ...
- Domain adaptation:连接机器学习(Machine Learning)与迁移学习(Transfer Learning)
domain adaptation(域适配)是一个连接机器学习(machine learning)与迁移学习(transfer learning)的新领域.这一问题的提出在于从原始问题(对应一个 so ...
- 吴恩达深度学习笔记(67)-迁移学习(Transfer learning)
https://www.toutiao.com/a6644868806923518471/ 2019-01-11 07:36:41 迁移学习(Transfer learning) 深度学习中,最强大的 ...
- 迁移学习(Transfer Learning)-- 概念理解
迁移学习(Transfer Learning) 迁移学习概述 背景 随着越来越多的机器学习应用场景的出现,而现有表现比较好的监督学习需要大量的标注数据,标注数据是一项枯燥无味且花费巨大的任务,所以迁移 ...
- 迁移学习( Transfer Learning )
转载于: http://apex.sjtu.edu.cn/apex_wiki/Transfer Learning 迁移学习( Transfer Learning ) 薛贵荣 在传统的机器学习的框架下, ...
- 【李宏毅机器学习笔记】 17、迁移学习(Transfer Learning)
[李宏毅机器学习笔记]1.回归问题(Regression) [李宏毅机器学习笔记]2.error产生自哪里? [李宏毅机器学习笔记]3.gradient descent [李宏毅机器学习笔记]4.Cl ...
- 迁移学习 迁移参数_迁移学习简介
迁移学习 迁移参数 介绍 (Introduction) We as humans have the ability to transfer the knowledge gained in one ta ...
最新文章
- python iter 迭代函数 简介
- 【数据平台】sqoop支持hive和mysql互导的基本语句格式
- 【JUC并发编程09】读写锁
- 清华大学python课程_清华大学计算机系课程攻略
- jooq 入门_jOOQ,H2和Maven入门
- 移动开发(C#、VB.NET)Smobiler开发平台——GifView控件的使用方式
- 微信小程序后端Java接口开发与调试
- vtuber面部捕捉工具_如何做一名VTuber?一个VUP就足够
- java清除session_退出页面自动清除java session方法
- ios越狱python插件_人生苦短,我用Python – 越狱后如何在IOS设备上玩Python编程,2018-07-11 – 算法网...
- fx3u4ad一adp说明书_FX3U-4AD-ADP使用手册三菱FX3U-4AD-ADP用户手册 - 三菱
- 网传刘强东遭失实指控 性侵女大学生被捕是假的已保释
- UCOS操作系统基础
- Java中随机数的产生
- html怎么设置字体小于12px,前端浏览器字体小于12px的解决办法
- 卧槽,QQ号终于能修改了!
- python socket的部分学习(ASDL)
- overfeat论文待续
- ajax从新浪获取实时股票数据
- hive小文件过多问题解决方法
热门文章
- HDU 5908 Abelian Period 暴力
- css3中clip属性
- CString类型的头文件、CString的输出、CString的常用用法
- 漂亮的NavMenu导航控件
- 请解释和、|和||的区别?
- 关于Linux的缓存内存 Cache Memory详解
- 科学计算:Python VS. MATLAB(4)----图形系统简介
- 服务器上安装ffmpeg后报错及解决方案libavdevice.so.58: cannot open shared object file: No such file or directory
- C++十进制转二进制
- nova7修屏逛校园2021-07-07