做卷积神经网路方面的研究,有时会遇到一些苦恼。大抵是:
1、复现别人的网络,得不到相同的表现。
2、自己的网络调参,结果调不上去。
所以有些大佬就总结了一些调参的tricks,在这里学习记录一下,然后加上一些自己的理解。
影像神经网络效果的因素可能有但不限于以下几点:

  • 学习率调节
  • 优化器
  • 初始化方法
  • 标签平滑
  • 归一化

学习率

好的学习率可以让调参过程事半功倍,那么什么是好的学习率呢,

source:https://sgugger.github.io/how-do-you-find-a-good-learning-rate.html
好的学习率应该是有利于网络学习到参数的,或者说损失函数能够得到有效的降低。对于这幅示意图来说就是,需要函数能够快速的到达谷底。如果学习率太大,就可能会直接错过最低点。
如果学习率太小,就可能学得太慢,同样也不可取。
那么应该如何选取初始值呢,

source:https://sgugger.github.io/how-do-you-find-a-good-learning-rate.html
像这幅图一样,你可以去尝试不同的初始学习率,然后可以以5-10轮的训练为标准,比较最终的学习效果。这一点在吴恩达的深度学习专项课程中也有提到过,就是如何去寻找超参数的合适值。一般学习率可以从0.1-10-8或者更大的范围去搜索,可以每次缩小十倍。
这样做的好处有,你可能会找到一个能够快速收敛的学习率。
但请注意,快速被不等于最终结果最优
一些流行的学习率调整方法有:

  • 循环学习率。

    从图中可以看到,我们可以选取获得较好学习效果阶段的学习率,进行循环的调整,有一点多尺度学习的意思。
  • 热启动的随机梯度下降(SGD)
    循环学习率是讲述的总体学习率调节技巧,然而如果我们不使用预训练的网络,我们应该如何开始我们的网络学习过程呢,就有学者提出热启动的概念1.
    没有仔细读论文,但是大致的意思就是刚开始网络经过初始化之后,需要经过一定的调整之后才能达到一个快速学习的状态(当然这是实验结论),需要经过一些柔性的学习率调节之后就能达到一个更加好的初始化状态,这可以看作是对网络初始化的一个补充。

    这里有一个sgdr keras callback代码参考
  • 超级收敛(super convergence)
    这里的超级意思是,学习率超级大,比以往研究中证明出来可用的学习率更大。在这种学习率下,网络仍然可以收敛的现象2,比如:

    不过还对我的影响太大,数据集没那么大,总的训练时间最多也就30h, 可能在大数据下这种快速收敛有奇效。
    不过论文里也指出,这种现象只针对部分的学习器和部分的网络结构,不过看起来确实很快收敛了。

批大小(mini-batch)

批大小如何影响网络学习的呢?第一印象就是我们可以选取任意大的批大小,最好就是full batch,这样理所当然应该有更好的效果。因为这样梯度会更加的符合实际损失函数的梯度,减少噪音。然而实验表明,梯度是一方面,损失函数的实际情况是一个方面,大批量更新梯度的方法容易让损失函数陷入到局部最优解3,而小批量的话就给模型的梯度更新引入了一些不确定性,就使得网络有可能跳出局部最优解,这样和模拟退火有点相似。

那么办法还是有的,既然你想要又快,又好,那么肯定要动点脑筋了,那么从哪个点下手呢,结论还是学习率,看来学习率还真是强大呀。

  • 使用小批量调整学习率
  • 在训练的初始阶段使用较低的学习率,我想这应该也是要让网络能够获得一个更好的初始化


    还不是很理解,也还没用过ImageNet,果然是贫穷让我无知啊。

PS.
以上是在认真检查过数据的输入和输出的情况下的方法。因为又一次我遇到了训练一个分割模型,分割的dice系数到了0.6,怎么也上不去。最后可视化之后才发现,原来是数据处理有问题,训练的label和测试的label不一致。还有就是对数据进行augmentation时,一是要选择增强的方法,有些能用,有些不能用。另外就是对增强后的图像进行可视化,检查增强后的训练数据和测试数据是否一致。


  1. SGDR: STOCHASTIC GRADIENT DESCENT WITH WARM RESTARTS
    ↩︎

  2. Super-Convergence: Very Fast Training of Neural Networks Using Large Learning Rates
    ↩︎

  3. Accurate,LargeMinibatchSGD: TrainingImageNetin1Hour
    ↩︎

