1、梯度

我们对一个多元函数求偏导,会得到多个偏导函数。这些导函数组成的向量,就是梯度。一元函数的梯度可以理解为就是它的导数。梯度就是对一个多元函数的未知数求偏导,得到的偏导函数构成的向量就叫梯度。

我们求解一元函数的时候有一种办法是对函数求导得到导函数,令导函数为零得到这个函数的解析解。那我们可以理解为求解一元函数时利用让一元函数的梯度变为0的时候,梯度所在的位置就是函数的最优解。

梯度中元素(导函数)的个数的个数同未知数的个数是对应,每一个未知数都可以像求解一元一次函数一样,通过它所对应的梯度求得最优解。其实求解多元函数和一元函数的道理是一样的,只不过函数是一元的时候,梯度中只有一个导函数,函数时多元的时候,梯度中有多个导函数。当我们把梯度中的所有偏导函数都变为0的时候,就可以找到每个未知数的对应解。

2、梯度下降

梯度下降就是让梯度中所有偏导函数都下降到最低点(0)的过程。 都下降到最低点了,那每个未知数(或者叫维度)的最优解就得到了,所以他是解决函数最优化问题的算法。这里需要注意一点,梯度是对所有未知数求偏导。

梯度下降中的下降,意思是让函数的未知数随着梯度的方向运动。什么是梯度的方向呢?把这一点带入到梯度函数中,结果为正,那我们就把这一点的值变小一些,同时就是让梯度变小些;当这一点带入梯度函数中的结果为负的时候,就给这一点的值增大一些。总之,所有参数的梯度为0就可以得到最优解。

梯度下降又叫做批量梯度下降,简称BGD。

函数在点或的移动过程如何用公式来表达呢?

梯度下降的公式,它背后的理论依据是泰勒展开式。

3、学习率

让点沿着梯度方向下降慢慢求得最优解的过程我们叫做学习,学习率就是用来限制他每次学习别太过"用功"的。

根据参数更新的公式:

可以知道,模型每次下降都是减去梯度的值,当这个梯度值过大的时候,点下降的step就过大了,一次性迈过了最低点,导致函数无法找到最优解。学习率就是来限制这种情况的。我们让梯度乘以一个很小的数,虽然增加了它到达最低点的step数,但是可以让图二这种情况发生概率降低。

4、随机梯度下降SGD

批量梯度下降是,求出一个维度中所有的数据,取个平均来当做每一次梯度下降的step。这样做虽然准确,但是每次要计算一个维度的所有数据的梯度,花费资源较大。所以才有了随机梯度下降的思想:每次只随机取一个维度中的一条数据求梯度,来当做这个维度梯度下降的step。公式如下:

可以看出,随机梯度下降和梯度下降公式的区别就是,里边的x由矩阵x变成了x的分量

为了更好的让大家理解梯度下降和随机梯度下降的区别,看下图:

BGD总是综合所有数据的梯度,取到的下降至一直很平滑,SGD随机抽取一条数据作为参数,步子很不稳定。但是最终都可以到达函数的最优解位置。虽然看起来SGD比BGD的误差要大一些,但是SGD随着迭代次数的增加,误差会越来越小。

最后,SGD因为每次只随机抽取一条数据来做梯度下降,计算代价比SGD小的不是一点半点。所有后边无论机器学习还是深度学习,对SGD的应用是非常非常广泛的。

在SGD和BGD中间,还有一个集合了两种下降法的有点的办法:mini-bach-GD,你猜一猜他是啥? 对了,是随机抽取小批量数据来做下降,但是用的并不多。

最后,必须感谢一下博主的这篇文章,太优秀了:https://blog.csdn.net/weixin_39445556/article/details/83661219

