理论篇3:深度学习之----Momentum优化器(2)
活动地址:CSDN21天学习挑战赛
1、介绍
有一种算法叫做Momentum,或者叫做动量梯度下降法,运行速度几乎总是快于标准的梯度下降算法,简而言之,Momentum算法在原有的梯度下降法中引入了动量。基本的想法就是计算梯度的指数加权平均数,并利用该梯度更新权重。
引入动量比起普通梯度下降法主要能够增加两个优点。
首先,引入动量能够使得物体在下落过程中,当遇到一个局部最优的时候有可能在原有动量的基础上冲出这个局部最优点;并且,普通的梯度下降法方法完全由梯度决定,这就可能导致在寻找最优解的过程中出现严重震荡而速度变慢,但是在有动量的条件下,物体运动方向由动量和梯度共同决定,可以使得物体的震荡减弱,更快地运动到最优解
2、指数加权平均
指数加权移动平均是一种常用的序列数据处理方式,用于描述数值的变化趋势,本质上是一种近似求平均的方法。计算公式如下:
vt=βvt−1+(1−β)θt\ v_t = βv_t-_1+(1-β)θ_t vt=βvt−1+(1−β)θt
其中 vtv_tvt表示第t个数的估计值,β为一个可调参数,为vt−1v_t − _1vt−1 的权重,θtθ_tθt
表示第t个数的实际值。
3、 Momentum介绍
在深度学习中,Momentum(动量)优化算法是对梯度下降法的一种优化, 它在原理上模拟了物理学中的动量,已成为目前非常流行的深度学习优化算法之一。
3.1 背景
下图表明了传统的梯度下降法会存在的问题,即训练轨迹会呈现锯齿状,这无疑会大大延长训练时间。同时,由于存在摆动现象,学习率只能设置的较小,才不会因为步伐太大而偏离最小值。
3.2 优化思路
想让纵向的摆动尽量小,同时保持横向的运动方向比较平稳。引入动量能够使得物体在下落过程中,当遇到一个局部最优的时候有可能在原有动量的基础上冲出这个局部最优点;并且,普通的梯度下降法方法完全由梯度决定,这就可能导致在寻找最优解的过程中出现严重震荡而速度变慢,但是在有动量的条件下,物体运动方向由动量和梯度共同决定,可以使得物体的震荡减弱,更快地运动到最优解。
引入动量后新的轨迹如下图:(红色线)
3.3 更新公式
它主要是基于梯度的移动指数加权平均。假设在当前的迭代步骤第 t 步中,那么基于Momentum优化算法可以写成下面的公式:
理论篇3:深度学习之----Momentum优化器(2)相关推荐
- 【深度学习】协同优化器和结构化知识蒸馏
[深度学习]协同优化器和结构化知识蒸馏 文章目录 1 概述 2 什么是RAdam(Rectified Adam) 3 Lookahead - 探索损失面的伙伴系统=更快,更稳定的探索和收敛. 4 Ra ...
- 深度学习算法(第5期)----深度学习中的优化器选择
欢迎关注微信公众号"智能算法" – 原文链接(阅读体验更佳): 深度学习算法(第5期)----深度学习中的优化器选择 上一期,我们一起学习了TensorFlow在训练深度网络的时候 ...
- 【深度学习】超强优化器如何与网络有机结合
[深度学习]超强优化器如何与网络有机结合 1 Ranger优化器 2 一个例子(基于CNN和pytorch) 3 剪枝(减小优化器压力) 1 Ranger优化器 RAdam + Lookahead + ...
- 深度学习训练营之优化器对比
深度学习训练营之优化器对比 原文链接 环境介绍 前置工作 设置GPU 数据处理 导入数据 数据集处理 数据集可视化 模型构造 模型训练 结果可视化 原文链接
- 手撕深度学习中的优化器
深度学习中的优化算法采用的原理是梯度下降法,选取适当的初值params,不断迭代,进行目标函数的极小化,直到收敛.由于负梯度方向时使函数值下降最快的方向,在迭代的每一步,以负梯度方向更新params的 ...
- 深度学习中常用优化器算法Optimizer详解(BGD、SGD、MBGD、Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam)
本文转载自:https://www.cnblogs.com/guoyaohua/p/8542554.html 在机器学习.深度学习中使用的优化算法除了常见的梯度下降,还有 Adadelta,Adagr ...
- 【深度学习 学习率,优化器】——深刻解读训练网络时各种学习率,优化器的区别,learning rate, Momentum
机梯度下降及各种更新方法 普通更新 最简单的更新形式是沿着负梯度方向改变参数(因为梯度指向的是上升方向,但是我们通常希望最小化损失函数).假设有一个参数向量x及其梯度dx,那么最简单的更新的形式是: ...
- 深度学习基础之优化器(optimizer)的介绍
文章目录 前言 SGD(随机梯度下降法) Momentum AdaGrad RMSprop Adam MNIST手写数据集四种方法对比 总结 参考 前言 神经网络的学习的目的是找到使损失函数的值尽可能 ...
- 【深度学习】常见优化器的PyTorch实现
这里主要讲不同常见优化器代码的实现,以及在一个小数据集上做一个简单的比较. 备注:pytorch需要升级到最新版本 其中,SGD和SGDM,还有Adam是pytorch自带的优化器,而RAdam是最近 ...
- 深度学习三人行(第5期)----深度学习中的优化器选择
上一期,我们一起学习了TensorFlow在训练深度网络的时候怎么解决梯度消失或梯度爆炸的问题,以及怎么尽可能的减少训练时间. 深度学习三人行(第4期)---- TF训练DNN之进阶 这期我们继续学习 ...
最新文章
- 关于mybatis的参数2个使用经验(类似于struts2的通配所有页面的action配置,xmlsq语句参数类型为基本类型时的快捷指定办法)...
- Linux 服务器安装discuz 7.2论坛
- 浅谈中大型企业CMDB的建设
- sizeof你真的弄明白了吗?来看看这个例子
- 开发工程师的维护意识存在不?
- 一个项目需要提交哪了些文档?
- 为什么机器学习行业的发展离不开 “开源”
- cefsharp远程调试工具
- Java反射学习笔记
- JQuery slidebox实现图片轮播
- 用计算机弹怎么会爱上了他,怎么会爱上了他,并决定跟他回家?《纸短情长》...
- php手册3.1,thinkphp3.1手册下载|
- 【9102年】考研还是找工作?分享看完心得体会(如果你错过了月亮,那就不要错过星星了)
- DDR SDRAM的内部结构Cell Structure
- JPA映射数据库mysql表名,字段名大小写转化,下划线分割.
- cnpm i 与 npm i
- opencv人脸检测输出的置信率
- 前端工程师能够用很低的学习本钱来运用它完成常用的效劳端代码
- 数据挖掘相关岗位分析及规划
- 2023年全国最新会计专业技术资格精选真题及答案36