优化一个目标函数f(x),满足一些约束c(x),等式或者不等式。满足约束的解成为可行解。
分类:
连续/离散优化问题
约束/非约束优化问题
线性/非线性优化问题
全局/局部优化问题
随机/确定性优化问题
凸优化:
1、凸集:如果集合S为凸集,当且仅当 x∈S, y∈S 并且α(x)+(1−α)(y) inS;α∈[0,1]
2、凸函数:凸函数:如果函数f(x)为凸函数,当且仅当S为凸集,x∈S, y∈S; αf(x)+(1−α)f(y)≥f(αx+(1−α)y); α∈[0,1]
3、严格凸函数,凸函数能够取到非等号,即α∈(0,1)
4、凸优化问题:对于标准形式目标函数为凸函数,等式约束为线性约束;不等式约束为凹函数。
无约束最优化问题:
在机器学习中,有大量的问题可以归约为无约束最优化问题,例如线性回归、LR等。因此对于无约束问题的研究也很深入从简单的GD、SGD、TR到CG、Newton、(L-)BFGS等
1. 无约束最优化问题可以表示为 minf(x); x∈ℝn
2. 全局最优解 VS 局部最优解
* 全局最优简单理解为在整个定义域内解最小
* 局部最优:在某个邻域内解最小
3. 对于凸优化问题,任何局部最优解都是全局最优解。
局部最优解的几个定理:
1、泰勒展开公式,根据泰勒公式对于函数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)
2、局部最小值的一阶必要条件,如果 x∗ 为局部最优解并且函数f一阶可导,则在 x∗ 的邻域内 ∇f(x∗)=0
3、局部最优解的二阶必要条件,如果 x∗为局部最优解并且一阶和二阶可导,则∇f(x∗)=0 并且 ∇2f(x)正定
证明:对于定理2,3的证明采用反证法。例如对于定理2. 假设 ∇f(x∗)≠0, 则根据泰勒一阶展开则可以找到∇f(x∗)T(x−x∗)≤0
4、局部最优的二阶充分条件:如果函数f在 x∗ 处满足∇f(x∗)=0并且∇2f(x)正定,则 x∗ 为局部最优解
5、如果函数f为凸函数,则f的任何局部最优解都为全局最优解。
优化算法概述:
在后面会介绍一系列解决该问题的算法,先介绍几个简单的概念。
1. 通过数值优化算法求解,一般会给定初始点 x0,找到一系列点x1,x2,x3 ... xn→x∗
2. 通常有两大类比较重要的策略 线搜索(Line Search)和信赖域(Trust Region)
3. Line Search策略:假设在某点xk,寻找方向pk和步长α使得 min f(xk+αpk) 最小,如果pk确定则只需要解决一维最优化问题就可以找到下一个搜索点,如何确定pk后面介绍几类策略,最简单的策略就是当前点的梯度。
4. Trust Region策略:在某店xk解决优化问题 min mk(xk+pk),其中mk为函数f在xk点的近似,同时为保证mk为一个较好的近似,即当pk 远离 xk 时偏离太大,则需要保证xk+pk 在一个可信赖的区域内;
5. 通常情况下信赖域选择为椭圆、球或者盒状区域,即一个凸集容易找到最优解。
6. 模型mk一般可以选择为函数f的泰勒二阶近似,即
其中Bk为Hessian矩阵或者其近似
7. 以上两类策略的相同点是在某点xk通过解决一个优化问题找到下一个搜索点。LS首先选择方向pk通过解决一维最优化问题找到步长α;TR首先对步长进行约束,通过解决简单的优化问题寻找搜索方向。
线搜索中的方向:
1、最速下降:负梯度方向 pk=−∇fk
2、牛顿方向:pNk=−(∇2fk)−1∇fk
3、拟牛顿方向:pk=−B−1k∇fk
4、非线性共轭梯度方向:
pk=−∇fk+βkpk−1