梯度下降 - 学习率
- 梯度下降中的学习率处理:如何选择正确的学习率来保证梯度下降正确进行
参数${\theta}$的更新如下图, 在确保梯度下降在正确的运行的情况下, 如何选择合适的学习率呢?
梯度下降算法收敛所需要的迭代次数根据模型的不同而不同,我们不能提前预知,因此可以绘制迭代次数和代价函数的图表来观测算法在何时趋于收敛。
也有一些自动测试是否收敛的方法,例如将代价函数的变化值与某个阀值(例如 0.001)进行比较,但通常看上面这样的图表更好。
下面展示了两种不正常的代价函数变化的图:
下图的左上的图表, 代价函数的值不降反升
下图的左下的图表, 代价函数的值不断在上下震荡
通常这两种图出现的原因都很可能是学习率太大, 代价函数不断的越过最低点 (下图右边的图表), 可以尝试通过减小学习率 $\alpha$ 来解决
梯度下降算法的每次迭代受到学习率的影响:
- 如果学习率$\alpha$过小,则达到收敛所需的迭代次数会非常高;
- 如果学习率$\alpha$过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。
牛刀小试
Todo: 你会如何选择学习率$\alpha$呢?
答:通常可以考虑尝试些学习率: 0.01,0.03,0.1,0.3,1,3,10