数学优化入门:凸优化

做科研时,曾花了段时间学习凸优化,后来发现ML中其应用也非常普遍,想来今后可能还会接触,干脆做个系统的总结,方便以后查询。

博文内容主要参考Boyd(Stanford)的Convex Optimization,配套的slides,以及部分网络材料,感兴趣的朋友可以一起学习探讨。


1、前言

凸优化,是数学最优化的一个子领域,研究定义于凸集中的凸函数最小化的问题。虽然条件苛刻,但应用广泛,具有重要价值,主要体现在:

  • 凸优化本身具有很好的性质
    一来,凸问题的局部最优解就是全局最优解。二来,凸优化理论中的Lagrange对偶,为凸优化算法的最优性与有效性提供了保证。近些年来关于凸问题的研究非常透彻,以至于只要把某一问题抽象为凸问题,就可以近似认为这个问题已经解决了。

  • 凸优化具有很强扩展性
    对于非凸问题,通过一定的手段,要么可以等价地化归为凸问题,要么可以用凸问题去近似、逼近得到边界。例如,几何规划、整数规划,虽然本身是非凸的,但是可以借助凸优化手段去解,这就极大地扩张了凸优化的应用范围。
    以深度学习来说,其中关键的反向传播(Back Propagation)算法,本质就是凸优化算法中的梯度下降法,即使问题极度非凸,梯度下降还是有很好的表现,当然深度学习的机制还有待研究。

  • 凸优化的应用十分广泛
    如线性回归、范数逼近、插值拟合、参数估计,以及许多的几何问题等。

  • 针对其他非凸问题的研究还不充分
    凸优化之重要,从另一个角度说,就是我们没有找到很好的非凸优化的算法,这一部分还有许多学者都在努力。

虽然说凸优化的研究已经比较成熟,但由于还没有行业公认的通行解决方法,所以Boyd也说过“we cannot claim that solving general convex optimization problem is a technology, like solving least-squares or linear programming problems……it is fair to say that interior-point methods are approaching a technology”,即目前已有的凸优化方法还不能称之为技术。但还是说那句话,基本上,如果你把一个现实问题建成凸优化问题模型,你就可以认为这个问题已经被解决了。

多说几句,对于非凸优化中,凸优化同样起到很重要的作用:

  • 解决一个非凸优化问题时,可以先试图建立一个简化的多凸优化模型,解出以后作为非凸问题的一个起始点

  • 很多非凸优化问题的启发式算法的基础都是基于凸优化

  • 可以先建立非凸优化的松弛问题,使用凸优化算法求解,然后作为非凸优化问题的上限或下限

那么,下面将分几章花些篇幅好好讲解下凸优化的主要知识点和常用结论。


2、凸集

2.1 定义

A set C C is convex, if θx+(1θ)yC θ x + ( 1 − θ ) y ∈ C , for any x,yC x , y ∈ C and θR θ ∈ R with 0θ1 0 ≤ θ ≤ 1 .

简言之,凸集即过集合C内任意两点的线段均在集合C内。

2.2 常用凸集

  • Rn R n
  • The non-negative orthant: Rn+ R + n
  • Norm ball: {x:x1} { x : ‖ x ‖ ≤ 1 }
  • Affine subspace: {xRn:Ax=b,ARn×n,bRn×1} { x ∈ R n : A x = b , A ∈ R n × n , b ∈ R n × 1 }
  • Polyhedra: {xRn:Ax=b} { x ∈ R n : A x ≺= b }
  • Intersections of convex sets (Note here that the union of convex sets in general is not convex)
  • Postive semidefinite cone: Sn+={XSn|X=0} S + n = { X ∈ S n | X ≻= 0 } (Note: 将前述半正定矩阵改为正定阵、负定阵、半负定阵,仍成立)

3、凸函数

3.1 定义

A function f:RnR f : R n → R is convex, if its domain D(f) D ( f ) is a convex set, and if f(θx+(1θ)y)θf(x)+(1θ)f(y) f ( θ x + ( 1 − θ ) y ) ≤ θ f ( x ) + ( 1 − θ ) f ( y ) for all x,yD(f) x , y ∈ D ( f ) and θR,0θ1 θ ∈ R , 0 ≤ θ ≤ 1 .

