凸优化学习(一)凸集与凸函数、凸优化问题

4.1 凸集 convex sets

仿射集(Affine Sets):如果一个集合 C R n 是仿射的,则在C中两点的直线也在C中,若 x 1 C , x 2 C , x = θ x 1 + ( 1 θ ) x 2   C , θ R ,例如Ax=b的解集就是一个仿射集。

凸集:如果集合 C R n 是凸集,如果C中两点间的线段也在C中,即 x = θ x 1 + ( 1 θ ) x 2   C , θ [ 0 , 1 ] 。注意 θ 取值范围的不同。

常见的凸集:

  • 所有 R n

  • 所有 R + n

  • 超平面(Hyperplane): C = { x | a T x = b } 既是仿射集又是凸集

  • 半空间(Halfspace) C = { x | a T x b } C = { x | a T x b } 只是凸集

  • 范数球:满足 x p 1 , p 1 的集合称为范数球。(依据范数的三角不等式可证)

    但是 x p = 1 , p 1 不是凸集。当 0 < p < 1 时, x p 1 也不是凸集。

  • 多面体(polyhedron):有限个半空间和超平面的交集。(凸集的交集是凸集)

    P = { x | A x b , C x = d } , A R m × n , b R m , C R p n , d R p , 由于A,C都是矩阵,因此对应了有限个半空间和超平面。

凸集的性质:

凸集的交集是凸集。

凸集的并集不一定是凸集。

4.2 凸函数

一个函数 f : R n R 被称为凸函数,如果:

  1. f的定义域 d o m ( f ) 是凸集
  2. 对于任何 x , y d o m ( f ) , 0 θ 1 , f ( θ x + ( 1 θ ) y ) θ f ( x ) + ( 1 θ ) f ( y )

几何解释:函数值小于连接函数值的线段的值。

凸函数的充要条件

一阶充要条件: f ( x 1 ) f ( x ) + T f ( x ) ( x 1 x ) 对于所有 x 1 , x 均成立。

二阶充要条件:如果函数f二阶可导,则凸函数的充要条件为: H ( x ) 0 即Hessian矩阵半正定。(如果是正定的,则是严格凸函数。半负定,则是凹函数)

在实际使用中,使用二阶充要条件比较好用。

证明:凸函数的局部最优解就是全局最优解

假定 x 是局部最优解,则在 x 的邻域内的点z有 f ( x ) f ( z ) 。假设y点为可行域内的任意一点,则 z = ( 1 t ) x + t ) y , t [ 0 , 1 ] ,通过调整t的值,可以使得z保持在 x 的邻域内。根据凸函数定义:

f ( x ) f ( z ) = f ( t x + ( 1 t ) y ) t f ( x ) + ( 1 t ) f ( y )

化简上面的不等式有: f ( x ) f ( y )

由于y为任意一点,因此 x 也是全局最优解。

常见凸函数

  • ax+b: 既是凸函数,也是凹函数
  • x 2 凸函数
  • e α x 凸函数
  • -log(x) 凸函数,x>0
  • x l o g x x 0 凸函数
  • f ( x ) = a T x + b 凸函数、凹函数
  • f ( x ) = x T P x + 2 q T x = r , P 0 , 特别地 f ( x ) = x T x 是凸函数(2范数是凸函数)

凸函数的性质

  • f(x)是凸函数,则f(Ax+b)也是凸函数。例如 y A x 2

  • 如果g(x),h(x)是凸函数,h函数是非递减函数,则 f ( x ) = h ( g ( x ) ) 是凸函数。例如: g ( x ) = y A x 2 , h ( x ) = x 2 x 0 , 则 f ( x ) = y A x 2 2 是凸函数。

  • f 1 , . . . , f m 是凸函数, w 1 , . . . , w m 0 ,则 i = 1 m w i f i 是凸函数,例如:

    f ( x ) = y A x 2 2 + λ x 2 2 是凸函数。(L2正则化项)

  • 逐点最大: f 1 , . . . , f m 是凸函数,则 f ( x ) = m a x { f 1 ( x ) , . . . , f m ( x ) } 是凸函数。例如, f ( x , y ) 对于每个 y A 都是凸函数,则 s u p y A f ( x , y ) 是凸函数(f(x,y)的上确界,可以类比最大值)。

凸函数和凸集的关系

α 水平集或下水平集

一元函数f的 α 水平集为: S α = { x | f ( x ) α }

如果f为凸函数,则 对每个 α S α 都是凸集。反之则不成立。

4.3 凸优化问题

对于一般优化问题:

m i n i m i z e f 0 ( x ) s u b j e c t t o f i ( x ) 0 f o r i = 1 , 2 , . . . , m h i ( x ) = 0 f o r i = 1 , 2 , . . . , p

如果 f 0 ( x ) 是凸函数,且可行域是凸集,则上述优化问题是 凸优化问题。因此, 凸优化问题是在凸集上极小化一个凸的目标函数

凸优化问题要求(可行域是凸集):

  • 不等式约束函数必须是凸的。(若 f i ( x ) 是凸函数,则不等式约束为下水平集,是凸集。)
  • 等式约束函数必须是仿射的。

凸优化问题的最优值写为: p = m i n { f 0 ( x ) : f i ( x ) 0 , h i ( x ) = 0 } ,可能的取值为:

  • p = + 不可行(可行域为空集)
  • p = 称为unbounded below (存在可行点使得 f 0 ( x ) )
  • f 0 ( x ) = p

凸优化问题的重要结论

凸优化问题局部最优就是全局最优

局部最优点x指:存在 R > 0 ,对于所有可行点z,且有 x z 2 R ,满足 f 0 ( x ) f 0 ( z )

全局最优点x指,对于所有可行点,满足 f 0 ( x ) f 0 ( z )

反证法证明

x 是凸优化问题的局部最优点,假设存在一点 x 使得 f 0 ( x ) > f 0 ( x ) ,则由于 f 0 是凸函数:

f 0 ( t x + ( 1 t ) x ) t f ( x ) + ( 1 t ) f ( x )

当(1-t)很小时, x ( t x + ( 1 t ) x ) 2 R ,则 f 0 ( x ) f 0 ( t x + ( 1 t ) x )

可以得到 f 0 ( x ) f 0 ( x ) ,这与假设条件相违背,因此,不存在一点 x 使得 f 0 ( x ) > f 0 ( x ) ,即 x 是全局最优点。

典型凸优化问题

实例

形式转换成凸优化问题

将本质是凸优化问题的问题,从形式上转换为凸优化问题。

对于以下问题,通过定义矩阵和向量的方式,转换为标准的凸优化问题,便于利用软件包进行求解。

CVX软件包

猜你喜欢

转载自blog.csdn.net/zhao_cq/article/details/80878249