深度学习笔记(三十七)迁移学习和数据扩增

本文介绍了迁移学习的概念,通过使用预训练模型并调整其输出层以适应特定任务,如分类三类“tigger”、“misty”和其他。当数据量充足时,可以对部分层进行训练,甚至全部重新训练。此外,数据扩增技术如镜像、裁剪、旋转等也被提及,用于增加训练数据的多样性,提高模型泛化能力。在实际操作中,可以利用多线程分别进行图像扭曲和训练,提升训练效率。
摘要由CSDN通过智能技术生成

一、迁移学习

对于我们现在学习深度学习来说,可以不需要随机初始化权重然后开始一步一步训练,因为深度学习研究人员已经做出了很多贡献,他们在数据集(COCO ImageNet)上训练,然后将训练好参数的模型开源放在网上,所以下载模型代码的同时,下载了训练好的参数值,这个就是预训练。于是我们把这样一个优秀的模型迁移到我们自己的问题上,就省了相当多的功夫。
假设现在有这么一个模型,最后Softmax输出1000种不同的分类:
在这里插入图片描述
然而我们实际上只希望把名字叫做“tigger”和“misty”或其他(neither)这三者分出来,应该怎么做呢?
在这里插入图片描述将Softmax输出层改成我们需要的三类!Softmax之前的每一层都相当于已经训练很好的了,考虑将前面的层都冻结。在不同的框架下,是支持的,比如:trainableParameters=0/freeze=1就代表不训练前面层,仅仅训练我们修改的Softmax即可。
如果有很多“tigger”和“misty”的图片呢?数据越多,需要冻结的层数越少! 所以只需要冻结前面几层,后面可以拿来训练,然后Softmax输出你需要的分类。
在这里插入图片描述
有足够的数据时,我们甚至可以利用下载的权重作为初始化,然后全部重新训练,这样也可以提高我们的训练效率。

说到为什么迁移学习是有效的,这就要回到之前有一课了。网络中前面那些层中训练出的参数可能提取出了很多特征(比如边缘特征、图像轮廓等等),这些特征是可以应用到另一个数据上的,仅需要少量的修改,就可以实现我们需要的目标。迁移学习就是把大数据集(预训练)上训练的东西搬迁到小数据集(我们的实际需求)上的一个过程。

二、数据扩增

  • 镜像
    在这里插入图片描述

  • 随机裁剪
    在这里插入图片描述

  • 旋转(较少)

  • 扭曲(较少)

  • 剪切(较少)

  • 色彩转换
    在这里插入图片描述
    影响颜色转换的算法PCA(主成分分析),在AlexNet论文中有时候被称作颜色增强

常用的做法是:一个或多个线程做图像扭曲,其他线程做训练。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mr.zwX

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

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

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

打赏作者

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

抵扣说明:

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

余额充值