参考来源:(6 封私信 / 20 条消息) 什么是梯度下降法? - 知乎 (zhihu.com) ------------马同学
每一次的梯度向量模长列出来,可以看到是在不断减小的,因此这种方法称为梯度下降法:
这也比较好理解,当最终趋向于 0 时有:
所以梯度下降法求出来的就是最小值(或者在附近)。
步长设置:
上面谈到了可以通过步长 来控制每次移动的距离,下面来看看不同步长对最终结果的影响。
步长过小
如果设 就过于小了,迭代 20 次后离谷底还很远,实际上 100 次后都无法到达谷底。
步长合适
如果设,, 是较为合适的步长,10 次就差不多找到了最小值:
步长太大
如果设 , 这个时候会来回震荡(下图看上去只有两个点,实际上在这两个点之间来来回回):
总结下,不同的步长随着迭代次数的增加,会导致被优化函数 的
值有不同的变化 :
寻找合适的步长,是个手艺活,在工程中可以将上图画出来,根据图像来手动调整:
几乎是线性变化(蓝线)可能是
较小,需要调高
往上走(红线),自然是
过大,需要调低。
一开始下降特别急,然后就几乎没有变化(棕线),可能是
较大,需要调低。