在深度学习的发展过程中出现过很多优化算法,但是有些优化算法并不能被非常广泛地使用,因此出现了一些质疑优化算法的声音。但是当有人尝试将动量梯度下降和 RMSprop 结合起来后,人们发现这种新的优化算法效果非常好而且在很多问题上的表现都不错,后来便广泛地使用了起来。
Adam 算法本质上是将动量梯度下降算法和 RMSprop 结合了起来。
如果读过前几篇文章,那么对下面的算法描述一定不陌生:
第 t 次迭代:
①. 在当前的 mini-batch 上计算 dW, db
②. v d W = β 1 ⋅ v d W + ( 1 − β ) ⋅ d W v_{dW} = β_1 · v_{dW} + (1 - β) · dW vdW=β1⋅vdW+(1−β)⋅dW, v d b = β 1 ⋅ v d b + ( 1 − β ) ⋅ d b v_{db} = β_1 · v_{db} + (1 - β) · db vdb=β1⋅vdb+(1−β)⋅db
③. s d W = β 2 ⋅ s d W + ( 1 − β ) ⋅ d W 2 s_{dW} = β_2 · s_{dW} + (1 - β) · dW^2 sdW=β2⋅sdW+(1