Skip to content

梯度下降法

Gradient descent method · Steepest descent method

反复沿当前负梯度方向取步以降低可微目标的基础一阶算法。

条目类型
算法

形式陈述

给定可微目标 f:RnR、初值 x0、正步长规则 αk、容差与最大迭代次数,梯度下降法计算

gk=f(xk),xk+1=xkαkgk.

它每轮只查询一次函数的梯度;固定步长、回溯步长或线搜索都是同一更新的不同步长策略。一个完整实现应输出近似点、最终函数值或梯度范数、迭代次数,以及“达到容差、步长失败、数值非有限、超过预算”等状态。常见停止测试 gkεg 只是驻点残差测试;若没有凸性、尺度校准和误差界,它不等于全局最优证书。

算法定义本身只要求能计算梯度与正步长,不包含收敛承诺。若已知一个正的有效 Lipschitz 常数 L,可取 αk=1/L;若未知,可用 Armijo 回溯检验实际充分下降,或以Wolfe 条件同时控制下降和新点方向导数。由下降引理可知,在精确梯度和 L-Lipschitz 梯度下,0<αk<2/L 保证非驻点处函数值下降,但这仍只是单步性质。

直觉

在欧氏内积下,单位方向 d 的一阶变化是 f(x),d;其最小值由 d=f(x)/f(x) 取得,所以负梯度是局部最陡下降方向。算法把曲面在当前点换成切平面,沿最有利方向走有限距离,再重新线性化。步长决定“相信这一局部模型多远”:太小会浪费查询,太大则可能越过谷底并反复振荡。

“最陡”依赖坐标几何。把变量某一坐标放大一千倍,欧氏梯度方向和安全步长都会改变,即使原问题的可行解没有本质变化。预条件、自然梯度或镜像下降所做的核心工作,就是换一种衡量方向长度的几何。梯度下降仍因状态少、单步便宜而是基准方法,但单步局部最陡不意味着给定查询预算下全局最快。

例子与边界

考虑各向异性二次函数

f(x)=12(x12+4x22),f(x)=(x1,4x2).

x0=(1,1) 出发,取 α=1/4,更新矩阵为 diag(3/4,0),所以

x1=(3/4,0),x2=(9/16,0),

且函数值从 5/2 降到 9/32,再降到 81/512。高曲率的第二坐标一步归零,低曲率坐标每轮乘 3/4;这一轨迹能逐项复算,也显示最坏曲率如何限制所有坐标共享的步长。若改取 α=1/2=2/L,第二坐标每轮乘 1,永不衰减;若再增大,绝对值超过一并发散。端点 2/L 因而不能包含在一般严格下降区间内。

梯度下降也有结构边界。f(x)=x3 没有下界,沿负梯度走不能产生有限极小点;非凸有下界目标可能收敛到鞍点或局部极小。约束问题直接更新后可能离开可行域,需要投影、近端或其他约束处理。有限精度下,接近解时相减消去与梯度噪声会使函数值不再单调;实现不能在出现 NaN 后仍返回“收敛”。若 L 只靠低估样本得到,固定步长也没有全局保证。

推论与应用

L-光滑凸目标上,固定步长 1/L 配合一阶凸下界,可以证明函数值误差为 O(1/k);若再有强凸性,则得到几何率。这些是单独的收敛定理,需要解存在、精确梯度和明确常数,不能写进算法定义后省略条件。对一般光滑非凸且有下界的目标,逐步下降求和只保证某个迭代的梯度范数平方达到 O(1/k) 量级,不保证全局最优。

工程上,梯度下降可作为自动微分模型的最小可靠基线:记录 f(xk)gk、步长和回溯次数,便能区分曲率错估、求值故障与真正停滞。批量随机梯度用有噪声估计替代 gk 后属于另一算法族,其步长衰减、方差与期望收敛结论都要重做;把“梯度”一词相同当作同一定理,是常见的假设泄漏。

参考资料
  • Amir Beck, First-Order Methods in Optimization, SIAM, 2017,Algorithm 10.1 and §§10.2–10.3,gradient method and step-size rules。
  • Sébastien Bubeck, Convex Optimization: Algorithms and Complexity, Foundations and Trends in Machine Learning 8(3–4), 2015,§3.2,gradient descent。
  • Jorge Nocedal and Stephen J. Wright, Numerical Optimization, 2nd ed., Springer, 2006,Ch. 3,line-search methods and steepest descent。
关系图谱14 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系