由于一开始v0都是初始化为0,导致在初始计算时会计算差别很大,如上述每月温度,假设beta为0.9,则第一天的温度为:
v
1
=
0.9
∗
0
+
(
1
−
0.9
)
24
=
2.4
v_1=0.9*0+(1-0.9)24=2.4
v1=0.9∗0+(1−0.9)24=2.4可以明显看出,这与第一天温度相差非常大,于是为了弥补这一误差,所以采用如下公式来更新
v
t
v_t
vt的值
v
t
=
v
t
1
−
β
t
=
β
v
t
−
1
+
(
1
−
β
)
θ
t
1
−
β
t
v_t=\frac{v_t}{1-\beta^t}=\frac{\beta v_{t-1}+(1-\beta)\theta_t}{1-\beta^t}
vt=1−βtvt=1−βtβvt−1+(1−β)θt通过该公式重新计算
v
1
v_1
v1的值:
v
1
=
0.9
∗
0
+
(
1
−
0.9
)
∗
24
1
−
0.
9
1
=
24
v_1=\frac{0.9*0+(1-0.9)*24}{1-0.9^1}=24
v1=1−0.910.9∗0+(1−0.9)∗24=24
可以看出,经过偏差修正后的数值回归到了一个正常的水平,并且随着
t
t
t的数值越大,
β
t
\beta^t
βt会越来越趋向于0,整个分母则会越来越趋向于1,于是偏差修正也会越来越无效。
动量梯度下降法
动量梯度下降法就是采用了指数加权平均之后的梯度下降法
如何计算
RMSprop
如何计算
Adam
Adam是由动量梯度下降法和RMSprop组合而成
计算方法
对于所有的迭代下来说
v
d
w
=
β
1
v
d
w
+
(
1
−
β
1
)
d
w
,
v
d
b
=
β
1
v
d
b
+
(
1
−
β
1
)
d
b
v_{dw}=\beta_1v_{dw}+(1-\beta_1)dw,v_{db}=\beta_1v_{db}+(1-\beta_1)db
vdw=β1vdw+(1−β1)dw,vdb=β1vdb+(1−β1)db
s
d
w
=
β
2
s
d
w
+
(
1
−
β
2
)
d
w
2
,
s
d
b
=
β
2
s
d
b
+
(
1
−
β
2
)
d
b
2
s_{dw}=\beta_2s_{dw}+(1-\beta_2)dw^2,s_{db}=\beta_2s_{db}+(1-\beta_2)db^2
sdw=β2sdw+(1−β2)dw2,sdb=β2sdb+(1−β2)db2
v
d
w
c
o
r
r
e
n
t
e
d
=
v
d
w
1
−
β
1
t
,
v
d
b
c
o
r
r
e
n
t
e
d
=
v
d
b
1
−
β
1
t
v_{dw}^{corrented}=\frac{v_{dw}}{1-\beta_1^t},v_{db}^{corrented}=\frac{v_{db}}{1-\beta_1^t}
vdwcorrented=1−β1tvdw,vdbcorrented=1−β1tvdb
s
d
w
c
o
r
r
e
n
t
e
d
=
s
d
w
1
−
β
2
t
,
s
d
b
c
o
r
r
e
n
t
e
d
=
s
d
b
1
−
β
2
t
s_{dw}^{corrented}=\frac{s_{dw}}{1-\beta_2^t},s_{db}^{corrented}=\frac{s_{db}}{1-\beta_2^t}
sdwcorrented=1−β2tsdw,sdbcorrented=1−β2tsdb
w
:
=
w
−
α
v
d
w
c
o
r
r
e
n
t
e
d
s
d
w
c
o
r
r
e
n
t
e
d
+
ε
,
b
:
=
b
−
α
v
d
b
c
o
r
r
e
n
t
e
d
s
d
b
c
o
r
r
e
n
t
e
d
+
ε
w:=w-\alpha\frac{v_{dw}^{corrented}}{\sqrt{s_{dw}^{corrented}+\varepsilon}},b:=b-\alpha\frac{v_{db}^{corrented}}{\sqrt{s_{db}^{corrented}+\varepsilon}}
w:=w−αsdwcorrented+εvdwcorrented,b:=b−αsdbcorrented+εvdbcorrented