目录

梯度

梯度下降

常用的梯度下降算法(BGD,SGD,MBGD)

梯度下降的详细算法

算法过程

批量梯度下降法(Batch Gradient Descent)

随机梯度下降法(Stochastic Gradient Descent)

小批量梯度下降法(Mini-batch Gradient Descent)

梯度下降的优化算法

存在的问题

梯度下降优化的方法

机器学习中具体梯度下降的优化算法

基于陷入局部最优的问题的优化

Momentum算法

基于学习率方面进行的梯度优化

Adam算法(Adaptive Moment Estimation)


参考:梯度下降(Gradient Descent)小结

梯度

概念:在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。

意义:梯度是函数在当前位置变化最快的方向,因此可以使得损失函数很快地找到极值,损失一般是找极小值,进而用于指导训练模型中参数的更新。

梯度下降

首先来看看梯度下降的一个直观的解释。比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山峰低处。

具体实施:从整体来看,当点下降最快的方向不是由某一个维度的偏导决定的1,而是由所有维度的偏导共同决定的,这也符合“梯度是变化最快的方向”和“梯度是函数对所有参数求偏导后的值的向量”这两个说法。在实际实施中,我们一般是通过偏导来指导不同参数的更新,以此来做到函数值下降得最快(梯度方向)。这就是梯度下降的本质。

从上面的解释可以看出,梯度下降不一定能够找到全局的最优解,有可能是一个局部最优解。当然,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。

常用的梯度下降算法(BGD,SGD,MBGD)

梯度下降的详细算法

算法过程

一般有两种方法,一种迭代,一种矩阵运算,具体见:梯度下降(Gradient Descent)小结

批量梯度下降法(Batch Gradient Descent)

优点:对于准确率来说,因为使用了全部样本的梯度,所以准确率会更高

缺点:但是使用了全部样本,导致在训练速度和收敛速度上都比较慢

随机梯度下降法(Stochastic Gradient Descent)

优点:随机梯度下降就是BGD的极端,只是随机选择一个样本的梯度来指导梯度的下降,因为使用了一个样本,因此其训练速度会很快

缺点:但是非常依赖于初始值和步长的影响,有可能会陷入局部最优中,导致收敛速度慢

小批量梯度下降法(Mini-batch Gradient Descent)

在深度学习中,SGD和MBGD统称为SGD

这个梯度下降算法其实就是结合了BGD和SGD两者,采用了小批次的梯度来进行计算。

优点:分担了训练压力(小批量)、加快收敛

缺点:初始学习率难以确定、容易陷入局部最优

梯度下降的优化算法

存在的问题

BGD、SGD以及MBGD都是比较常见的梯度算法,但是都存在以下问题:

1)学习步长(学习率)难以确定,是超参数,太大导致跳过最优解,太小收敛速度慢,可能会导致陷入局部最优;

2)参数初始值的确定,不同初始值有可能会产生不同的最优解,比如初始值分别在两座山的山顶,那得到的山脚位置自然是可能不一样的;

3)样本特征值的差异性大,变化范围大

梯度下降优化的方法

机器学习中具体梯度下降的优化算法

基于陷入局部最优的问题的优化

Momentum算法

Momentum算法是在MBGD的基础上进行了修改,即在梯度方向上增加动量(Momentum),意思指在更新梯度时,会保留之前更新的梯度方向,然后利用当前批次的梯度进行微调

优点:

1)能够抑制梯度的震荡,在梯度与上次相同的时候梯度下降多一点,反之少一点

2)有可能跳出局部极值

基于学习率方面进行的梯度优化

Adam算法(Adaptive Moment Estimation)

优点:

1)每一次迭代的学习率都在依次确定的范围内 ,使得参数更新更加地稳定

2)使模型更加地收敛,适用于深层网络和较为复杂的场景

参考文献

https://blog.csdn.net/liuy9803/article/details/81780543

https://www.cnblogs.com/pinard/p/5970503.html

物体检测书籍

