接下来我会介绍关于迁移学习的以下内容。

  1. 它是什么?
  2. 它是如何工作的?
  3. 为什么使用它?
  4. 什么时候使用?
  5. 转移学习的方法: 训练模型;使用预先训练的模型;和特征提取
  6. 总结:进一步阅读

1. 什么是迁移学习?

迁移学习: 遇到一个新问题,不是从头训练一个网络模型,而是在现有的预训练模型上,再次训练或者直接使用。

因为他可以用较少的数据来训练深度神经网络,如果你数据不足,可以考虑下迁移学习。现在大多数问题通常没有数百万个标记数据点是无法训练出一个商用模型的。

如果你训练了一个简单的分类器来预测图像是否包含背包,则可以利用模型在训练中获得的“知识”(其实就是网络权重)来识别其他物体,例如太阳镜。

通过转移学习,我们基本上尝试利用在一项任务中学到的知识来提高另一项任务的泛化性。可以将网络从“任务A”中学到的权重迁移到新的“任务B”。

这就是迁移学习。

由于一个模型的商用需要大量的计算能力,因此迁移学习主要用于计算机视觉CV和自然语言处理任务NLP(如情感分析)中。

迁移学习不算是一种机器学习技术,但可以看作是该领域的“设计方法论”,例如主动学习。我给他起了一个名字,寄生学习。哈哈哈

2. 迁移学习如何工作的?

例如,在计算机视觉中,神经网络通常是这样的:较早的层检测到的是边缘,中间层检测到的是形状,越靠后的网络层检测的是特定于任务的特征(例如人脸中的眼睛)。
在迁移学习中,很少取最后的层,一般是取前面的和中间的层,对于最后的特征层我们自己重新训练。

例如有一个模型,可以识别图像上的背包,该背包将用于识别太阳镜。在较早的层中,该模型已学会识别物体,因此,我们将仅对后一层进行重新训练,从而学习如何把“太阳镜与其他物体区分开”。像个小孩儿一样哈哈哈。

在迁移学习中,就是试着把模型训练的先前任务中的学习能力,尽可的迁移到手头的新任务。
相当于把别人的脑子给自己灌进去哈哈哈。

根据问题和数据,此知识可以采用各种形式。例如,可能是模型的构成方式,这样可以更轻松地识别新的对象,相当于获取最新的能力。

3. 为啥要用这个方法?

迁移学习有很多好处,但是主要优点是节省训练时间,神经网络的性能更好(在大多数情况下)以及不需要大量数据。

通常,从头开始训练神经网络需要大量数据,但同样的数据你可能拿不到啊,现在就是转移学习大显神威的时候了。

通过迁移学习,可以使用相对较少的训练数据来构建可靠的机器学习模型,因为该模型已经过预训练。

这在自然语言处理中特别有价值,因为创建大型的标记数据集通常需要专业知识。此外,减少了训练时间,因为有时可能需要几天甚至几周的时间来从头开始训练复杂任务的深度神经网络。

根据DeepMind首席执行官Demis Hassabis的说法,迁移学习也是最有前途的技术之一,有朝一日可能会导致人工智能(AGI):

4. 何时使用转移学习?

与机器学习一样,很难形成通用的规则,但是以下是什么时候可以使用转移学习的一些准则:

  • 没有足够的标签训练数据来从头开始训练您的网络。
  • 已经存在一个预先训练过类似任务的网络,通常会对大量数据进行训练。
  • 当任务1和任务2具有相同的输入时。

如果原始模型是使用TensorFlow训练的,则只需还原它并为任务重新训练一些网络层即可。
但是请记住,只有在从第一个任务中学到的功能是通用的情况下,迁移学习才会有用,也就是迁移到类似的任务才行。

同样,模型的输入必须与最初训练时使用的大小相同。如果没有,添加一个预处理步骤就行了,把输入的大小调整为所需的大小。

5. 转移学习的方法

