目录

一、概述

二、算法思想

1、一维

2、多维

三、梯度下降算法类型

1、批量梯度下降算法

2、随机梯度下降算法

3、小批量梯度下降算法


一、概述

梯度下降法(Gradient descent )是一个一阶最优化算法,通常也称为最陡下降法 ,要使用梯度下降法找到一个函数的局部极小值 ,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。 如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法 ,相反则称之为梯度下降法。

说起梯度下降算法,其实并不是很难,它的重要作用就是求函数的极值。梯度下降就是求一个函数的最小值,对应的梯度上升就是求函数最大值。虽然梯度下降与梯度上升都是求函数极值的算法,为什么我们常常提到“梯度下降”而不是梯度上升“呢?主要原因是在大多数模型中,我们往往需要求函数的最小值,即使求最大值也可以转化为求最小值(取反即可)。比如BP神经网络算法,我们得出损失函数,当然是希望损失函数越小越好,这个时候肯定是需要梯度下降算法的。梯度下降算法作为很多算法的一个关键环节,其重要意义是不言而喻的

二、算法思想

1、一维

梯度下降算法的思想是:先任取点(x0,f(x0)),求f(x)在该点x0的导数f"(x0),在用x0减去导数值f"(x0),计算所得就是新的点x1。然后再用x1减去f"(x1)得x2…以此类推,循环多次,慢慢x值就无限接近极小值点。
        具体是有公式推导的,不过比较麻烦。其实这个算法是可以直观理解的。比如对于函数f(x)=x**2,当x大于0时,导数大于零,x减去导数值后变小;只要x大于零,每次减去一个大于零的导数,x值肯定变小。当x小于零时,导数小于零,减去小于零的数后x值增加,所以无论x0起始于何处,最终都能走到极值点0处。只不过有可能从单侧趋近(像走楼梯一样下降),也可能x一会儿大于极值点,一会儿小于极值点,交替地趋近,最终x趋于0。

2、多维

(1)确定当前位置的损失函数的梯度,对于,其梯度表达式为:

(2)用步长a乘以损失函数的梯度,得到当前位置下降的距离,即。

(3)如果梯度的向量的模接近于0或者两次函数值之间的差值接近于0则停止,否则进入第(4)步。(从条件可以看出梯度下降有可能求的是局部最优值)

(4)更新所有的参数值,更新表达式如下,更新完成后转入步骤(1):

三、梯度下降算法类型

1、批量梯度下降算法

计算会每次从所有数据中计算梯度,然后求平均值,作为一次迭代的梯度,对于高维数据,计算量相当大,因此,把这种梯度下降算法称之为批量梯度下降算法

2、随机梯度下降算法

由于批量下降法每迭代更新一次权重都需要计算所有样本误差,而实际问题中经常有上亿的训练样本,故效率偏低,且容易陷入局部最优解,因此提出了随机梯度下降算法。其每轮计算的目标函数不再是全体样本误差,而仅是单个样本误差,即每次只代入计算一个样本目标函数的梯度来更新权重,再取下一个样本重复此过程,直到损失函数值停止下降或损失函数值小于某个设定的阈值。此过程简单,高效,通常可以较好地避免更新迭代收敛到局部最优解。

3、小批量梯度下降算法

小批量梯度下降算法是综合了批量梯度下降算法和随机梯度下降算法的优缺点,随机选取样本中的一部分数据,通常最常用的也是小批量梯度下降算法,计算速度快,收敛稳定。

