如何让训练神经网络不无聊?试试迁移学习和多任务学习

训练深度神经网络是一个乏味的过程。更实际的方法,如重新使用训练好的网络解决其他任务,或针对许多任务使用相同的网络。这篇文章中,我们会讨论两个重要的方法:迁移学习和多任务学习。

迁移学习

在迁移学习中,我们希望利用源任务学到的知识帮助学习目标任务。例如,一个训练好的图像分类网络能够被用于另一个图像相关的任务。再比如,一个网络在仿真环境学习的知识可以被迁移到真实环境的网络。

总的来说,神经网络迁移学习有两种方案:特征提取和微调。迁移学习一个典型的例子就是载入训练好VGG网络,这个大规模分类网络能将图像分到1000个类别,然后把这个网络用于另一个任务,如医学图像分类。

如何让训练神经网络不无聊?试试迁移学习和多任务学习

1特征提取:

特征提取是针对目标任务把一个简单的分类器加在源任务上预训练的网络上,将预训练的网络作为特征提取器。仅有添加的分类器的参数需要更新,预训练的网络的参数不变。这能使新任务从源任务中学习到的特征中受益。但是,这些特征更加适合源任务。

2微调:

微调允许学习目标任务时修改预训练的网络参数。通常,在预训练的网络之上加一个新的随机初始化的层。预训练网络的参数使用很小的学习率更新防止大的改变。通常会冻结网络底层的参数,这些层学到更通用的特征,微调顶部的层,这些层学到更具体的特征。同时,冻结一些层能够减少需要训练的参数的数量,避免过拟合问题,尤其时在目标任务数据量不够大的情况下。实践中,微调胜过特征提取因为他针对新的任务优化了预训练的网络。

迁移学习的基本情形:

迁移学习可以分为4种情形基于以下两个因素:1)目标任务数据集的大小,2)源任务与目标任务的相似度:

情形1:目标数据集很小,目标任务与源任务相似:这种情况使用特征提取,因为目标数据集小容易造成过拟合。

情形2:目标数据集很小,目标任务与源任务不同:这时我们微调底层网络,并移除高层网络。换句话说,我们使用较早的特征提取。

情形3:目标数据集很大,目标任务与源任务相似:我们有了大量的数据,我们可以随机初始化参数,从头开始训练网络。然而,最好还是使用预训练的网络初始化参数并微调几层。

情形4:目标数据集很大,目标任务与源任务不同。这时,我们微调大部分层甚至整个网络。

原文链接

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值