BGD

batch gradient descent,batch梯度下降。在训练中,每一步迭代都使用训练集的所有内容。用全量数据集去计算梯度,迭代参数。

优点: 
由于每一步都利用了训练集中的所有数据,因此当损失函数达到最小值以后,能够保证此时计算出的梯度为0,换句话说,就是能够收敛.因此,使用BGD时不需要逐渐减小学习速率

缺点: 
由于每一步都要使用所有数据,因此随着数据集的增大,运行速度会越来越慢.

SGD

stochastic gradient descent, 即随机梯度下降。随机抽取一批样本,用于迭代参数。

优点:

训练速度快,参数收敛快。

缺点:

抽样数据,计算的梯度有噪,所以学习速率最好逐渐减小。

一般采用线下衰减学习速率:

其中ϵ0是初始学习率, ϵτ是最后一次迭代的学习率. τ自然代表迭代次数.一般来说,ϵτ 设为ϵ0的1%比较合适.而τ一般设为让训练集中的每个数据都输入模型上百次比较合适.那么初始学习率ϵ0怎么设置呢?书上说,你先用固定的学习速率迭代100次,找出效果最好的学习速率,然后ϵ0设为比它大一点就可以了.

Momentum

即冲量or动量,前几次的梯度也会参与运算.为了表示动量,引入了一个新的变量v(velocity).v是之前的梯度的累加,但是每回合都有一定的衰减.。Momentum方法可以比较好的缓解,每次迭代计算的梯度含有比较大噪音的问题,尤其是在面对小而连续的梯度但是含有很多噪声的时候,可以很好的加速学习。

优点: 

前后梯度方向一致时,能够加速学习 
前后梯度方向不一致时,能够抑制震荡

Nesterov Momentum

对之前的Momentum的一种改进,大概思路就是,先对参数进行估计,然后使用估计后的参数来计算误差。

AdaGrad

AdaGrad可以自动变更学习速率,只是需要设定一个全局的学习速率ϵ,但是这并非是实际学习速率,实际的速率是与以往参数的模之和的开方成反比的。

优点: 
能够实现学习率的自动更改。如果这次梯度大,那么学习速率衰减的就快一些;如果这次梯度小,那么学习速率衰减的就满一些。

缺点: 
任然要设置一个变量ϵ 
经验表明,在普通算法中也许效果不错,但在深度学习中,深度过深时会造成训练提前结束。

RMSProp

RMSProp通过引入一个衰减系数,让r每回合都衰减一定比例。

优点: 
相比于AdaGrad,这种方法很好的解决了深度学习中过早结束的问题 
适合处理非平稳目标,对于RNN效果很好

缺点: 
又引入了新的超参,衰减系数ρ 
依然依赖于全局学习速率

RMSProp with Nesterov Momentum

将RMSProp和Nesterov Momentum结合起来的,先对参数进行估计,然后使用估计后的参数来计算误差。

Adam

Adam(Adaptive Moment Estimation)本质上是带有动量项的RMSprop,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。

转载于:https://www.cnblogs.com/caoshiwei/p/7152614.html