神经网络中的常用算法-梯度下降算法相关推荐

  1. 神经网络中的常用算法-梯度下降算法的优化

    一.概述 梯度下降法(Gradient descent )是一个一阶最优化算法,通常也称为最陡下降法 ,要使用梯度下降法找到一个函数的局部极小值 ,必须向函数上当前点对应梯度(或者是近似梯度)的反方向 ...

  2. 神经网络中的常用算法-BP算法

    目录 一.概述 二.前向传播算法 三.链式法则 四.BP算法 1.损失函数 2.输出层的梯度 3.隐藏层梯度 五.BP算法流程 1.输入参数 2.算法流程 一.概述         反向传播(back ...

  3. 神经网络中的常用算法-BN算法

    目录 一.引言 二.Convariate shift 三.算法 1.算法公式 2.训练中的BN算法 3.测试和推理中的BN算法 四.BN算法在网络中的作用 1.优点 2.缺点 五.论文 一.引言 传统 ...

  4. 神经网络中的优化算法总结

    在调整模型更新权重和偏差参数的方式时,你是否考虑过哪种优化算法能使模型产生更好且更快的效果?应该用梯度下降,随机梯度下降,还是Adam方法? 这篇文章介绍了不同优化算法之间的主要区别,以及如何选择最佳 ...

  5. 梯度下降算法动图_一文看懂常用的梯度下降算法

    概述 梯度下降算法(Gradient Descent Optimization)是神经网络模型训练最常用的优化算法.对于深度学习模型,基本都是采用梯度下降算法来进行优化训练的.梯度下降算法背后的原理: ...

  6. 分支限界法 java_java中的常用算法之分支限界算法

    一.基本描述 类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法.但在一般情况下,分支限界法与回溯法的求解目标不同.回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找 ...

  7. 【数据挖掘】神经网络 后向传播算法 ( 梯度下降过程 | 梯度方向说明 | 梯度下降原理 | 损失函数 | 损失函数求导 | 批量梯度下降法 | 随机梯度下降法 | 小批量梯度下降法 )

    文章目录 I . 梯度下降 Gradient Descent 简介 ( 梯度下降过程 | 梯度下降方向 ) II . 梯度下降 示例说明 ( 单个参数 ) III . 梯度下降 示例说明 ( 多个参数 ...

  8. minibatchgd代码_神经网络中的优化算法

    上一篇文章讲了神经网络的参数初试化,可以看到不同的初始化方法对我们的学习效果有很大影响.(参见:[DL笔记]神经网络参数初始化的学问) 本文继续讨论如何进一步优化我们的梯度下降算法,使得我们的学习更快 ...

  9. 神经网络中的常用激活函数总结

    ©PaperWeekly 原创 · 作者|张文翔 单位|京东集团算法工程师 研究方向|推荐算法 激活函数之性质 1. 非线性:即导数不是常数.保证多层网络不退化成单层线性网络.这也是激活函数的意义所在 ...

最新文章

  1. C# SQLiteHelper
  2. Vs 正则表达式 查找替换 微软权威参考
  3. PCB产业对ERP软件提出了哪些挑战?
  4. UA PHYS515 电磁理论I 麦克斯韦方程组基础3 麦克斯韦方程的势能形式
  5. boost::regex模块部分正则表达式迭代相关的测试程序
  6. 虚拟机无法连接至网络
  7. layui upload 后台获取不到值
  8. html传输的数值表示的含义,数字传递游戏的意义与感悟_传数字游戏心得体会
  9. 匿名内部类----java
  10. 关于【cocos2dx-3.0beta-制作flappybird】教程在3.2project中出现找不到CCMenuItem.h的解决方法...
  11. 浏览器了解(七)Layout
  12. 什么是共享读锁和排他写锁?
  13. w7计算机应用放大按键,设置Win7放大功能 老年人用电脑更方便
  14. JDBC 数据库增删改查的通用代码示例详解
  15. 【docker-ce】k8s集群docker容器异常重启问题分析
  16. 中国水疗市场趋势报告、技术动态创新及市场预测
  17. 英特尔凌动处理器_英特尔刷新Atom Denverton低功耗服务器CPU产品线
  18. Gram矩阵和核函数
  19. RT-Thread编程手册
  20. [leetcode] 77. Combinations @ python

热门文章

  1. IT helpdesk之hotline 问候语
  2. 科目要求一个成本会计分配
  3. TDSQL助力建设数字政务
  4. XMIND 画流程图
  5. android 大图长图显示,Android如何显示长图
  6. 一万元搭建深度学习系统:硬件、软件安装教程,以及性能测试
  7. 工业机器人三点工具定位法图文_工业机器人必会知识点,你掌握了吗?
  8. Linux 命令之 mkdir 命令-创建目录
  9. 找实习这段时间的经历总结
  10. python安装出错0x80072ee7_python安装教程图解