前提背景:线性回归模型
在进行选择学习率之前,我们要保证模型的学习曲线是收敛的
只有得到收敛的学习曲线,w 和 b 才能得到最优解
因此,在选择合适的学习率之前,我们可以先绘制出学习曲线
这是一个正常的学习曲线,代价函数在不断下降并且最终收敛
当然,还有一种方法可以判断代价函数是否收敛,它叫做 自动收敛测试(Automatic convergence test)
我们提前人为的设定一个很小很小的阈值,如果代价函数一旦小于这个阈值就可判断此时代价函数已经收敛
但是我们并不推荐这个方法
因为,通常选出正确的阈值是非常非常困难的,我们并不能提前知道它会在什么时候收敛
图像曲折
导致出现有时上升,有时下降的图像的原因通常有两个:
- 学习率 α 取值太大
- 代码出现 bug
当学习率太大时,会导致下降时会在最优解附近来回浮动,导致图线出现波浪形
此时,通常的做法是给学习率赋一个非常非常非常小的值,观察图像是否还会出现波浪形
如果波浪形消失,说明是因为学习率太大导致的波浪形
如果依然出现波浪形,说明是因为代码出现 bug 导致的波浪形
图像上升
同样也有两种可能导致出现上升图像:
- 学习率 α 选择的太大
- 代码出现 bug
此时,通常的做法依然是给学习率赋一个非常非常非常小的值,观察图像是否还会出现上升
因此,总结一下
如果出现不正常的图像
我们都可以重新给学习率赋一个非常非常小的值来解决问题或者是排查问题
图像正常
我们就可以从非常小的学习率开始尝试迭代
然后每次增加较小的幅度,再次进行迭代
直到确定出最优的学习率取值