ARTICLE

优化算法

优化算法 优化算法是指求解最优化问题——在给定约束条件下寻找目标函数极小值(或极大值)的参数向量——的数值计算方法的总称。优化算法构成最优化理论的算法层面,是计量经济学、机器学习 (Machine Learning)、运筹学、控制理论和金融工程等学科的核心计算工具。一个优化问题的标准形式为: 其中 f: R^n R 为目标函数,g_i 和 h_j 分别为不等

浏览 5 更新 2026-06-20

优化算法

优化算法是指求解最优化问题——在给定约束条件下寻找目标函数极小值(或极大值)的参数向量——的数值计算方法的总称。优化算法构成最优化理论的算法层面,是计量经济学机器学习 (Machine Learning)、运筹学、控制理论和金融工程等学科的核心计算工具。一个优化问题的标准形式为:

minxRnf(x)s.t.gi(x)0,  hj(x)=0\min_{\mathbf{x} \in \mathbb{R}^n} f(\mathbf{x}) \quad \text{s.t.} \quad g_i(\mathbf{x}) \leq 0, \; h_j(\mathbf{x}) = 0

其中 f:RnRf: \mathbb{R}^n \to \mathbb{R} 为目标函数,gig_ihjh_j 分别为不等式约束和等式约束。当 ff凸函数且可行域为凸集时,问题属于Convex Optimization,局部最优即全局最优,理论与算法均高度成熟。

优化算法的分类

优化算法可沿多个维度加以分类:

  • 按导数信息的使用一阶方法利用梯度 f(x)\nabla f(\mathbf{x})二阶方法利用 Hessian 矩阵 2f(x)\nabla^2 f(\mathbf{x})零阶方法(无导数优化)仅利用函数值 f(x)f(\mathbf{x}) 本身。
  • 按问题结构无约束优化约束优化凸优化非凸优化光滑优化非光滑优化
  • 按搜索策略确定性算法(梯度下降、牛顿法)在相同初始条件下收敛到相同解;随机算法(SGD、模拟退火)在搜索中注入随机性;启发式/元启发式算法(遗传算法、粒子群)模仿自然或物理过程。
  • 按变量类型连续优化离散/组合优化

一阶方法

一阶方法仅需计算目标函数的梯度,每次迭代代价低,是大规模优化和深度学习的主力。

梯度下降法 (Gradient Descent)是最基础的一阶迭代算法,沿负梯度方向更新参数:

x(k+1)=x(k)αkf(x(k))\mathbf{x}^{(k+1)} = \mathbf{x}^{(k)} - \alpha_k \nabla f(\mathbf{x}^{(k)})

学习率 αk\alpha_k 可为常量、通过线搜索确定,或采用 AdaGrad、RMSProp、Adam 等自适应策略。对于 LL-光滑且 μ\mu-强凸的 ff,梯度下降以线性速率 (κ1κ+1)k\left(\frac{\kappa - 1}{\kappa + 1}\right)^k 收敛,其中 κ=L/μ\kappa = L/\mu 为条件数。

随机梯度下降 (SGD) 每次仅使用一个或一小批样本估计梯度,计算代价从 O(n)O(n) 降为 O(1)O(1)O(m)O(m),适用于大规模数据集。SGD 满足 Robbins-Monro 条件 (αk=,αk2<\sum \alpha_k = \infty, \sum \alpha_k^2 < \infty) 时可保证收敛,但其梯度噪声导致路径震荡。

动量法引入速度变量累积历史梯度以平滑更新方向,在狭窄峡谷形目标函数上显著加速收敛。Nesterov 加速梯度 (NAG) 在动量法基础上加入"前瞻"修正,在凸光滑优化中达到一阶方法的最优收敛速率 O(1/k2)O(1/k^2)

二阶方法与拟牛顿法

二阶方法利用 Hessian 矩阵提供的曲率信息,具有超线性甚至二次收敛速率,但计算和存储代价显著更高。

牛顿法的更新公式为:

x(k+1)=x(k)[2f(x(k))]1f(x(k))\mathbf{x}^{(k+1)} = \mathbf{x}^{(k)} - [\nabla^2 f(\mathbf{x}^{(k)})]^{-1} \nabla f(\mathbf{x}^{(k)})

在初始点足够接近最优解且 Hessian 满足 Lipschitz 连续的条件下,牛顿法具有局部二次收敛速率。然而,每次迭代需计算并求逆 n×nn \times n Hessian,复杂度为 O(n3)O(n^3),在高维问题中受限。

拟牛顿法通过梯度差信息迭代近似 Hessian 或其逆矩阵,避免显式计算二阶导数。BFGS 算法(由 Broyden、Fletcher、Goldfarb 和 Shanno 独立提出)是最经典的拟牛顿法,维护对 Hessian 逆的对称正定近似 Hk\mathbf{H}_k,更新复杂度 O(n2)O(n^2)L-BFGS(Limited-memory BFGS)仅存储最近 mm 步的曲率信息,将内存需求降至 O(mn)O(mn),是解决大规模光滑优化问题的标准工具。

共轭梯度法介于梯度下降和拟牛顿法之间,通过选择与历史搜索方向共轭的方向,在线性问题上可在至多 nn 步内精确收敛,且无需存储 Hessian 矩阵。

约束优化算法

对于带约束的优化问题,核心策略是将约束处理融入算法设计:

Lagrange multipliers 将约束优化转化为 Lagrange 函数的鞍点问题。Karush-Kuhn-Tucker (KKT) 条件给出了约束优化最优解的一阶必要条件;对于凸问题,KKT 条件同时也是充分条件。

