终于理解了方向导数与梯度

本文做者Key,博客园主页:https://home.cnblogs.com/u/key1994/

本内容为我的原创做品,转载请注明出处或联系:zhengzha16@163.com

0.渊源

第一次接触方向导数与梯度的概念,是在大学的高等数学课堂上,当时对于这部份内容是似懂非懂的。网络

巧合的是,后来在参加硕士复试的时候,有位老师提问我对方向导数与梯度的理解,当时我只记得一句话:梯度是方向导数变化最大的方向。虽而后来这位老师成了个人导师,可是如今想来依然以为惭愧,由于我对这两个名词彻底没有理解。函数

后来学习到BP神经网络,也手动推导过根据梯度降低法获得的权值更新公式,但方向导数的定义一直是个人心结。今天终于花了时间将这个简单的问题弄明白,特意记录下来,以警示本身在未来的科研道路上要脚踏实地,不可浮于表面!学习

1.方向导数

  • 方向导数的本质是一个数值,简单来讲其定义为:

一个函数沿指定方向的变化率。spa

所以,构建方向导数须要有两个元素:3d

1)      函数blog

2)      指定方向博客

固然,与普通函数的导数相似,方向导数也不是百分之百存在的,须要函数知足在某点处可微,才能计算出该函数在该点的方向导数。数学

至于其物理含义,这里采用最经常使用的下山图来表示。变量

 

 简单将上图看做是一座山的模型,咱们处在山上的某一点处,须要走到山下。理论上来讲,这座山的表面是能够经过一个函数的描述的(虽然想要找到这个函数可能很难),而这个函数能够在不一样的方向上都肯定出一个方向导数,这就比如于若是咱们想下山,道路并非惟一的,而是能够沿任何方向移动。区别在于有些方向可让咱们下山速度更快,有些方向让咱们下山速度更慢,有些方向甚至引导咱们往山顶走(也能够理解为下山速度时负的)。在这里,速度的值就是方向导数的直观理解。原理

2.梯度

  • 梯度与方向导数是有本质区别的,梯度实际上是一个向量,其定义为:

一个函数对于其自变量分别求偏导数,这些偏导数所组成的向量就是函数的梯度。

在不少资料中能够看到以下的梯度定义方法:

 

 

 

诚然,这种定义方法更加权威,可是却不够直观,这也是为何我在高等数学课堂上学习梯度概念时感受云里雾里。这种定义方法只针对二元函数,因此公式中的i,j可分别表示为函数在x和y方向上的单位向量,这样的描述可让咱们更好理解(由于人类大脑能够比较轻松的理解三维世界的模型图),可是一旦到了更高维度的世界,单纯靠这个公式就不容易理解了。

3.梯度与方向导数的关系

  • 梯度与方向导数的关系应该如何描述呢?

函数在某点的梯度是这样一个向量,它的方向与取得最大方向导数的方向一致,而它的模为方向导数的最大值。

以上描述很是好理解,那如何证实呢?

 

 

说实话,我以为以上证实过程很抽象,但这就是数学,而咱们要作的就是从这些抽象中来理解问题的实质。

依然采用下山的例子来解释。咱们想要走到山下,道路有千万条,但总有一条可让咱们以最快的速度下山。固然,这里的最快速度仅仅做用在当前的位置点上,也就是说在当前位置A咱们选择一个方向往山下走,走了一步以后到达了另一个位置B,而后咱们在B位置计算梯度方向,并沿该方向到达位置处c,重复这个过程一直到终点。可是,若是咱们把走的每一步链接起来构成下山的完整路线,这条路线可能并非下山的最快最优路线。

缘由是什么?能够用一句古诗来解释:“不识庐山真面目,只缘身在此山中。”由于咱们在山上的时候是不知道山的具体形状的,所以没法找到一条全局最优路线。那咱们只能关注脚下的路,将每一步走好,这就是梯度降低法的原理。

相关文章
相关标签/搜索