momentum、Adagrad、RMSProp、Adam梯度下降总结
Momentum
SGD方法中的高方差振荡使得网络很难稳定收敛,所以有研究者提出了一种称为动量(Momentum)的技术,通过优化相关方向的训练和弱化无关方向的振荡,来加速SGD训练。换句话说,这种新方法将上个步骤中更新向量的分量’γ’添加到当前更新向量。
V(t)=γV(t−1)+η∇(θ).J(θ)
通过θ=θ−V(t)来更新参数。
动量项γ通常设定为0.9,或相近的某个值。
这里的动量与经典物理学中的动量是一致的,就像从山上投出一个球,在下落过程中收集动量,小球的速度不断增加。
在参数更新过程中,其原理类似:
使网络能更优和更稳定的收敛;
减少振荡过程,加速收敛。
Adagrad方法
Adagrad方法是通过参数来调整合适的学习率η,对稀疏参数进行大幅更新和对频繁参数进行小幅更新。因此,Adagrad方法非常适合处理稀疏数据。
在时间步长中,Adagrad方法基于每个参数计算的过往梯度,为不同参数θ设置不同的学习率。
先前,每个参数θ(i)使用相同的学习率,每次会对所有参数θ进行更新。在每个时间步t中,Adagrad方法为每个参数θ选取不同的学习率,更新对应参数,然后进行向量化。为了简单起见,我们把在t时刻参数θ(i)的损失函数梯度设为g(t,i)。
G是之前该参数的梯度平方的和
Adagrad方法是在每个时间步中,根据过往已计算的参数梯度,来为每个参数θ(i)修改对应的学习率η。
Adagrad方法的主要好处是,不需要手工来调整学习率。大多数参数使用了默认值0.01,且保持不变。
Adagrad方法的主要缺点是,学习率η总是在降低和衰减。
因为每个附加项都是正的,在分母中累积了多个平方梯度值,故累积的总和在训练期间保持增长。这反过来又导致学习率下降,变为很小数量级的数字,该模型完全停止学习,停止获取新的额外知识。
因为随着学习速度的越来越小,模型的学习能力迅速降低,而且收敛速度非常慢,需要很长的训练和学习,即学习速度降低。
另一个叫做Adadelta的算法改善了这个学习率不断衰减的问题。
RMSProp方法
这是一个AdaGrad的延伸方法,它倾向于解决其学习率衰减的问题。RMSProp不是累积所有之前的平方梯度,而是将累积之前梯度的窗口限制到某个固定大小w。
与之前无效地存储w先前的平方梯度不同,梯度的和被递归地定义为所有先前平方梯度的衰减平均值。作为与动量项相似的分数γ,在t时刻的滑动平均值Eg²仅仅取决于先前的平均值和当前梯度值。
Eg²=γ.Eg²+(1−γ).g²(t),其中γ设置为与动量项相近的值,约为0.9。
θ=θ−∇(θ)
还可以做什么改进?
在之前的方法中计算了每个参数的对应学习率,但是为什么不计算每个参数的对应动量变化并独立存储呢?这就是Adam算法提出的改良点。
Adam算法
Adam算法即自适应时刻估计方法(Adaptive Moment Estimation),本质上是带有动量项的RMSprop。
1.类似于Momentum算法,综合考虑之前时间步的梯度动量。β1 系数为指数衰减率,控制权重分配(动量与当前梯度),通常取接近于1的值。默认为0.9
2,计算梯度平方的指数移动平均数,v0初始化为0。β2 系数为指数衰减率,控制之前的梯度平方的影响情况.类似于RMSProp算法,对梯度平方进行加权均值。默认为0.999
3.由于m0初始化为0,会导致mt偏向于0,尤其在训练初期阶段。所以,此处需要对梯度均值mt进行偏差纠正,降低偏差对训练初期的影响。
4.与m0 类似,因为v0初始化为0导致训练初始阶段vt偏向0,对其进行纠正。
初始的学习率α乘以梯度均值与梯度方差的平方根之比。其中默认学习率α=0.001,ε=10^-8,避免除数变为0。
参考链接:
https://www.jianshu.com/p/aebcaf8af76e
momentum、Adagrad、RMSProp、Adam梯度下降总结相关推荐
- 深度学习笔记:优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)
深度学习笔记(一):logistic分类 深度学习笔记(二):简单神经网络,后向传播算法及实现 深度学习笔记(三):激活函数和损失函数 深度学习笔记:优化方法总结 深度学习笔记(四):循环神经 ...
- 优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)
本文介绍常见的一阶数值优化算法,这些方法在现代神经网络框架(tensorflow, caffe, torch)中已经是标准配置. 问题 设系统参数为ω.对于样本i,其代价函数为Qi(ω).在n个样本组 ...
- 深度学习入门-ANN神经网络参数最优化问题(SGD,Momentum,AdaGrad,RMSprop,Adam)
这里写目录标题 1. 参数优化 1.1 随机梯度下降法(SGD) 1.2 Momentum 动量法 1.3 AdaGrad 1.4 RMSprop 1.5 Adam 1. 参数优化 本文总结一下ANN ...
- 花书+吴恩达深度学习(七)优化方法之基本算法(Momentum, Nesterov, AdaGrad, RMSProp, Adam)
目录 0. 前言 1. 指数加权平均(exponentially weighted averages) 2. Momentum 动量 3. Nesterov 动量 4. AdaGrad 5. RMSP ...
- 深度学习中常用的优化算法(SGD, Nesterov,Adagrad,RMSProp,Adam)总结
深度学习中常用的优化算法(SGD, Nesterov,Adagrad,RMSProp,Adam)总结 1. 引言 在深度学习中我们定义了损失函数以后,会采取各种各样的方法来降低损失函数的数值,从而使模 ...
- “随机梯度下降、牛顿法、动量法、Nesterov、AdaGrad、RMSprop、Adam”
"随机梯度下降.牛顿法.动量法.Nesterov.AdaGrad.RMSprop.Adam" 随机梯度下降法 牛顿法 动量法 Nesterov 学习率应该慢慢减小的. AdaGra ...
- 几种优化算法的读书笔记——梯度下降、牛顿法、拟牛顿法、随机梯度下降、AdaGrad、RMSProp、Adam及选择优化算法的建议
文章目录 1 梯度下降 1.1 特点 1.2 思想 1.3 数学基础 1.4 具体算法 2 牛顿法和拟牛顿法 2.1 特点 2.2 牛顿法 2.2.1 数学基础 2.2.2 思想 2.2.3 具体算法 ...
- 【机器学习】P17 梯度下降 与 梯度下降优化算法(BGD 等 与 Adam Optimizer、AdaGrad、RMSProp)
梯度下降与梯度下降算法 梯度下降 梯度下降算法 基础优化算法 批量梯度下降 BGD 随机梯度下降 SGD 小批量梯度下降 MBGD 动量梯度下降 MGD 基础优化算法上的改进和优化的算法 自适应梯度算 ...
- 优化算法、梯度下降、SGD、Momentum、Adagrad、Adam
优化算法.梯度下降.随机梯度下降(SGD).动量法(Momentum).自适应法(Adagrad).动量自适应(Adam) 概述: 在机器学习算法实践中,优化总是重头戏,也是最考验功底的地方.深度学习 ...
- 深度学习梯度下降优化算法(AdaGrad、RMSProp、AdaDelta、Adam)(MXNet)
在深度学习优化算法之动量法[公式推导](MXNet)中,动量法因为使用了指数加权移动平均,解决了自变量更新方向不一致的问题.动量法由于每个元素都使用了相同的学习率来做迭代,这也导致另外一个问题:如果x ...
最新文章
- MindSpore 高阶优化器
- Python基础学习!容器:列表,元组,字典与集合!(1)
- 世界坐标系空间,页面空间,设备空间,物理设备空间
- git idea 本地历史版本回滚_如何为IDEA项目创建GitHub存储库和本地Git存储库
- 使用单例模式加载properties文件
- (1-1)line-height的定义和行内框盒子模型
- Spring-Boot (四) 集成Spring Security
- 不得不赞! CV算法工程师的高效利器
- IoC容器Autofac(2) - 一个简单示例(附demo源码)
- go 是常驻内存吗_图解 Go 内存分配器
- vue项目中更新element-ui版本
- 租车信息系统数据库设计(2)
- 用AS3编写的具有将多段视频连起来播放的 flash视频播放器---003
- LeetCode 739. 每日温度
- vue读取服务器文件,vue读取txt文件
- Halcon学习笔记:3D_coordinates(3D标定)
- 电脑清空企业微信聊天记录
- 【积跬步以至千里】Markdownpad2报错: Html Rendering Error:An error occurred with the HTML rendering component。
- xshell 免费版
- H5 页面适配所有 iPhone 和安卓机型的六个技巧
热门文章
- IDL实现遥感影像融合(批量)TASK(三)
- PHP数据库统计时间戳按天分组输出数据
- android ui自动化 mock,移动端自动化多机并行测试-数据 mock 篇
- NLP学习02--卷积神经网络CNN
- python操作redis集群是连接池么_python使用连接池操作redis数据库
- php curl 返回cookie_分享新浪图床上传接口PHP源码
- 八十年代的计算机游戏,儿时小霸王的记忆 八十年代最伟大的二十款游戏
- svm分类代码_数据挖掘入门系列教程(九)之基于sklearn的SVM使用
- 服务器接收不到信号,信号(SIGTERM)不被Windows上的subprocess接收
- 网络推手团队_辛8工作室,被列入经营异常名单!工作室发声明解释!二子爷喊话辛8:你能强大过马云吗?达少太忙没有时间玩!团队断水断粮式野外生存!...