如何通俗地解释梯度下降法


同学们大家好,今天我们来学习梯度下降法

1 简单印象

用一句话解释,梯度下降法就是快速找到最低点的一个方法。比如在山上有一个球,经过几次运动后,就会来到谷底附近。

要完成这个过程,我们需要回答三个问题。

  • 方向首先是确定往哪个方向滚

  • 距离然后确定滚多远

  • 终止条件最后,附近的范围有多大,确定滚到哪里算结束

2 方向

假设有一蓝点在曲线上,要运动到最低点,这个过程大概是这样的

这是个一元函数,自变量有两个运动方向,一个朝左,一个朝右。

朝右边运动,越走越高,函数值在增加,这个方向被称为梯度方向。

朝左边运动,越走越低,函数值在减小,这个方向被称为梯度方向的反方向。显然,要走到最低处,我们应该选择梯度的反方向。

走了一次后,来到一个新的位置,这时我们需要又一次对方向进行判断,而同样的,这里的方向也有梯度方向,和梯度的反方向。

继续朝梯度的反方向移动,重复之前的逻辑,不断朝梯度反方向移动,运气好,我们就能走到最低点附近。

也就是说,要到最低点附近,我们需要朝着梯度的反方向运动。

方向方向=-\nabla f

3 距离

刚刚说“运气好”,因为要达到目的,我们还要考虑,每一次走多远。因为这个要从计算结果中反应,所以这里给出一些具体数值。设f=x^2 ,起始点为10 这个位置

这样

\nabla f =2x,x_0=10

根据前面讲的,下一个移动的位置在梯度的反方向,那么

x_1=x_0-\nabla f(x_0)=-10

也就是第一次移动,移动到了-10 的位置

第二次移动,也是梯度的反方向

x_2=x_1-\nabla f(x_1)=10

计算后得到,这一次移动到了10 这个位置

同样的方法,计算出x_3,x_4

x_3=x_2-\nabla f(x_2)=-10

x_4=x_3-\nabla f(x_3)=10

可以看到,虽然一直在移动,但始终在10 和-10 点振荡,没有降到最低点。

为此,我们需要一个参数来控制移动的距离,这个参数被称为学习率。

3.1 学习率

将用\eta 来表示,则迭代的式子可以表示为

显然,刚刚来回振荡时,\eta 为1

如果将学习率继续调大,比如调大到1.05 ,多次迭代后,不仅不会降到最低点,甚至还会越走越高

而如果将学习率调低到一个较小值,比如0.02 。这时,每次迭代后,位置确实是在降低,但降低的幅度比较小,迭代很多次都没到达谷底附近。

而如果将学习率调为0.2 ,迭代10次后,基本就能降到谷底了。

从这里,我们也看出了,要完成梯度下降,需要选择合适的学习率

距离需要用学习率\eta控制

4 终止条件

最后,我们来看看终止条件,为此首先计算出\eta=0.2 时,每次迭代后的梯度值

可以看到,每次迭代后,梯度值都在不断的下降。这也是将这个方法,命名为梯度下降的原因。而我们知道梯度为0时的位置,就是最低点的位置,因此选择较小的梯度值作为终止条件是比较自然的。

比如,我们希望最后的梯度值小于等于0.01 ,那么就只要迭代15 次

x_{15}=0.005,||\nabla f(x_{15})||=0.01

小于等于0.001 ,就需要迭代19次

x_{19}=0.0006,||\nabla f(x_{19})||=0.001

只要学习率选择的合适,梯度就可以下降到任意小。这是有理论支撑的,关于这个的证明,感兴趣的同学可以查看我们的课程里的证明。有了这个理论保证,我们就可以选择梯度值当做终止条件了。

终止条件为 终止条件为||\nabla f||

5 完整例子

三个问题都解答完了,最后我们来看个例子。设函数f=x^2+2y^2 ,起始位置(x_0,y_0)=(-3.5,-3.5) ,在图中用红点表示。

选取学习率为0.1 ,则第一次迭代后的位置

