最优化方法是数学与工程的交汇点,也是机器学习的基石。本文梳理最优化方法的基础概念和核心算法。
基础概念
数学模型
一般的最优化问题可以表示为:
minf(x)
s.t. x∈Ω
其中 f(x) 是目标函数,Ω 是可行域。
分类
- 线性规划:目标函数与约束函数都是线性的
- 非线性规划:含有非线性函数
- 凸优化:目标函数为凸函数,可行域为凸集
梯度下降法
梯度下降是最基础也是最重要的优化算法。其核心思想是沿着目标函数的负梯度方向逐步迭代:
xk+1=xk−αk∇f(xk)
其中 αk>0 是步长(学习率)。
步长选择
步长的选择对收敛速度至关重要:
- 固定步长:简单但可能不收敛或收敛很慢
- 精确线搜索:αk=argminα>0f(xk−α∇f(xk))
- Armijo 条件:f(xk−α∇f)≤f(xk)−cα∥∇f∥2
收敛性
对于 L-光滑的凸函数,取步长 α=L1,梯度下降的收敛速率为:
f(xk)−f(x∗)≤2kL∥x0−x∗∥2
这是 O(1/k) 的收敛速率。
牛顿法
牛顿法利用二阶信息(Hessian 矩阵)加速收敛:
xk+1=xk−[∇2f(xk)]−1∇f(xk)
牛顿法在最优解附近具有二次收敛速率,但代价是需要计算和求逆 Hessian 矩阵。
总结
| 方法 | 收敛速率 | 每步代价 |
|---|
| 梯度下降 | O(1/k) | O(n) |
| 牛顿法 | 二次 | O(n3) |
| 拟牛顿法 | 超线性 | O(n2) |
选择哪种方法,取决于问题的规模、结构和精度要求。