在人工智能深度学习领域,我们经常使用梯度下降法来完成神经网络的训练任务,梯度下降算法是当前神经网络的应用最为广泛的算法之一,但是这个算法存在一些问题,就是在梯度下降的过程中存在一些波动的情况,从而导致神经网络的训练过于缓慢,而神经网络的训练需要反复迭代才能找到最佳模型,所以神经网络的快速训练,能够帮助我们快速找到最好的神经网络模型。

如上图所示,最中心红点表示梯度最低点,也就是最终的目标点,而蓝色线表示梯度下降的过程,我们可以看到它从左到右不断逼近最低点,但是同时它也存在较大的上下波动的问题。所以它的训练速度会很缓慢,为了解决这个问题,我们需要让梯度下降的过程上下波动缓慢,而从左到右加快下降过程,这样我们的梯度下降才能更快的完成,从而加快神经网络的训练速度。

我们想要实现如上图绿色折线所示的梯度下将过程,如图所示,我们可以看出这个梯度下降过程,上下波动小,从左向右梯度下降迅速,这就是我们需要的,但是要想达到类似的功能,依靠传统的梯度下降算法是不能够完成的,所以需要使用Adam 优化算法,它是由动量梯度下降法和RMSprop 算法结合的。

动量梯度下降法

动量梯度下降法,它的基本的想法就是计算梯度的指数加权平均数,并利用该梯度更新你的权重。简单来说,我们需要做的就是在每次迭代中,确切来说在第t次迭代的过程中,和梯度下降算法一样首先计算出微分dW,db。然后我们需要计算的是vdW=βvdW+(1−β)dW,也就是 v=βv+(1−β)θt,然后我们重新赋值权重,W:=W−avdW ,同样b:=b−avdb ,这样就可以减缓梯度下降的幅度。

这里有两个超参数,超参数是学习率a以及参数β,β控制着指数加权平均数。最常用的值是0.9,因为0.9 是很棒的鲁棒性。

RMSprop 算法

RMSprop 算法在第t次迭代中,该算法会照常计算当下 mini-batch 的微分dW,db,所以我们保留这个指数加权平均数,因此SdW=βSdW+ (1 −β )dW²,这样做能够保留微分平方的加权平均数,同样Sdb=βSdb+ (1 −β)db²,接着 RMSprop 会这样更新参数值。

Adam 优化算法

Adam=动量梯度下降+RMSprop ,我们只需要将这两种算法结合起来就形成了Adma优化算法,它具有动量梯度下降和RMSprop算法的优点。

使用 Adam 算法,首先你要初始化,vdW= 0,SdW= 0,vdb = 0,Sdb = 0,在第t次迭代中,你要计算微分,用当前的 mini-batch 计算dW,db,一般你会用 mini-batch 梯度下降法。

接下来计算 Momentum 指数加权平均数,所以vdW=β1vdW + (1 −β1)dW,同样vdb=β1vdb+(1−β1)db。

接着你用 RMSprop 进行更新,即用不同的超参数β2,SdW= β2SdW + (1 − β2)(dW)²,Sdb= β2Sdb+(1 −β2)(db)²。

这就相当于相当于 Momentum 更新了超参数β1,RMSprop 更新了超参数β2。

最后更新权重

至此就完成了Adam 优化算法,这个算法已经证实比梯度下降算法能够加快神经网络的训练速度,为什么这个算法叫做 Adam?Adam 代表的是 Adaptive Moment Estimation,β1用于计算这个微分dW,它叫做第一矩,β2用来计算平方数的指数加权平均数(dW)²,它叫做第二矩,所以 Adam 的名字由此而来,但是大家都简称 Adam 优化算法。

