Introduction

一个凸优化问题具有以下基本形式:
minxDf(x)subject togi(x)0, i=1,...,mhj(x)=0, j=1,...,r \begin{aligned} \min_{x\in D} f(x)\qquad\qquad\qquad\\ subject\ to\qquad g_i(x)\leq 0,\ i=1,...,m \\ h_j(x)=0,\ j=1,...,r\\ \end{aligned}

其中,ffgig_i都是凸函数的,且hjh_j是仿射变换。凸优化问题有一个良好的性质,即对于一个凸优化问题来说,任何局部最小值都是全局最小值。凸优化问题是优化问题中被研究得比较成熟的,也是非凸优化的基础,许多非凸优化问题也被局部近似为凸优化问题求解。
凸优化基础(Convex Optimization basics)

凸集和凸函数

凸集

凸集的定义

一个集合cRnc \subseteq R^n是凸集,如果对任意x,yCx,y\in C都有
tx+(1t)yC, for all 0t1tx+(1-t)y\in C,\ for\ all\ 0\leq t\leq 1

许多常见的集合,如空集,点、线集合,仿射空间{x:Ax=b, for given A,b}\{x:Ax=b,\ for\ given\ A,b\}都属于凸集。正因如此,对于凸集中的变量做仿射变换得到的仍然是凸集。

凸函数

凸函数的定义

如果函数f: RnRf:\ R^n\rightarrow R是凸函数,那么函数的定义域dom(f)Rndom(f)\subseteq R^n是凸的,且对于所有x,ydom(f)x,y\in dom(f),都有
f(tx+(1t)y)tf(x)+(1t)f(y), for 0t1f(tx+(1-t)y)\leq tf(x)+(1-t)f(y),\ for\ 0\leq t\leq 1

换句话说,函数永远不会高于f(x)f(x)f(y)f(y)两点连线。
凸优化基础(Convex Optimization basics)
在凸函数中有两种比较重要的特例:

  1. 严格凸函数(strictly convex):把上述公式的\leq变为<<,即函数永远低于f(x)f(x)f(y)f(y)两点连线,把线性情况给排除了。
  2. 强凸函数(strongly convex):即ff至少与二次函数一样凸,其最高阶数不小于2.
    强凸意味着严格凸,他们都是凸函数的子集,他们的关系为:
    strongly convexstrictly convexconvexstrongly\ convex \subset strictly\ convex \subset convex

一些常见的函数如,指数函数,仿射函数,以及常用的范数和最大值函数等,都是凸函数。

凸函数的性质

从凸函数的定义我们可以得到两个性质:

  1. 一阶特性:如果ff是可微的,那么ff是凸函数,当且仅当dom(f)dom(f)是凸的,且对于所有x,ydom(f)x,y\in dom(f),都有
    f(y)f(x)+f(x)T(yx)f(y)\geq f(x)+\nabla f(x)^T (y-x) 因此对于一个可微的凸函数来说,f(x)=0x minimizesf\nabla f(x)=0 \Leftrightarrow x\ minimizes f

  2. 二阶特性:如果ff是二次可微的,那么ff是凸函数,当且仅当dom(f)dom(f)是凸的,且对于所有xdom(f)x\in dom(f)都有2f(x)0\nabla ^2 f(x)\geq 0

其次我们还能得到詹森不等式(Jensen’s inequality):如果ff是凸的,且XX是定义在dom(f)dom(f)上的一个随机变量,那么有f(E[X])E[f(x)]f(E[X])\leq E[f(x)]

凸优化问题

前面我们给出了凸优化问题的定义,这里我们讨论凸优化问题的一些性质。

解集

XoptX_{opt}为一个给定凸优化问题的所有解的集合,其可以写为:
Xopt=argminxDf(x)X_{opt}=\arg\min_{x\in D} f(x)

subject togi(x)0, i=1,...,msubject\ to\qquad g_i(x)\leq 0,\ i=1,...,m

Ax=bAx=b

XoptX_{opt}为凸集。
ff为严格凸函数,那么解是唯一的,即XoptX_{opt}只包含一个元素。