内点法通过在目标函数中引入对数障碍项 ϕ(x)=ilog(gi(x))\phi(x) = -\sum_i \log(-g_i(x)) 将不等式约束转化为惩罚,求解一系列无约束子问题趋近原问题的最优解。内点法具有多项式时间复杂度,是线性规划、二次规划和半正定规划的工业标准求解器(如 Gurobi、MOSEK、CVX)的核心技术。

投影梯度法在每一步无约束梯度更新后,将当前解投影回可行域:x(k+1)=ΠX(x(k)αkf(x(k)))\mathbf{x}^{(k+1)} = \Pi_{\mathcal{X}}(\mathbf{x}^{(k)} - \alpha_k \nabla f(\mathbf{x}^{(k)})),其中 ΠX\Pi_{\mathcal{X}} 为到可行集 X\mathcal{X} 的欧氏投影。近端梯度法(Proximal Gradient)将投影推广为近端算子,特别适用于 LASSO 等带不可微正则项的复合优化问题。

交替方向乘子法 (ADMM) 结合对偶分解与增广 Lagrange 乘子,将大规模问题拆分为可并行求解的子问题,广泛应用于分布式优化、矩阵补全和图像处理。

无导数优化与元启发式方法

当目标函数不可微、不可靠(含噪声)或计算代价极其昂贵时,无导数方法成为首选。

  • Nelder-Mead 单纯形法:通过反射、扩张、收缩等几何操作,在 nn 维空间维护一个 n+1n+1 个顶点的单纯形,使其逐步包围并收缩至极小值点。无需计算导数,但缺乏收敛性理论保证。
  • 模拟退火:模仿金属退火的物理过程,以 Metropolis 准则接受候选解——即使目标函数值上升,也有一定概率接受,从而逃离局部极小值。温度参数随迭代衰减,最终收敛到全局最优。
  • 遗传算法:受自然选择启发,维护解的种群,通过选择、交叉和变异操作迭代进化。全局搜索能力强,适用于离散组合优化和多目标优化,但收敛速度较慢且参数敏感。
  • 粒子群优化 (PSO):模拟鸟群或鱼群的集体行为,每个粒子在搜索空间中根据自身历史最佳位置和群体全局最佳位置调整速度与位置。
  • 贝叶斯优化:用高斯过程等代理模型拟合目标函数,通过采集函数(如 Expected Improvement、Upper Confidence Bound)平衡探索与利用,确定下一个评估点。特别适用于超参数调优和实验设计等目标函数评估代价高昂的场景。

经济学与计量经济学中的应用

优化算法深度嵌入现代经济学研究与实证分析:

计量经济学估计中,最大似然估计广义矩方法 (GMM) 和各类惩罚回归(LASSO岭回归 (Ridge Regression))均依赖数值优化。Logit 模型和 Probit 模型的对数似然函数无解析解,需通过 Newton-Raphson 或 BFGS 迭代求解。在高维工具变量估计和非线性面板数据模型中,优化算法的数值稳健性直接决定估计结果的质量。

宏观经济学中,动态随机一般均衡 (DSGE) 模型的求解涉及高维非线性方程组,常通过扰动法、投影法或值函数迭代结合牛顿类方法实现。动态规划中的 Bellman 方程求解依赖值函数迭代和策略迭代——本质上是一类不动点优化算法。

计算一般均衡 (CGE) 模型用于评估贸易政策、税收改革等经济冲击的效应,其求解涉及大规模非线性互补问题,通常依赖内点法或序列二次规划等约束优化算法。

机器学习经济学中,因果推断方法(如 Double/Debiased Machine Learning)利用梯度下降训练神经网络或随机森林作为干扰项估计器;强化学习中的策略梯度方法在拍卖设计、动态定价和货币政策模拟中日益受到关注。

金融工程中,投资组合优化的均值-方差模型(马科维茨投资组合优化)是典型的二次规划问题;期权定价模型的隐含波动率校准和风险度量(VaR/CVaR)优化均依赖高效的数值优化算法。

算法的选择与收敛性

实践中选择优化算法需权衡以下因素:问题维度 nn、目标函数的光滑性与凸性、梯度/Hessian 计算的可行性与代价、对全局最优的需求程度以及计算资源的约束。

对于低维光滑凸问题,牛顿法和内点法通常是最优选择。对于高维光滑问题(如深度学习),随机梯度方法及其自适应变体(Adam、AdamW)是工业标准。对于非凸问题,可通过多次随机初始化结合局部优化后选取最优解,或借助模拟退火、贝叶斯优化等全局搜索策略。对于有噪声或不可微问题,次梯度法、Nelder-Mead 或元启发式方法更为合适。

收敛性分析中,对于凸光滑问题,梯度下降达到 ϵ\epsilon-精度需要 O(1/ϵ)O(1/\epsilon) 次迭代;Nesterov 加速梯度达到 O(1/ϵ)O(1/\sqrt{\epsilon});牛顿法仅需 O(loglog(1/ϵ))O(\log\log(1/\epsilon)) 次迭代。但实际运行时间还取决于每次迭代的计算和存储开销,因此 L-BFGS 在中等维度问题上往往表现最优。

优化算法的研究仍在不断演进——分布式优化(如联邦学习中的 FedAvg)、随机化数值线性代数加速的二阶方法、以及基于扩散模型和神经过程的新兴生成式优化范式代表了当前的前沿方向。掌握优化算法的基本原理和工程选择,是从事定量社会科学和数据驱动经济分析不可或缺的技能。