1.训练模型以重用它
假设您要解决任务A,但没有足够的数据来训练深度神经网络。解决此问题的一种方法是找到具有大量数据的相关任务B。在任务B上训练深度神经网络,并将模型用作解决任务A的起点。

那是否需要使用整个模型还是仅需使用几层模型,在很大程度上取决于你要解决的问题。

如果两个任务的输入都相同,则可以重新使用模型并为新输入进行预测。或者,更改和重新训练不同的特定于任务的层和输出层也可以。

2.使用预先训练的模型
第二种方法是使用已经预先训练的模型。这些模型很多,最好先做些工作。重复用多少层以及重新训练多少层取决于你要解决的问题。

例如,Keras提供了九种预训练模型,可用于迁移学习,预测,特征提取和微调。
你可以在此处找到这些模型,以及一些有关如何使用它们的简短教程 ,也有许多研究机构开源了训练好的模型。

这种类型的迁移学习是整个深度学习中最常用的方法。

3.特征提取
另一种方法是使用深度学习来发现问题的最优特征,这意味着找到最重要的特征。这种方法也称为表示学习,与手工设计的表示相比,通常可以产生更好的结果。

在机器学习中,一些函数通常是由研究人员和领域专家手动设计的。但是深度学习可以自动提取特征。
当然,这并不意味着特征工程和相关领域知识不再重要, 仍然必须决定将哪些函数放入网络。

也就是说,神经网络能够了解哪些特征真正重要,哪些特征不重要。表示学习算法可以在非常短的时间内发现功能的良好组合,即使是复杂的任务,否则这些工作都要耗费大量的人工。

然后,学习到的表示也可以用于其他问题。将数据镶入网络并使用中间层之一作为输出层。然后可以将此层解释为原始数据的表示。

这种方法主要用于计算机视觉,因为它可以减小数据集的大小,从而减少计算时间,并且也更适合于传统算法。

6. 热门的预训练模型

有一些非常流行的经过预训练的机器学习模型。其中之一是Inception-v3模型,该模型已针对ImageNet “大型视觉识别挑战赛” 进行了训练 。在这一挑战中,参与者必须将图像分为 1,000类, 例如“斑马”,“斑点狗”和“洗碗机”。

这是 TensorFlow上非常好的教程,介绍了如何重新训练图像分类器。

其他颇受欢迎的模型是ResNet和AlexNet。你可以访问这个,这是一个经过分类且可搜索的经过预编译的深度学习模型的汇总,有演示和代码。

转载和疑问声明

如果你有什么疑问或者想要转载,没有允许是不能转载的哈
赞赏一下能不能转?哈哈,联系我啊,我告诉你呢 ~~
欢迎联系我哈,我会给大家慢慢解答啦~~~怎么联系我? 笨啊~ ~~ 你留言也行

你关注微信公众号1.机器学习算法工程师:2.或者扫那个二维码,后台发送 “我要找朕”,联系我也行啦!

(爱心.gif) 么么哒 ~么么哒 ~么么哒
码字不易啊啊啊,如果你觉得本文有帮助,三毛也是爱!

我祝各位帅哥,和美女,你们永远十八岁,嗨嘿嘿~~~


