机器学习:为什么梯度方向是函数值增加最快的方向?

这可以说是机器学习中一个最基础的问题,曾一度困扰我。查过很多次,每次都感觉自己懂了但又很快忘记,于是决定花一些时间把这个问题的答案整理在这里。

本文主要参考:
知乎-姚远:梯度的方向为什么是函数值增加最快的方向?

作者已经写得非常清晰,我这里主要是择其重点进行摘录,以供自己日后参考。在此对作者表示感谢!

多元函数的偏导数

多元函数的偏导数就是函数在一点处沿着某一坐标轴方向的变化率。

以二元函数 z = f ( x , y ) z=f(x,y) z=f(x,y)为例:

  • 当自变量 y y y 固定在 y 0 y_0 y0,函数关于自变量 x x x x 0 x_0 x0 处的变化率称为函数在点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 处对 x x x 的偏导数,记作 f x ( x 0 , y 0 ) f_x(x_0,y_0) fx(x0,y0)
  • 当自变量 x x x 固定在 x 0 x_0 x0,函数关于自变量 y y y y 0 y_0 y0 处的变化率称为函数在点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 处对 y y y 的偏导数,记作 f y ( x 0 , y 0 ) f_y(x_0,y_0) fy(x0,y0)

多元函数的方向导数

多元函数的图像是一个曲面。因为过曲面上一点可以作出无数条切线,所以函数在一点也具有无数个变化率。

偏导数仅仅描述了函数在一点处沿着某一坐标轴方向的变化率。为了求出函数沿任一方向的变化率,我们需要按照变化率的定义,即函数的增量与自变量沿着某一方向增量比值的极限。

仍以二元函数 z = f ( x , y ) z=f(x,y) z=f(x,y)为例:
假设某一方向的单位向量为 e l = ( c o s α , s i n α ) \mathbf{e}_l=(cos\alpha,sin\alpha) el=(cosα,sinα) α \alpha α 为此向量与x轴正向夹角。显然根据 α \alpha α 的不同,此向量可以表示任意方向的单位向量。

当点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 沿着该方向产生一个增量 t t t 到达点 ( x 0 + t c o s α , y 0 + t s i n α ) (x_0+t cos\alpha,y_0+t sin\alpha) (x0+tcosα,y0+tsinα)时,函数 z z z 也会产生一个增量 Δ z = f ( x 0 + t c o s α , y 0 + t s i n α ) − f ( x 0 , y 0 ) \Delta z=f(x_0+t cos\alpha,y_0+t sin\alpha)-f(x_0,y_0) Δz=f(x0+tcosα,y0+tsinα)f(x0,y0)

此时,函数沿此方向的变化率为:
lim ⁡ t → 0 + f ( x 0 + t cos ⁡ α , y 0 + t sin ⁡ α ) − f ( x 0 , y 0 ) t = f x ( x 0 , y 0 ) cos ⁡ α + f y ( x 0 , y 0 ) sin ⁡ α \lim _{t \rightarrow 0^{+}} \frac{f\left(x_{0}+t \cos \alpha, y_{0}+t \sin \alpha\right)-f\left(x_{0}, y_{0}\right)}{t}=f_{x}\left(x_{0}, y_{0}\right) \cos \alpha+f_{y}\left(x_{0}, y_{0}\right) \sin \alpha t0+limtf(x0+tcosα,y0+tsinα)f(x0,y0)=fx(x0,y0)cosα+fy(x0,y0)sinα

多元函数的梯度

上面我们已经求得函数沿某一方向的变化率为 f x ( x 0 , y 0 ) cos ⁡ α + f y ( x 0 , y 0 ) sin ⁡ α f_{x}\left(x_{0}, y_{0}\right) \cos \alpha+f_{y}\left(x_{0}, y_{0}\right) \sin \alpha fx(x0,y0)cosα+fy(x0,y0)sinα,下面我们只需求 α \alpha α 取何值时上式达到最大值。

由于上式可以看成两个向量的内积,令 g = ( f x ( x 0 , y 0 ) , f y ( x 0 , y 0 ) ) \mathbf{g}=\left(f_{x}\left(x_{0}, y_{0}\right), f_{y}\left(x_{0}, y_{0}\right)\right) g=(fx(x0,y0),fy(x0,y0)) e l = ( c o s α , s i n α ) \mathbf{e}_l=(cos\alpha,sin\alpha) el=(cosα,sinα),则:

f x ( x 0 , y 0 ) cos ⁡ α + f y ( x 0 , y 0 ) sin ⁡ α = g ⋅ e l = ∣ g ∣ ∣ e l ∣ cos ⁡ θ = ∣ g ∣ cos ⁡ θ f_{x}\left(x_{0}, y_{0}\right) \cos \alpha+f_{y}\left(x_{0}, y_{0}\right) \sin \alpha=\mathbf{g} \cdot \mathbf{e}_{l}=|\mathbf{g}|\left|\mathbf{e}_{l}\right| \cos \theta=|\mathbf{g}| \cos \theta fx(x0,y0)cosα+fy(x0,y0)sinα=gel=gelcosθ=gcosθ
其中 θ \theta θ g \mathbf{g} g e l \mathbf{e}_l el 的夹角。

根据上式,可得出如下结论:

  • θ = 0 \theta=0 θ=0 时,即 g \mathbf{g} g e l \mathbf{e}_l el 方向相同时,函数变化率最大,且在点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 处呈上升趋势;
  • θ = π \theta=\pi θ=π 时,即 g \mathbf{g} g e l \mathbf{e}_l el 方向相反时,函数变化率最大,且在点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 处呈下降趋势。

由于向量 g = ( f x ( x 0 , y 0 ) , f y ( x 0 , y 0 ) ) \mathbf{g}=\left(f_{x}\left(x_{0}, y_{0}\right), f_{y}\left(x_{0}, y_{0}\right)\right) g=(fx(x0,y0),fy(x0,y0)) 的方向为函数值增加最快的方向,为便于表述,人们为其取了一个名字—梯度

换言之,多元函数在某一点的梯度是一个非常特殊的向量,其由多元函数对每个变量的偏导数组成,其方向为函数在该点增加最快的方向,大小为函数在该点的最大变化率。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值