先上总结:

【deeplearning.ai笔记第二课】2.2 优化算法(动量梯度下降,RMSprop,adam)

1. 指数加权平均

是一种 减少数据波动的方法。简单来说就是每个点的值都是前几个点和当前点的加权平均。

公式如下:
【deeplearning.ai笔记第二课】2.2 优化算法(动量梯度下降,RMSprop,adam)

beta的值越大,数据越平稳。

但是beta的值过大会使数据有一种“滞后”的感觉,如图中的绿线。

1.1 理解

为什么叫“指数”加权平均呢?因为根据公式,我们可以推导出以下的式子:

【deeplearning.ai笔记第二课】2.2 优化算法(动量梯度下降,RMSprop,adam)

也就是说,当前点V100 的值可以由前99个点的加权值得到,而权重是个指数函数。

1.2 平均估计

前提:当某个点a的权重的大小是当前点的1/3时,我们可以认为算法只关注到了这个a点之后的点到当前点的平均值。

因为自然数e的倒数约等于0.36,我们用这个数来估计。

因为(1x)1/x=1/e 所以带入1-x=0.9,x=0.1,当指数为10的时候,也就是v90这个点的权重为当前点的1/3,即我们可以认为算法是计算了前10个点的平均值。

归纳:指数加权平均算法可以认为是计算了前11β 个点的平均值。

1.3 偏置修正

从原点初始化时,指数平均估计会有偏置问题。如下图:绿色线是真实平均值,但是算法得到的紫色线明显在远点附近小于真实值。

这是因为原点初始化为0的关系,解决方法是进行偏置修正:每个值都除以1βt

【deeplearning.ai笔记第二课】2.2 优化算法(动量梯度下降,RMSprop,adam)

2. 动量梯度下降

虽然随机梯度下降仍然是非常受欢迎的优化方法,但其学习过程有时会很慢。动量方法(Polyak, 1964) 旨在加速学习,特别是处理高曲率、小但一致的梯度,或是带噪声的梯度。动量算法积累了之前梯度的指数加权平均,并且继续沿该方向移动。

动量的效果如图所示。
【deeplearning.ai笔记第二课】2.2 优化算法(动量梯度下降,RMSprop,adam)

从形式上看,动量算法引入了变量v 充当速度角色——它代表参数在参数空间移动的方向和速率。速度被设为负梯度的指数衰减平均.

3. RMSprop

RMSProp 算法缩放每个参数反比于其所有梯度历史平方值总和的平方根(Duchi et al., 2011)。使得具有损失最大偏导的参数相应地有一个快速下降的学习率,而具有小偏导的参数在学习率上有相对较小的下降。

参数的平方和采用指数加权平均。

【deeplearning.ai笔记第二课】2.2 优化算法(动量梯度下降,RMSprop,adam)

4. adam

adam 是RMSprop和动量梯度下降的结合。其次,Adam 包括偏置修正,修正从原点初始化的一阶矩(动量项)和(非中心的)二阶矩的估计(算法8.7 )。

【deeplearning.ai笔记第二课】2.2 优化算法(动量梯度下降,RMSprop,adam)

Redeference:
https://github.com/exacity/deeplearningbook-chinese

相关文章:

  • 2021-04-25
  • 2021-12-27
  • 2021-05-05
  • 2021-06-25
  • 2021-08-22
  • 2021-04-01
  • 2021-11-18
  • 2022-01-17
猜你喜欢
  • 2021-12-09
  • 2021-05-22
  • 2021-11-29
  • 2021-09-10
  • 2022-12-23
  • 2021-12-01
相关资源
相似解决方案