当前位置: 首页 > news >正文

常用的优化算法及横向对比

1. 梯度下降法(Gradient Descent, GD)

1.1 原理

沿当前点梯度的负方向做局部线性逼近:

f(x+\Delta x)\approx f(x)+\nabla f(x)^T\Delta x.\alpha_k=\alpha

最速下降方向为 -\nabla f(x)

1.2 算法步骤

设初始点 x_0,给定步长策略 \{\alpha_k\}_{k\ge0}

  1. 计算梯度 g_k=\nabla f(x_k)

  2. 更新:

    x_{k+1}=x_k-\alpha_k\,g_k.
  3. 若满足停止准则(如 \|g_k\|足够小或迭代次数达到上限),则终止;否则 k→k+1。

步长选择

  • 固定步长 \alpha_k=\alpha(要求 0<α<2/L)。

  • 精确或非精确线搜索,满足 Armijo 或 Wolfe 条件。

1.3 收敛分析

  • 强凸+L−光滑假设 下取固定 α=1/L:

    f(x_k)-f(x^*)\le\Bigl(1-\tfrac\mu L\Bigr)^k\bigl(f(x_0)-f(x^*)\bigr),

    线性收敛率,因子\rho=1-\mu/L=1-1/\kappa

  • 一般凸+L−光滑,最优线搜索下有 O(1/k) 的次线性收敛:

    f(x_k)-f(x^*)\le O\bigl(1/k\bigr).

1.4 优缺点

  • 优点:实现简单;每步仅需梯度;易于大规模和随机化扩展

  • 缺点:收敛慢(特别是条件数大时);对步长敏感;只能保证收敛到局部最优或鞍点


2. 共轭梯度法(Conjugate Gradient, CG)

专门用于求解对称正定二次型问题 f(x)=\tfrac12x^TAx-b^Tx

2.1 原理

构造一组 A-共轭方向 \{p_k\},在这些方向上精确搜索,可在至多 n 步内(无舍入误差)收敛。

2.2 算法步骤

  • 参数定义:

    • 残差 r_k=b-Ax_k

    • 搜索方向 p_k

    • 步长 \alpha_k,共轭系数 \beta_k

  • 迭代:

    1. 若 k=0 ,令 r_0=b-Ax_0p_0=r_0

    2. 否则计算

      \alpha_k=\frac{r_k^Tr_k}{p_k^TAp_k},\quad x_{k+1}=x_k+\alpha_kp_k, r_{k+1}=r_k-\alpha_kAp_k,\quad \beta_k=\frac{r_{k+1}^Tr_{k+1}}{r_k^Tr_k},\quad p_{k+1}=r_{k+1}+\beta_kp_k.
    3. 重复直至 \|r_k\|足够小或达最大迭代数。

2.3 收敛分析

  • 在精确算术下,至多 n 步收敛至精确解。

  • 实际舍入误差下,收敛速率近似受条件数 \kappa(A)=\lambda_{\max}/\lambda_{\min}控制:

    \|x_k-x^*\|_A \le 2\Bigl(\frac{\sqrt\kappa-1}{\sqrt\kappa+1}\Bigr)^k\|x_0-x^*\|_A.

2.4 优缺点

  • 优点:无需存储或分解 Hessian,仅需矩阵—向量乘法;内存消耗低;对大稀疏系统高效

  • 缺点:仅限对称正定;对舍入误差敏感


3. 牛顿法(Newton’s Method)

3.1 原理

在当前点用二阶泰勒展开构造二次近似:

f(x_k+d)\approx f(x_k)+g_k^Td+\tfrac12 d^TH_k d,

令该近似最小,解线性方程 H_k d=-g_k

3.2 算法步骤

  • 参数:梯度 g_k=\nabla f(x_k)H_k=\nabla^2 f(x_k),方向 d_k

  • 更新:

    1. 求解 H_k d_k=-g_k

    2. x_{k+1}=x_k+d_k

    3. H_k 非正定,则需修正(参见阻尼 Newton)。

3.3 收敛分析

  • 在 f 二阶连续可导、H(x^*)正定且初值足够近时,牛顿法呈二次收敛

    \|x_{k+1}-x^*\|\le C\,\|x_k-x^*\|^2.

3.4 优缺点

  • 优点:局部收敛极快;迭代次数极少

  • 缺点:每步求解线性系统 O(n^3);需保存/计算 Hessian;对初值敏感


4. 阻尼牛顿法(Damped/Newton with Line Search)

4.1 原理

为保证全局收敛,在牛顿方向上采用步长缩减 x_{k+1}=x_k+\alpha_k d_k,其中 d_k=-H_k^{-1}g_k\alpha_k 满足 Armijo 或 Wolfe 条件。

