怎样更好明白梯度下降算法?
MultiMCU EDU 2022-09-28


上面这张照片是我上次在下班路上拍到的,天刚刚下过雨,雨珠沿着窗户的玻璃面向下流动,我做了黑白硬相处理,有一定的艺术性。也许你会问,这张照片跟这个题目有什么关系呢?其实,雨珠只会沿着当前位置最「陡峭」的方向流动,这正是深度学习中梯度下降算法的一种直观体现。深度学习是目前在互联网行业非常火热的话题,但是目前市场上介绍深度学习算法的书籍要么上来就是一大堆的数学公式,要么就是直接给你一些残缺的框架代码,让人看起来好似囫囵吞枣,今天我更想用一种直观的方式给大家解释一下深度学习,由于深度学习涉及到大量的数学原理,所以这个专辑我会分几篇文章来进行分别介绍。但我并不会直接按照公式进行长篇大论,这篇文章主要面对的是初学者,所以我更会用最直观的方式尤其是用插画的方式来给大家讲解。本篇文章我会首先介绍深度学习中的最重要的算法——梯度下降算法。


我们首先来回忆一下高数里面对梯度的定义:


如果二元函数   在平面   上具有连续偏导数,那么对于每一个点   都有向量   与其对应,我们记  那么   称为函数   在点   处的梯度(gradient).


可是这个公式从直观上看,大多数人并没有明白其本质含义,但是这个公式却是在深度学习中非常重要的一种算法。所以,今天我就花点时间给大家解释一下这个公式。


但是要说梯度的定义,我们还得从导数说起。


一,导数的本质


不知道大家有没有想过一个问题,当初李善兰为什么要把 derivative 这个词成“导数”呢,导,在说文解字里面有引导之意,而我们知道,导数在数学上的意义就是函数某点切线的斜率,它“控制”这个函数的增长速度,在几何上最直观的解释就是函数在这点的“陡峭程度”,所以李善兰这样的翻译也正迎合了 derivative 这个单词想表达的意义。


我们知道,导数的几何定义是




它的几何意义如上图所示:   分别为函数   上任意一点, 它们的横坐标分别为   与   ,当点   沿着曲线函数逼近点   的时候,如果下面的极限存在,那么我称   在点   处可导,导数记为   : 

为了方便,我们把   时的   与   分别记为   ,这里的d代表differential(微分),有极小变化量的意思:

我们以一元函数   为例来说明:


下图中点   是函数图像上任意一点,红色直线是在改点的斜率,也就是导函数。根据函数图像,我们可以看出当   的时候,它是一个增函数,   ,意味着它在上坡:



当   的时候,它是一个减函数,   ,意味着它在下坡:



由大于0到小于0过度的时候,必定有一个点等于零。这个点就是极(大)值点。可以想象,如果上面那张图片上某一个雨珠落到这个函数上,例如函数中的   点,那么它无论如何怎么移动,只可能超两个方向移动,或者   增长方向,或者   减小方向,它别无选择:



所以说,一元函数导数的本质就是函数在此点的斜率,通过这个斜率,我们可以知道函数此时的变化率问题。



二,方向导数的本质:也是一个导数,函数沿任意方向的变化率


如果这个函数是多元函数会怎么样呢,它有导数吗,答案是有,而且还分为偏导数与方向导数。上面说了,一元函数的导数是为了研究函数沿   坐标轴的变化率的,那么对于二元函数来说,它是一个曲面,我们如何研究它的变化率呢?我么以函数   的图像为例来说明:



我们先来说偏导数,如果我们研究上面点   沿某一坐标轴的变化率为多少,这就是偏导数的由来,例如计算   点沿   轴的变化率,我们先做   的平面来截取这个曲面,得到的曲面在点   做切线,切线的斜率就是点   对   方向的偏导数:


同样也能得出沿   方向的偏导数,也即变化率。可这样你一定能够看出偏导数的局限性了,它只能求函数沿某一坐标轴的变化率,而往往我们想求的是沿任意方向的变化率,这个时候就要用到方向导数了。


很显然,在点   处沿任意方向(这里说的任意方向指的是在平面   上的任意方向)的都有一个切线,数量显然是无数条的,但是我们最感兴趣的还是那个变化率的最大值,因为它的方向最抖。他们的方向导数可以根据下面这个式子计算出来:  其中    分别是方向   的方向余弦。



三,梯度的本质:它是一个向量


在本文开头部分,我们知道梯度的定义公式为:  明显,他是一个向量,那么上面方向导数的公式可化简为它与方向余弦的内积形式: 可这个向量有什么特殊吗?答案是有,他很特殊,既然它是个向量,就必定有方向。看上面的化简公式,在沿梯度的方向,也就是夹角   ,方向导数最大,意味着它增长的最快;在梯度相反的方向,也就是   ,方向导数最小,意味着它减小的最快。



四,梯度下降的思路:


首先说明一下,在深度学习中,我们最终的目的还是求函数的最小值。举个最简单的例子,我们经常用的最小二乘法进行直线拟合或者线性回归的模型中,它也是在求函数总偏差的最小值。按照传统的做法,我们在得出函数模型后,要对每一个因变量求偏导数,让其分别等于0,联立求出每一个参数,例如我在上两篇文章中「」、「」用的就是这种方法。但如果在深度学习中,这种方法就是不可取了,因为后者在一个模型中往往包含了成千上万个变量,通过联立偏导数求方程的的方法实在是难以求得,即便能求出,它的计算量也是难以接受。那么怎么办呢,梯度下降思想的威力就发挥出来了。


