开篇
- 数值优化通过迭代的方式解决优化问题,是数学建模中关键的一环。
- Modeling过程,需要确定优化目标、目标所依赖的变量以及变量之间的约束关系,最后通过优化算法解决问题。
基础
- 对于一个优化问题,通常有一个优化目标函数 f(x) x为参数变量,c(x)为约束。
- 最优化问题的标注形式为
min f(x)x∈Rns.t. Ci(x)=0 i∈E Ci(x)≥0 i∈I
- 其中 E 表示等式集合, I 表示不等式集合
- 其中满足约束的解称之为 可行解
问题分类
根据目标函数或者约束函数的不同,对于最优化问题可以分为:
- 连续/离散优化问题
- 约束/非约束优化问题
- 线性/非线性优化问题
- 全局/局部优化问题
随机/确定性优化问题
了解分类规则后可以根据建模后的形式选择不同的算法。
凸优化
对于凸优化需要了解一下几个概念,详细可以参考Stephen Boyd的《凸优化》,里面对凸优化问题进行了详细的介绍。
- 凸集:如果集合S为凸集,当且仅当 x∈S, y∈S 并且α(x)+(1−α)(y) inS;α∈[0,1]
- 凸函数:如果函数f(x)为凸函数,当且仅当S为凸集, x∈S, y∈S; αf(x)+(1−α)f(y)≥f(αx+(1−α)y); α∈[0,1]
- 严格凸函数,凸函数能够取到非等号,即 α∈(0,1)
- 凸优化问题:对于标准形式目标函数为凸函数,等式约束为线性约束;不等式约束为凹函数。
无约束最优化问题
在机器学习中,有大量的问题可以归约为无约束最优化问题,例如线性回归、LR等。因此对于无约束问题的研究也很深入从简单的GD、SGD、TR到CG、Newton、(L-)BFGS等
1. 无约束最优化问题可以表示为 minf(x); x∈Rn
2. 全局最优解 VS 局部最优解
* 全局最优简单理解为在整个定义域内解最小
* 局部最优:在某个邻域内解最小
3. 对于凸优化问题,任何局部最优解都是全局最优解。
局部最优解几个定理
- 泰勒展开公式,根据泰勒公式对于函数f(x)可以近似为
一阶展开近似: f(x)≈f(x0)+∇f(x0)T(x−x0)
二阶展开近似: f(x)≈f(x0)+∇f(x0)T(x−x0)+12(x−x0)T∇2f(x0)(x−x0) - 局部最小值的一阶必要条件,如果 x∗ 为局部最优解并且函数f一阶可导,则在 x∗ 的邻域内 ∇f(x∗)=0
- 局部最优解的二阶必要条件,如果 x∗ 为局部最优解并且一阶和二阶可导,则 ∇f(x∗)=0 并且 ∇2f(x)正定</