文章目录

  • 指数加权平均(Exponentially Weighted averages)
    • 理解指数加权平均
    • 实现指数加权平均数
    • 我们为什么要使用指数加权平均数?
    • 指数加权平均的偏差修正(bias correction)
  • 动量梯度下降法(Momentum gradient descent)

指数加权平均(Exponentially Weighted averages)

上图的vt就是加权平均数,11−β表示其代表多少天的加权平均数上图的v_{t}就是加权平均数, \frac{1}{1-\beta}表示其代表多少天的加权平均数 上图的vt​就是加权平均数,1−β1​表示其代表多少天的加权平均数
其由来就是指数加权经过这么11−β天叠加后已经接近于0了,后面就无意义了其由来就是指数加权经过这么\frac{1}{1-\beta}天叠加后已经接近于0了,后面就无意义了其由来就是指数加权经过这么1−β1​天叠加后已经接近于0了,后面就无意义了

β取中间的值,例如上面所取的0.9,会更利于求平均值\beta取中间的值,例如上面所取的0.9,会更利于求平均值β取中间的值,例如上面所取的0.9,会更利于求平均值

理解指数加权平均

例如,对于V100,我们设置β=0.1那么对于下面的式子来说例如,对于V_{100},我们设置\beta=0.1 那么 对于下面的式子来说例如,对于V100​,我们设置β=0.1那么对于下面的式子来说

V100=0.1θ100+0.1×0.9⋅θ99+0.1×(0.9)2⋅θ98+0.1×0.93⋅θ97V_{100}=0.1\theta_{100}+0.1×0.9·\theta_{99}+0.1×(0.9)^{2}·\theta_{98}+0.1×0.9^{3}·\theta_{97}V100​=0.1θ100​+0.1×0.9⋅θ99​+0.1×(0.9)2⋅θ98​+0.1×0.93⋅θ97​

可以看到,其样式就是一个指数加权形式的平均数计算

实现指数加权平均数

我们为什么要使用指数加权平均数?

其编写代码过程中在计算机内存中只占据一行代码的内存,不同于传统的平均数计算方法,需要将所有数相加除以size,这种计算方式对于一个大型机器学习项目来说更加高效.

指数加权平均的偏差修正(bias correction)


当我们使用这个公式去计算时

前两天的值算出来会很小很小 V2=0.0196θ1+0.02θ2V2=0.0196\theta_1+0.02\theta_2V2=0.0196θ1​+0.02θ2​

很明显这是不符合实际的

所以我们需要想办法对初期的平均值进行修正 于是我们想到了下面

将Vt除以1−βt,这样不仅解决了前期偏差的问题,而且在后期,随着t的增大1−βt会接近于0,从而没有影响将V_t除以1-\beta^t,这样不仅解决了前期偏差的问题,而且在后期,随着t的增大 1-\beta^t会接近于0,从而没有影响将Vt​除以1−βt,这样不仅解决了前期偏差的问题,而且在后期,随着t的增大1−βt会接近于0,从而没有影响

所以,现在我们又有了一个新的超参数 β.

动量梯度下降法(Momentum gradient descent)

其与传统的batch gradient descent 的区别就在于 在反向传播的过程中

我们还需要计算一次梯度的加权平均数

再进行批梯度下降

其优化体现每次梯度下降时纵轴的振幅变小了(因为我们对梯度求了指数加权平均数,大家可以对照上面上个二维图像,对有上有下求平均数)也就是降低了noisy,而横轴就算计算平均值也没有太大的影响,从而使得整个优化效率或者说速度 大大提升了.


图片来自李宏毅教授的书

dW可以被理解为加速度
可见 如果我们超参数β取为0.9 1-β就是0.1
那么每一次梯度计算都会考虑前面累积的梯度值,且其权重占据0.9
而这一次经过反向传播计算出的梯度dw所占的权重只有0.1
这样就保证了整个优化方向的稳定性
如果dw和原来方向不同 那么也影响不大
如果dw和原来积累方向相同 那么就又进一步加强积累 也正反馈于后面的积累方向的准确性

几个实现的细节:

  1. 对于超参数β 一般默认都取值为0.9

  2. 所以,对于这个新的算法,梯度下降需要调整的超参数就成为了两个 learning rate α和 权重 β

  3. 初始化对于新的梯度V_dw和V_db其都是元素为0的矩阵 size与dw db相同 也与W相同

  4. 对于Momentum gradient descent,可以不考虑偏差修正(bias correction)的问题,因为我们一般设置β值为0.9,其代表我们每次考虑10个梯度样本,所以就不太需要考虑初始状态了.