4.2 算法步骤

  1. 计算 g_k,H_k,d_k

  2. 设初始 \alpha_k=1,做回溯线搜索直至

    f(x_k+\alpha_k d_k)\le f(x_k)+c\,\alpha_k\,g_k^T d_k,\quad c\in(0,1).
  3. 更新 x_{k+1}=x_k+\alpha_k d_k

4.3 收敛分析

  • 在标准 Armijo/Wolfe 条件下,对凸 f 保证全局收敛,且一旦进入二次收敛域,\alpha_k\to1 恢复二次速率。

4.4 优缺点

  • 优点:兼顾全局与局部二次收敛;更鲁棒

  • 缺点:每步多次函数/梯度评估;实现复杂度提高


5. 拟牛顿法(Quasi-Newton)

5.1 原理

用对称正定矩阵 B_k 近似 Hessian^{​{-1}},通过每次迭代的 s_k=x_{k+1}-x_ky_k=g_{k+1}-g_k满足拟牛顿条件 B_{k+1}y_k=s_k

5.2 通用步骤

  1. 初始化 x_0、正定 B_0(通常取单位矩阵)。

  2. 计算方向 d_k=-B_k g_k

  3. 线搜索得 \alpha_k,更新x_{k+1}=x_k+\alpha_k d_ks_k,y_k

  4. 用某种更新公式构造 B_{k+1}

5.3 收敛分析

  • 在 f 强凸+L−光滑假设下,拟牛顿方法(如 BFGS)可获得超线性收敛:

    \lim_{k\to\infty}\frac{\|x_{k+1}-x^*\|}{\|x_k-x^*\|}=0.

5.4 优缺点

  • 优点:避免显式 Hessian;收敛快于单纯一阶方法;无需调整过多参数

  • 缺点:每步存储/更新矩阵开销 O(n^2);对非光滑不适用


6. DFP 拟牛顿法

6.1 更新公式

B_{k+1} = B_k + \frac{s_k s_k^T}{s_k^T y_k} - \frac{B_k y_k y_k^T B_k}{y_k^T B_k y_k}.

6.2 特点

  • 保正定性:若 B_k\succ0 且 s_k^Ty_k>0

  • 相较 BFGS 数值略逊,收敛稍慢。


7. BFGS 拟牛顿法

7.1 更新公式

B_{k+1} = \Bigl(I-\tfrac{s_k y_k^T}{y_k^T s_k}\Bigr)B_k \Bigl(I-\tfrac{y_k s_k^T}{y_k^T s_k}\Bigr) + \frac{s_k s_k^T}{y_k^T s_k}.

7.2 特点

  • 更稳定的数值性质;实践中最常用拟牛顿方法。


8. Nelder–Mead 单纯形法

8.1 原理

在 n 维空间维护一个 n+1 顶点的单纯形,通过反射α 、扩展γ 、收缩β 、全收缩δ 操作更新单纯形顶点。

  • 典型参数:

    • 反射系数 α>0 (常取1)

    • 扩展系数 γ>1 (常取2)

    • 收缩系数 β∈(0,1) (常取0.5)

    • 全收缩系数 δ∈(0,1) (常取0.5)

8.2 算法步骤

  1. 构造初始单纯形 \{x^{(0)},\dots,x^{(n)}\}

  2. 对顶点按 f 值排序,记最优、最差及次差为x_{\rm best},x_{\rm worst},x_{\rm second}

  3. 反射:

    x_r = x_{\rm centroid} + \alpha\,(x_{\rm centroid}-x_{\rm worst}),

    f(x_r)与其他值决定是否扩展/收缩。

  4. 迭代至单纯形径向收敛或函数值变化足够小。

8.3 收敛分析

  • 无严格收敛率保证;在低维连续光滑下常有效,但对高维/非凸存在早熟收敛风险。

8.4 优缺点

  • 优点:无需梯度;易实现;对噪声鲁棒

  • 缺点:无收敛率保证;高维效率差


9. ADMM(交替方向乘子法)

9.1 问题形式与参数

\min_{x,z}\; f(x)+g(z) \quad\text{s.t. }A x + B z = c

  • 增广拉格朗日函数:

    \mathcal L_\rho(x,z,y) = f(x)+g(z)+y^T(Ax+Bz-c) +\frac\rho2\|Ax+Bz-c\|^2,

    其中 y 为拉格朗日乘子,ρ>0 为惩罚参数。

  • 常用标度形式定义 u=y/ρ 。

9.2 算法步骤(标度形式)

