2.5 指数加权平均的偏差修正-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

指数加权平均的偏差修正 (Bias Correction in Exponentially Weighted Average)

你学过了如何计算指数加权平均数,有一个技术名词叫做偏差修正,可以让平均数运算更加准确,来看看它是怎么运行的。

2.5 指数加权平均的偏差修正-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

vt=βvt1+(1β)θtv_t=\beta v_{t-1}+(1-\beta)\theta_t

在上一个视频中,这个(红色)曲线对应 β\beta 的值为0.9,这个(绿色)曲线对应的 β=0.98\beta=0.98 ,如果你执行写在这里的公式,在 β\beta 等于0.98的时候,得到的并不是绿色曲线,而是紫色曲线,你可以注意到紫色曲线的起点较低,我们来看看怎么处理。

计算移动平均数的时候,初始化 v0=0v_0=0v1=0.98v0+0.02θ1v_1=0.98v_0+0.02\theta_1 ,但是 v0=0v_0=0 ,所以这部分没有了( 0.98v00.98v_0 ),所以 v1=0.02θ1v_1=0.02\theta_1 ,所以如果一天温度是40华氏度,那么 v1=0.02θ1=0.0240=8v_1=0.02\theta_1=0.02*40=8 ,因此得到的值会小很多,所以第一天温度的估测不准。

v2=0.98v1+0.02θ2v_2=0.98v_1+0.02\theta_2 ,如果代入 v1v_1 ,然后相乘,所以 v2=0.980.02θ1+0.02θ2=0.0196θ1+0.02θ2v_2=0.98*0.02\theta_1+0.02\theta_2=0.0196\theta_1+0.02\theta_2 ,假设 θ1\theta_1θ2\theta_2 都是正数,计算后 v2v_2 要远小于 θ1\theta_1θ2\theta_2 ,所以 v2v_2 不能很好估测出这一年前两天的温度。

2.5 指数加权平均的偏差修正-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

有个办法可以修改这一估测,让估测变得更好,更准确,特别是在估测初期,也就是不用 vtv_t ,而是用 vt1βt\frac{v_t}{1-\beta^t}tt 就是现在的天数。举个具体例子,当 t=2t=2 时, 1βt=10.982=0.03961-\beta^t=1-0.98^2=0.0396 ,因此对第二天温度的估测变成了 v20.0396=0.0196θ1+0.02θ20.0396\frac{v_2}{0.0396}=\frac{0.0196\theta_1+0.02\theta_2}{0.0396} ,也就是 θ1\theta_1θ2\theta_2 的加权平均数,并去除了偏差。你会发现随着 tt 增加, βt\beta^t 接近于0,所以当 tt 很大的时候,偏差修正几乎没有作用,因此当 tt 较大的时候,紫线基本和绿线重合了。不过在开始学习阶段,你才开始预测热身练习,偏差修正可以帮助你更好预测温度,偏差修正可以帮助你使结果从紫线变成绿线。

在机器学习中,在计算指数加权平均数的大部分时候,大家不在乎执行偏差修正,因为大部分人宁愿熬过初始时期,拿到具有偏差的估测,然后继续计算下去。如果你关心初始时期的偏差,在刚开始计算指数加权移动平均数的时候,偏差修正能帮助你在早期获取更好的估测。

所以你学会了计算指数加权移动平均数,我们接着用它来构建更好的优化算法吧!

课程PPT

2.5 指数加权平均的偏差修正-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
2.5 指数加权平均的偏差修正-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授