整理自吴恩达深度学习系列视频:
https://mooc.study.163.com/learn/2001281003?tid=2001391036#/learn/content?type=detail&id=2001702123
In one sentence, the basic idea is to compute an exponentially weighted average of your gradients, and then use that gradient to update your weights instead

指数加权平均参考前一篇博客:https://blog.csdn.net/Solo95/article/details/84837217

使用动量的梯度下降法

如图所示,普通的梯度下降法如图中蓝色画线所示,它在接近最优值红点时,会上下摆动,导致不能很快的收敛到红点,而且如果摆动的幅度过大还会导致发散(紫色画线所示),这也是为什么不能采用很大的learning_rate来加快学习速度。

所以我们引入了指数加权平均来计算梯度的平均值,这会抵消大部分梯度的垂直方向上的摆动,同时保留水平方向上的前进速度,使其更快收敛。使用动量的梯度下降法,“动量”,来自对它的物理上的解释,相当于在一个碗里丢一个小球,通过赋予小球动量,使其减少在碗壁上的左右摆动,让它更快到达碗底,。

使用动量的梯度下降法计算方法


在每次迭代中,我们计算:
v d w = β v d w + ( 1 − β ) d W v_{dw}=\beta v_{dw}+(1-\beta)dW vdw​=βvdw​+(1−β)dW 即指数加权平均,下同。
v d b = β v d b + ( 1 − β ) d b v_{db}=\beta v_{db}+(1-\beta)db vdb​=βvdb​+(1−β)db

注意 β = 0 \beta=0 β=0时,就退化成了普通的梯度下降。

起始bias修正:
因为我们取 v d w v_{dw} vdw​和 v d b v_{db} vdb​为零,所以一开始计算出的 v d w v_{dw} vdw​和 v d b v_{db} vdb​将会小于实际值,为了修正起始阶段这个偏差,使用以下计算方法:
v d w = v d w 1 − β t v_{dw}=\frac{v_{dw}}{1-\beta^t} vdw​=1−βtvdw​​
v d b = v d b 1 − β t v_{db}=\frac{v_{db}}{1-\beta^t} vdb​=1−βtvdb​​

注意随着t增大 1 − β t 1-\beta^t 1−βt越来越接近1,也就是说修正起的作用越来越小,它只在warm up阶段有效。

更新parameters的过程变为:
W = W − α v d w W = W-\alpha v_{dw} W=W−αvdw​, b = b − α v d b b = b-\alpha v_{db} b=b−αvdb​

现在,除了超参数 α \alpha α,我们又多出了一个 β \beta β,但 β \beta β一般取0.9,所以你不用担心它的取值问题,你也可以尝试取其他值,但0.9已经被证明很健壮。

使用动量的梯度下降法相关推荐

  1. 最清晰的讲解各种梯度下降法原理与Dropout

    一.梯度法思想 梯度法思想的三要素:出发点.下降方向.下降步长. 机器学习中常用的权重更新表达式为 :,这里的λ就是学习率,本文从这个式子出发来把机器学习中的各种"梯度"下降法阐释 ...

  2. 各种梯度下降法原理与Dropout

    一.梯度法思想 梯度法思想的三要素:出发点.下降方向.下降步长. 机器学习中常用的权重更新表达式为 :,这里的λ就是学习率,本文从这个式子出发来把机器学习中的各种"梯度"下降法阐释 ...

  3. 2.2.3 动量梯度下降法

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

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

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

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

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

  6. 动量梯度下降法 Momentum

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

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

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

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

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

  9. 动量梯度下降法Momentum

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

最新文章

  1. python 多态 协议详解
  2. 使用jquery 根据下拉列表的name值查找被选中的值
  3. ASP.NET Excel导入到SQL Server数据库
  4. 解决toolbar左边空出一部分的问题
  5. ASP.NET Core Web API基于RESTFul APIs的集合结果过滤和分页
  6. 拉普拉斯变换_拉普拉斯变换——奇妙的数学
  7. 最快配置本地Yum仓库
  8. BZOJ3638|CodeForces 280D k-Maximum Subsequence Sum
  9. 数据分析常用的7大思维方法详解
  10. UWP入门一 7天酒店客户端源码及说明
  11. 解决磁盘IO紧张的一种方法
  12. 去掉图标_小图标创建|精选博客
  13. OSI常用网络协议(七层)
  14. MBBR 物联网大数据监控系统
  15. java中io的重要性_java中的IO整理
  16. 软件测试的基础知识(四)
  17. 一点笔记,好记性不如烂笔头
  18. 国内主流短信验证码平台收费价格对比「二」:亿佰云、秒嘀科技、极光短信、华信云通信
  19. shell可以卖钱_【一点资讯】什么叫Shell Cordovan呢?马臀皮鞋子,牛仔裤和腰带能卖多少钱...
  20. 网络视频和移动营销 一根绳子上的蚂蚱

热门文章

  1. 哈啰出行Java开发面经
  2. VsCode 使用Latex最新教程
  3. 基于C#用WinForm实现的2048小游戏
  4. python音乐播放器代码_python3.2 音乐播放器源码
  5. 博弈论——巴什博弈(C++)
  6. double free
  7. 图片里的文字如何提取?试试这几种提取方法
  8. Javascript中this的几种指代
  9. HTML好看的登录注册界面
  10. 【L610】广和通L610 4G LTE Cat.1模块在树莓派下的联网演示