一、方向导数与梯度的概念
方向导数是一个值而梯度是一个向量
1、方向导数
对于多元函数,如果说偏导数表示的是多元函数在沿坐标轴的变化率,那么可以说方向导数是沿着任意一指定方向的变化率,不一定是沿着坐标轴。
方向导数的数学表达式:∂f∂l∣(x0,y0)=limt→0+f(x0+tcosα,y0+tcosβ)−f(x0,y0)t
\left.\frac{\partial f}{\partial l}\right|_{\left(x_{0}, y_{0}\right)}=\lim _{t \rightarrow 0^{+}} \frac{f\left(x_{0}+t \cos \alpha, y_{0}+t \cos \beta\right)-f\left(x_{0}, y_{0}\right)}{t}
∂l∂f∣∣∣∣(x0,y0)=t→0+limtf(x0+tcosα,y0+tcosβ)−f(x0,y0)其中对于lll的单位向量是e=(cosα,cosβ)e=(\cos \alpha, \cos \beta)e=(cosα,cosβ),而这正表示函数fff沿着lll方向的变化率。当我们让e=(1,0)e=(1,0)e=(1,0)时上述式子其实是fff对于xxx的偏导数,即沿着xxx轴的变化率,而当让e=(1,0)e=(1,0)e=(1,0)时,上述式子便是fff对于yyy的偏导数,即沿着yyy轴的变化率.对于二元函数,给出求方向导数的公式:∂f∂l∣(x0,y0)=f(x0,y0)xcosα+f(x0,y0)ycosβ
\left.\frac{\partial f}{\partial l}\right|_{\left(x_{0}, y_{0}\right)}=f\left(x_{0}, y_{0}\right)_{x} \cos \alpha+f\left(x_{0}, y_{0}\right)_{y} \cos \beta
∂l∂f∣∣∣∣(x0,y0)=f(x0,y0)xcosα+f(x0,y0)ycosβ解释这个式子:方向导数等于函数在xxx处的偏导数乘以单位向量的xxx部分加上在yyy处的偏导乘以单位向量的部分,得到的值就是方向导数。从中也可以看出要求方向导数要先求它在xxx和yyy的偏导数,然后再求它方向的单位向量,最后做乘积加和得到结果。
2、梯度
在二元函数的情形下,如果函数f(x,y)f(x,y)f(x,y)具有一阶连续偏导,对于函数任意一点 p(x0,y0)p(x_0,y_0)p(x0,y0)都有这样一个向量:f(x0,y0)xi+f(x0,y0)yjf\left(x_{0}, y_{0}\right)_{x} i+f\left(x_{0}, y_{0}\right)_{y} jf(x0,y0)xi+f(x0,y0)yj,那么这个向量就称为f(x,y)f(x,y)f(x,y)在ppp这一点的梯度。记作gradf(x0,y0)\operatorname{grad} f\left(x_{0}, y_{0}\right)gradf(x0,y0).
可以通过公式直观地看方向导数和梯度的关系:
∂f∂l∣(x0,y0)=f(x0,y0)xcosα+f(x0,y0)ycosβ=gradf(x0,y0)⋅el=∣gradf(x0,y0)∣cosθ
\begin{aligned}\left.\frac{\partial f}{\partial l}\right|_{\left(x_{0}, y_{0}\right)} &=f\left(x_{0}, y_{0}\right)_{x} \cos \alpha+f\left(x_{0}, y_{0}\right)_{y} \cos \beta \\=& \operatorname{grad} f\left(x_{0}, y_{0}\right) \cdot e_{l}=\left|\operatorname{grad} f\left(x_{0}, y_{0}\right)\right| \cos \theta \end{aligned}
∂l∂f∣∣∣∣(x0,y0)==f(x0,y0)xcosα+f(x0,y0)ycosβgradf(x0,y0)⋅el=∣gradf(x0,y0)∣cosθ 当θ=0\theta=0θ=0 时,eee与梯度方向相同时,方向导数最大,函数增加最快
当θ=π\theta=\piθ=π 时,eee与梯度方向相反时,方向导数最小,函数减少最快
当θ=π2\theta=\frac{\pi}{2}θ=2π 时,eee与梯度方向垂直时,方向导数为0, 函数变化率为零
二、梯度下降法
梯度法是用负梯度方向dk=−∇f(xk)
d_{k}=-\nabla f\left(x_{k}\right)
dk=−∇f(xk)作为搜索方向的.
设f(x)f(x)f(x)在xkx_kxk附近连续可微,dkd_kdk为搜索方向向量,gk=∇f(xk)g_{k}=\nabla f\left(x_{k}\right)gk=∇f(xk),由泰勒展开式得f(xk+αdk)=f(xk)+αgkTdk+o(α),α>0
f\left(x_{k}+\alpha d_{k}\right)=f\left(x_{k}\right)+\alpha g_{k}^{T} d_{k}+o(\alpha), \alpha>0
f(xk+αdk)=f(xk)+αgkTdk+o(α),α>0那么目标函数f(x)f(x)f(x)在xkx_kxk沿方向dkd_kdk下降的变化率为limα→0f(xk+αdk)−f(xk)α=limα→0αgkTdk+o(α)α=gkTdk=∥gkT∥∥dk∥cosθk
\begin{aligned} \lim _{\alpha \rightarrow 0} \frac{f\left(x_{k}+\alpha d_{k}\right)-f\left(x_{k}\right)}{\alpha} &=\lim _{\alpha \rightarrow 0} \frac{\alpha g_{k}^{T} d_{k}+o(\alpha)}{\alpha} \\ &=g_{k}^{T} d_{k}=\left\|g_{k}^{T}\right\|\left\|d_{k}\right\| \cos \theta_{k} \end{aligned}
α→0limαf(xk+αdk)−f(xk)=α→0limααgkTdk+o(α)=gkTdk=∥∥gkT∥∥∥dk∥cosθk式中θk\theta_kθk为gkg_kgk与dkd_kdk的夹角。
对于不同的方向dkd_kdk,函数变化率取决于它与gkg_kgk夹角的余弦值,要使变化率最小,只要cosθk=−1\cos \theta_{k}=-1cosθk=−1,即θk=π\theta_{k}=\piθk=π时才能达到,亦即dkd_kdk应取负梯度方向,即负梯度方向是函数f(x)f(x)f(x)在当前点的最速下降方向。