梯度下降概念及推导过程相关推荐

  1. 梯度下降与随机梯度下降概念及推导过程

    接前一章:常用算法一 多元线性回归详解2(求解过程) 同这一章的梯度下降部分加起来,才是我们要讲的如何求解多元线性回归.如果写在一章中,内容过长,担心有的同学会看不完,所以拆分成两章.[坏笑] 上一章 ...

  2. 逻辑回归的梯度下降公式详细推导过程

    逻辑回归的梯度下降公式 逻辑回归的代价函数公式如下: J(θ)=−1m[∑i=1my(i)log⁡hθ(x(i))+(1−y(i))log⁡(1−hθ(x(i)))]J(\theta)=-\frac{ ...

  3. 最速下降法matlab全局最小值_梯度下降概念

    1.梯度概念 (1)从几何意义上讲,就是函数变化最快的地方. 在单变量的函数中,梯度只是导数,其实就是函数在某个给定点的切线的斜率: 在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数 ...

  4. 反向传播与梯度下降概念

    反向传播和梯度下降这两个词,第一眼看上去似懂非懂,不明觉厉.这两个概念是整个神经网络中的重要组成部分,是和误差函数/损失函数的概念分不开的. 神经网络训练的最基本的思想就是:先"蒙" ...

  5. 深度学习优化算法之梯度下降(泰勒展开式推导)

    有一定深度学习背景知识的伙伴们都知道,为了得到一个好的模型,都预先定义一个损失函数(优化的目标函数),然后使用合适的优化算法去试图得到一个最小值.优化的目标就是为了降低训练误差,对于深度学习的模型来说 ...

  6. (摘)导数、偏导数、方向导数、梯度、梯度下降概念和解释

    前言 机器学习中的大部分问题都是优化问题,而绝大部分优化问题都可以使用梯度下降法处理,那么搞懂什么是梯度,什么是梯度下降法就非常重要!这是基础中的基础,也是必须掌握的概念! 提到梯度,就必须从导数(d ...

  7. (转)导数、偏导数、方向导数、梯度、梯度下降概念和解释

    转自:https://www.cnblogs.com/lingjiajun/p/9895753.html 前言 机器学习中的大部分问题都是优化问题,而绝大部分优化问题都可以使用梯度下降法处理,那么搞懂 ...

  8. 【梯度下降】原理和过程(一)

    参考链接: https://zhuanlan.zhihu.com/p/68468520 一.目的 损失函数用来衡量机器学习模型的精确度.一般来说,损失函数的值越小,模型的精确度就越高.如果要提高机器学 ...

  9. excel计算二元线性回归_用人话讲明白梯度下降Gradient Descent(以求解多元线性回归参数为例)...

    文章目录 1.梯度 2.多元线性回归参数求解 3.梯度下降 4.梯度下降法求解多元线性回归 梯度下降算法在机器学习中出现频率特别高,是非常常用的优化算法. 本文借多元线性回归,用人话解释清楚梯度下降的 ...

最新文章

  1. java猜拳_求一个java猜拳游戏程序
  2. HTML frameset 标签
  3. 产品经理的知识结构是什么
  4. linux开始时间and结束时间,Linux NTP configure and Hangcheck-time
  5. jQuery基础修炼圣典—DOM篇(二)jQuery遍历
  6. 编程开发使用的软件大全
  7. Ajax基本案例详解之$.ajax的实现
  8. 类型和原生函数及类型转换(一)
  9. 小程序-读取视频数据 每个N帧采样保存
  10. python argparse 解析命令行参数
  11. python中文版免费下载-PYTHON自然语言处理(中文最新完整版)pdf下载
  12. java流程图if_if判断流程图怎么画?教你简单制作程序流程图的方法
  13. L230 RF可靠性测试-RF指标
  14. BUUCTF WEB DROPBOX
  15. python基础,详细讲解、手把手代做项目。有java语言基础,快速学习python。
  16. 个人计算机显示器配置,怎么看电脑显示器配置
  17. Leco题目:两数之和
  18. HBuilder uniapp 真机测试打包测试
  19. SourceInsight | source insight使用技巧
  20. selenium使用小瓜子

热门文章

  1. 一篇文章让你了解视频监控系统搭建过程中如何选择存储方式
  2. 使用create-react-app创建react脚手架
  3. sklearn 命令行安装_sklearn 安装说明
  4. sql查询——查询每门课程各分数段的人数,分别用count和sum方法实现
  5. openfire java_C#连接基于Java开发IM——Openfire
  6. EasyCVR如何快速自定义修改级联国标设备的通道编号?
  7. java教务系统登录界面代码_985、211高校教务管理系统源代码(java)
  8. 初学Django:第十一天,shell工具的使用
  9. HTML5期末大作业:商城网站设计——防锤子手机商城官网首页模板(HTML+CSS+JavaScript ) 电商网页HTML代码...
  10. python执行超时退出