天天看点

如何直观形象的理解方向导数与梯度以及它们之间的关系?

我们先来玩一个游戏,假如你在一座山上,蒙着眼睛,但是你必须到达山谷中最低点的湖泊,你该怎么办?

如何直观形象的理解方向导数与梯度以及它们之间的关系?

梯度可以帮助你完成这个游戏。

图片来自Introduction to Gradient Descent Algorithm (along with variants) in Machine Learning。

梯度和方向导数紧密相关,让我们从方向导数开始。

1 方向导数

顾名思义,方向导数就是某个方向上的导数。

什么是方向:

如何直观形象的理解方向导数与梯度以及它们之间的关系?

函数

如何直观形象的理解方向导数与梯度以及它们之间的关系?

 在这个方向上的图像:

如何直观形象的理解方向导数与梯度以及它们之间的关系?

我们知道:

如何直观形象的理解方向导数与梯度以及它们之间的关系?

函数

如何直观形象的理解方向导数与梯度以及它们之间的关系?

 的

如何直观形象的理解方向导数与梯度以及它们之间的关系?

 点在这个方向上也是有切线的,其切线的斜率就是方向导数:

如何直观形象的理解方向导数与梯度以及它们之间的关系?

我之前在什么是全导数、偏导数、方向导数?这个回答中,已经全面回答过什么是方向导数了。感兴趣可以看看。

2 梯度

很显然,

如何直观形象的理解方向导数与梯度以及它们之间的关系?

 点不止一个方向,而是

如何直观形象的理解方向导数与梯度以及它们之间的关系?

 都有方向:

如何直观形象的理解方向导数与梯度以及它们之间的关系?

每个方向都是有方向导数的:

如何直观形象的理解方向导数与梯度以及它们之间的关系?
此处有互动内容,点击此处前往操作。

这就引出了梯度的定义:

梯度:是一个矢量,其方向上的方向导数最大,其大小正好是此最大方向导数。

定义出来了,并不复杂,但对于我而言这才是开始,因为我还有两个疑问:

  • 为什么所有方向导数中会存在并且只存在一个最大值?而不是有多个最大值、或者说没有最大值?
  • 这个最大值在哪个方向取得?值是多少?

2.1 为什么所有方向导数中会存在并且只存在一个最大值?

其实我最困惑的是梯度的存在性,你说有这么多方向导数,有最大值我觉得还好理解,为什么偏偏只有一个?

我们来看一个显而易见的物理现象:

如何直观形象的理解方向导数与梯度以及它们之间的关系?

光滑的、笔直的玻璃上的水滴,一定会沿着玻璃滑下来,(理想情况下)滑下来的方向就是玻璃最陡峭的地方。对于笔直的平面玻璃而言,这个滑下来的方向是只有一个。

说这个干什么?我们回头来看看梯度的数学定义,并且画一下重点:

如何直观形象的理解方向导数与梯度以及它们之间的关系?

具有一阶连续偏导数,意味着可微。可微意味着函数

如何直观形象的理解方向导数与梯度以及它们之间的关系?

 在各个方向的切线都在同一个平面上,也就是切平面:

如何直观形象的理解方向导数与梯度以及它们之间的关系?
此处有互动内容,点击此处前往操作。

所有的切线都在一个平面上,就好像刚才我说过的光滑的笔直玻璃上,某一点一定有且只有一个(梯度为0的情况除外,可以自己想想为什么?)最陡峭的地方(因为方向导数是切线的斜率,方向导数最大也就意味着最陡峭)。

这就解决了我对于“为什么所有方向导数中会存在并且只存在一个最大值”的疑问。

注意,因为这里举的例子是水滴往下滑,所以要说多说明一下,往下滑是梯度的反方向。因为梯度指的是增长最快的方向,而往下滑是减少最快的方向。

2.2 这个最大值在哪个方向取得?值是多少?

这个最大值的方向我们就取名为梯度方向。

最大方向导数的值是多少这个问题,我没有找到特别直观的方法来说明。我也不想给出计算步骤,要不看起来和数学书也没啥区别。大家自己去查找计算过程吧。

2.3 方向导数与梯度的关系

方向导数与梯度的关系,我在这里给大家一个直观的操作感受。

先说明一下,下图的矢量表示

如何直观形象的理解方向导数与梯度以及它们之间的关系?

 在

如何直观形象的理解方向导数与梯度以及它们之间的关系?

 点处的梯度,切线是梯度方向的切线。因为我把梯度画在了

如何直观形象的理解方向导数与梯度以及它们之间的关系?

 点处,所以我画了一个辅助平面,这个平面和

如何直观形象的理解方向导数与梯度以及它们之间的关系?

 平面平行:

如何直观形象的理解方向导数与梯度以及它们之间的关系?

为了方便观察,我把切平面也画出来了,切平面是之前的辅助平面有一根交线,这根交线很明显平行于

如何直观形象的理解方向导数与梯度以及它们之间的关系?

 平面:

如何直观形象的理解方向导数与梯度以及它们之间的关系?

我增加切平面、平行于

如何直观形象的理解方向导数与梯度以及它们之间的关系?

 的平面以及两者的交线,都是为了方便有个参照物,看出切线的陡峭的程度。

然后我们来观察不同方向的切线和梯度方向的切线的关系(绿色是梯度以外的方向,它和梯度成

如何直观形象的理解方向导数与梯度以及它们之间的关系?

 夹角):

如何直观形象的理解方向导数与梯度以及它们之间的关系?

自己动手操作以下,就很容易观察出为什么梯度是最陡峭的方向,以及

如何直观形象的理解方向导数与梯度以及它们之间的关系?

 对方向导数大小的影响:

如何直观形象的理解方向导数与梯度以及它们之间的关系?
此处有互动内容,点击此处前往操作。

2.4 总结

简单总结下:

  • 方向导数是各个方向上的导数
  • 偏导数连续才有梯度存在
  • 梯度的方向是方向导数中取到最大值的方向,梯度的值是方向导数的最大值

3 完成最开头的游戏

对于最开头的游戏,我们只需要通过手感受附近梯度最大的方向,一直沿着梯度相反的方向就可以到达谷底(原理和弹珠从高处滚落最后会滚进最低处一样):

如何直观形象的理解方向导数与梯度以及它们之间的关系?

图片来自Introduction to Gradient Descent Algorithm (along with variants) in Machine Learning。

为了不误导,我要多说一下,这个算法叫做梯度下降算法,我在这里只是描述了它的算法思想,真正实用中还需要很多的改进和优化,以及有它的局限性,这里就不展开讲了。

继续阅读