深度学习之optimizer 优化方法相关推荐

  1. 深度学习 | 训练及优化方法

    ---------------------------- 原文发表于夏木青 | JoselynZhao Blog,欢迎访问博文原文. ---------------------------- 深度学习 ...

  2. 深度学习笔记:优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)

    深度学习笔记(一):logistic分类  深度学习笔记(二):简单神经网络,后向传播算法及实现  深度学习笔记(三):激活函数和损失函数  深度学习笔记:优化方法总结  深度学习笔记(四):循环神经 ...

  3. 深度学习常见的优化方法(Optimizer)总结:Adam,SGD,Momentum,AdaGard等

    机器学习的常见优化方法在最近的学习中经常遇到,但是还是不够精通.将自己的学习记录下来,以备不时之需 https://www.cnblogs.com/GeekDanny/p/9655597.html

  4. 深度学习中的优化方法总结

    转载自:https://blog.csdn.net/u012151283/article/details/78154917 梯度下降沿着整个训练集的梯度方向下降.可以使用随机梯度下降很大程度地加速,沿 ...

  5. 【显存优化】深度学习显存优化方法

    深度学习gpu的显存至关重要,显存过小的话,模型根本无法跑起来,本文介绍几种显存不足时的优化方法,能够降低深度学习模型的显存要求. 目录 一.梯度累加 二.混合精度 1.权重备份 2.损失缩放 3.精 ...

  6. introduction to deep learning--week1简单线性回归、梯度下降、模型正则化、和深度学习中的优化方法

    进阶课程需要一些基础知识: 1.机器学习基础知识 2.概率论知识 3.线性代数和微积分 4.python编程 我们需要知道的机器学习基础知识: 1.线性回归:均方误差(MSE).解析解 2.逻辑回归: ...

  7. 深度学习之常用优化方法篇

    写在前面,此文记录常用的优化算法包括:随机梯度下降(SGD),Momentum算法,AdaGrad算法,RMSProp算法,Adam算法,牛顿法和拟牛顿法(包括L-BFGS 参考1:https://w ...

  8. 深度学习 神经网络的优化方法

    文章目录 1. 梯度下降算法[回顾] 2. 反向传播算法(BP算法) 2.1 前向传播与反向传播 2.2 链式法则 2.3 反向传播算法 3. 梯度下降优化方法 3.1 动量算法(Momentum) ...

  9. 深度学习中的优化方法-AdaGrad

    码字不易,转载请注明出处~ tags: optimizer;AdaGrad 本文来源于下面博客: https://medium.com/konvergen/an-introduction-to-ada ...

最新文章

  1. python中的变量、Debug和数据类型
  2. php中的unlink(),unset(),rmdir()删除函数
  3. 如何将本地文件通过终端上传到linux服务器 /服务器/阿里云
  4. 张震博士:SDT是未来安防发展方向
  5. 完美粉红噪声及各种声波测试软件,粉红噪声的测试原理
  6. 全球首发!计算机视觉Polygon Mesh Processing总结9——Triangle-Based Remeshing
  7. 零售分析用vba还是python_数据分析?Excel、VBA和Python?营销套路还是大势所趋!...
  8. C++Primer读书笔记----第二章变量和基本类型
  9. C++--第12课 - 操作符重载 - 上
  10. mysql安装显示挂起_安装Sql Server 2000时提示“安装Sql挂起”的解决方案
  11. 闽南理工学院教务网络管理系统所有服务器,闽南理工学院教务管理网络系统登录入口 http://222.77.99.244:8094/jwweb/,精英高考网...
  12. php入侵代码,入侵PHP网站就这么简单.pdf
  13. java给图片加水印
  14. 【2016.5.27】再见,软件工程,你好,软件工程。
  15. 安装vue脚手架出现的问题 npm ERR! code EEXIST。。。
  16. MySQL操作数据库语法及常见MySQL面试题与答案
  17. WinRAR4.20注册文件key文件注册码
  18. 时间获取相关函数mktime()、gmtime()
  19. 谈谈爬虫背后的法律风险
  20. memcached的安装和基本操作

热门文章

  1. Unity界面插件NGUI基础教程
  2. 照片宽高比怎么设置_视频号在哪里打开?怎么开通视频号?98页的视频号运营手册请收好...
  3. mediasoup 安裝
  4. java代码加载_java类中代码加载顺序
  5. 【kafka】kerberos Server not found in Kerberos database LOOKING_UP_SERVER Identifier doesn‘t match
  6. 【Spring】jpa数据库表实体命名规则 Unknown column ‘user0_.create_time‘ in ‘field list‘
  7. 【SpringCloud】Spring cloud Alibaba Sentinel 降级规则
  8. 【java】两个线程如何交替执行,一个输出偶数一个输出奇数?
  9. 95-225-040-源码-广播-简介
  10. 【Mac】mac安装go