一种深度学习方法---迁移学习相关推荐

  1. AI从业者需要应用的10种深度学习方法

    AI从业者需要应用的10种深度学习方法 https://www.cnblogs.com/DicksonJYL/p/9591732.html 摘要:想要了解人工智能,不知道这十种深度学习方法怎么能行? ...

  2. 【论文学习】6、Wi-Fi中基于前导码的包检测:一种深度学习方法

    摘要 基于ieee802.11标准系列的无线网络系统是最流行的使用先听后说(LBT)方法进行信道接入的无线接口,在非接触频段中工作.大多数基于LBT的系统的显著特征是,发射机使用数据之前的前导码来允许 ...

  3. 干货丨 简述迁移学习在深度学习中的应用

    文章来源:机器之心 迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中. 深度学习中在计算机视觉任务和自然语言处理任务中将预训练的模型作为新模型 ...

  4. 《基于卷积神经网络的深度迁移学习,用于燃气轮机燃烧室的故障检测》论文阅读

    目录 突出 抽象 引言 1.1动机 1.2文献综述获得的结论 1.3贡献 1.4组织 2方法 2.1燃汽轮机组故障知识共享 2.2迁移学习 2.3 基于卷积神经网络的深度迁移学习 2.4用于燃气轮机燃 ...

  5. ICML2018见闻 | 迁移学习、多任务学习领域的进展

    作者 | Isaac Godfried 译者 | 王天宇 编辑 | Jane 出品 | AI科技大本营 [导读]如今 ICML(International Conference on Machine ...

  6. 迁移学习---迁移学习基础概念、分类

    迁移学习提出背景 在机器学习.深度学习和数据挖掘的大多数任务中,我们都会假设training和inference时,采用的数据服从相同的分布(distribution).来源于相同的特征空间(feat ...

  7. 什么是迁移学习 (Transfer Learning)?

    深度神经网络,相比于之前的传统机器学习方法,可以看成是一个全新的物种,这背后的原因,最明显的还是深度学习对机器算力的巨大需求,在深度学习入门最少需要知道什么?中介绍了深度学习所需的显卡资源,而当前大内 ...

  8. 迁移学习——Transitive Transfer Learning

    <Transitive Transfer Learning>学习 Proceedings of the 21th ACM SIGKDD International Conference o ...

  9. 基于MK-MMD度量迁移学习的轴承故障诊断方法研究

    摘要 上一篇文章实验是基于凯斯西厨大学轴承数据集,使用同一负载情况下的6种轴承数据进行故障诊断,并没有进行不同负载下轴承故障诊断.之前没做这块迁移学习实验,主要是对于迁移学习理解不到位,也没有不知道从 ...

  10. 迁移学习(Transfer Learning)概述

    迁移学习 迁移学习是一种机器学习的方法,指的是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中. 背景 深度学习中在计算机视觉任务和自然语言处理任务中将预训练的模型作为新模型 ...

最新文章

  1. CF510D Fox And Jumping(动态规划转换为最短路,O(n^2×2^9) -> O(nlogn),裴蜀定理应用)
  2. 微信小程序 --- 拨打电话
  3. More Effective C++:理解new和delete
  4. 解析Shell编程中的-----“去重“
  5. python错误-第16天:Python 错误和异常
  6. H3 BPM微信接入配置
  7. 【数据结构与算法】7.位图算法、12306抢票算法
  8. 致27岁的老光棍天空
  9. Leetcode--494. 目标和
  10. 数字猜谜游戏python_Python Tkinter教程系列02:数字猜谜游戏
  11. flask使用sqlit3的两种方式
  12. java Comparable 和 Cloneable接口
  13. 网络计算机显示器接口,电脑显示器常见的4种接口:VGA、DVI、HDMI、DP接口
  14. 信号峰拟合的MATLAB程序,包括高斯拟合,多高斯拟合等多种类型
  15. 计算机视频解码测试,无底限测试 入门电脑挑战H.265视频解码
  16. unity3d:粒子随摄像机远近有大小变化bug
  17. windows7下彻底卸载/删除微软拼音输入法2007
  18. 【卫星影像三维重建】完整的卫星立体重建
  19. Windows下IE浏览器文件下载
  20. 使用 电报机器人 tele bot 远程执行服务器上的命令

热门文章

  1. CAN网络dbc格式
  2. 我市首个湿地公园大连湾前关湿地公园今秋纳客
  3. 视频编码-码率控制CQP/CRF/ABR/CBR/VBV
  4. 推荐Arduino更深入学习:《新概念51单片机C语言教程》-郭天祥(文章内含学习资料供下载)
  5. Lab multicast msdp
  6. iframe嵌入微信公众号页面(有图片)
  7. 云控微信开发SDK使用教程--手机微信收钱任务执行结果通知服务端
  8. sinx/cosx的泰勒展开式与库函数的比较
  9. python电脑版微信-微信PC版的API接口 | 可通过Python调用微信功能
  10. 本地代码上传github