凸函数的一阶微分条件

Suppose a function f:RnR f : R n → R is differentiable, then f f is convex if and only if: D(f) D ( f ) is a convex set and for all x,yD(f) x , y ∈ D ( f ) , f(y)f(x)+(xf(x))T(yx) f ( y ) ≥ f ( x ) + ( ∇ x f ( x ) ) T ( y − x ) .

凸函数的二阶微分条件

Suppose a function f:RnR f : R n → R is twice differentiable, then f f is convex if and only if: D(f) D ( f ) is a convex set and its Hessian is postive semidefinite.

3.2 常用凸函数

  • 负熵函数: xlogx x l o g x
  • 范数函数: xp ‖ x ‖ p
  • f(x)=max(x1,...,xn) f ( x ) = m a x ( x 1 , . . . , x n )
  • f(x)=log(ex1+...+exn) f ( x ) = l o g ( e x 1 + . . . + e x n )
  • f(x)=(ni=1xi)1/n,D(f)=Rn++ f ( x ) = ( ∏ i = 1 n x i ) 1 / n , D ( f ) = R + + n
  • f(X)=log(detX),D(f)=Sn++ f ( X ) = l o g ( det X ) , D ( f ) = S + + n

3.3 保凸运算

  • 凸函数的非负加权和
  • 凸函数与仿射变换的复合: g(x)=f(Ax+b) g ( x ) = f ( A x + b )
  • 逐点最大、最小值: f(x)=max(f1(x),...,fn(x)) f ( x ) = m a x ( f 1 ( x ) , . . . , f n ( x ) ) g(x)=infyCf(x,y) g ( x ) = i n f y ∈ C f ( x , y )
  • 透视变换: g(x,t)=tf(x/t) g ( x , t ) = t f ( x / t )

4、凸优化问题

4.1 定义

通常将一个优化问题写成以下标准形式:

mins.t.:f(x)gi(x)0,i=1,...,mhj(x)=0,j=1,...,t min f ( x ) s . t . : g i ( x ) ≤ 0 , i = 1 , . . . , m h j ( x ) = 0 , j = 1 , . . . , t

f(x) f ( x ) gi(x) g i ( x ) 均为凸函数, hj(x) h j ( x ) 均为仿射函数时,上述优化问题称之为凸优化问题。

关于凸优化问题再补充几个特点:

  • 一般没有解析解
  • 不考虑等式约束时,计算复杂度大致正比于 max{n3,n2m,F} max { n 3 , n 2 m , F } ,其中 F F 是对所有 gi g i 及其一阶、二阶导的计算代价
  • 虽然难以识别,但可以通过很多手段进行转化

4.2 优化问题的等价形式

注意以下等价形式不要求为凸问题,等价和相同不是一个概念。

  • 变量替换
  • 目标函数和约束函数的变换
  • 松弛变量(不等式约束转变为等式约束加非负约束)
  • 消除等式约束
  • 消除线性等式约束
  • 引入等式约束
  • 优化部分变量
  • 上境图问题形式
  • 隐式与显式约束

4.3 常用凸优化问题

1)Least-squares(LS)

作为凸优化问题的一个特例,其成熟解法已经可以称之为technology。

对于Least-squares问题: minAxb22 min ‖ A x − b ‖ 2 2 ,其解析解为 x=(ATA)1ATb x ∗ = ( A T A ) − 1 A T b ,对于 Ak×n A ∈ R k × n ,在不结构化情况下,计算复杂度为 O(n2k) O ( n 2 k )

2)Linear programming(LP)

作为凸优化问题的一个特例,虽然没有解析解,但仍有可靠高效的算法和工具解决,也可以称之为technology。

对于Linear programming问题:

mins.t.:cTx+daTixbi,i=1,...,m min c T x + d s . t . : a i T x ≤ b i , i = 1 , . . . , m

mn m ≥ n 时,计算复杂度为 O(n2m) O ( n 2 m )