基于机器学习的Adam 优化算法来提高深层神经网络的训练速度相关推荐

  1. 基于机器学习梯度下降优化算法来寻找最佳的线性回归模型

    https://www.toutiao.com/a6638782437587419652/ 幻风的AI之路 2018-12-25 18:12:27 线性回归模型 线性回归模型是一个非常简单的算法模型, ...

  2. Adam优化算法介绍

    Adam是一种优化算法,全称时adaptive moment estimation(适应性矩估计) SGD 和Adam SGD( stochastic gradient descent随机梯度下降)与 ...

  3. louvian算法 缺点 优化_机器学习中的优化算法(1)-优化算法重要性,SGD,Momentum(附Python示例)...

    本系列文章已转至 机器学习的优化器​zhuanlan.zhihu.com 优化算法在机器学习中扮演着至关重要的角色,了解常用的优化算法对于机器学习爱好者和从业者有着重要的意义. 这系列文章先讲述优化算 ...

  4. 【机器学习基础】优化算法详解

    本文来源于吴恩达老师的深度学习课程[1]和深度学习课程[2]笔记部分. 作者:黄海广[3] 备注:笔记和作业(含数据.原始作业文件).视频都在 github[4]中下载. 导语 在学习机器学习的过程中 ...

  5. 深度学习最常用的学习算法:Adam优化算法

    上海站 | 高性能计算之GPU CUDA培训 4月13-15日 三天密集式学习  快速带你晋级 阅读全文 > 正文共6267个字,30张图,预计阅读时间16分钟. 听说你了解深度学习最常用的学习 ...

  6. 5分钟快速掌握 Adam 优化算法

    梯度下降是一种优化算法,遵循目标函数的负梯度以定位函数的最小值. 梯度下降的局限性是,所有输入变量都使用单个步长(学习率).像AdaGrad和RMSProp这样的梯度下降的扩展会更新算法,以对每个输入 ...

  7. 我的机器学习主线「优化算法」

    文章目录 优化算法 凸性 凸集 凸函数 凸函数的局部极小值 凸函数的下水平集 凸性和二阶导数 詹森不等式 约束 拉格朗日函数 惩罚 投影 小结 适定 病态 条件数 小结 梯度下降算法 一维梯度下降 多 ...

  8. 深度学习(五)优化算法--提高神经网络的训练速度和精度

    转自:https://blog.csdn.net/red_stone1/article/details/78348753 上节课我们主要介绍了如何建立一个实用的深度学习神经网络.包括Train/Dev ...

  9. 【转】听说你了解深度学习最常用的学习算法:Adam优化算法?

    深度学习常常需要大量的时间和机算资源进行训练,这也是困扰深度学习算法开发的重大原因.虽然我们可以采用分布式并行训练加速模型的学习,但所需的计算资源并没有丝毫减少.而唯有需要资源更少.令模型收敛更快的最 ...

最新文章

  1. mysql校对规则_MySQL中的校对规则
  2. Javascript 获取Url值 --转
  3. selenium 3+python3.6 for MacOS的配置
  4. 隐藏Nginx和PHP版本号
  5. js调用QQ进程的方法总结
  6. 用indesign怎么更换名牌姓名_颚式破碎机如何拆卸?耐磨件怎么更换,可以用多久?答案都在这里...
  7. Windows SDK编程 API入门系列(转)
  8. python 安装 HTMLtestRunner(转)
  9. Log4j的快速入门
  10. 自学前端的误区和痛点解决办法
  11. 使用Node.js制作爬虫教程
  12. 3Dmax转的fbx模型导入unity赋材质不能改变颜色一直是黑色
  13. topjui.core.js
  14. Android 十年之路: 主屏与导航
  15. 导航和路径规划-论文心得
  16. 类型多样的游戏模型3d模型素材,速来收藏
  17. 大数据-Flume(二)
  18. 重积分的计算机应用开题报告,重积分的数值计算【信息科学与技术专业】【毕业设计 文献综述 开题报告】.docx...
  19. app目前第三方托管平台整理
  20. 画仓鼠大赛 结果公布

热门文章

  1. 各个数据集的标签对应表
  2. Android之Fragment应用——一个简易版的新闻应用
  3. 个人家用nas_家庭私有云盘系列教程-本地搭建家庭NAS方案
  4. 校园地图设计——任意两点间的算法优化流程与while搭配switch语句的bug解读
  5. matlab:人脸识别
  6. CMMI认证是什么?有哪些等级?价值体现在哪里?
  7. 抖音举起兴趣电商屠龙刀
  8. 张小飞的Java之路——第九章
  9. Windows句柄数限制
  10. 《分布式实时计算系统之Storm》一、基本原理