【深度学习】——梯度下降优化算法(批量梯度下降、随机梯度下降、小批量梯度下降、Momentum、Adam)相关推荐

  1. 2.2)深度学习笔记:优化算法

    目录 1)Mini-batch gradient descent(重点) 2)Understanding mini-batch gradient descent 3)Exponentially wei ...

  2. 深度学习中的优化算法串讲

    Datawhale原创 作者:谢文睿,Datawhale成员 寄语:优化算法是一个超参数,一个优化算法不是适合所有损失函数的,没有哪个优化算法是绝对的好或绝对的坏,是要根据损失函数判断的 本文对深度学 ...

  3. 深度学习中的优化算法之Adam

    之前在https://blog.csdn.net/fengbingchun/article/details/124909910 介绍过深度学习中的优化算法Adadelta,这里介绍下深度学习的另一种优 ...

  4. 深度学习中的优化算法之带Momentum的SGD

    之前在https://blog.csdn.net/fengbingchun/article/details/123955067介绍过SGD(Mini-Batch Gradient Descent(MB ...

  5. 深度学习中的优化算法之RMSProp

    之前在https://blog.csdn.net/fengbingchun/article/details/124766283 中介绍过深度学习中的优化算法AdaGrad,这里介绍下深度学习的另一种优 ...

  6. 深度学习中的优化算法之MBGD

    之前在https://blog.csdn.net/fengbingchun/article/details/75351323 介绍过梯度下降,常见的梯度下降有三种形式:BGD.SGD.MBGD,它们的 ...

  7. 深度学习中的优化算法之AdaGrad

          之前在https://blog.csdn.net/fengbingchun/article/details/123955067 介绍过SGD(Mini-Batch Gradient Des ...

  8. 深度学习中的优化算法之BGD

    之前在https://blog.csdn.net/fengbingchun/article/details/75351323 介绍过梯度下降,常见的梯度下降有三种形式:BGD.SGD.MBGD,它们的 ...

  9. 【深度学习笔记】优化算法( Optimization Algorithm)

    本文依旧是吴恩达<深度学习工程师>课程的笔记整理与拓展. 一.优化算法的目的与挑战 优化算法主要是用来加快神经网络的训练速度,使得目标函数快速收敛. 优化问题面临的挑战有病态解.鞍点.梯度 ...

  10. 深度学习中的优化算法与实现

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 GiantPandaCV导语:这篇文章的内容主要是参考 沐神的mxnet/gluon视频中,Aston ...

最新文章

  1. mqtt 获取所有topic_MQTT协议解析
  2. Eclipse导入项目facet版本问题:Project facet Java version 1.8 is not supported
  3. 作业帮电脑版在线使用_在线K12赛道六虎争霸:猿辅导、作业帮又宣布新一轮融资...
  4. Dubbo的发展历史
  5. DIY自行车测速测距仪
  6. linux编译准备,Linux 下编译指南
  7. 如何分析堆外内存使用情况_堆上与堆外的内存使用情况
  8. 宾馆管理系统mysql_宾馆管理系统(含源码和数据库文件)
  9. java栈的应用_Java堆栈应用程序
  10. MySQL从安装改密码到navicate远程连接,以及修改存储路径
  11. Liferay7 BPM门户开发之15: Liferay开发体系简介
  12. Java 基础(十九)代理
  13. 服务器调用税务数字系统失败,终于等到你!网上报税常见问题解决方案大集锦!!!...
  14. 网络型PLC可编程控制器实验装置(立式、挂箱积木式)
  15. LateX正文与首页页眉线分别为单双线的设置方法
  16. 中国剩余定理求解同余线性方程组(模数互素和非互素的情况)
  17. python3处理excel脚本
  18. 2023款ThinkBook 14和15锐龙版区别对比评测选哪个好
  19. 【iMessage苹果推群发】苹果相册推它由pushchatkey.pem和pushchatcert.pem作为单独的文件使用
  20. 二叉树no与n2关系数学证明

热门文章

  1. 老子《道德经》第三十三章
  2. iframe子页面内刷新父页面中另一个iframe子页面
  3. 说说“开源杀死商业开发工具”
  4. HBase实战:记一次Safepoint导致长时间STW的踩坑之旅
  5. python用户交互、基本数据类型、运算符
  6. 5177. 【NOIP2017提高组模拟6.28】TRAVEL (Standard IO)
  7. RUP,XP,敏捷原理
  8. HTTP响应报文与工作原理详解
  9. 动态调用WCF服务[转]
  10. es6 --- promise和async/await的区别