【无约束优化】多维搜索——梯度方法
多维搜索中的梯度方法(Gradient Methods in Multidimensional Optimization)
在最优化理论中,梯度方法是一类利用目标函数的一阶导数信息(即梯度)来求解无约束优化问题 minx∈Rnf(x)\min_{\mathbf{x} \in \mathbb{R}^n} f(\mathbf{x})minx∈Rnf(x) 的重要迭代算法。其核心思想是:在每一步迭代中,沿着使函数值下降最快的方向——负梯度方向——进行搜索。
1. 核心思想:梯度与下降方向
-
梯度(Gradient)
对于可微多元函数 f:Rn→Rf: \mathbb{R}^n \to \mathbb{R}f:Rn→R,其在点 xk\mathbf{x}_kxk 处的梯度定义为:
∇f(xk)=(∂f∂x1,∂f∂x2,…,∂f∂xn)T \nabla f(\mathbf{x}_k) = \left( \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, \dots, \frac{\partial f}{\partial x_n} \right)^T ∇f(xk)=(∂x1∂f,∂x2∂f,…,∂xn∂f)T
梯度指向函数增长最快的方向。 -
负梯度方向
负梯度方向 −∇f(xk)-\nabla f(\mathbf{x}_k)−∇f(xk) 是函数在该点下降最快的方向(基于一阶泰勒展开和柯西不等式推导得出)。 -
基本迭代格式
所有梯度类方法均遵循如下更新规则:
xk+1=xk−αk∇f(xk) \mathbf{x}_{k+1} = \mathbf{x}_k - \alpha_k \nabla f(\mathbf{x}_k) xk+1=xk−αk∇f(xk)
其中:- xk\mathbf{x}_kxk:第 kkk 次迭代的当前点;
- αk>0\alpha_k > 0αk>0:步长(step size),也称学习率(learning rate);
- ∇f(xk)\nabla f(\mathbf{x}_k)∇f(xk):在 xk\mathbf{x}_kxk 处的梯度向量。
2. 梯度下降法(Gradient Descent, GD)
梯度下降法是最基础的梯度型优化算法。
基本原理
从初始点出发,沿负梯度方向逐步移动,期望函数值持续减小,最终收敛至局部极小点。
直观比喻:如同盲人下山,每一步都选择脚下最陡峭的下坡方向前进,直到感觉“地面平坦”为止。
算法步骤(标准形式)
- 给定初始点 x0\mathbf{x}_0x0,精度 ϵ>0\epsilon > 0ϵ>0,令 k=0k = 0k=0。
- 计算梯度 ∇f(xk)\nabla f(\mathbf{x}_k)∇f(xk)。
- 若 ∥∇f(xk)∥<ϵ\|\nabla f(\mathbf{x}_k)\| < \epsilon∥∇f(xk)∥<ϵ,则停止,输出 xk\mathbf{x}_kxk 作为近似最优解。
- 设搜索方向 dk=−∇f(xk)\mathbf{d}_k = -\nabla f(\mathbf{x}_k)dk=−∇f(xk)。
- 通过线搜索确定步长 αk\alpha_kαk,使得 f(xk+αkdk)f(\mathbf{x}_k + \alpha_k \mathbf{d}_k)f(xk+αkdk) 显著下降(例如满足 Armijo 条件)。
- 更新:
xk+1=xk+αkdk=xk−αk∇f(xk) \mathbf{x}_{k+1} = \mathbf{x}_k + \alpha_k \mathbf{d}_k = \mathbf{x}_k - \alpha_k \nabla f(\mathbf{x}_k) xk+1=xk+αkdk=xk−αk∇f(xk) - 令 k←k+1k \gets k+1k←k+1,返回步骤 2。
3. 最速下降法(Steepest Descent Method)
最速下降法是梯度下降法的一种具体实现,其特点是采用精确一维线搜索来确定最优步长。
核心理念
在负梯度方向上,寻找一个最优步长 αk\alpha_kαk,使得目标函数在该方向上达到最小值。
迭代过程
- 在每次迭代中,求解以下一维优化问题:
αk=argminα≥0f(xk−α∇f(xk)) \alpha_k = \arg\min_{\alpha \geq 0} f(\mathbf{x}_k - \alpha \nabla f(\mathbf{x}_k)) αk=argα≥0minf(xk−α∇f(xk)) - 然后更新:
xk+1=xk−αk∇f(xk) \mathbf{x}_{k+1} = \mathbf{x}_k - \alpha_k \nabla f(\mathbf{x}_k) xk+1=xk−αk∇f(xk)
一个重要性质(针对二次函数)
若 f(x)=12xTAx−bTxf(\mathbf{x}) = \frac{1}{2} \mathbf{x}^T A \mathbf{x} - \mathbf{b}^T \mathbf{x}f(x)=21xTAx−bTx,其中 AAA 为对称正定矩阵,则最速下降法具有:
∇f(xk+1)T∇f(xk)=0
\nabla f(\mathbf{x}_{k+1})^T \nabla f(\mathbf{x}_k) = 0
∇f(xk+1)T∇f(xk)=0
即相邻两次梯度相互正交,导致搜索路径呈现“锯齿形”(zig-zag),尤其当条件数较大时收敛缓慢。
4. 应用于二次型函数
考虑二次目标函数:
f(x)=12xTAx−bTx
f(\mathbf{x}) = \frac{1}{2} \mathbf{x}^T A \mathbf{x} - \mathbf{b}^T \mathbf{x}
f(x)=21xTAx−bTx
其中 A∈Rn×nA \in \mathbb{R}^{n \times n}A∈Rn×n 对称正定。
此时梯度为:
∇f(xk)=Axk−b
\nabla f(\mathbf{x}_k) = A\mathbf{x}_k - \mathbf{b}
∇f(xk)=Axk−b
在最速下降法中,最优步长可通过解析表达式计算:
αk=∇f(xk)T∇f(xk)∇f(xk)TA∇f(xk)
\alpha_k = \frac{\nabla f(\mathbf{x}_k)^T \nabla f(\mathbf{x}_k)}{\nabla f(\mathbf{x}_k)^T A \nabla f(\mathbf{x}_k)}
αk=∇f(xk)TA∇f(xk)∇f(xk)T∇f(xk)
此公式来源于将 f(xk−α∇f(xk))f(\mathbf{x}_k - \alpha \nabla f(\mathbf{x}_k))f(xk−α∇f(xk)) 对 α\alphaα 求导并令导数为零。
5. 步长(学习率)的选择
步长 αk\alpha_kαk 的选取直接影响算法性能:
步长选择方式 | 特点 |
---|---|
固定步长 | 实现简单,但难以平衡收敛速度与稳定性;过大易震荡,过小收敛慢。 |
精确线搜索 | 在搜索方向上找到全局最小值对应的 αk\alpha_kαk,计算成本高。 |
非精确线搜索 | 更实用,常用准则包括: • Armijo 准则(保证充分下降) • Wolfe 准则(同时控制曲率条件) |
推荐实践:结合回溯(backtracking)策略的 Armijo 准则,在实际应用中广泛使用。
6. 局限性与改进方向
局限性
- 收敛速度慢:最速下降法仅为线性收敛,尤其当 Hessian 矩阵条件数大时效率低下。
- 锯齿现象:由于连续搜索方向正交,路径曲折,远离最优解区域时进展缓慢。
- 仅局部收敛:只能保证收敛到局部极小值;若函数非凸,可能陷入次优解。
改进算法
为克服上述缺陷,发展出多种高效替代方法:
方法 | 主要思想 | 收敛速度 |
---|---|---|
共轭梯度法 (CG) | 构造一组 AAA-共轭方向,避免正交锯齿,适用于大规模问题 | 超线性(有限步收敛于二次函数) |
拟牛顿法 (Quasi-Newton) | 利用梯度变化近似 Hessian 矩阵(如 BFGS、L-BFGS) | 超线性 |
Barzilai-Borwein 方法 (BB 方法) | 使用两点梯度差估算步长,无需线搜索,数值表现优异 | 非单调,但实践中快速 |
总结
梯度方法是现代最优化理论与机器学习的基础工具之一。尽管最速下降法因其简单的结构而易于理解和实现,但由于其较慢的收敛速度,在实际问题中常被更先进的算法所取代。
然而,深刻理解梯度下降的原理、收敛行为以及步长选择机制,对于掌握后续高级优化技术(如动量法、Adam、AdaGrad 等自适应方法)至关重要。它是连接经典数学规划与现代人工智能优化器的桥梁。
关键要点回顾:
- 下降方向:−∇f(xk)-\nabla f(\mathbf{x}_k)−∇f(xk)
- 迭代公式:xk+1=xk−αk∇f(xk)\mathbf{x}_{k+1} = \mathbf{x}_k - \alpha_k \nabla f(\mathbf{x}_k)xk+1=xk−αk∇f(xk)
- 步长决定成败:需合理选择(线搜索 / 自适应)
- 收敛性依赖函数性质:强凸且光滑时效果良好
- 可扩展性强:为深度学习中各类优化器提供理论基础