加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

深度学习之关键参数学习率的设置与调整

(2017-09-13 14:40:15)
标签:

深度学习

调参

学习率

终于要写一些关于深度学习方面的东西了,之前因为要调模型,期间遇到各种问题,结果不理想,各种痛苦,所以觉得有必要就深度学习调参这方面的知识做一下总结和心得体会,Mark一记。

深度学习有很多的参数需要调,而一般而言,学习率lr可说是其中最重要的一个,不同的学习率,模型的效果可能会是天壤之别。一般而言,lr可先从一个较大的值开始,如0.1(或者loss为非Nan时的最大值),这样也可以实现快速调试。别的参数若无确定的设定,可先按大家常用的经验值来取,通常,在几十个epoch之后(30-50),模型可以达到一个哈不错的效果,虽不是最优,但基本靠谱,如果说此时效果很差,那就考虑是不是人品问题了。。。
那么什么时候要降低学习率呢?通常当验证集validation的loss或accuracy不再怎么变化时,可考虑降低学习率了,这样会造成一种不可名状的问题,模型不一定达到最优。如果说模型已经达到不错的效果了,满足自己的要求了,比如可以发文章了,或者可以实现应用了,此时就可以了,因为最优这个东西,本身自己也不知道当前是不是最优,换个有经验的再来调一下,说不定又可以提升好几个百分点了,所以说,最优和很优这种东西真的都是很看缘分,看人品的。
学习率和loss之间的对应关系可参考下图:
有时,一种常用的策略,初始设一个较大的学习率,然后每个一定的epoch(十到几十)之后自动缩减0.1因子,这种方法也是常用的。当然,也有专家说,对于大数据集,就直接用一个很小的lr如0.00001一直训练。这种也可以尝试吧,虽然我感觉这样真得是要训练到死了。。。finetune的时候真得不建议这样。
那么时候可以停止训练呢?如上,如果说模型效果不错了,其实就可以停止训练了。理想的训练过程如下示:
当train loss和val loss 都达到最小的时候,我们就可以停止训练了,过早停止,不能达到best model, 太晚的话有会过拟合。过拟合问题是深度学习里一个比较普遍的问题,在本系列的第二个内容里将会重点介绍过拟合的问题。还是那句话,只要效果满足要求,就可以停了。

此外,如果说数据集比较大,要想实现快速调试的话,可选取部分数据来调参,不建议只选某些类,可以对所有类别按同比例选取数据来实验。但如果比例太小的话,又不具有代表性了,所以要想实现真正的快速调试,那就用高效性的GPU吧,说到这里,就不得不吐槽下了,实验室的电脑GPU不是很高效啊,各种心累,各种蛋疼,哎,算了,不说了,http://www/uc/myshow/blog/misc/gif/E___6706EN00SIGG.gif



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有