Adam Optimization Algorithm.
Adam refer to Adaptive Moment estimation.
要看懂这篇博文,你需要先看懂:
整理并翻译自吴恩达深度学习系列视频:
https://mooc.study.163.com/learn/2001281003?tid=2001391036#/learn/content?type=detail&id=2001701052&cid=2001694315
RMSprop and the Adam optimization algorithm, is one of those rare algorithms that has really stood up, and has been shown to work well across a wide range of deep learning architectures.
And the Adam optimization algorithm is basically taking momentum and RMSprop and putting them together.
Adam优化算法
基本思想是把动量梯度下降和RMSprop放在一起使用。
算法描述
这个算法描述来自花书《deep learning》,与下面的计算公式不共享参数记号。
Adam优化算法计算方法
动量梯度下降部分:
v
d
w
=
β
1
v
d
w
+
(
1
−
β
1
)
d
W
v_{dw}=eta_1 v_{dw}+(1-eta_1)dW
vdw=β1vdw+(1−β1)dW 即指数加权平均,下同。
v
d
b
=
β
1
v
d
b
+
(
1
−
β
1
)
d
b
v_{db}=eta_1 v_{db}+(1-eta_1)db
vdb=β1vdb+(1−β1)db
RMSprop部分:
S
d
w
=
β
2
S
d
w
+
(
1
−
β
2
)
d
W
2
S_{dw}=eta_2S_{dw}+(1-eta_2)dW^2
Sdw=β2Sdw+(1−β2)dW2<- element-wise 即平方版本的指数加权平均,下同
S
d
b
=
β
2
S
d
b
+
(
1
−
β
2
)
d
b
2
S_{db}=eta_2S_{db}+(1-eta_2)db^2
Sdb=β2Sdb+(1−β2)db2 <- element-wise
起始bias修正:
v
d
w
c
o
r
r
e
c
t
=
v
d
w
1
−
β
1
t
v_{dw}^{correct}=frac{v_{dw}}{1-eta_1^t}
vdwcorrect=1−β1tvdw
v
d
b
c
o
r
r
e
c
t
=
v
d
b
1
−
β
1
t
v_{db}^{correct}=frac{v_{db}}{1-eta_1^t}
vdbcorrect=1−β1tvdb
S
d
w
c
o
r
r
e
c
t
=
S
d
w
1
−
β
2
t
S_{dw}^{correct}=frac{S_{dw}}{1-eta_2^t}
Sdwcorrect=1−β2tSdw
S
d
b
c
o
r
r
e
c
t
=
S
d
b
1
−
β
2
t
S_{db}^{correct}=frac{S_{db}}{1-eta_2^t}
Sdbcorrect=1−β2tSdb
更新parameter变成:
W
=
W
−
α
v
d
w
c
o
r
r
e
c
t
∗
d
W
S
d
w
c
o
r
r
e
c
t
+
ϵ
W = W-alpha frac{v_{dw}^{correct}*dW}{sqrt{S_{dw}^{correct}+epsilon}}
W=W−αSdwcorrect+ϵvdwcorrect∗dW 分子来自动量梯度下降 分母来自RMSprop 下同
b
=
b
−
α
v
d
b
c
o
r
r
e
c
t
∗
d
b
S
d
b
c
o
r
r
e
c
t
+
ϵ
b = b-alpha frac{v_{db}^{correct}*db}{sqrt{S_{db}^{correct}+epsilon}}
b=b−αSdbcorrect+ϵvdbcorrect∗db
解释说明
Adam = adaptive moment estimation,自适应性炬估计。
β
1
eta_1
β1计算的是导数的均值(使用加权指数平均)。这称为第一炬(the first moment)。
β
2
eta_2
β2计算的是平方版本的指数加权平均。这称为第二炬(the second moment)。
这是Adam名称的由来,大家一般称之为:Adam Authorization Algorithm(Adam权威算法)。
默认参数值选取
-
α
alpha
α
学习速率是你需要是调参的。 -
β
1
=
0.9
eta_1=0.9
β1=0.9
-> ( d w ) (dw) (dw) moving average, weighted average. momentum light term. -
β
2
=
0.999
eta_2=0.999
β2=0.999 ->
d
w
2
dw^2
dw2
-> ( d w 2 ) (dw^2) (dw2) RMSprop term. 0.999出自Adam paper,即该算法提出者。 -
ϵ
=
1
0
−
8
epsilon=10^{-8}
ϵ=10−8
几乎没有人去调试这个值,大家都使用 1 0 − 8 10^{-8} 10−8