深度卷积神经网络(CNN tricks)调参技巧(一)学习率调节相关推荐

  1. ai照片放大python源码_Bigjpg - AI人工智能图片无损放大 - 使用人工智能深度卷积神经网络(CNN)无损放大图片...

    常见问题 软件下载 放大原理是什么? 使用最新人工智能深度学习技术--深度卷积神经网络.它会将噪点和锯齿的部分进行补充,实现图片的无损放大.查看示例图片 bigjpg 有API吗? 有的! 登录后在用 ...

  2. 【经验】深度强化学习训练与调参技巧

    来源:知乎(https://zhuanlan.zhihu.com/p/482656367) 作者:岳小飞 天下苦 RL 久矣,其中最苦的地方莫过于训练和调参了,人人欲"调"之而后快 ...

  3. 重磅!深度学习知识总结和调参技巧开放下载了

    近年来,人工智能正在进入一个蓬勃发展的新时期,这主要得益于深度学习和CV领域近年来的发展和成就.在这其中,卷积神经网络的成功也带动了更多学术和商业应用的发展和进步. 为了避免"内卷" ...

  4. 013利用脑电信号自动检测和诊断癫痫发作的深度卷积神经网络-2017(800引用)

    Deep convolutional neural network for the automated detection and diagnosis of seizure using EEG sig ...

  5. 深度卷积神经网络(CNN tricks)调参技巧

    (53条消息) 深度卷积神经网络(CNN tricks)调参技巧(一)学习率调节_踏雪飞鸿的博客-CSDN博客https://blog.csdn.net/weixin_38957591/article ...

  6. DL之CNN优化技术:学习卷积神经网络CNN的优化、实践经验(练习调参)、从代码深刻认知CNN架构之练习技巧

    DL之CNN优化技术:学习卷积神经网络CNN的优化.调参实践.从代码深刻认知CNN架构之练习技巧 目录 卷积神经网络CNN调参学习实践 练习技巧 1.练习攻略一 2.VGG16练习攻略二 卷积神经网络 ...

  7. 你有哪些深度学习(rnn、cnn)调参的经验?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 你有哪些deep learning(rnn.cnn)调参的经验? ...

  8. 深度学习这么调参训练_深度学习调参技巧

    训练技巧对深度学习来说是非常重要的,作为一门实验性质很强的科学,同样的网络结构使用不同的训练方法训练,结果可能会有很大的差异.这里我总结了近一年来的炼丹心得,分享给大家,也欢迎大家补充指正. 参数初始 ...

  9. 深度学习调参技巧(一)

    本文将分享一些自己关于深度学习模型调试技巧的总结思考(以CNN为主). 最近因为一些需要,参与了一些CNN建模调参的工作,出于个人习性,我并不习惯于通过单纯的trial-and-error的方式来调试 ...

  10. [转]深度学习调参技巧

    训练技巧对深度学习来说是非常重要的,作为一门实验性质很强的科学,同样的网络结构使用不同的训练方法训练,结果可能会有很大的差异.这里我总结了近一年来的炼丹心得,分享给大家,也欢迎大家补充指正. 参数初始 ...

最新文章

  1. CentOS 6 使用 OpenLDAP 认证
  2. 用vector实现一个变长数组
  3. AbstractBeanFactory 的getBean()方法调用FactoryBean
  4. 安装python3.6报错_CentOS 7下安装Python3.6 及遇到的问题小结
  5. 19_03_26校内训练[魔法卡片]
  6. Hello Blazor:(9)Source Generators生成导航菜单
  7. mongoose 查询 find 指定字段
  8. python 界面开发框架_八款常用的 Python GUI 开发框架推荐
  9. jQuery倒计时(仿团购)
  10. Office web component learning ---- Spreadsheet learning
  11. 19. JavaScript RegExp 对象
  12. 安卓:android.process.media意外停止解决方法
  13. 软考论文-论软件系统架构评估
  14. 通过代码创建obj格式的三维模型
  15. SQLMAP 命令详解
  16. python 开发管理软件 ERP
  17. 心灵终结不显示服务器,红色警戒2心灵终结3.0常见问题及解决方法
  18. 用SPSS求均值 方差 标准差小例题
  19. 程序员多次下载的浏览器竟然是它!
  20. 珀莱雅:融资净买入201.72万元,融资余额2.52亿元

热门文章

  1. 2016年最流行的Android组件、工具、框架大全
  2. 全国2007年10月管理系统中计算机应用试题答案,全国2011年10月自学考试管理系统中计算机应用试题含答案...
  3. Delphi 通信报Asynchronous socket error 10053错误的一个解决方法
  4. 蜗牛学院深度分析:为什么计算机专业的应届生找工作越来越难?
  5. java闰年满五换行_【计算机二级Java语言】卷013
  6. Linux-进程环境
  7. 扎心,如果张东升是个程序员
  8. python import numpy as np_import numpy as np
  9. AI笔记: 数学基础之偏导数与方向导数
  10. html可以用搜狗浏览器打开网页,我的网站源代码乱码,却网页显示正常,搜狗浏览器可以打开,火狐ie却不能,求救_html/css_WEB-ITnose...