梯度下降算法_梯度下降算法为何叫梯度下降?

首先,我们知道一个算法的名字可以很好地去解释一个算法,那么梯度下降算法是什么呢?

很明显的,就是用梯度这个工具来解决问题的一种算法。解决什么问题呢?

如何在一个函数曲面的某一点,找到一个函数值变化最大的方向。

比如:

梯度下降算法_梯度下降算法为何叫梯度下降?_第1张图片

我们站在山上的某一点,我们想要以最快的速度上山,但是我们的步子大小是一定的,那么最快上山的路径就是去找最陡峭的方向,向上爬。

其中这个山就是函数曲面,我们想要找到最大值的话就需要去找函数变化最快的方向。

比如,我站在红色的那个点上,我想找最快上山的路径:

梯度下降算法_梯度下降算法为何叫梯度下降?_第2张图片

但是,我有无数个方向(一个函数曲面在某点有无数条切线,这些切线都是代表函数的变化率),此时我必须找一个变化最快的方向,即一条切向方向。根据我们已知,我们找的便是梯度。

等等,是不是有点不对劲,梯度是怎么来的?

这里有一个函数,公式为:

,梯度就是一个向量,分别是z对x的偏导和z对y的偏导

我们知道,偏导是把一个参数看成是自变量,其他参数都看成是固定的值,比如就是把x看成是变量,把y看成是一个固定的值,因为求偏导也必定是在一个点上进行求解,所以可以用这个点的y值作为固定值。也就是以作为平面,切割整个三维空间,得到z与x的关系。

梯度下降算法_梯度下降算法为何叫梯度下降?_第3张图片

如图,如果我们找(0,0)处的梯度,把此图以

的平面截去,那么就以z和x平面得到了一个二次函数的一个横截面,我们就在x=0处求此处的偏导,这就是

我们知道导数是函数在某点下降的速度,所以梯度就是这个函数在某点沿各个参数下降的速度

但是这个是函数变化最快的方向吗?我们找的是一个方向,函数变化最快的方向,这个能和梯度沿各个方向下降等价吗?

也就是说,我们需要的是一个w方向,但是梯度却给我们两个方向(x,y)合成的一个方向,这两个等价吗?

梯度下降算法_梯度下降算法为何叫梯度下降?_第4张图片

其实,我们要寻找的那一个方向有另一个名字,方向导数

方向导数是函数

在一点
沿某一方向变化率的问题。

下面的定义可以不看,直接看定义下面的即可,如果想知道相关联系,可以看一些。


定义:

梯度下降算法_梯度下降算法为何叫梯度下降?_第5张图片

证明在:http://netedu.xauat.edu.cn/jpkc/netedu/jpkc/gdsx/homepage/5jxsd/51/513/5308/530807.htm


由此我们可以知道,我们其实需要找的方向是方向导数变化最快的那个方向。

那么随着的不同,我们可以求出任意方向的方向导数。这也表明了方向导数的用处,是为了给我们考虑函数对任意方向的变化率。

那么一个平面上无数个方向,函数沿哪个方向变化率最大呢?

那么我们可以得到:

(

为向量与向量之间的夹角)

那么此时如果

要取得最大值,也就是当为0度的时候,也就是向量为0度的时候,也就是向量
(这个方向是一直在变,在寻找一个函数变化最快的方向)与向量
(这个方向当点固定下来的时候,它就是固定的)
平行的时候,方向导数最大.方向导数最大,也就是单位步伐,函数值朝这个反向变化最快。

这个

的方向其实就是
的方向,是方向向量的方向,因为
的可由
来确定。由此,
我们要找的哪个变化最快的方向就和向量的方向平行,而向量就是梯度,所以这个方向就是梯度方向。

因此,这个算法其实应该叫做:求值点---方向向量-- 变化最快方向---下降算法。

因为方向向量-- 变化最快方向即是梯度方向,所以就叫梯度下降算法。

你可能感兴趣的:(梯度下降算法)