凸优化学习-(二十七)有约束优化算法——牛顿法、log barrier

凸优化学习

学习笔记

一、有约束凸问题分析

首先,介绍一下 log barrier \text{log barrier} log barrier方法:
min ⁡ f 0 ( x ) s.t. f i ( x ) ≤ 0 i = 1 ⋯ m h i ( x ) = 0 i = 1 ⋯ p ⇔ min ⁡ f 0 ( x ) − ∑ i = 1 m u i log ⁡ ( − f i ( x ) )     i = 1 ⋯ m s.t. h i ( x ) = 0 i = 1 ⋯ p \begin{aligned} \min&& f_0(x)&\\ \text{s.t.}&&f_i(x)&\le0\qquad i=1\cdots m\\ &&h_i(x)&=0\qquad i=1\cdots p\\ \Leftrightarrow\qquad\min&& f_0(x)-\sum^m_{i=1}u_i\log \big(-f_i(x)\big)&\qquad\quad\ \ \ i=1\cdots m\\ \text{s.t.} &&h_i(x)&=0\qquad i=1\cdots p\\ \end{aligned}\\ mins.t.mins.t.f0(x)fi(x)hi(x)f0(x)i=1muilog(fi(x))hi(x)0i=1m=0i=1p   i=1m=0i=1p
这是一个惩罚的思想,见过很多次了。具体来说就是 f i ( x ) → 0 f_i(x)\rightarrow0 fi(x)0时, p ∗ → + ∞ p^*\rightarrow+\infty p+,根本无法得到最优解,就好像有一个“栅栏”一样,阻止 f i ( x ) f_i(x) fi(x)趋近于 0 0 0,让它只能小于 0 0 0

基于 log barrier \text{log barrier} log barrier方法,我们之后所有的约束都只讨论等式约束,不等式约束用 log barrier \text{log barrier} log barrier去掉。
即所有的问题都形如:
min ⁡ f 0 ( x ) s.t. h i ( x ) = 0 i = 1 ⋯ p \begin{aligned} \min&& f_0(x)&\\ \text{s.t.} &&h_i(x)&=0\qquad i=1\cdots p\\ \end{aligned} mins.t.f0(x)hi(x)=0i=1p
KKT \text{KKT} KKT条件为:
{ h i ( x ) = 0 ∇ f 0 ( x ) + ∑ i = 1 p v i ∇ h i ( x ) = 0 \begin{cases} h_i(x)=0\\ \nabla f_0(x)+\sum\limits_{i=1}^pv_i\nabla h_i(x)=0 \end{cases} hi(x)=0f0(x)+i=1pvihi(x)=0
这里要分类讨论,即 KKT \text{KKT} KKT条件是线性方程组或者是非线性方程组两种。
KKT \text{KKT} KKT条件是线性方程组时,按照解线性方程组的方法解就行了,属于比较简单的类别,这里就不赘述了,我们主要研究怎么在 KKT \text{KKT} KKT条件非线性方程组时算出最优解。

二、牛顿法( Newton’s Method \text{Newton's Method} Newton’s Method

在优化过程中的每一步,我们实质上都在优化这么一个问题:
min ⁡ d f 0 ( x k + d ) s.t. h i ( x k + d ) = 0 i = 1 ⋯ p \begin{aligned} \min_d&& f_0(x^k+d)&\\ \text{s.t.} &&h_i(x^k+d)&=0\qquad i=1\cdots p\\ \end{aligned} dmins.t.f0(xk+d)hi(xk+d)=0i=1p
为了使得到的 KKT \text{KKT} KKT条件线性,我们对 f 0 ( x k + d ) f_0(x^k+d) f0(xk+d) x k x^k xk二阶泰勒展开,上述问题可以约等价于:
min ⁡ d f 0 ( x k ) + ∇ f T ( x k ) d + 1 2 d T ∇ 2 f ( x k ) d s.t. h i ( x k + d ) = 0 i = 1 ⋯ p \begin{aligned} \min_d&& f_0(x^k)+\nabla f^T(x^k)d+\frac 1 2d^T\nabla^2f(x^k)d&\\ \text{s.t.} &&h_i(x^k+d)&=0\qquad i=1\cdots p\\ \end{aligned} dmins.t.f0(xk)+fT(xk)d+21dT2f(xk)dhi(xk+d)=0i=1p
此时每一步的 KKT \text{KKT} KKT条件为:
{ h i ( x k + d k ) = 0 ∇ f 0 ( x k ) + ∇ 2 f T ( x k ) d k + ∑ i = 1 p v i ∗ ∇ h i ( x k ) = 0 \begin{cases} h_i(x^k+d^k)=0\\ \nabla f_0(x^k)+\nabla^2f^T(x^k)d^k+\sum\limits_{i=1}^pv_i^*\nabla h_i(x^k)=0 \end{cases} hi(xk+dk)=0f0(xk)+2fT(xk)dk+i=1pvihi(xk)=0
这就是一个线性方程组了,每一步的 d d d都能很好的求出来。事实上,当没有 h i ( x k + d k ) = 0 h_i(x^k+d^k)=0 hi(xk+dk)=0这一项约束时,很显然就得到 d k = − ∇ f 0 ( x k ) ( ∇ 2 f T ( x k ) ) d^k=-\nabla f_0(x^k)\big(\nabla^2f^T(x^k)\big) dk=f0(xk)(2fT(xk)),不就是无约束的牛顿法吗?

个人思考

直接解一个非线性方程组往往是比较棘手的问题,牛顿法的思路就是将解一个非线性的 KKT \text{KKT} KKT条件转换为解许多线性的方程组,具体就是将求解分为很多步,每一步都有一个当前的 KKT \text{KKT} KKT条件,用一个泰勒展开去构造一个近似问题,而这个近似问题的 KKT \text{KKT} KKT条件是线性的。这样,通过不断迭代,我们最终能得到最优解。

纸质笔记

在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值