基本梯度更新的公式:

lr是学习速率,w是待更新的参数,dw是参数的偏导数。

Adam的梯度更新公式:

Adam本质上是Momentum和Adagrad的结合。同时具有动量更新和自适应调整学习速率的功能。

m是动量表示,v是自适应学习速率的调整倍率。

动量 m

动量 m 比较好理解。如果只看动量m的表示,相比基本梯度更新意义在于,当前本次更新的比重占多少。例如:β1 = 0.9,即当前本次更新的dw只贡献10%(1-0.9 = 0.1 * 100%)的梯度。

自适应学习速率 v

v 的公式和 m 公式十分相似,只是梯度偏导数dx那里在v中变为了梯度平方dx^2。

可以简化动量那一部分,最终表示如下:

由于该值 v 在分母的位置,即该值越大学习速率就会越小,反之同理。

何时需要调整学习速率?

我们期望在平坦的空间中能够以较大的学习速率前进,这样可以快速移除平坦区,且不会错过最优点。

但是在陡峭的区域,希望能够以较小的速率前进,以便更谨慎的找到那个最优点,而不是因为学习速率过大而直接跨了出去。

对于dw, 在平坦的空间中, dw的值较小即平方之后会更小,但是由于v位于分母,因此学习速率就会变大。而在陡峭空间中,dw的值较大即平方之后会更大,因此学习速率就会变小。以此达到了自适应调整学习速率的目的。