(三) 深度学习笔记 |关于梯度、导数、偏导数和方向导数的理解

一、关于梯度

简单来说:梯度不是一个值,而是一个方向

1.delta法则

为了克服多层感知机调参存在的问题,人们设计了一种名为delta( [公式] )法则(delta rule)的启发式方法,该方法可以让目标收敛到最佳解的近似值。
delta法则的核心思想在于,使用梯度下降(gradient descent)的方法找极值。

2.一维梯度

在这里插入图片描述
如果这个斜率越大,就表明其上升趋势越强劲。当这个斜率为0时,就达到了这个函数的“强弩之末”,即达到了极值点。在单变量的实值函数中,梯度可简单理解为只是导数,或者说对于一个线性函数而言,梯度就是曲线在某点的斜率。

3.多维梯度

对于多维变量的函数,梯度概念就不那么容易理解了,它就要涉及到标量场概念。

在向量微积分中,标量场的梯度,其实是一个向量场(vector field)。假设一个标量函数f的梯度记为: [公式] 或grad f,这里表示向量微分算子。那么,在一个三维直角坐标系,该函数的梯度就可以表示为公式:
在这里插入图片描述
对于多维变量函数而言,当求某个变量的导数时,就是把其它变量视为常量,然后整个函数求其导数(相比于全部变量,这里只求一个变量,即为“局部”)。之后,这个过程对每个变量都“临幸”一遍,放在向量场中,就得到了这个函数的梯度了。举例来说,对于3变量函数 [公式] ,它的梯度可以这样求得:

1)把y,z视为常量,得x的“局部导数”:
在这里插入图片描述
(2) 然后把x,z视为常量,得y的“局部导数”:

[公式]

(3) 最后把x,y视为常量,得z的“局部导数”:

在这里插入图片描述

于是,函数f的梯度可表示为:

在这里插入图片描述
针对某个特定点,如点A(1, 2, 3),带入对应的值即可得到该点的梯度:
在这里插入图片描述
(三) 深度学习笔记 |关于梯度、导数、偏导数和方向导数的理解_第1张图片
对于函数的某个特定点,它的梯度就表示从该点出发,函数值增长最为迅猛的方向

二、导数

所谓导数,就是用来分析函数“变化率”的一种度量。针对函数中的某个特定点x0,该点的导数就是x0点的“瞬间斜率”,也即切线斜率。

1.14个基本初等函数的导数

(三) 深度学习笔记 |关于梯度、导数、偏导数和方向导数的理解_第2张图片

2.导数的四则运算

(三) 深度学习笔记 |关于梯度、导数、偏导数和方向导数的理解_第3张图片

三、关于偏导数

导数是一元函数的变化率(斜率)。导数也是函数,是函数的变化率与位置的关系。

如果是多元函数呢?则为偏导数。

偏导数是多元函数“退化”成一元函数时的导数,这里“退化”的意思是固定其他变量的值,只保留一个变量,依次保留每个变量,则元函数有个偏导数。

一个变量对应一个坐标轴,偏导数为函数在每个位置处沿着自变量坐标轴方向上的导数(切线斜率)。

更多详情可查看:https://zhuanlan.zhihu.com/p/43492827

四、方向导数

方向导数的本质是一个数值,简单来说其定义为:一个函数沿指定方向的变化率。

构建方向导数需要有两个元素:

  • 函数
  • 指定方向
    • 当然,与普通函数的导数类似,方向导数也不是百分之百存在的,需要函数满足在某点处可微,才能计算出该函数在该点的方向导数。

我们将下图看作是一座山的模型,我们处在山上的某一点处,需要走到山下。理论上来说,这座山的表面是可以通过一个函数的描述的(虽然想要找到这个函数可能很难),而这个函数可以在不同的方向上都确定出一个方向导数,这就好比于如果我们想下山,道路并不是唯一的,而是可以沿任何方向移动。区别在于有些方向可以让我们下山速度更快,有些方向让我们下山速度更慢,有些方向甚至引导我们往山顶走(也可以理解为下山速度时负的)。在这里,速度的值就是方向导数的直观理解。
(三) 深度学习笔记 |关于梯度、导数、偏导数和方向导数的理解_第4张图片

你可能感兴趣的:(深度学习,python,机器学习,算法)