机器学习:在梯度下降法中为什么梯度的方向是变化最快的方向

机器学习:在梯度下降法中为什么梯度的方向是变化最快的方向

  • 基础概念
    • 一阶导数
    • 偏导数
    • 方向导数
    • 梯度
  • 验证

基础概念

一阶导数

在一阶函数中,一阶导数表示函数值与自变量的变化关系,我们把函数从一个点到另一个点变化的函数值与变化的自变量的比值称为函数这两点之间自变量方向的变化率,可以用 Δ y Δ x \frac{\Delta y}{\Delta x} ΔxΔy表示,当自变量x的变化趋近于0的时候,他们的比值叫做函数的导数,也可以叫做在函数某点沿着自变量变化的斜率。用 t a n Θ tan\Theta tanΘ表示。
机器学习:在梯度下降法中为什么梯度的方向是变化最快的方向_第1张图片 f ′ ( x ) = lim ⁡ Δ x → 0 f ( x + Δ x ) − f ( x ) Δ χ \begin{aligned}f'\left( x\right) =\lim _{\Delta x\rightarrow 0}\dfrac{f\left( x+\Delta x\right) -f\left( x\right) }{\Delta \chi }\end{aligned} f(x)=Δx0limΔχf(x+Δx)f(x)

偏导数

接下来,我们把自变量的格局打开(升维),从一元函数上升到多元函数, z = f ( x , y ) z = f(x,y) z=f(x,y),现在我们对一个自变量求导,它反映了多元函数与其中一个自变量的变化关系,也叫做偏导数,他表示函数值在这个点 Δ x \Delta x Δx方向上的变化率。
机器学习:在梯度下降法中为什么梯度的方向是变化最快的方向_第2张图片

方向导数

看到这里,我们可能会有一个疑问,求导的那个点的方向一定是沿着坐标轴的吗?如图所示,他可以是任意方向。
机器学习:在梯度下降法中为什么梯度的方向是变化最快的方向_第3张图片

假设有一个向量l,步长为t,角度为 Θ \Theta Θ我们要求得函数在l方向上的方向导数,有下图可知,向量l在x轴方向上的改变量为 t s i n Θ t sin\Theta tsinΘ,y轴的改变量为 t c o s Θ t cos\Theta tcosΘ,所以公式可表示为: f ( x ) ′ = lim ⁡ t → 0 f ( x + t sin ⁡ θ , y + t cos ⁡ θ ) − f ( x , y ) t f\left( x\right) ^{'}=\lim _{t\rightarrow 0}\dfrac{f\left( x+t\sin \theta ,y+t\cos \theta \right) -f\left( x,y\right) }{t} f(x)=t0limtf(x+tsinθ,y+tcosθ)f(x,y)
机器学习:在梯度下降法中为什么梯度的方向是变化最快的方向_第4张图片

梯度

梯度是导数对多远函数的推广,他是对各个自变量偏导数形成的向量,其作用相当于一元函数的导数,之前我们介绍了导数与偏导数,偏导数是一个标量。某个点的梯度代表某个点在多元函数在这点变化方向。
∇ f ( x ) = ( ∂ f ∂ x 1 … ∂ f ∂ x n ) T \nabla f\left( x\right) =\begin{pmatrix} \dfrac{\partial f}{\partial x_{1}} & \ldots & \dfrac{\partial f}{\partial x_{n}} \end{pmatrix}^{T} f(x)=(x1fxnf)T

验证

接下来到了最激动人心的时刻,我们来验证为什么函数在这个点的梯度的方向是函数在这个点梯度增加最快的方向。设在某一点在向量l方向的方向导数:
f ( x ) ′ = lim ⁡ t → 0 f ( x + t sin ⁡ θ , y + t cos ⁡ θ ) − f ( x , y ) t f\left( x\right) ^{'}=\lim _{t\rightarrow 0}\dfrac{f\left( x+t\sin \theta ,y+t\cos \theta \right) -f\left( x,y\right) }{t} f(x)=t0limtf(x+tsinθ,y+tcosθ)f(x,y)
通过链式法则,化简如下:
= ∂ f ∂ x ⋅ ∂ x ∂ t + ∂ f ∂ y ∂ y ∂ t = sin ⁡ θ ∂ f ∂ x + cos ⁡ θ ∂ f ∂ y \begin{aligned}=\dfrac{\partial f}{\partial x}\cdot \dfrac{\partial x}{\partial t}+\dfrac{\partial f}{\partial y}\dfrac{\partial y}{\partial t}\\ =\sin \theta \dfrac{\partial f }{\partial x}+\cos \theta \dfrac{\partial f}{\partial y}\end{aligned} =xftx+yfty=sinθxf+cosθyf
我们要求的变化最快的点,也就是变化率最大,也就是方向导数最大。所以我们就把问题转换成了当上面的化简结果最大时, Θ \Theta Θ是多少度,也就知道了在什么方向变化率最大。
我们设向量a= ( s i n θ , c o s θ ) (sin\theta ,cos\theta) (sinθ,cosθ),向量b= ( ∂ f ∂ x , ∂ f ∂ y ) (\frac{\partial f}{\partial x},\frac{\partial f}{\partial y}) (xf,yf)
g ( a , b ) = a b g(a,b) =a b g(a,b)=ab
a r g m a x θ = g ( a , b ) argmax_{\theta}=g(a,b) argmaxθ=g(a,b)
= ∣ a ∣ ∣ b ∣ c o s θ =|a||b|cos\theta =abcosθ
= ∣ b ∣ c o s θ =|b|cos\theta =bcosθ
因为向量b是不变的,所以当 θ = 0 \theta=0 θ=0时,也就是向量a与b(b为梯度)平行时,变化率最大,也就是梯度方向变化最大,从上面结果可知,当 θ = 0 \theta =0 θ=0,方向导数一定为正数,所以函数是增函数,所以在这个点的梯度方向,是函数增加最快的方向,相反是最小的方向。

你可能感兴趣的:(机器学习,矩阵,机器学习,线性代数,深度学习,概率论)