但线性规划问题并不像前面的最小二乘问题那么好辨别,通常需要通过一些标准的小技巧将原问题转化为线性规划问题,如包含 l1 l 1 范数或者 l l ∞ 范数,或者分段线性函数的问题等。

3)Quadratic programming(QP)

mins.t.:12xTPx+qTx+rGx=hAx=bPSn+ min 1 2 x T P x + q T x + r s . t . : G x ≺= h A x = b P ∈ S + n

4)Quadratically constrained quadratic programming(QCQP)

mins.t.:12xTP0x+qT0x+r012xTPix+qTix+riAx=bPiSn+ min 1 2 x T P 0 x + q 0 T x + r 0 s . t . : 1 2 x T P i x + q i T x + r i A x = b P i ∈ S + n

5)Second-order cone programming(SOCP)

mins.t.:fTxAix+b2cTix+diFx=g min f T x s . t . : ‖ A i x + b ‖ 2 ≤ c i T x + d i F x = g

6)Semidefinite programming (SDP)

mins.t.:Tr(CX)Tr(AiX)=biX=0 min T r ( C X ) s . t . : T r ( A i X ) = b i X ≻= 0


5、Lagrange Duality

对于有约束的优化问题,通过拉格朗日法可以将其转变为等价的无约束优化问题。在这个过程中,新构造的拉格朗日函数存在好玩的对偶性质,从而衍生出了对偶问题。原问题与对偶问题之间的特殊性质,为我们研究优化问题提供了新的方向和方法。

因此,这部分的思路是:对4.1定义的优化问题,通过拉格朗日法构造拉格朗日函数,从而生成原问题Primal problem和对偶问题Dual problem,然后介绍一些引理,揭示原问题与对偶问题之间的关系。

5.1 Primal problem

首先要求4.1提出的标准优化问题中的 f(x) f ( x ) gi(x) g i ( x ) hj(x) h j ( x ) 均为连续可微函数,构造广义拉格朗日函数

L(x;α,β)=f(x)+i=1mαigi(x)+j=1tβjhj(x) L ( x ; α , β ) = f ( x ) + ∑ i = 1 m α i g i ( x ) + ∑ j = 1 t β j h j ( x )

其中, α α β β 是拉格朗日乘子,且 αi0 α i ≥ 0 x x 称为primal变量, α α β β 称为dual变量。
注意, L(x;α,β) L ( x ; α , β ) 是关于 α α β β 的仿射函数。

从而,我们可以构造Primal problem

minxθP(x)=minx[maxα,β;αi0L(x;α,β)] min x ⁡ θ P ( x ) = min x ⁡ [ max α , β ; α i ≥ 0 ⁡ L ( x ; α , β ) ]

显然有:

θP(x)=f(x)+{0,ifxisprimalfeasible+,ifxisnotprimalfeasible θ P ( x ) = f ( x ) + { 0 , i f x i s p r i m a l f e a s i b l e + ∞ , i f x i s n o t p r i m a l f e a s i b l e

其中,primal feasible意味着 x x 满足4.1优化问题中的所有约束条件。
注意, θP(x) θ P ( x ) 是关于 x x 的凸函数,因此,主问题求解的核心在内层最大化。

因此,可以看出这里构建的primal problem和4.1的优化问题是等价的,即同解。这样一来,就把原始优化问题表示成了广义拉格朗日函数的极小极大问题,我们定义primal problem的最优值 p=minxθP(x)=θP(x) p ∗ = min x ⁡ θ P ( x ) = θ P ( x ∗ ) ,称为primal problem的值。

5.2 Dual problem

好了,下面我们来构造神奇的Dual problem

maxα,β;αi0θD(α,β)=maxα,β;αi0[minxL(x;α,β)] max α , β ; α i ≥ 0 ⁡ θ D ( α , β ) = max α , β ; α i ≥ 0 ⁡ [ min x ⁡ L ( x ; α , β ) ]

对于上述广义拉格朗日函数的极大极小问题,定义dual problem的最优值 d=minα,β;αi0θD(α,β)=θD(α,β) d ∗ = min α , β ; α i ≥ 0 ⁡ θ D ( α , β ) = θ D ( α ∗ , β ∗ ) ,称为primal problem的值。
注意, θD(α,β) θ D ( α , β ) 是关于 α α β β 的凹函数,因此,对偶问题求解的核心在内层最小化。。

5.3 Primal problem与Dual problem的关系

1)Lemma 1

If (α,β) ( α , β ) are dual feasible, then θD(α,β)p θ D ( α , β ) ≤ p ∗ .

2)Lemma 2(Weak Duality)