根据上面我们得出的结论,与梯度相反的方向,函数减小的最快。那么我们可以每次让函数的每一个变量偏移一个微小的变量,计算它们的梯度,再根据得出的结果调整一下方向,再次计算,如此反复进行,即可收敛出我们的最小值。


它的几何思维如下下图所示:假设你在山顶,你有一个足球,把它放在山顶,然后轻轻松开手,球会在重力的作用下沿最抖(梯度)的方向滚动,稍微前进一点后,立马把它止住,然后在当前位置再次松手,如此反复进行,足球就会沿着图中红色最抖的方向进行滚动。


五,用Excel体验梯度下降算法:


我们以函数   来进行说明,如果按照传统的做法,我们求其最小值的方法是分别对   求偏导,再计算结果。但这次我们使用梯度下降的思路来求解它的最小值。


首先,在微小的变化范围内,我们知道下面关系式成立:  写成向量内积的形式就是:  只有当向量    的方向与梯度的方向相反时候,也即   ,   才能取最小,这里边的    .



还以   说明,首先我们给   定义一个初始值,你可以理解为在那个足球的具体位置,然后每次计算它的梯度,再得出相应的偏移量   与   ,如此反复进行,整个过程分为三步:


1,随便给出初始值。例如   ,再设定   的值,这个值很重要,基本上就是每步的"步长"了,不能太大也不能太小,实际工程应用过程中可以用公式计算出来,这里为了方便我们取   .


2,计算偏移向量。根据计算出来的梯度与   值,来计算偏移向量。例如  3,根据第二步计算出来的偏移量,重新更新位置:   4,重复上面三个步骤。



上面的Excel表格就是我们通过上面四个步骤进行模拟出来的数据,观察最后的计算结果,数据逐步趋向于0,这个结果与这个函数的实际最小值保持一致,正是我们想要的结果。


本文源自微信公众号:MultiMCU EDU,不代表用户或本站观点,如有侵权,请联系nick.zong@aspencore.com 删除!

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 人工智能
  • 机器人
  • AI
  • 神经
  • 移动机器人的局部视觉定位方法

      运动视觉研究的是如何从变化场景的一系列不同时刻的图像中提取出有关场景中的目标的形状、位置和运动信息,将之应用于移动机器人的导航与定位。首先要估计出目标的空间

    11-30
  • 机器人阻抗控制概念

    对焊接、搬运、喷漆等工作,机器人的末端执行器在运动过程中不与外界物体相接触,机器人只需位置控制就够了,而对于切削、磨光、装配作业,仅有位置控制难以完成工作任务,

    11-24
  • 快速入门数据结构和算法

    导读:有哪些常见的数据结构?基本操作是什么?常见的排序算法是如何实现的?各有什么优缺点?本文简要分享算法基础、常见的数据结构以及排序算法,给同学们带来一堂数据结构和算法的基础课。 一  前言 1  为什么要学习算法和数据结构?

    11-03
  • 软件人机界面设计需考虑的5个问题

      软件是一种工具,而软件与人的信息交换是通过界面来进行的,所以界面的易用性和美观性就变得非常重要了,这就需要好好利用人机界面设计的原则及设计的方法。  完成软

    10-31
  • 机器人设计的6种避障控制法

      在传感器避障领域,采用单一的传感器测量的效果并不理想,在实际应用中往往需要采用其他类型的传感器进行补偿,才能实现对周围环境的探测的最佳效果。当然,这就产生了

    10-14
  • 人工智能应用于SDR的信号分析系统

    随着无线协议变得越来越复杂,频谱环境的竞争日益激烈,电子战也越来越复杂。无线电所需的基带处理程度也更加复杂和专业化。 在充满威胁的复杂环境下,想要完全优化射频系统是不现实的。设计人员以前一直依赖简化的封闭式模型,但是这些模型无法准确捕捉到真实效果;而且对系统的优化也非常零碎,仅能优化单个组件,无法进行完整的端到端优化。 在过去几年里,人工智能已经取得了长足的进步,尤其是机器学习技术中的深度学习。为...

    10-10
  • 智能领域中的模糊控制

      模糊控制是以模糊集合理论为基础的一种新兴的控制手段,它是模糊系统理论和模糊技术与自动控制技术相结合的产物。自从这门科学诞生以来,它产生了许多探索性甚至是突破

    10-10
  • Voyager II 型地面移动机器人的硬件设计

      1引言  机器人声控系统的研究一直是机器人研究的主要内容之一。传统的声音控制系统一般采用PC机作为核心平台对机器人进行控制,虽然其具有处理能力强大、语音库完

    09-28
  • 基于linux的超声波测距移动机器人

      1引言  在项目开发中采用从英国进口的SRF05超声波传感器,它的回波反馈与测距方式与通常使用的超声波传感器相比较特别,在ARM中实现也稍有难度,但该传感器

    09-22
下载排行榜
更多
广告