简述迁移学习(Transfer Learning)
目录
定义
变形
例子
总结
定义
迁移学习(Transfer learning) 顾名思义就是把已训练好的模型(预训练模型)参数迁移到新的模型来帮助新模型训练。考虑到大部分数据或任务都是存在相关性的,所以通过迁移学习我们可以将已经学到的模型参数(也可理解为模型学到的知识)通过某种方式来分享给新模型从而加快并优化模型的学习效率不用像大多数网络那样从零学习。
又,《深度学习》第526页对于迁移学习的定义:迁移学习和域适应指的是在一种环境中学到的知识被用在另一个领域中来提高它的泛化性能。
变形
其中,实现迁移学习有以下三种手段:
- Transfer Learning:冻结预训练模型的全部卷积层,只训练自己定制的全连接层。
- Extract Feature Vector:先计算出预训练模型的卷积层对所有训练和测试数据的特征向量,然后抛开预训练模型,只训练自己定制的简配版全连接网络。
- Fine-tuning:冻结预训练模型的部分卷积层(通常是靠近输入的多数卷积层,因为这些层保留了大量底层信息)甚至不冻结任何网络层,训练剩下的卷积层(通常是靠近输出的部分卷积层)和全连接层。
迁移学习与多任务学习以及概念飘移这些问题相关,它不是一个专门的机器学习领域。
然而,迁移学习在某些深度学习问题中是非常受欢迎的,例如在具有大量训练深度模型所需的资源或者具有大量的用来预训练模型的数据集的情况。仅在第一个任务中的深度模型特征是泛化特征的时候,迁移学习才会起作用。
深度学习中的这种迁移被称作归纳迁移。就是通过使用一个适用于不同但是相关的任务的模型,以一种有利的方式缩小可能模型的搜索范围。
例子
举个例子,假如你要建立一个猫咪检测器,用来检测自己的宠物猫。如网络上的Tigger,是一个常见的猫的名字,Misty也是比较常见的猫名字。假设你的两只猫叫 Tigger和Misty,或者两者都不是,这是一个三分类问题。忽略两只猫同时出现在一张图片里的情况。如果没有足够的Tigger和Misty的图片(即训练集很小),我们可以从网上下载一些神经网络的开源实现,同时把权重下下来。去掉原有的Softmax层,创建自己Softmax单元用来输出三个类别。
通过使用其他人预训练的权重,即使只有一个小的数据集,很可能得到很好的性能。
总结
理想情况下,在一个成功的迁移学习应用中,将会获得以下益处:
- 更高的起点:在微调之前,源模型的初始性能要比不使用迁移学习来的高。
- 更高的斜率:在训练的过程中源模型提升的速率要比不使用迁移学习来得快。
- 更高的渐进:训练得到的模型的收敛性能要比不使用迁移学习更好。
简述迁移学习(Transfer Learning)相关推荐
- 迁移学习(Transfer learning)、重用预训练图层、预训练模型库
迁移学习(Transfer learning).重用预训练图层.预训练模型库 目录 迁移学习(Transfer learning).重用预训练图层.预训练模型库 迁移学
- 深度学习不得不会的迁移学习Transfer Learning
http://blog.itpub.net/29829936/viewspace-2641919/ 2019-04-18 10:04:53 目录 一.概述 二.什么是迁移学习? 2.1 模型的训练与预 ...
- 迁移学习(transfer learning)与finetune的关系?【finetune只是transfer learning的一种手段】
目录 1.迁移学习简介 2.为什么要迁移学习? 3.迁移学习的几种方式 1)Transfer Learning: 2)Extract Feature Vector: 3)Fine-tune: 4.三种 ...
- 迁移学习(Transfer Learning)的背景、历史
迁移学习(Transfer Learning)的背景.历史 迁移学习的背景.历史及学习 1.迁移学习提出背景 在机器学习.深度学习和数据挖掘的大多数任务中,我们都会假设training和inferen ...
- PyTorch 迁移学习 (Transfer Learning) 代码详解
PyTorch 迁移学习 代码详解 概述 为什么使用迁移学习 更好的结果 节省时间 加载模型 ResNet152 冻层实现 模型初始化 获取需更新参数 训练模型 获取数据 完整代码 概述 迁移学习 ( ...
- 【深度学习系列】迁移学习Transfer Learning
在前面的文章中,我们通常是拿到一个任务,譬如图像分类.识别等,搜集好数据后就开始直接用模型进行训练,但是现实情况中,由于设备的局限性.时间的紧迫性等导致我们无法从头开始训练,迭代一两百万次来收敛模型, ...
- 迁移学习 Transfer Learning—通俗易懂地介绍(常见网络模型pytorch实现)
前言 你会发现聪明人都喜欢"偷懒", 因为这样的偷懒能帮我们节省大量的时间, 提高效率. 还有一种偷懒是 "站在巨人的肩膀上". 不仅能看得更远, 还能看到更多 ...
- 迁移学习(Transfer Learning)概述及代码实现(full version)
基于PaddlePaddle的李宏毅机器学习--迁移学习 大噶好,我是黄波波.希望能和大家共进步,错误之处恳请指出! 百度AI Studio个人主页, 我在AI Studio上获得白银等级,点亮2个徽 ...
- 迁移学习(Transfer Learning)概述及代码实现
基于PaddlePaddle的李宏毅机器学习--迁移学习 大噶好,我是黄波波,希望能和大家共进步,错误之处恳请指出! 百度AI Studio个人主页, 我在AI Studio上获得白银等级,点亮2个徽 ...
- 【深度学习】迁移学习 (Transfer Learning)
Introduction 把别处学得的知识,迁移到新场景的能力,就是"迁移学习". 具体在实践中体现为: 将 A任务上 预训练好的模型 放在B任务上,加上少量B任务训练数据,进行微 ...
最新文章
- oracle:ORA-01940无法删除当前已连接用户的解决方案
- CSS布局之float浮动
- python PyQt5.QtWidgets.QWidget类
- CSS DIV 居中
- iOS使用UIBezierPath实现ProgressView
- 仿照微信的效果,实现了一个支持多选、选原图和视频的图片选择器
- Angular实现购物车计算
- 10. SQL 注入
- 90后华人教授夫妇斩获IEEE the best 论文和ACM Demo冠军,团队1年连发4篇Nature子刊
- Ubuntu解压、压缩zip、tar、tar.gz、tar.bz2文件
- LabView 2018破解版下载
- 思科交换机常用命令及配置
- 非对称加密 DH算法
- Word文档,英文字母间隔非常大,解决方法
- 一文读懂什么是ICT
- shell 搜索文件夹下所有文件
- 破晓传说Boss切屏效果小记
- 微信PC端或将支持自动登录?网友直呼好家伙
- 李德毅院士:大数据认知
- 如何在中国高等教育学生信息网上在线查询自己的学历信息