由于一开始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