guolei的个人博客分享 http://blog.sciencenet.cn/u/guolei

博文

梯度下降方法中调整学习速率和正则化参数的技巧

已有 9637 次阅读 2012-12-29 16:17 |个人分类:学习算法|系统分类:科研笔记| 梯度下降, 参数调优, 学习算法

最近在实验中遇到了调整参数的问题,咨询了很多研究者,在此做一个总结,如果有不对的地方,还请批评指正。

实验过程:

在训练集上找出使其rmse最小的参数

2.在验证集上测试

3. 调整参数,选择使验证集上结果最好的参数

4.在测试集上进行最后的测试,得到最终结果

调整学习速率和正则化参数的技巧

  1. 先调整学习速率,使迭代次数在一个可以接受的范围内,因此学习速率过小,会导致迭代次数很大,初始lambda是不是应该设为0

  2. 在现有学习速率的基础上,在验证集上调整正则化参数,主在是判断是不是出现了variantbias的问题。

1)如果lambda过小,则可能会出现variant问题,那就是训练误差很小,而验证集上的误差很大,增加labmda会使步长(学习速率与增量的乘积)变小,学习速率变慢。

2)如果lambda过大,则可能会出现bias的问题,就是训练误差和验证误差都很大,并且相差很小,减少lambda会使步长变大,从而使得收敛速度变快。

最终的结果应该是使得训练误差和验证误差都比较小,而且很接近,并且训练误差在有限迭代次数内能达到最小值。

(1)增加学习速率,相当于增加步长,也相当于增加正则化参数

(2)减小学习速率,相当于减小步长,也相当于减小正则化参数。

3. 在现有基础上,由于增加lambda会使学习速率变慢,因此需要在轻度过拟合的时候增加学习速率的值,这样也可以进一步减轻过拟合问题(增加学习速率,会变相增加正则化参数)。也就是当存在轻度过拟合问题,并且学习过程过慢的情况下,应该增加学习速率的值,而不是正则化参数lambda的值。但是如果学习速率过大,会导致步长过大,导致训练误差比较大,进一步也会影响验证误差,也就是说增加学习速率会有可能会使验证误差变大。

4. 如果lambda过大,则会出现bias的问题,这时应该减少lambda的值,注意,这也相当于减小了步长,会使收敛速率加快。

需要注意的是:验证集上的误差会在迭代过程中,出现先小后大的情况,我们似乎只需要关注在训练集上收敛的情况。

   由于限制了迭代的次数,所以在准确率上会有所损失(训练误差只是近似最优),但应该也在可以接受的范围之内。

      在过拟合情况下,训练误差的最优值会比较小,而在正常情况下,训练误差会比较大,也验证误差相当。因此,在调参的过程中,会出现训练误差逐步增加的情况(从过学习到正常情况)。 



https://blog.sciencenet.cn/blog-846768-647599.html


收藏 IP: 211.87.235.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-9-27 09:54

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部