方向导数与梯度的实质理解

https://www.zhihu.com/question/36301367

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

微信公众号:matongxue314

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

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

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

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


1 方向导数

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

什么是方向:

函数f(x,y)f(x,y)在这个方向上的图像:

我们知道:

函数f(x,y)f(x,y)AA点在这个方向上也是有切线的,其切线的斜率就是方向导数:

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


2 梯度

很显然,AA点不止一个方向,而是360360∘都有方向:

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

Created with  GeoGebra

这就引出了梯度的定义:

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

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

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

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

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

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

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

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

具有一阶连续偏导数,意味着可微。可微意味着函数f(x,y)f(x,y)在各个方向的切线都在同一个平面上,也就是切平面:

Created with  GeoGebra

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

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

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

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

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

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

2.3 方向导数与梯度的关系

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

先说明一下,下图的矢量表示f(x,y)f(x,y)AA点处的梯度,切线是梯度方向的切线。因为我把梯度画在了AA点处,所以我画了一个辅助平面,这个平面和xyxy平面平行:

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

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

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

自己动手操作以下,就很容易观察出为什么梯度是最陡峭的方向,以及θθ对方向导数大小的影响:

Created with  GeoGebra

2.4 总结

简单总结下:

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


3 完成最开头的游戏

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

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

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


  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值