迁移学习导论-cap8:预训练方法

本文探讨了深度学习中预训练模型的使用,指出神经网络早期层学习通用特征,后期层学习任务特定特征。通过微调预训练模型,可以加速新任务的学习并提高性能。在猫狗分类的例子中,使用CIFAR10预训练模型的浅层特征,并调整输出层以适应新的分类任务。微调结合少量新数据可以有效克服数据差异,且通常优于随机初始化的网络。
摘要由CSDN通过智能技术生成

1、为什么能够使用预训练?

一种观察现象:假设一网络的输入是一只狗,在网络的最初几层,网络只能检测一些边边角角的低级特征;到了中间的层,网络可能会检测到一些线条和圆形,比边边角角特征更明显;到了较深层,网络能够提炼代表狗的高级特征,比如腿、脸等。

在这里插入图片描述

对于这种观察到的现象,一种广泛接受的解释是:对于CNN,其渐层负责学习通用的特征(比如边、角等),深层负责学习与任务相关的特殊特征(腿、脸等)。随着层次的加深,网络渐渐从通用特征过渡到特殊特征的学习表征。

由上可知,既然浅层是与任务无关的,而高层是与任务相关的,那么我在训练一个分类猫的网络时,是否可以使用训练好的分类狗的网络的浅层?帮助我们提取诸如边、角等浅层特征。那么关键的问题在于:如何确定一个网络中哪些层负责学习通用特征、哪些层负责学习特征特征?

前人做了一系列的工作,总结来看,对深度网络可迁移性现在有以下结论:

  • 神经网络前几层基本都是通用特征,迁移效果会比较好
  • 深度迁移网络中加入微调(结合起来再稍微训练下),提升效果比较大,可能比原网络效果还好
  • 微调可以比较好地克服数据间的差异
  • 深度迁移网络要比随机初始化权重效果好
  • 网络层数的迁移可以加速网络的学习和优化

2、微调

当我们使用预训练模型时,需要做出一些改变,比如我们使用CIFAR10预训练模型来帮助我们训练一个猫狗分类的2分类网络时发现,CIFAR10有100个分类。所以如下图所示,我们可以假设左边为100个分类的CIFAR10预训练模型,右边是我们猫狗2分类的网络,我们先将层的参数(不包括输出层)复制到我们的网络中,再和自定义的输出层连接,然后再以合适的学习率开始训练。五种卷积神经网络解决猫狗分类问题(五):V5 预训练-微调模型

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是一个对称矩阵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值