基本上讲,Adam就是将day8.2提到的momentum动量梯度下降法和day8.3提到的RMSprop算法相结合的优化算法
首先初始化 S = 0 S= 0 V = 0 V= 0
On iteration t:
compute dw,db using current Mini-batch
V = βv+ (1-β)dW V= βv + (1-β)db 先做momentum
S = βS+ (1-β)dWS= βS + (1-β)db再做RMSprop
偏差修正:V= v / (1 - β),V= v / (1 - β)
S= S / (1 - β),S= S / (1 - β)
W = W - α(V / sqrt.S+ε),b = b - α(V / sqrt.S+ε)
超参数的设定:
α:learning rate,需要一系列的尝试
β:0.9 (为了计算dw) one moment一阶矩
β:0.999 (为了计算dw) second moment二阶矩
ε:10
注意除α需要设定外,Adam算法的β、β、ε三个参数都不必去设定,根据Andrew Ng的解释来看很少有业内人士改变Adam算法原文的这三个参数
Adam = adaptive moment estimation