内点法

简单介绍处理不等式约束问题的内点法的算法流程。

不等式约束的极小化问题

minf0(x) min f 0 ( x )

s.t.fi(x)0 s . t . f i ( x ) ≤ 0

Ax=b A x = b

假设该问题可解,即存在最优的 x x ⋆ ,用 p p ⋆ 表示最优值 f0(x) f 0 ( x ⋆ )

用内点法求解问题,主要分为两种:

  1. 用Newton方法或者求解一系列等式约束问题
  2. 求解一系列KKT条件的修改形式

这里只讨论一种特殊的内点法–障碍法

对数障碍函数和中心路径

一种尝试是将不等式约束问题近似转化为等式约束问题,从而应用Newton方法求解。 因此,可以将原问题写成:

minf0(x)+i=1mI_(fi(x)) min f 0 ( x ) + ∑ i = 1 m I _ ( f i ( x ) )

s.t.Ax=b s . t . A x = b

其中 I_ I _ 是非正实数的示性函数:

I_(u){0u0u>0 I _ ( u ) { 0 u ≤ 0 ∞ u > 0

这样,我们就成功转化为等式约束,可以,目标函数一般情况下不可微,因此不能运用Newton方法。

对数障碍

既然示性函数不可微,我们很自然的想法就是找一个近似的可微函数来代替:

I^_(u)=(1/t)log(u) I ^ _ ( u ) = − ( 1 / t ) log ⁡ ( − u )

我们可以画出对数障碍函数的图像发现,是非减函数,并且当 u>0 u > 0 时取值为 ,符合我们的要求。

我们将函数 ϕ(x)=mi=1log(fi(x)) ϕ ( x ) = − ∑ i = 1 m log ⁡ ( − f i ( x ) ) 称为对数障碍函数。可以将等式约束问题重写为:

minf0(x)+i=1m(1/t)log(fi(x)) min f 0 ( x ) + ∑ i = 1 m − ( 1 / t ) log ⁡ ( − f i ( x ) )

s.t.Ax=b s . t . A x = b

既然对数障碍只是原问题的近似,因此需要回答的问题就是其解的效果与最优解差距多大?这个问题将在中心路径中解决。

先给出对数障碍的梯度和Hessian矩阵:

ϕ(x)=i=1m1fi(x)fi(x) ▽ ϕ ( x ) = ∑ i = 1 m 1 − f i ( x ) ▽ f i ( x )

2ϕ(x)=i=1m1fi(x)2fi(x)fi(x)T+i=1m1fi(x)2fi(x) ▽ 2 ϕ ( x ) = ∑ i = 1 m 1 f i ( x ) 2 ▽ f i ( x ) ▽ f i ( x ) T + ∑ i = 1 m 1 − f i ( x ) ▽ 2 f i ( x )

中心路径

考虑等价问题:

mintf0(x)+ϕ(x) min t f 0 ( x ) + ϕ ( x )

s.t.Ax=b s . t . A x = b

这里只是多乘了一个 t t ,对最优解没有影响。

对任意t>0 t > 0 ,我们用 x(t) x ⋆ ( t ) 表示问题的最优解 t t 中心点,将这些点的集合定义为问题的中心路径

所有中心路径上的点满足以下充要条件:

Ax(t)=b,fi(x(t))<0 A x ⋆ ( t ) = b , f i ( x ⋆ ( t ) ) < 0

tf0(x(t))+ϕ(x(t))+ATv^=0 t ▽ f 0 ( x ⋆ ( t ) ) + ▽ ϕ ( x ⋆ ( t ) ) + A T v ^ = 0

中心路径的对偶点

g(λ(t),v(t))=f0(x(t))m/tp g ( λ ⋆ ( t ) , v ⋆ ( t ) ) = f 0 ( x ⋆ ( t ) ) − m / t ≤ p ⋆

证明了 x(t) x ⋆ ( t ) 随着 t t ⇒ ∞ 而收敛于最优解。

你可能感兴趣的:(凸优化,凸优化--机器学习数学基础,凸优化)