原文
一篇让你很容易理解什么是梯度下降的博客

0 什么是梯度下降

梯度下降法的基本思想可以类比为一个下山的过程。假设这样一个场景:一个人被困在山上,需要从山上下来(i.e. 找到山的最低点,也就是山谷)。但此时山上的浓雾很大,导致可视度很低。因此,下山的路径就无法确定,他必须利用自己周围的信息去找到下山的路径。这个时候,他就可以利用梯度下降算法来帮助自己下山。具体来说就是,以他当前的所处的位置为基准,寻找这个位置最陡峭的地方,然后朝着山的高度下降的地方走,同理,如果我们的目标是上山,也就是爬到山顶,那么此时应该是朝着最陡峭的方向往上走。然后每走一段距离,都反复采用同一个方法,最后就能成功的抵达山谷。

我们同时可以假设这座山最陡峭的地方是无法通过肉眼立马观察出来的,而是需要一个复杂的工具来测量,同时,这个人此时正好拥有测量出最陡峭方向的能力。所以,此人每走一段距离,都需要一段时间来测量所在位置最陡峭的方向,这是比较耗时的。那么为了在太阳下山之前到达山底,就要尽可能的减少测量方向的次数。这是一个两难的选择,如果测量的频繁,可以保证下山的方向是绝对正确的,但又非常耗时,如果测量的过少,又有偏离轨道的风险。所以需要找到一个合适的测量方向的频率,来确保下山的方向不错误,同时又不至于耗时太多!

1.1 什么是微分

微分的两种数学意义:

  • 函数图像中,某点的切线的斜率
  • 函数的变化率
    单变量微分的例子:

    多变量微分的例子:

1.2 什么是梯度

梯度实际上就是多变量微分的一般化。
看下面的例子:

我们可以看到,梯度就是分别对每个变量进行微分,然后用逗号分割开,梯度是用<>包括起来,说明梯度其实一个向量。

梯度的意义:

  • 在单变量的函数中,梯度其实就是函数的微分,代表着函数在某个给定点的切线的斜率
  • 在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在给定点的上升最快的方向

这也就说明了为什么我们需要千方百计的求取梯度!我们需要到达山底,就需要在每一步观测到此时最陡峭的地方,梯度就恰巧告诉了我们这个方向。梯度的方向是函数在给定点上升最快的方向,那么梯度的反方向就是函数在给定点下降最快的方向,这正是我们所需要的。所以我们只要沿着梯度的方向一直走,就能走到局部的最低点!

1.3 梯度下降的数学解释

上面我们花了大量的篇幅介绍梯度下降算法的基本思想和场景假设,以及梯度的概念和思想。下面我们就开始从数学上解释梯度下降算法的计算过程和思想!


就想下年的的图中的解释那样:

1.4 对于公式中的疑问

1. α是什么含义?
α在梯度下降算法中被称作为学习率或者步长,意味着我们可以通过α来控制每一步走的距离,以保证不要步子跨的太大扯着蛋,哈哈,其实就是不要走太快,错过了最低点。同时也要保证不要走的太慢,导致太阳下山了,还没有走到山下。所以α的选择在梯度下降法中往往是很重要的!α不能太大也不能太小,太小的话,可能导致迟迟走不到最低点,太大的话,会导致错过最低点!
如下图所示:

2. 为什么要梯度要乘以一个负号?
梯度前加一个负号,就意味着朝着梯度相反的方向前进!我们在前文提到,梯度的方向实际就是函数在此点上升最快的方向!而我们需要朝着下降最快的方向走,自然就是负的梯度的方向,所以此处需要加上负号

1.5 梯度下降算法举例

  • 单变量函数举例
    首先我们假设有一个单变量的函数,形式如下所示:

    函数的微分形式如下所示:

    初始化起点为:

    学习率为:

    梯度的计算公式如下:

    开始计算梯度下降的迭代过程:

    经过4次运算之后,基本就到达了谷底,也就是收敛了,计算结果如下图所示:

  • 多变量函数举例
    下面是目标函数:

现在要通过梯度下降法计算这个函数的最小值。我们通过观察就能发现最小值其实就是 (0,0)点。但是接下来,我们会从梯度下降算法开始一步步计算到这个最小值!

假设初始的起点为:

初始学习率为:

目标函数的梯度为:

进行梯度下降迭代计算:

梯度下降计算结果如下图所示:

上述解释来自下面这篇PDF,大家可以下载该PDF进行查看,只不过是英文的。

写在最后

欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。

