在最近学习中,用Adam作为优化器,在训练时打印学习率发现学习率并没有改变。这好像与之前理解的自适应的学习率有所矛盾?
Adam的理论知识
Adam论文:https://arxiv.org/pdf/1412.6980.pdf
上图就是Adam优化算法在深度学习应用于梯度下降方法的详细过程,有一些参数要做出说明:
具体可以通过https://blog.csdn.net/sinat_36618660/article/details/100026261来理解Adam的原理。
问题1 指数滑动平均是什么?
Exponential Moving Average (EMA) 指数滑动平均指各数值的加权系数随时间呈指数式递减,越靠近当前时刻的数值加权系数就越大。
以 m t m_t mt为例,从上面的推导可以看到,越远离时刻t,其梯度所占的比重就越小,在梯度在不断的更新的过程中,虽然使用了历史梯度,但是在不同时刻的梯度对当前 m t m_t mt贡献不同,离时刻t越近,对 m t m_t mt的影响就越大,离时刻t越远,对 m t m_t mt的影响就越小。
问题2 为什么需要进行修正?
(1)通俗解释:
当对 m t m_t mt不进行修正时( β 1 = 0.9 \beta_1=0.9 β1=0.9):
m 0 m_0 m0=0
m 1 m_1 m1= β 1 ∗ m 0 + ( 1 − β 1 ) ∗ g 1 \beta _1* m_0+(1-\beta_1)*g_1 β1∗m0+(1−β1)∗g1= 0.1 g 1