指数加权平均与动量梯度下降法相关推荐

  1. 指数加权平均、动量梯度下降法、RMSprop、Adam优化算法

    目录 1.指数加权平均(exponentially weighted averages) 这里有一年的温度数据. 如果想计算温度的趋势,也就是局部平均值(local average),或者说移动平均值 ...

  2. 2.2.3 动量梯度下降法

    动量梯度下降法 我们现在介绍一下Momentum梯度下降法,运行速度快于标准的梯度下降法.其基本思想就是计算梯度的指数加权平均数,并利用该梯度来更新权重. 如图所示,图中蓝色的代表batch或者min ...

  3. 2.6 动量梯度下降法-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 2.5 指数加权平均的偏差修正 回到目录 2.7 RMSprop 动量梯度下降法 (Gradient Descent with Momentum) 还有一种算法叫做Momen ...

  4. 随机梯度下降法_动量梯度下降法(gradient descent with momentum)

    简介 动量梯度下降法是对梯度下降法的改良版本,通常来说优化效果好于梯度下降法.对梯度下降法不熟悉的可以参考梯度下降法,理解梯度下降法是理解动量梯度下降法的前提,除此之外要搞懂动量梯度下降法需要知道原始 ...

  5. 动量梯度下降法 Momentum

    动量梯度下降法是对梯度下降法的一种优化算法,该方法学习率可以选择更大的值,函数的收敛速度也更快. 梯度下降法就像下面这张图,通过不断的更新 w与b,从而让函数移动到红点,但是要到达最优解,需要我们不断 ...

  6. 动量梯度下降法Momentum

    转载请注明出处,原文地址 前言 动量梯度下降法是对梯度下降法的一种优化算法,该方法学习率可以选择更大的值,函数的收敛速度也更快.梯度下降法就像下面这张图,通过不断的跟新w与b,从而让函数移动到红点,但 ...

  7. 改善深层神经网络:超参数调整、正则化以及优化——2.6 动量梯度下降法

    如果要优化成本函数,函数如下图所示,红点代表最小值的位置.假设从边缘开始梯度下降,如果进行梯度下降法的一次迭代,无论是batch还是mini-batch下降法,都会产生较大的迭代波动,这会导致花费更多 ...

  8. 2.6 动量梯度下降法

  9. 使用动量的梯度下降法

    整理自吴恩达深度学习系列视频: https://mooc.study.163.com/learn/2001281003?tid=2001391036#/learn/content?type=detai ...

  10. 线性回归之梯度下降法介绍

    线性回归之梯度下降法介绍 上一篇博文中介绍了最基本的梯度下降法实现流程,常见的梯度下降算法有: 全梯度下降算法(Full gradient descent), 随机梯度下降算法(Stochastic ...

最新文章

  1. TensorFlow平台搭建
  2. UVA1327 King‘s Quest(强连通分量、给王子们匹配公主系列 - 1 )
  3. 20155308 《信息安全系统设计基础》课程总结
  4. Websocket协议的学习、调研和实现
  5. Android 定时器实现的几种方式和removeCallbacks失效问题详解
  6. SAP CRM Fiori My Opportunity应用文件上传的技术实现
  7. 学会了很多计算机小技巧,超实用的八个电脑小技巧,全都学会让你成为电脑高手...
  8. 【项目管理】管理良好沟通
  9. leetcode - 206. 反转链表
  10. 跨站请求伪造CSRF防护方法
  11. java软件开发是什么_java常用的开发软件是什么
  12. 视频教程-手把手教你掌握区块链技术视频教程-区块链
  13. 电脑桌面的计算机图标都不见了,如何解决电脑桌面的图标都不见了的问题
  14. python怎么取共轭_python print出共轭复数的方法详解
  15. 网页中漂浮的图片代码
  16. 给应用重新签名,重新签名包
  17. android关闭背光
  18. vue生命周期、钩子理解
  19. 机器学习中样本的样本量的估计(VC维)
  20. 更改无线网卡mac地址后,无法连接到此无线网卡分享的热点

热门文章

  1. 联想电脑尺寸在哪里看_笔记本型号在哪里看 怎么看笔记本屏幕大小
  2. Centos8装Wine笔记
  3. 个人网站建设基本步骤解析
  4. Zebra打印机,中文转ZPL指令的.net实现,替换FNTHEX32.DLL
  5. linux蜂鸣器实验
  6. 树莓派蜂鸣器python代码_树莓派之蜂鸣器模块基础应用
  7. 关于思科交换机产品型号的命名规则
  8. 怎样快速生成一个动态二维码?动态个性二维码怎么做?
  9. 我的 2020 年终总结
  10. 花两年时间去面试一个人——给准备面试的启发