For any pair of primal and dual problems, dp d ∗ ≤ p ∗ .

注意,此性质always holds,无论优化问题是凸的还是非凸的,通常用来寻找困难问题的下界。

3)Lemma 3 (Strong Duality)

For any pair of primal and dual problems, which satisfy certain conditions called constraint qualifications, then d=p d ∗ = p ∗ .

实际上有不少constraint qualifications可以保证强对偶,我们介绍几种常用的constraint qualification:

  • f=f f = f ∗ ∗ where f f is the perturbation function relating the primal and dual problems and f=f f = f ∗ ∗ is the biconjugate of f f

  • f f is convex and lower semi-continuous (equivalent to the first point by the Fenchel-Moreau theorem)

  • the primal problem is a linear OP

  • Slater’s condition for a convex optimization problem

其中,Slater’s condition更常用,we say that the problem satisfies Slater’s condition if it is strictly feasible, that is:

x0D(f):gi(x0)<0,i=1,...,m;hj(x0)=0,j=1,...,t ∃ x 0 ∈ D ( f ) : g i ( x 0 ) < 0 , i = 1 , . . . , m ; h j ( x 0 ) = 0 , j = 1 , . . . , t

即,if the primal problem is convex, and satisfies the weak Slater’s condition, then strong duality holds.

注意,有些非凸问题也可以满足强对偶。

5.4 Complementary slackness

也称作KKT complementarity,即

If strong duality holds, then αigi(x)=0 α i ∗ g i ( x ∗ ) = 0 for any i i .

直观来看,就是如果 αi>0 α i ∗ > 0 gi(x)=0 g i ( x ∗ ) = 0 ,如果 gi(x)<0 g i ( x ∗ ) < 0 αi=0 α i ∗ = 0

5.5 KKT条件

有以下逻辑:当strong duality存在时; x x ∗ 为primal optiaml和 α,β α ∗ , β ∗ 为dual optiaml,则KKT条件成立;当KKT条件成立,则 x x ∗ 为primal optiaml和 α,β α ∗ , β ∗ 为dual optiaml。

下面介绍KKT条件:

xisprimalfeasibleα,βisdualfeasiblecomplementaryslacknessxL(x;α,β)=0 { x ∗ i s p r i m a l f e a s i b l e α ∗ , β ∗ i s d u a l f e a s i b l e c o m p l e m e n t a r y s l a c k n e s s ∇ x L ( x ∗ ; α ∗ , β ∗ ) = 0

5.6 常用案例

1) 如果 f(x),gi(x) f ( x ) , g i ( x ) 是凸函数, hj(x) h j ( x ) 是仿射函数,且存在 x x 使 gi(x)<0 g i ( x ) < 0 对多有 i i 成立,则存在 x;α,β x ∗ ; α ∗ , β ∗ 使得 x x ∗ 是原始问题的解, α,β α ∗ , β ∗ 是对偶问题的解,且 p=d=L(x;α,β) p ∗ = d ∗ = L ( x ∗ ; α ∗ , β ∗ )

2) 如果 f(x),gi(x) f ( x ) , g i ( x ) 是凸函数, hj(x) h j ( x ) 是仿射函数,且存在 x x 使 gi(x)<0 g i ( x ) < 0 对多有 i i 成立,则“ x x ∗ 是原始问题的解, α,β α ∗ , β ∗ 是对偶问题的解”与“ x;α,β x ∗ ; α ∗ , β ∗ 满足KKT条件”是充要关系。

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