一阶最优化条件

对于一个凸优化问题
minxf(x) subject to xC\min_{x}f(x)\ subject\ to\ x\in C

ff可微,一个可行点是最优的,当
f(x)T(yx)0\nabla f(x)^T(y-x)\geq 0

换句话说,从当前点xx起的所有可行方向都与梯度方向对齐。当最优化问题是无约束时,该条件简化为f(x)=0\nabla f(x)=0

凸优化问题的层次

凸优化问题有许多分支,常见的有线性规划(linear programs, LPs),二次规划(qudaratic programs, QPs),半定规划(semidefinite programs, SDPs),锥规划(cone programs, CPs)。他们的关系为:
LPsQPsSDPsCPsConvex ProgramsLPs \subset QPs \subset SDPs \subset CPs \subset Convex\ Programs

典型的凸优化问题

线性规划

线性规划是最典型的一类凸优化问题,其基本形式为:
minxcTxsubject toDxdAx=b \begin{aligned} \min_{x} c^Tx\\ subject\ to\qquad Dx\leq d\\ Ax=b \end{aligned}

许多解决线性规划的方法是单纯形法和内点法。压缩感知中的基追踪算法就是线性规划问题。
例子:基追踪
给定yRny\in R^nXRn×pX\in R^{n\times p},其中p>np>n。对于一个欠定线性系统Xβ=yX\beta =y,我们想要找到其最稀疏的解,其可以表达为非凸优化形式:
minββ0subject toXβ=y \begin{aligned} \min_{\beta}\|\beta\|_0\\ subject\ to\qquad X\beta =y \end{aligned}

其中,β0=j=1p1{βj0}\|\beta\|_0=\sum^p_{j=1}1\{\beta_j \neq0\},为β\beta的零阶范数(l0l_0 norm)。
由于该问题是非凸的,我们可以对其做凸松弛,即进行l1l_1 norm近似,常常称为基追踪:
minββ1subject toXβ=y \begin{aligned} \min_{\beta}\|\beta\|_1\\ subject\ to\qquad X\beta =y \end{aligned}

基追踪是一个线性规划问题,可以将其变为基本形式:
minβ,z1Tzsubject tozβzβXβ=y \begin{aligned} \min_{\beta,z}1^Tz\\ subject\ to\qquad z\geq \beta\\ z\geq -\beta\\ X\beta =y \end{aligned}

二次规划

二次规划的基本形式为:
minx cTx+12xTQxsubject toDxdAx=b \begin{aligned} \min_{x}\ c^Tx+\frac{1}{2}x^TQx\\ subject\ to\qquad Dx\leq d\\ Ax=b \end{aligned}

其中,Q0Q\succeq 0,即为正定的。
例子:支持向量机(SVM)
给定y{1,1}ny\in \{-1,1\}^nXRn×pX\in R^{n\times p}有行向量x1,...,xnx_1,...,x_n,则支持向量机问题定义为:
minβ,β0,ξ12β22+Ci=1nξisubject toξi0, i=1,...,nyi(xiTβ+β0)1ξi, i=1,...,n \begin{aligned} \min_{\beta,\beta_0,\xi} &\frac{1}{2}\|\beta\|^2_2+C\sum^n_{i=1}\xi_i\\ subject\ to\qquad & \xi_i\geq 0,\ i=1,...,n\\ &y_i(x_i^T\beta + \beta_0) \geq1-\xi_i,\ i=1,...,n \end{aligned}

例子:lasso
给定yRny\in R^nXRn×pX\in R^{n\times p},则lasso问题定义为:
minβyXβ22subject toβ1s \begin{aligned} \min_{\beta} \|y-X\beta\|^2_2\\ subject\ to\qquad \|\beta\|_1\leq s \end{aligned}

其中,s0s\geq 0是一个可调参数。
将约束条件作为惩罚项加入到目标函数中可变形为:
minβyXβ22+λβ1 \min_{\beta} \|y-X\beta\|^2_2+\lambda \|\beta\|_1

这两种形式是等价的。

参考资料

CMU:Convex Optimization

相关文章: