分享

梯度到底是什么,梯度的数学原理和性质详解

 人老颠东 2024-05-10 发布于安徽

大家好,今天要讲的内容是,梯度的数学原理和性质

在梯度下降算法中,我们需要让函数的自变量,沿着函数梯度的反方向运动:

Image

使函数值以最快的速度减小,从而找到目标函数的极小值。

可是,为什么自变量沿着梯度的反方向运动,函数值就一定减小的最快呢?

这就是我们要详细讨论的问题。

1.什么是梯度向量

梯度,英文是gradient,它是多元函数全部偏导数所构成的向量。

我们使用倒三角符号▽,nabla,表示某个函数的梯度:

Image

例如,二元函数f、三元函数g和n元函数L;

它们的梯度向量,就是函数对其自变量,求偏导后,所组成的向量。

我们以f(x, y) = x^2 + y^2为例,说明梯度的计算过程:

Image

首先,分别求出f关于x和y的偏导数,结果分别是2x和2y。

将这两个偏导数组合,就得到了f的梯度向量(2x, 2y)。

它可以表示,f(x, y)在任意点(x, y)上的变化方向和速率。

那么如何理解这个梯度向量,(2x, 2y)呢?

首先,需要明确,梯度向量是在函数输入空间中定义的:

Image

例如,函数f(x, y)的输入空间,对应了灰色的xoy平面。

梯度向量(2x, 2y)在xoy中:

Image

为了理解向量(2x, 2y),有3个步骤:

Image

1.随意取函数上的一点P(1, 1, 2),标记为红色;

2.将P点向灰色的x-o-y平面投影,投影点标记为蓝色;

3.从蓝色点出发,画出向量(2, 2),使用黑色箭头表示。

这个黑色箭头,就是点P(1, 1, 2)的梯度向量,它在平面x-o-y上。

将观察的角度,调整为俯视:

Image

可以进一步观察这个黑色的梯度向量。

2.为什么沿梯度方向运动

思考下面这个问题:

已知二元函数,f(x, y)=x^2+y^2,

在函数上有一个红色的点P:

Image

从点P出发,沿着哪个方向运动,能使函数f(x, y)增大或减小的最快呢?

函数上点的运动,就是修改函数自变量的取值,函数值会随之变化。

例如,将P点向xoy平面投影,投影点标记为P’。

P’就表示了函数的自变量的取值,它可以在平面xoy上运动。

对于P’的运动方向,我们使用黑色箭头标记。

将函数图像调整为俯视角度:

Image

可以更好的观察到,点的运动方向。

将函数图像调整为平视角度:

Image

可以更好的观察函数值的变化大小。

例如,函数上的一点P,其自变量取值为x=1,y=1:

Image

让该点向右运动一个单位,那么可以将自变量x从1修改为2,到达P’。

此时P’的坐标是(2, 1, 5)。

我们可以发现,运动后函数值从2增大到了5。

3.梯度的性质

对于函数上的某一点:

如果沿着函数梯度的正方向运动,函数值增加的最快。

如果沿着函数梯度的反方向运动,函数值减小的最快。

例如,对于输入点(1, 1):

Image

如果让它沿着正梯度(2, 2)运动,函数值增加的最快;

如果让它沿着负梯度(-2,-2)运动,函数值减少的最快。

下面以点P(1, 1, 2)为例:

Image

让其向不同的方向运动相同的长度,观察函数值的变化。

进而说明沿着梯度方向运动,函数值会变化的最快。

首先将函数图像调整为俯视角度:

Image

可以看到P点的自变量取值是(1, 1)。

设置3个向量,(-1, 0)、(1, 0)和(2, 2),代表自变量x和y的变化方向:

Image

它们分别表示向左运动,向右运动和沿梯度方向运动。

从P点沿着(-1, 0)、(1, 0)和(2, 2)这三个方向,运动1个单位,可以到达A、B、C三个点:

Image

比较A、B、C这三个点的函数值,相比P点的函数值变化,就可以看出沿着哪个方向运动,函数值变化的最快。

具体来说,从点P(1, 1),按照向量(-1, 0)的方向,移动1个单位,到达A点(0,1)。

A点处的函数值为f(0, 1)=0^2+1^2=1。

Image

我们会发现,A点函数值相比P点函数值减小了1。

这里从侧面,观察图像上点的运动,可以更容易的看出函数值的变化。

从点P(1, 1),按照向量(1, 0)的方向,移动1个单位,会到达B点(2, 1)。

Image

B点处的函数值是:

f(2, 1)=2^2+1^2=5,f(2, 1)比P点f(1, 1)增加了3。

最后按照梯度的方向(2, 2),移动1个单位,大约会到达C点。

这里需要注意,需要将梯度转换为单位向量,进行计算。

C点的坐标:

大概在(1.707,1.707)这个位置,1.707是1+的近似值。

此时函数值为1.707^2 + 1.707^2 = 5.828,

比f(1, 1)增加了3.828,是增加的最多的。

因此,从这个例子中可以看到,同样是移动单位1的长度,

如果函数上的某个点,沿着该点的梯度方向移动,函数增长的最为迅猛。

相应的,如果沿着梯度的反方向运动,函数值减小的最快。

Image

这就是为什么,梯度下降算法,要沿着梯度的反方向,修改自变量的取值。

那么到这里,梯度的数学原理和性质,就讲完了。感谢大家的观看,我们下节课再会。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多