【Machine Learning】笔记:Adaptive learning rates

来源:互联网 发布:微信小号购买淘宝店 编辑:程序博客网 时间:2024/05/17 08:20

课程来自台湾大学李宏毅老师2017年的 machine learning.

主要介绍几个梯度下降法中的调整学习速率的方法。

调整学习速率

学习速度 η 是选择是比较麻烦的事情,选太大了,会导致不收敛,选太小了,会导致学习很慢。
除此之外,我们还希望在刚开始可以学习得快一点,而在快要接近极小值的时候就放慢一点。因此,就有了自适应的学习速率方法(Adaptive learning rates)。一种简单的方法是:ηt=ηt+1,即随着迭代次数 t 的增加,逐渐减小学习速率。
光这样还不够,最好我们还能够根据不同的参数,设置不同的学习速率。

Adagrad

Adaptive learning rates 有一系列的方法,其中有一种 Adagrad 方法就可以对每个参数设置不同的 learning rate.
原来的梯度下降法是 wt+1wtηtgt,其中 w 是某个参数,gt=L(θt)wη 是常数。现在,学习规则是 wt+1wtηtσtgt,其中 σtw 参数过去每一步的微分值的 root mean square。
ηt=ηt+1σt=1t+1i=0t(gi)2,所以,约分后,最终的梯度下降形式是:

wt+1wtηi=0t(gi)2gt

可以形象地理解一下。
比如二次函数 y=ax2+bx+c,任意一点 x0 到最小值点处 b2a 的距离为 x0+b2a=2ax0+b|2a|,可以看到,分子就是一阶导数,分母就是二阶导数,这某种程度上暗示着,一阶导数越大,说明离最小值点就越远,下一步就该跨得越大,二阶导数越大,说明曲线越弯曲,下一步就该跨得小一些。
在Adagrad中,分母是平方和的平方根,可以近似看成是二阶导数,它越大,下一步就该稍微小一些。

原创粉丝点击