指数加权平均与动量梯度下降法
文章目录
- 指数加权平均(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和原来积累方向相同 那么就又进一步加强积累 也正反馈于后面的积累方向的准确性
几个实现的细节:
对于超参数β 一般默认都取值为0.9
所以,对于这个新的算法,梯度下降需要调整的超参数就成为了两个 learning rate α和 权重 β
初始化对于新的梯度V_dw和V_db其都是元素为0的矩阵 size与dw db相同 也与W相同
对于Momentum gradient descent,可以不考虑偏差修正(bias correction)的问题,因为我们一般设置β值为0.9,其代表我们每次考虑10个梯度样本,所以就不太需要考虑初始状态了.
指数加权平均与动量梯度下降法相关推荐
- 指数加权平均、动量梯度下降法、RMSprop、Adam优化算法
目录 1.指数加权平均(exponentially weighted averages) 这里有一年的温度数据. 如果想计算温度的趋势,也就是局部平均值(local average),或者说移动平均值 ...
- 2.2.3 动量梯度下降法
动量梯度下降法 我们现在介绍一下Momentum梯度下降法,运行速度快于标准的梯度下降法.其基本思想就是计算梯度的指数加权平均数,并利用该梯度来更新权重. 如图所示,图中蓝色的代表batch或者min ...
- 2.6 动量梯度下降法-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 2.5 指数加权平均的偏差修正 回到目录 2.7 RMSprop 动量梯度下降法 (Gradient Descent with Momentum) 还有一种算法叫做Momen ...
- 随机梯度下降法_动量梯度下降法(gradient descent with momentum)
简介 动量梯度下降法是对梯度下降法的改良版本,通常来说优化效果好于梯度下降法.对梯度下降法不熟悉的可以参考梯度下降法,理解梯度下降法是理解动量梯度下降法的前提,除此之外要搞懂动量梯度下降法需要知道原始 ...
- 动量梯度下降法 Momentum
动量梯度下降法是对梯度下降法的一种优化算法,该方法学习率可以选择更大的值,函数的收敛速度也更快. 梯度下降法就像下面这张图,通过不断的更新 w与b,从而让函数移动到红点,但是要到达最优解,需要我们不断 ...
- 动量梯度下降法Momentum
转载请注明出处,原文地址 前言 动量梯度下降法是对梯度下降法的一种优化算法,该方法学习率可以选择更大的值,函数的收敛速度也更快.梯度下降法就像下面这张图,通过不断的跟新w与b,从而让函数移动到红点,但 ...
- 改善深层神经网络:超参数调整、正则化以及优化——2.6 动量梯度下降法
如果要优化成本函数,函数如下图所示,红点代表最小值的位置.假设从边缘开始梯度下降,如果进行梯度下降法的一次迭代,无论是batch还是mini-batch下降法,都会产生较大的迭代波动,这会导致花费更多 ...
- 2.6 动量梯度下降法
- 使用动量的梯度下降法
整理自吴恩达深度学习系列视频: https://mooc.study.163.com/learn/2001281003?tid=2001391036#/learn/content?type=detai ...
- 线性回归之梯度下降法介绍
线性回归之梯度下降法介绍 上一篇博文中介绍了最基本的梯度下降法实现流程,常见的梯度下降算法有: 全梯度下降算法(Full gradient descent), 随机梯度下降算法(Stochastic ...
最新文章
- TensorFlow平台搭建
- UVA1327 King‘s Quest(强连通分量、给王子们匹配公主系列 - 1 )
- 20155308 《信息安全系统设计基础》课程总结
- Websocket协议的学习、调研和实现
- Android 定时器实现的几种方式和removeCallbacks失效问题详解
- SAP CRM Fiori My Opportunity应用文件上传的技术实现
- 学会了很多计算机小技巧,超实用的八个电脑小技巧,全都学会让你成为电脑高手...
- 【项目管理】管理良好沟通
- leetcode - 206. 反转链表
- 跨站请求伪造CSRF防护方法
- java软件开发是什么_java常用的开发软件是什么
- 视频教程-手把手教你掌握区块链技术视频教程-区块链
- 电脑桌面的计算机图标都不见了,如何解决电脑桌面的图标都不见了的问题
- python怎么取共轭_python print出共轭复数的方法详解
- 网页中漂浮的图片代码
- 给应用重新签名,重新签名包
- android关闭背光
- vue生命周期、钩子理解
- 机器学习中样本的样本量的估计(VC维)
- 更改无线网卡mac地址后,无法连接到此无线网卡分享的热点