深度学习笔记(18) 迁移学习


1. 迁移学习理念

深度学习中最强大的理念之一就是:
神经网络可以从一个任务中习得知识,并将这些知识应用到另一独立的任务


2. 图像识别的迁移学习

例如,也许已经训练好一个神经网络,能够识别像猫这样的对象
然后使用那些知识,或者部分习得的知识去帮助更好地阅读x射线扫描图
这就是迁移学习

在这里插入图片描述
如果把图像识别猫、狗、鸟或其他东西的神经网络拿来
然后让它适应或者说迁移,在不同任务中学到的知识
比如放射科诊断,就是说阅读X射线扫描图

可以做的是把神经网络最后的输出层拿走,就把它删掉
还有进入到最后一层的权重删掉,然后为最后一层重新赋予随机权重
然后让它在放射诊断数据上训练

如果有一个小的放射科数据集
就只训练输出层前的最后一层 w[L] 和 b[L]或者最后一两层并保持其他参数不变
但是如果有很多数据,也许可以重新训练网络中的所有参数

如果重新训练神经网络中的所有参数,那么这个在图像识别数据的初期训练阶段,称为预训练(pre-training)
因为在用图像识别数据去预先初始化,或者预训练神经网络的权重
以后更新所有权重,然后在放射科数据上训练
这个过程叫微调(fine tuning)

比如,把图像识别中学到的知识应用或迁移到放射科诊断上来
有很多低层次特征、比如说边缘检测、曲线检测、阳性对象检测(positive objects)
从非常大的图像识别数据库中习得这些能力可能有助于学习算法在放射科诊断中做得更好
算法学到很多结构信息,图像形状的信息,其中一些知识可能会有用
所以学会了图像识别
它就可能学到足够多的信息,可以了解不同图像的组成部分是怎样的,学到线条、点、曲线这些知识,也许对象的一小部分
但这些知识有可能帮助放射科诊断网络学习更快一些,或者需要更少的学习数据


3. 语音识别的迁移学习

另一个例子
假设已经训练出一个语音识别系统
现在x是音频或音频片段输入,而y是听写文本
现在想搭建一个“唤醒词”或“触发词”检测系统
所谓唤醒词或触发词就是用户说的一句话,可以唤醒家里的语音控制设备
比如说用“小爱”来唤醒小米设备
要做到这点,可能需要去掉神经网络的最后一层
然后加入新的输出节点
但有时可以不只加入一个新节点,或者甚至往神经网络加入几个新层
然后把唤醒词检测问题的标签 y 喂进去训练
这取决于有多少数据
可能只需要重新训练网络的新层
也许需要重新训练神经网络中更多的层


4. 使用迁移学习的场合

迁移学习起作用的场合:
在迁移来源问题中有很多数据,但迁移目标问题没有那么多数据

例如,假设图像识别任务中有1百万个样本,所以这里数据相当多
可以学习低层次特征,可以在神经网络的前面几层学到如何识别很多有用的特征
但是对于放射科任务,也许只有一百个样本
所以放射学诊断问题数据很少,也许只有100次X射线扫描
所以从图像识别训练中学到的很多知识可以迁移
并且真正加强放射科识别任务的性能
即使放射科数据很少

在这里插入图片描述
但如果用100张图训练图像识别系统
然后有100甚至1000张图用于训练放射科诊断系统,
为了提升放射科诊断的性能
那么用放射科图像训练可能比使用猫和狗的图像更有价值
所以这里(100甚至1000张图用于训练放射科诊断系统)的每个样本价值比这里(100张图训练图像识别系统)要大得多
至少就建立性能良好的放射科系统而言是这样
所以,如果想从任务A迁移一些知识到任务B,那么当任务A和任务B都有同样的输入x时,迁移学习才有意义


参考:

《神经网络和深度学习》视频课程


相关推荐:

深度学习笔记(17) 误差分析(二)
深度学习笔记(16) 误差分析(一)
深度学习笔记(15) 人的表现
深度学习笔记(14) 评估指标
深度学习笔记(13) Softmax分类


谢谢!

氢键H-H CSDN认证博客专家 机器人软件 运动控制 深度学习
一位永远相信美好的事情即将发生,从事自动化机器人软件开发,不忘初心,牢记使命,为实现中华民族伟大复兴而奋斗的社会主义接班人。
©️2020 CSDN 皮肤主题: 我行我“速” 设计师:Amelia_0503 返回首页
实付 49.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值