关于深度学习中的梯度下降,了解一下相关推荐

  1. 深度学习中的梯度下降优化算法综述

    1 简介 梯度下降算法是最常用的神经网络优化算法.常见的深度学习库也都包含了多种算法进行梯度下降的优化.但是,一般情况下,大家都是把梯度下降系列算法当作是一个用于进行优化的黑盒子,不了解它们的优势和劣 ...

  2. 深度学习中的双下降现象

    2019-12-26 19:21:03 作者:Preetum Nakkiran,Gal Kaplun,Yamini Bansal,Tristan Yang,Boaz Barak,Ilya Sutske ...

  3. 深度学习中的梯度下降算法

    深度学习中的梯度下降算法 梯度下降算法-----致力于找到函数极值点的算法,深度学习中的核心算法. 所谓的学习便是改进模型参数,以便通过大量训练步骤将损失最小化. 有了这个概念,将梯度下降法应用于寻找 ...

  4. 入门 | 一文简述深度学习优化方法——梯度下降

    http://www.sohu.com/a/241298990_129720 本文是一篇关于深度学习优化方法--梯度下降的介绍性文章.作者通过长长的博文,简单介绍了梯度下降的概念.优势以及两大挑战.文 ...

  5. 深度学习中的梯度消失、梯度爆炸问题

    写在前面: 有些博主对这个问题的解释很好,这里参考了: 详解机器学习中的梯度消失.爆炸原因及其解决方法 我在这方面的工作经验和知识面还不够,还需要积累后再做出更为专业的解答. 参考我之前转发过的一篇文 ...

  6. 深度学习相关概念:梯度下降

    深度学习相关概念:梯度下降法.动量法与自适应梯度 1. 梯度下降概念 2. 梯度下降的目的 3. 梯度下降的原理 4. 梯度计算 5. 梯度下降算法的类别及计算效率 5.1 批量梯度下降(BGD) 5 ...

  7. 【深度学习】(4) 梯度下降、损失函数

    各位同学好,今天和大家介绍一下TensorFlow2.0中的梯度下降.激活函数及其梯度.损失函数及其梯度. (1) 梯度计算:GradientTape(),tape.watch(),tape.grad ...

  8. 【深度学习】从梯度下降到 Adam!一文看懂各种神经网络优化算法

    王小新 编译自 Medium 量子位 出品 | 公众号 QbitAI,编辑:AI有道 在调整模型更新权重和偏差参数的方式时,你是否考虑过哪种优化算法能使模型产生更好且更快的效果?应该用梯度下降,随机梯 ...

  9. 为了搞清深度学习的随机梯度下降我复习了下微积分

    在学习深度学习时遇到了个新名词:随机梯度下降--可以想象把一个篮球扔到群山之中,让它自由滚动,直到滚动到最低点.找最低点的过程也是机器学习模型训练的过程.对于篮球来说在现实世界中有万有引力会牵引它走向 ...

最新文章

  1. 用了5年的Git,你竟然还不晓得它的实现原理!
  2. 作者:张国惠(1978-),男,美国新墨西哥大学土木工程系助理教授、博士生导师。...
  3. 新高考改革选计算机专业要学什么,2020高考改革后考生如何选科与选专业?
  4. 送给那些渐渐远离的朋友(转载)
  5. PHP-表单提交(form)
  6. php正则替换%3cbr%3e_php去除换行符的几种方法(str_replace正则和PHP_EOL)
  7. DOM之操作元素(附实例)
  8. xilinx基础篇Ⅰ(7)ISE14.7开发基础流程 [CPLD章节]
  9. 航测正射如何用Pix4D处理大疆无人机照片生成正射影像图
  10. app抓包工具_【iOS】新版本App不好用,带你找回旧版本
  11. Reflector、ReflectorFactory的前世
  12. 穆迪任命Shivani Kak为投资者关系主管,David Hogan为临时财务主管
  13. Sqoop导入导出基本操作
  14. C# .NET实现扫描识别图片中的文字
  15. SE壳C#程序-CrackMe-爆破 By:凉游浅笔深画眉 / Net7Cracker
  16. php 字符串替换中文,PHP中文字符串替换其中为*的方法
  17. openfeign的快速使用
  18. ubuntu12.04 GX编译环境搭建
  19. 熟练使用计算机进行备课,教师信息技术能力提升工程总结
  20. 远程桌面工具 mRemote

热门文章

  1. 拯救12亿低头族!热敷1次相当于3次理疗,5分钟活血止痛,颈椎病一戴见效!...
  2. 安徽省蚌埠市谷歌卫星地图下载
  3. 单招计算机主板图解,磐正系列主板刷bios图解新.pdf
  4. pclii的java_我的世界pcl2启动器下载
  5. 出国(东南亚)工作的华为数通工程师机会,欢迎投递简历
  6. sql多表查询分组最大值
  7. 医用计算机风险评估,欧盟GMP问答(二) ——计算机化系统及医用气体可追溯性...
  8. 数学建模比赛主要会用到的算法名称汇总
  9. 激光切割机在金属广告行业中起到什么作用?
  10. 【猪脸识别哪家强?】智能养猪成千万级别饲养规模杀手锏