使用动量的梯度下降法
整理自吴恩达深度学习系列视频:
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已经被证明很健壮。
使用动量的梯度下降法相关推荐
- 最清晰的讲解各种梯度下降法原理与Dropout
一.梯度法思想 梯度法思想的三要素:出发点.下降方向.下降步长. 机器学习中常用的权重更新表达式为 :,这里的λ就是学习率,本文从这个式子出发来把机器学习中的各种"梯度"下降法阐释 ...
- 各种梯度下降法原理与Dropout
一.梯度法思想 梯度法思想的三要素:出发点.下降方向.下降步长. 机器学习中常用的权重更新表达式为 :,这里的λ就是学习率,本文从这个式子出发来把机器学习中的各种"梯度"下降法阐释 ...
- 2.2.3 动量梯度下降法
动量梯度下降法 我们现在介绍一下Momentum梯度下降法,运行速度快于标准的梯度下降法.其基本思想就是计算梯度的指数加权平均数,并利用该梯度来更新权重. 如图所示,图中蓝色的代表batch或者min ...
- 2.6 动量梯度下降法-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 2.5 指数加权平均的偏差修正 回到目录 2.7 RMSprop 动量梯度下降法 (Gradient Descent with Momentum) 还有一种算法叫做Momen ...
- 改善深层神经网络:超参数调整、正则化以及优化——2.6 动量梯度下降法
如果要优化成本函数,函数如下图所示,红点代表最小值的位置.假设从边缘开始梯度下降,如果进行梯度下降法的一次迭代,无论是batch还是mini-batch下降法,都会产生较大的迭代波动,这会导致花费更多 ...
- 动量梯度下降法 Momentum
动量梯度下降法是对梯度下降法的一种优化算法,该方法学习率可以选择更大的值,函数的收敛速度也更快. 梯度下降法就像下面这张图,通过不断的更新 w与b,从而让函数移动到红点,但是要到达最优解,需要我们不断 ...
- 随机梯度下降法_动量梯度下降法(gradient descent with momentum)
简介 动量梯度下降法是对梯度下降法的改良版本,通常来说优化效果好于梯度下降法.对梯度下降法不熟悉的可以参考梯度下降法,理解梯度下降法是理解动量梯度下降法的前提,除此之外要搞懂动量梯度下降法需要知道原始 ...
- 指数加权平均、动量梯度下降法、RMSprop、Adam优化算法
目录 1.指数加权平均(exponentially weighted averages) 这里有一年的温度数据. 如果想计算温度的趋势,也就是局部平均值(local average),或者说移动平均值 ...
- 动量梯度下降法Momentum
转载请注明出处,原文地址 前言 动量梯度下降法是对梯度下降法的一种优化算法,该方法学习率可以选择更大的值,函数的收敛速度也更快.梯度下降法就像下面这张图,通过不断的跟新w与b,从而让函数移动到红点,但 ...
最新文章
- python 多态 协议详解
- 使用jquery 根据下拉列表的name值查找被选中的值
- ASP.NET Excel导入到SQL Server数据库
- 解决toolbar左边空出一部分的问题
- ASP.NET Core Web API基于RESTFul APIs的集合结果过滤和分页
- 拉普拉斯变换_拉普拉斯变换——奇妙的数学
- 最快配置本地Yum仓库
- BZOJ3638|CodeForces 280D k-Maximum Subsequence Sum
- 数据分析常用的7大思维方法详解
- UWP入门一 7天酒店客户端源码及说明
- 解决磁盘IO紧张的一种方法
- 去掉图标_小图标创建|精选博客
- OSI常用网络协议(七层)
- MBBR 物联网大数据监控系统
- java中io的重要性_java中的IO整理
- 软件测试的基础知识(四)
- 一点笔记,好记性不如烂笔头
- 国内主流短信验证码平台收费价格对比「二」:亿佰云、秒嘀科技、极光短信、华信云通信
- shell可以卖钱_【一点资讯】什么叫Shell Cordovan呢?马臀皮鞋子,牛仔裤和腰带能卖多少钱...
- 网络视频和移动营销 一根绳子上的蚂蚱