(x_1,y_1)=(x_{0},y_{0})-\eta\times\nabla f((x_{0},y_{0})=(-2.8,-2.1)

根据迭代公式

(x_{k+1},y_{k+1})=(x_{k},y_{k})-\eta\times\nabla f((x_{k},y_{k})

可以计算出每次迭代后的位置

将终止条件设为梯度值小于等于0.01 ,则迭代到第16次时

||\nabla f(x_{16},y_{16})||=0.099

小于0.01,任务完成


马同学

如何通俗地解释梯度下降法相关推荐

  1. 最优化方法一:梯度下降法

    目录 1 梯度下降 1.1 梯度下降的场景假设 1.2 梯度下降 1.2.1 微分: 1.2.2 梯度 1.3 梯度下降算法的数学解释 1.3.1 α是什么含义 1.3.2 为什么要梯度要乘以一个负号 ...

  2. 最通俗的解释--牛顿法与梯度下降法数学公式推导过程

    牛顿法与梯度下降法数学公式推导过程 迭代更新数学公式推导过程 1.牛顿法 首先对于有n个变量的函数的一阶导数为:   其次对于其二阶导数为:   之后关于目标函数的包含二阶导数的泰勒展开式为:   这 ...

  3. 梯度下降法的三种解释(BGD,SGD,MBGD).

    机器学习里面,梯度下降法可以说是随处可见,虽然它不是什么高大上的机器学习算法,但是它却是用来解决机器学习算法的良药.我们经常会用到梯度下降法来对机器学习算法进行训练. 在很多介绍梯度下降的书籍里,我们 ...

  4. 最清晰的讲解各种梯度下降法原理与Dropout

    一.梯度法思想 梯度法思想的三要素:出发点.下降方向.下降步长. 机器学习中常用的权重更新表达式为 :,这里的λ就是学习率,本文从这个式子出发来把机器学习中的各种"梯度"下降法阐释 ...

  5. ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)

    引言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归.逻辑回归.Softmax回归.神经网络和SVM等等,主要学习资料来自网上的免费课程和一些经典书籍,免费课 ...

  6. [机器学习] ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)

    本文转自:https://blog.csdn.net/walilk/article/details/50978864 引言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记, ...

  7. 梯度与梯度下降法详解

    梯度与梯度下降法 1 前言 2 导数 3 导数与偏导数 4 导数与方向导数 5导数与梯度 6 导数与向量 7 梯度下降法 8 梯度下降法与机器学习 9 梯度下降法的缺点 10 补充:向量函数求导的问题 ...

  8. 李宏毅机器学习课程3~~~梯度下降法

    梯度下降法描述 梯度下降法是为了找到最优的目标函数,寻找的过程就是沿着损失函数下降的方向来确定参数变化的方向.参数更新的过程就是一个不断迭代的过程,每次更新参数学到的函数都会使得误差损失越来越小,也就 ...

  9. 梯度下降法-深度AI

    文章目录 概述 概念理解 场景假设 数学场景 梯度 官方解释: 通俗理解 梯度求解 目标函数 损失函数 实战演示 求一元最值 寻找最低点 更新x 代码实现: 求多元最值 求一元函数的参数 概述 梯度下 ...

最新文章

  1. 一个简单RPC框架是怎样炼成的(II)——制定RPC消息
  2. PHP实现递归的三种方法
  3. 【全国动态】服务器列表
  4. python交通标志识别_YOLOv3目标检测实战:交通标志识别
  5. ASP.NET 对类进行XML序列化和反序列化
  6. 实现时间排序_面试官:手撕十大排序算法,你会几种?
  7. Ubuntu16.4配置caffe详细流程
  8. java反编译工具Java Decompiler
  9. 最经济方案 谈P2P电影服务器(转)
  10. Adobe Flash离线安装包下载
  11. nodejs的socket网络编程
  12. 027_《Delphi Direct X 图形与游戏程序设计》
  13. afuwin64教程_AMI刷BIOS工具下载|AFUWIN(AMI刷BIOS工具) v4.47官方最新版 附使用教程_星星软件园...
  14. Transformer——理论篇
  15. unity vr是加一个摄像机就行吗_梦工厂和皮克斯员工创办的Baobab谈互动叙事:传统动画与VR动画的探索...
  16. UG二次开发(C#)—依据特征获取选择体对象
  17. git获取ssh密钥
  18. 如何破解游戏包中的素材与3D模型
  19. Spring中的一些常用注解
  20. Android如何自定义一个心电图控件?

热门文章

  1. Oracle的视图和索引
  2. Rocket Typist for Mac(增强型文本快速输入工具)破解版安装
  3. 简单几步就可以把pdf转换成excel格式
  4. IP段、ASN与BGP关系
  5. 利用Arduino开发板制作RGB全彩LED灯
  6. 互联网下金融软件应采用大平台+微应用
  7. 找不到msvcp140.dll无法继续执行代码,要怎么去解决?
  8. 基于python3的Opencv图像处理教程(从零到实践)(贾志刚)pdf笔记、代码
  9. 明星们好听的英文名字
  10. 苏宁易购api电商接口