初始化 x^0,z^0,u^0 。对 k=0,1,…:

  1. x–update

    xx^{k+1} = \arg\min_x\Bigl\{f(x) +\frac\rho2\|Ax+Bz^k - c + u^k\|^2\Bigr\}.
  2. z–update

    z^{k+1} = \arg\min_z\Bigl\{g(z) +\frac\rho2\|Ax^{k+1}+Bz - c + u^k\|^2\Bigr\}.
  3. 双变量更新

    u^{k+1} = u^k + \bigl(Ax^{k+1}+Bz^{k+1}-c\bigr).

9.3 收敛分析

  • 对凸问题保证全局收敛,且典型的**O(1/k)** 边际收敛率(Ergodic)。

  • 参数 ρ 的选择影响收敛速度与数值稳定性。

9.4 优缺点

  • 优点:天然适合分布式/并行;对非光滑项(如 L_1)友好

  • 缺点:收敛率慢;对 ρ 调参敏感;非凸问题无收敛保证


10.横向对比

算法梯度信息Hessian 信息收敛率每步计算成本主要适用场景优点缺点
GD一阶O(1/k)或 线性 O((1-\tfrac1\kappa)^k)O(n) 大规模/深度学习简单;易并行/随机化慢;需调步长
CG一阶n 步内收敛/线性加速O(n^2)(稀疏时更低)二次型方程组内存低;对称正定高效仅限二次型;对精度敏感
Newton一阶二阶本地二次O(n^3)小维高精度极快收敛Hessian 代价大;需正定性
Damped Newton一阶二阶全局+二次O(n^3)+线搜索工程/优化库更鲁棒;全局收敛实现复杂;多次函数/梯度评估
Quasi-Newton一阶近似二阶超线性O(n^2)中维凸优化收敛快于一阶;无需 Hessian内存/计算仍高于纯一阶
DFP一阶近似二阶超线性O(n^2)光滑凸保正定数值不如 BFGS 稳定
BFGS一阶近似二阶超线性O(n^2)中维凸最常用;稳定性好高维内存占用大
Nelder–Mead无保证O(n^2)(函数评估)无梯度/带噪声简单;鲁棒高维易失效;收敛慢/不稳定
ADMM可选O(1/k)(Ergodic)视子问题复杂度而定分布式、稀疏、含非光滑分布式并行;适合非光滑正则化慢;需调 ρ;非凸无保证

11.参数与符号约定

  • f:\mathbb R^n\to\mathbb R:目标函数

  • x\in\mathbb R^n:决策变量

  • x^*:全局最优解(假定存在且惟一)

  • \nabla f(x):梯度向量

  • \nabla^2 f(x):Hessian矩阵

  • L:梯度 Lipschitz 常数,即 \nabla f(x)-\nabla f(y)\|\le L\|x-y\|

  • μ>0 :强凸常数,即 f(y)\ge f(x)+\nabla f(x)^T(y-x)+\tfrac\mu2\|y-x\|^2

  • \kappa=L/\mu:条件数

  • 对于二次型 f(x)=\tfrac12x^TAx-b^Tx,令 A\in\mathbb R^{n\times n}对称正定,特征值记为 0< \lambda _{min} \leqslant \lambda _{max}

其它符号将在对应算法中定义。

相关文章:

  • langchain tools源码解析以及扩展
  • 快速使用工具Cursor
  • 【天外之物】线元
  • MacOS怎么显示隐藏文件
  • python-图片分割
  • 慢速率拉伸热变形工艺试验机
  • 通俗理解MCP(Model Context Protocol)和A2A(Agent2Agent)
  • kaamel Privacy agent:AI赋能的隐私保护技术解决方案
  • [特殊字符] 当Docker遇上大模型:本地运行LLM的奇幻漂流 [特殊字符]
  • 68.评论日记
  • 使用dompurify修复XSS跨站脚本缺陷
  • ABAP OLE
  • 一次制作参考网杂志的阅读书源的实操经验总结(附书源)
  • 残差连接缓解梯度消失的含义;残差连接的真正含义:F(x) = y - x ;y=F(x)+x
  • IE之路专题12.BGP专题
  • ES中常用的Query和查询作用,以及SpringBoot使用实例
  • volatile的进一步深入理解
  • 如何导出pip下载的paho-mqtt包
  • 对比说明Navicat for MySQL和DBeaver的数据同步功能
  • Qt QTimer 详解与使用指南
  • 秦洪看盘|热点凌乱难抑多头雄心
  • 山东省淄博市委原常委宋振波被“双开”
  • 牛市早报|现货黄金价格站上3400美元,上交所召开私募机构座谈会
  • 中印尼“2+2”:中国周边外交的范式突破与东南亚棋局重构
  • 徐之凯评《突如其来的勇气》|早熟的抵抗
  • 对话地铁读书人|翻译Esther:先读原著,再看电影