文章目录

方向导数

定义(以二元函数为例):设$z=f(x,y)$在$(x_0,y_0)$的某领域内有定义,$\vec l=\{cos\alpha,cos\beta\}$是平面上的一个单位向量,若$$\lim_{t\to 0}\frac{f(x_0+tcos\alpha,y_0+tcos\beta)-f(x_0,y_0)}{t}$$存在。则该极限值就是$f(x,y)$在$(x_0,y_0)$点沿$\vec l$方向上的方向导数,记作$\frac{\partial f}{\partial \vec l}\Bigg |_{(x_0,y_0)}$。

若$f(x,y)$可微,$$\frac{\partial f}{\partial \vec l}\Bigg |_{(x_0,y_0)}=f_x'(x_0,y_0)cos\alpha+f_y'(x_0,y_0)cos\beta$$;

若$f(x,y)$不可微,则回归定义,$$\frac{\partial f}{\partial \vec l}\Bigg |_{(x_0,y_0)}=\lim_{t\to 0}\frac{f(x_0+tcos\alpha,y_0+tcos\beta)-f(x_0,y_0)}{t}$$

方向导数与偏导数关系

方向导数定义:$$\lim_{t\to 0}\frac{f(x_0+tcos\alpha,y_0+tcos\beta)-f(x_0,y_0)}{t}$$

偏导数定义:$$f_x’=\lim_{\Delta x\to 0}\frac{f(x_0+\Delta x,y_0)-f(x_0,y_0)}{\Delta x}$$

$$f_y’=\lim_{\Delta y\to 0}\frac{f(x_0,y_0+\Delta y)-f(x_0,y_0)}{\Delta y}$$

若$\vec l=\{1,0\}$,则代入可知$f_x’$即沿$\{1,0\}$方向的方向导数;

若$\vec l=\{0,1\}$,则代入可知$f_y’$即沿$\{0,1\}$方向的方向导数。

梯度

$z=f(x,y)$在$(x,y)$处可微,梯度$gradf=(\frac{\partial f}{\partial x},\frac{\partial f}{\partial y})=\frac{\partial f}{\partial x}\vec i + \frac{\partial f}{\partial x}\vec j$。

梯度结果为向量,用梯度算子$\nabla$表示,$$\nabla = \frac{\partial}{\partial x}\vec i +\frac{\partial}{\partial y}\vec j +\frac{\partial}{\partial z}\vec k $$

因此,函数在某点的梯度方向为:$\overrightarrow{grad}f=(\frac{\partial f}{\partial x_1},\frac{\partial f}{\partial x_2},\frac{\partial f}{\partial x_3})$,将$x_1,x_2,x_3$值代入即可(以三元函数为例)。

梯度与方向导数的关系

$\vec l=\{cos\alpha,cos\beta\}$为单位向量,$z=f(x,y)$可微,则

\begin{aligned}
\frac{\partial f}{\partial \vec l}\Bigg |_{(x_0,y_0)}& =f_x'(x_0,y_0)cos\alpha+f_y'(x_0,y_0)cos\beta \\
& =\overrightarrow{grad}f \ast \vec l\\
& =|\overrightarrow{grad}f| \ast |\vec l| \ast cos\theta
\end{aligned}

其中,$|\vec l| $等于1,$\theta$为$\alpha$与$\beta$的夹角。综上可知,方向导数最大值等于$|\overrightarrow{grad}f| $,方向导数最小值等于$-|\overrightarrow{grad}f| $。

梯度方向上方向导数等于方向导数最大值等于梯度的模

梯度下降法

梯度下降法(gradient descent)或最速下降法(steepest descent)是求解无约束最优化问题的一种最常用的方法,具有实现简单的优点。梯度下降法是迭代算法,每一步都要求解目标函数的梯度向量。

假设$f(x)$是$\Bbb R^n$上具有一阶连续偏导的函数。要求解的无约束最优化问题是$$\min_{x\in \Bbb R^n}f(x)$$ $x^*$表示目标函数$f(x)$的极小点(求解最小值问题)。

梯度下降法是一种迭代算法。选取适当的初值$x^{(0)}$,不断迭代,更新$x$的值,进行目标函数的极小化,直至收敛。由于负梯度方向是下降最快的方向,在迭代的每一步,以负梯度方向更新$x$的值,从而达到减少函数值的目的。

由于$f(x)$具有一阶连续偏导数,若第$k$次迭代值为$x^{(k)}$,则可将$f(x)$在$x^{(k)}$附近进行一阶泰勒展开:$$f(x) = f(x^{(k)})+g_k^T(x-x^{(k)})$$ 这里$g_k=g(x^{(k)})=\nabla f(x^{(k)})$为$x^{(k)}$的梯度。

求出第$k+1$次迭代值$x^{(k+1)}$:$$x^{(k+1)}\leftarrow x^{(k)}+\lambda_kp_k$$ 其中,$p_k$是搜索方向,取负梯度方向$p_k=-\nabla f(x^{(k)})$,$\lambda_k$是步长,由一维搜索确定,即$\lambda_k$使得$$f(x^{(k)}+\lambda_kp_k)=\min_{\lambda \ge 0}f(x^{(k)}+\lambda p_k)$$

梯度下降法步骤如下:

当目标函数为凸函数时,梯度下降法的解是全局最优解。一般情况下,其解不保证是全局最优解。梯度下降法的收敛速度也未必是很快的。