吴恩达神经网络和深度学习-学习笔记-26-迁移学习(transfer learning)

深度学习中,最强大的理念之一就是,有的时候神经网络可以从一个任务习得知识,并将这些知识应用到另一个独立任务中。
所以例如,也许你已经训练好了一个神经网络,能够识别像猫的对象,然后使用那些知识(或者一部分知识)去帮助你更好地阅读x射线的扫描图。
而这,就是迁移学习。

下面用例子说明(图像识别 --> 放射诊断):
在这里插入图片描述
步骤如下:

  • 训练好原始网络(图像识别 image recognition)
  • 把原网络最后的输出层、进入到最后一层的权重(the weights feeding into that last output layer)
  • 为最后一层重新赋予随机权重。
  • 将网络在新的目标数据上训练(放射诊断数据)

具体来说,在第一阶段训练过程中,当你进行图像识别任务训练时,你可以训练神经网络的所有常用参数、所有的权重、所有的层,从而得到一个能够做图像识别预测的网络。
在训练这个网络以后,要实现迁移学习,要做的就是把数据集换成新的(目标)x和y,然后初始化最后一层的权重(称为W[L]和b[L]的随机初始化)。

在再训练(retrain)神经网络的的时候有几个option:
目标数据集很小的时候:我们可能只需要重新训练最后一层的权重W[L]和b[L],并保持其他参数不变。
如果目标数据集足够多:你也可以重新训练神经网络中剩下的所有层。

经验规则是:如果你有一个小数据集,就只训练输出层前的最后一层,或者是最后一两层。如果有足够多的数据,那么也许你可以重新训练网络中的所有参数。
这个在图像识别数据的初期训练阶段的过程,有时被称为预训练,在目标数据上训练的过程称为微调

在这个例子中我们做的是,把图像识别中学到的知识,应用或迁移到放射科诊断上来。

这样做有效果的原因是:
有很多低层次的特征(比如说边缘检测,曲线检测,阳性对象检测),从非常大的图像识别数据库中习得这些能力,可能有助于你的学习算法在放射科诊断中做的更好。
因为算法学到了很多结构信息和图像形状的信息(the structure and the nature of how images look like),而其中一些知识可能会有帮助。
所以学会了图像识别,它就可能学到了足够多的信息来了解不同图像的组成部分是怎样的(knowledge about lines, dots, curves and so on, maybe small parts of objects)。
我的理解是,预训练可以使得网络的较前层,学习到大类问题的通用知识!

预训练的好处:
可以使目标网络学习的快一点,或者需要更少的学习数据。

另一个例子,语音识别:
在这里插入图片描述
迁移学习何时有意义:
在这里插入图片描述
然后分别解释下这三条

  • same input指的是,都是图像或音频,其实是数据的类型的问题。
  • 迁移来源数据多于迁移目标数据(因为单个迁移来源数据的价值,要小于迁移目标数据)
  • 迁移来源的低水平特征对迁移目标有用。

我们有很多迁移前的数据(迁移来源数据),但是迁移目标的数据没有那么多。也就是数据比例的问题。如果迁移来源数据比迁移目标数据还少,虽然不会有什么坏处,但基本也没什么收益。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值