优化方法总结

1. 优化方法研究的主要问题

优化方法研究的主要问题在于得到一个模型的最优解,而机器学习关注的如何建立一个模型能够很好地解决实际问题,而其中模型的求解便依赖于优化方法。解决优化问题分为解析解法和数值解法,我们主要focus在数值解法。

2 . 优化问题的最优性条件

在设计一些算法时,最核心的指导思想便是最最优性条件。

  • 无约束问题尽可能的达到驻点,在根据其他条件判断是否达到极值点。
  • 约束优化问题
    • 要么通过拉格朗日乘子法转为无约束,达到满足规范条件的KKT点
    • 如果很难满足,就转为一系列无约束或者满足线性约束的优化问题,希望得到满足约束的KKT点。
    • 最后实在不可以,还可以通过引入惩罚,放松约束,转化为一系列无约束,达到满足约束的驻点上。
      总之,无约束优化和有约束优化在设计迭代算法时,都是朝着满足最优性条件的方向设计的。

无约束优化问题的最优性条件

一阶必要条件 – 最优解的一阶梯度为0

如果 x ∗ x^* x是最优解,则梯度 ∇ f ( x ∗ ) = 0 \nabla f(x^*) = 0 f(x)=0

二阶充分条件 – 一阶梯度为零,海森阵正定,则为最优值

∇ f ( x ∗ ) = 0 \nabla f(x^*) = 0 f(x)=0 ∇ 2 f ( x 0 ∗ ) \nabla ^2 f(x^*_0) 2f(x0)正定,则 x ∗ x^* x为最优值点。

二阶必要条件 – 最优解的一阶梯度为0,海森阵半正定

若 x ∗ 若x^* x为最优值点,则 ∇ f ( x ∗ ) = 0 \nabla f(x^*) = 0 f(x)=0 ∇ 2 f ( x 0 ∗ ) \nabla ^2 f(x^*_0) 2f(x0)半正定。

有约束优化问题的最优性条件

一阶必要条件–KKT条件—满足规范性约束的优化问题,最优解一定是KKT点

定理(kuHn - Tucker 定理)设x是约束优化问题的局部极小解,f(x)在x处可微,当约束规范条件 S F D ( x ∗ , D ) = L F D ( x ∗ , D ) SFD (x*,D) = LFD(x*,D) SFD(x,D)=LFD(x,D)成立时,存在实数 λ i ∗ ( i = 1 , 2 , ⋯   , m ) \lambda_i^* (i =1,2,\cdots,m) \quad λi(i=1,2,,m)S.t.
∇ f ( x ∗ ) − ∑ i = 1 m λ i ∗ ∇ c i ( x ∗ ) = 0 \nabla f(x*) -\sum\limits_{i=1}^m \lambda_i^* \nabla c_i(x^*) = 0 f(x)i=1mλici(x)=0 λ i ∗ ∇ c i ( x ∗ ) = 0 , λ i ∗ ≥ 0 , i ∈ I ∗ \lambda_i^* \nabla c_i(x^*) = 0,\quad \lambda_i^* \geq 0, i\in I^* λici(x)=0,λi0,iI

