梯度的几何解释

本文详细解释了梯度在搜索算法中的几何意义,包括其作为改进方向的基础、与曲面、法线和切面的关系,以及在梯度下降和最速下降方法中的应用。强调了梯度方向与优化问题目标值的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前一直使用梯度法,本文系统整理一下梯度的几何解释,为后面搜索算法的理解打基础。参考文献:运筹学(原书第2版)—[美]罗纳德L.拉丁(Ronald L.Rardin)icon-default.png?t=N7T8http://www.cmpedu.com/books/book/2066930.htm

1. 方向步长(direction-step) 范式

“方向步长范式是几乎所有搜索算法的核心。”

\textbf{x}^{k+1}\leftarrow \textbf{x}^{k} + \lambda \Delta \mathbf{x}

其中 \lambda>0 是步长,\Delta \mathbf{x} 是搜索方向。

定义1:如果对于足够小的 \lambda>0,都有 \textbf{x}^{k} + \lambda \Delta \mathbf{x} 的目标值优于 \textbf{x}^{k},则称 \Delta \mathbf{x} 是当前解的一个改进方向(improving direction)。

定义2:如果对于足够小的 \lambda>0,都有 \textbf{x}^{k} + \lambda \Delta \mathbf{x} 满足所有约束条件,则称 \Delta \mathbf{x} 是当前解的一个可行方向

2. 曲面、法线、切面与梯度的关系

任意可微函数 f(x_1,...,x_n) 的梯度为

\nabla f =\begin{pmatrix} \frac{\partial f }{\partial x_1}\\ ...\\ \frac{\partial f }{\partial x_n}\\ \end{pmatrix}

由于每个偏导数都是目标函数在当前解的斜率或者随坐标方向变化的变化率,因此梯度描述了目标函数的形状。下面描述梯度与曲面的法线的关系。

梯度在函数图像上是切线,指向函数值增大的方向;在等高线图上是法向量,指向函数值增大的方向。

例:(参考:直观上理解“梯度”与“法向量”的关系 - 知乎)假设 f(x_1,x_2,x_3)=0 是一个三维曲面,实际上这可看作是函数 w=f(x_1,x_2,x_3) 一个等高面,如图2.1所示。曲面上的某一个点\left ( x_{10}, x_{20}, x_{30} \right )的法向量为 \left ( \frac{\partial f}{\partial x_1}|_{x_{10}}, \frac{\partial f}{\partial x_2}|_{x_{20}},\frac{\partial f}{\partial x_3}|_{x_{30}}\right )^T,该点的切面上的任意一个向量(x_1-x_{10}, x_2-x_{20}, x_3-x_{30}) 与法向量垂直(注:\mathbf{x}-\mathbf{x}_0 表示一个 \mathbf{x}_0 指向 \mathbf{x} 的向量),则可得到曲面/等高面 f(x_1,x_2,x_3)=0 的切面方程为

\frac{\partial f}{\partial x_1}|_{x_{10}}(x_1-x_{10})+ \frac{\partial f}{\partial x_2}|_{x_{20}}(x_2-x_{20}),\frac{\partial f}{\partial x_3}|_{x_{30}}( x_3-x_{30}) = 0

因此,一个函数 w 的梯度方向是 w 变化得最快的方向,自然就垂直于该函数的等值面。因为梯度是脱离该曲面最迅速的方向,也就能造成 w 变化得最剧烈。

图2.1 曲面、法线和梯度的关系

图2.2 梯度在函数图像上是切线方向

图2.3 梯度垂直于等值线

3. 梯度与改进方向的代数关系

考虑函数 w=f(x_1, ... ,x_n),记 \Phi(x_1, ... ,x_n, w) = w - f(x_1, ... ,x_n) = 0 是一个等值面,则由上节可知该等值面在 (x_{10}, ... ,x_{n0}, w_0) 处的切面方程为

 -f_{x_1}'(x_{10}, ... ,{x_{n0}})(x-x_{10})- ... -f_{x_n}'(x_{10}, ... ,{x_{n0}})(x-x_{10}) + w-w_0 = 0

所以w-w_0 = \sum_{i = 1}^{n} f_{x_i}'(x_{10}, ... ,{x_{n0}})(x-x_{i0}),即当步长 \lambda 足够小时,有

函数值的变化量\approx \sum_{i = 1}^{n} f_{x_i}'(x_{10}, ... ,{x_{n0}})(\lambda \Delta x_i^k) = \lambda \nabla f(\mathbf{x})^T \Delta \mathbf{x}

因此,对于最小化问题,如果\nabla f(\mathbf{x})^T \Delta \mathbf{x} < 0,则 \Delta \mathbf{x} 是改进方向,大于0否则不是;对于最大化问题反之。等于0需要其他条件判断。

 所以可以直接使用梯度 \nabla f(\mathbf{x}) 作为改进方向,即梯度下降法或最速下降法。

从几何的角度讲,对于最小化问题,改进方向需要与梯度方向的夹角大于90°;对于最大化问题,改进方向需要与梯度的夹角小于90°。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值