打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
为什么梯度方向是函数值变化最快的方向,彻底弄懂梯度下降算法的数学原理

大家好,我是小黑黑。今天我们要讨论的主题是:为什么梯度方向是函数值变化最快的方向。

在这篇文章中,我会详细地讲解,梯度下降算法所依赖的数学原理。让同学们切实理解梯度的数学概念,为理解梯度下降算法打下基础。

考虑下面这个问题

设多元函数,f(x, y)=x^2+y^2。在多元函数上有一点P(x0, y0),如果我们从这一点出发,沿着哪个方向运动,能使函数f(x, y)增大或减小的最快呢?

先说结论,函数上的某一点,如果沿着函数梯度的方向运动,那么函数增加的最快,如果沿着函数梯度的反方向运动,函数减小的最快。接下来,我们就详细地讨论这个问题。

梯度的基本概念

梯度,英文是gradient,是微积分和向量分析中的重要概念,可以定义为一个多元函数全部偏导数所构成的向量。我们使用倒三角符号▽,nabla,表示某个函数的梯度。
例如,二元函数f(x, y),它的梯度就是函数f,对x和y求偏导组成的二维向量。三元函数g(x, y, z)的梯度是,g对x,y,z求偏导组成的三维向量。n元函数f(θ1,θ2,…,θn)的梯度是,f分别对n个自变量求偏导构成的n维向量。

二元函数与函数上某点的梯度


为了更加直观的说明函数与梯度的关系,我们画出,二元函数f(x, y) = x^2 + y^2,在点(1, 1)处的梯度向量。这里将函数上的一点P(1, 1, 2),标记为红色。将该点向灰色的x-o-y平面投影,标记为蓝色。
从蓝色点出发,画出向量(2, 2),使用黑色箭头表示,它就是点(1, 1, 2)的梯度向量。对于输入点(1, 1),如果它沿着(2, 2)方向运动,函数会增加得最快。
这里要注意,因为梯度向量是在函数的输入空间中定义的,对应x-o-y平面,因此我们画出了蓝色的投影点,并从该点画梯度向量。另外,我们可以将视角调整俯视,进一步观察黑色的梯度向量。

 梯度向量的计算

仍然使用这个例子,说明梯度的计算方法。计算函数f(x, y) = x^2 + y^2的梯度。首先,需要分别求出f(x, y)关于x和y的偏导数。
然后将这两个偏导数组合成一个梯度向量(2x, 2y),它表示了f(x, y)在任意点(x, y)上的变化方向和速率。将坐标(1, 1)带入,计算点(1, 1)处的梯度,可以得到向量(2, 2)。

梯度的性质

梯度的方向是函数值上升最快的方向。对于函数上的某个点,如果沿着梯度方向移动,那么函数值增加得最快。如果沿着梯度的反方向移动,函数值减小得最快。
例如,对于点(1, 1),沿着方向(2, 2)运动,函数值会增加地的最快。沿着负梯度方向(-2, -2)运动,函数值减小得最快。接下来,我们举例说明这条性质。
仍然讨论点P(1, 1, 2)的运动。将函数图像调整为俯视角度,可以观察P点的自变量取值(1, 1),与其可能的运动方向。调整为平视角度,可以观察到函数值f(1, 1)=2。
接下来,我们会从点P出发,向不同的方向运动相同的长度,来说明沿着梯度方向运动,函数值会变化得最快。

为什么沿梯度方向运动,函数值变化得最快

基于俯视的角度观察函数。在xOy平面上,设置3个方向向量,(-1, 0)、(1, 0)和(2, 2),代表接下来自变量x和y要变化的方向。分别是向左运动,向右运动和沿梯度方向运动。
接着我们要从P点沿着(-1, 0)、(1, 0)和(2, 2)这三个向量的方向,运动1个单位,到达A、B、C三个点。然后比较A、B、C这三个点的函数值,相比P点函数值的变化。
如果从点P(1, 1),按照向量(-1, 0)的方向,移动1个单位,会到达A点。A点(0,1)处的函数值为f(x, y)=0^2+1^2=1。
我们会发现,f(0, 1)相比f(1, 1)减小了1。这里从侧面,观察图像上点的运动,可以更容易看出函数值的变化。
如果从点P(1, 1),按照向量(1, 0)的方向移动1个单位,会到达B点(2, 1)。该点的函数值是,f(x, y)=2^2+1^2=5,f(2, 1)比f(1, 1)增加了3。
最后按照梯度方向(2, 2)移动1个单位,大约会到达C点。这里需要将梯度转换为单位向量,也就是根号2分之1,根号2分之1,进行计算。
C点大概在(1.707,1.707)这个位置,这里的1.707是1+的近似值。此时函数值为1.707^2 + 1.707^2 = 5.828,比f(1, 1)增加了3.828,是增加的最多的。
 从这个例子中可以看到,同样是移动单位1的长度,如果函数上的某个点,沿着该点的梯度方向移动,函数增长得最为迅猛。相应的,如果沿着梯度的反方向运动,函数的值减小得最快。
关于该性质的严格数学证明,有兴趣的同学,可以继续深入学习'方向导数'和'梯度方向与方向导数的关系'的相关概念。
另外,在机器学习的训练算法中,我们总是需要找到目标函数的最小值。因此从函数的某一个点出发,使该点沿着梯度的反方向运动,会使函数减小得最快。
基于这样的运动方式,就可以更快地使函数收敛到最小,这也是梯度下降算法的理论基础。
最后,给大家留一个思考题,既然梯度方向是函数变化最快的方向,那么什么方向是函数变化最慢的方向呢?
那么到这里,为什么梯度方向是函数值变化最快的方向,这一主题就讲完了。感谢大家的观看,我们下节课再会。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
梯度算法求步长的公式
【直观理解】为什么梯度的负方向是局部下降最快的方向?
Pocket
(转)对梯度下降法的简单理解
算法微视界(一)梯度算法和牛顿算法
「方向导数,梯度向量和切平面」图解高等数学-下 12
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服