互补松弛条件 λ i ∗ ∇ c i ( x ∗ ) = 0 \lambda_i^* \nabla c_i(x^*) = 0 λici(x)=0是为了让拉格朗日乘子法成立, 对于 λ \lambda λ的非负性要求是在farkas引理里引入的。\
证明的思路为:
farkas lemma:
方程
{ A x ≤ 0 c T x ≥ 0 \left\{ \begin{aligned} &Ax \leq 0\\ & c^Tx \geq 0 \end{aligned} \right. {Ax0cTx0
方程
{ A T y ≤ c y > 0 \left\{ \begin{aligned} &A^Ty \leq c\\ &y > 0 \end{aligned} \right. {ATycy>0
上述两个方程iif一个有解。
约束规范条件 S F D ( x ∗ , D ) = L F D ( x ∗ , D ) SFD (x*,D) = LFD(x*,D) SFD(x,D)=LFD(x,D) 可得

∇ f ( x ∗ ) T d ≥ 0 ∀ d ∈ L F D ( x ∗ , D ) \nabla f(x_*)^T d \geq 0 \quad \forall{d} \in LFD(x^*,D) f(x)Td0dLFD(x,D)

根据LFD(x*,D)定义可以得到方程组:
{ ∇ c i ( x ∗ ) T d = 0 i ∈ E ∇ c i ( x ∗ ) T d = 0 i ∈ I ∗ ∇ f ( x ∗ ) T d < 0 \left\{ \begin{array}{l} \nabla c_i(x^*)^T d = 0 \quad i \in E\\ \nabla c_i(x^*)^T d = 0 \quad i \in I^*\\ \nabla f(x^*)^Td < 0 \end{array} \right.\\ ci(x)Td=0iEci(x)Td=0iIf(x)Td<0
无解,也就是
{ A d ≤ 0 ∇ f ( x ∗ ) T d > 0 \left\{ \begin{array}{l} Ad \leq 0\\ \nabla f(x^*)^Td > 0 \end{array} \right. {Ad0f(x)Td>0
A = [ ∇ c i ( x ∗ ) T , − ∇ c i ( x ∗ ) T , i ∈ E ∇ − c i ( x ∗ ) T i ∈ I ∗ ] A = [\nabla c_i(x^*)^T,-\nabla c_i(x^*)^T, \quad i \in E \quad \nabla -c_i(x^*)^T \quad i \in I*] A=[ci(x)T,ci(x)T,iEci(x)TiI]
无解,那么
根据farkas lemma,
{ A T y ≤ f ( x ∗ ) y > 0 \left\{ \begin{aligned} &A^Ty \leq f(x^*)\\ &y > 0 \end{aligned} \right. {ATyf(x)y>0
有解, 其中 y = ( μ ∗ − T , μ ∗ + T , ω ∗ − T ) T y= (\mu_{*-T},\mu_{*+T}, \omega_{*-T})^T y=(μT,μ+T,ωT)T也就是部分 λ \lambda λ,加上互补松弛条件刚好使得拉格朗日乘子法的梯度等于零。
构成了一阶必要条件。\

二阶充分条件,达到KKT点,拉格朗日函数的海森阵正定。

(1)当x为KKT点
(2)对于 ∀ d ∈ M = { d ∈ R n    ∣    d T ∇ c i ( x ∗ ) = 0 , i ∈ E ∪ I ∗ } \forall d \in M = \{d \in R_n \ \ |\ \ d^T \nabla c_i(x^*) =0, i\in E \cup I^*\} dM={dRn    dTci(x)=0,iEI}都有 d T ∇ x 2 L ( x ∗ , λ ∗ ) d > 0 d^T \nabla^2_x L(x^*,\lambda^*)d > 0 dTx2L(x,λ)d>0 则x*为严格局部最优解。

2. 梯度下降法的一般框架

迭代算法与梯度下降算法

数值解法中最常用的是迭代算法,
迭代算法: 给定初始点x0,一次产生点列 x 1 , x 2 . . . x k , . . . 记 为 x k x_1,x_2...x_k,...记为{x_k} x1,x2...xk,...xk使得某个 x k x_k xk恰好是问题的一个最优解,或者该点列 x k {x_k} xk收敛到问题的一个最优解 x ∗ x^* x,这就是迭代法。
梯度下降法 利用梯度信息,使得每次迭代,函数的值总在下降的算法叫做梯度下降算法

梯度下降法的框架

  1. 只要 ∇ f ( x ) T d < 0 \nabla f(x)^T d < 0 f(x)Td<0,就进行迭代 x k + 1 = x k + α k d k x^{k+1} = x^k + \alpha^kd^k xk+1=xk+αkdk
  2. 由梯度产生下降 d k = − D k ∇ f ( x k ) w i t h D k > 0 d^k = -D^k \nabla f(x^k) with D^k > 0 dk=Dkf(xk)withDk>0
  3. 根据一维搜索确定 α \alpha α
    ∇ f ( x ) T d < 0 \nabla f(x)^T d < 0 f(x)Td<0函数仍在下降可以通过泰勒展开式加以证明。

无约束优化方法举例,最速下降算法,牛顿算法

  • 最速下降算法对f(x)进行一阶展开,将f(x)理解为线性,得到d= - ∇ f ( x ) \nabla f(x) f(x)的下降算法;
  • 牛顿法对f(x)进行二阶展开,将f(x)进行局部二次化,得到d= - ∇ f ( x ) [ ∇ 2 f ( x ) ] − 1 \nabla f(x)[\nabla^2f(x)]^{-1} f(x)[2f(x)]1
  • 我们可以对f(x)进行更高阶的展开,但是无法写成诸如 f ( x ) = x T Q x + b x f(x ) = x^TQx+bx f(x)=xTQx+bx这样的形式
  • 后续的拟牛顿等其他算法是改进牛顿法中对于矩阵的求逆;

约束优化方法举例,有效集法和罚函数法

对于约束,下降方向很难保证是可行方向,最直观的做法是转化为一系列无约束优化问题,来进行求解。

  • 有效集法通过active coinstraints利用等式成立的不等式,通过拉格朗日乘子法,转为无约束,求解后,重新通过active coinstraints和拉格朗日构造无约束优化问题,指导达到KKT点。
  • 通过对违反约束加惩罚,使得最终最终的近似解满足约束并且达到近似最优值。

4. 解决优化问题的一般框架

在这里插入图片描述
在这里插入图片描述
当我们需要求解一个数学模型,可以按照无约束规划直接求解,当解满足约束的时候,我们便得到了问题的最优解,如果不可以我们按照上面的流程图所画的一步一步求解。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值