梯度下降方法中的学习率(learning rate), 衰减因子(decay) 冲量(momentum)

本文总结自如下两个链接的内容,建议读者直接阅读链接中的文章

1.  https://www.jianshu.com/p/58b3fe300ecb

2.  https://www.jianshu.com/p/d8222a84613c

学习率

学习率 lr(learning rate), 梯度下降算法中迭代步长。假设待优化函数为func(x), dx为函数对变量x的导数,即下降方向。每次x的迭代公式为:

x = x + -lr*dx

lr一般不宜过大, lr过大时,迭代过程会出现震荡现象(图1右)

梯度下降方法中的学习率(learning rate), 衰减因子(decay) 冲量(momentum)_第1张图片

                      图1. (图片来源于https://www.jianshu.com/p/d8222a84613c)

衰减(decay)

从图1还可得知,随着迭代过程的继续,学习率应当适当减小,这样才能更稳妥地到达极值点。这种想法就是通过权重衰减因子实现的。

lr_i = lr_start * 1.0 / (1.0 + decay * i)

x = x - lr_i*dx

上式中 i 为迭代周期,如epoch; lr_start是lr的初始值; decay为衰减因子, 取值范围[0,1]. 随着 i 的增加,学习率逐渐减小.

                                         图2. (图片来源于https://www.jianshu.com/p/d8222a84613c)

图2 是lr=0.9, decay分别为0, 0.01, 0.5, 0.9时优化迭代示意图。从图中可以看出,decay=0时,震荡很厉害,而decay的引入会减缓震荡。

冲量(momentum)

从上面的分析以及图示还可知,随着迭代的进行,学习率lr慢慢减小,后期的迭代过程会非常缓慢。而冲量可以较好地解决这一问题。冲量的理念来源于物理过程。例如,快速行驶的汽车即使踩死刹车,车也不会立刻停下,仍然会向前行驶一段距离,这是因为前一时刻车速依然不为0导致的。换言之,前一刻车的运行状态对此刻是有影响的。

冲量也可以这样理解。在迭代过程中,考虑前一次迭代对本次迭代的影响

x = x - lr*dx + v * momentum 

其中,v = - lr*dx, 但dx是上一次迭代对x的导数。momentum取值范围[0, 1].

                                          图3 (图片来源于https://www.jianshu.com/p/58b3fe300ecb)

图3 是lr=0.1, momentum分别为0, 0.1, 0.5, 0.9时的优化示意图。从图中可以看出冲量的增加能加速迭代过程,但若momentum过大,则可能使迭代出现增长的现象(图3右)。

上述图片内容若侵犯作者权益,请留言通知我。我会尽快删除。

你可能感兴趣的:(算法,机器学习,数学,深度学习)