凸优化也可以解释为目标函数 f(x) 为凸函数而起约束围成的可行域为一个凸集。
凸集
对于集合 K ,∀x1,x2∈K,若 αx1+(1−α)x2∈K,其中α∈[0,1]),则 K 为凸集,即集合中任意两点的连线均在凸集中,如在下图所示
有时候需要对某个凸集进行放缩转换等操作,对凸集进行以下操作后,得到的集合依然是凸集
- 凸集的重叠(intersection)部分任然为凸集
- 若 C 为凸集,则aC+b={ax+b,x∈C,∀a,b}也为凸集
- 对于函数 f(x)=Ax+b, 若 C 为凸集,则下面得到的转换也为凸集,注意这里的 A 是矩阵f(C)={f(x):x∈C}而当 D 是一个凸集的时候,下面得到的转换也是凸集f−1(D)={x:f(x)∈D}这两个转换互为逆反关系
常见的凸集有下面这些(下式中 a,x,b 均为向量, A 为矩阵)
- 点(point)、线(line)、面(plane)
- norm ball: {x:||x||≤r}
- hyperplane: {x:aTx=b}
- halfspace: {x:aTx≤b}
- affine space: {x:Ax=b}
- polyhedron: {x:Ax<b}
:f(y)≥f(x)+∇f(x)(y−x)
- 二阶特性(Second-order characterization):
函数的∇2f(x)是半正定的。 - Jensen不等式(Jensen’s inequality):f(E(x))≤E(f(x))这里的 E 表示的是期望,这是从凸函数拓展到概率论的一个推论,这里不详细展开。
- sublevel sets,即集合 {x:f(x)≤t} 是一个凸集/凸集,凸函数和凸优化-a587ad27.png)
凸函数
凸函数的定义如下
设 f(x) 为定义在 n 维欧氏空间中某个凸集 S 上的函数,若对于任何实数 α(0<α<1) 以及 S 中的任意不同两点 x 和 y,均有
f(αx(1)+(1−α)x(2))≤αf(x(1))+(1−α)f(x(2))则称 f(x) 为定义在凸集 S 上的凸函数。假如上面不等式中的 ≤ 改为 <, 则称其为严格凸函数。
判断凸函数
根据凸函数的定义来判断一个函数是否为凸函数往往比较困难,这里分别通过一阶条件和二阶条件判断凸函数。
一阶条件
设 f(x) 在凸集 S上有一阶连续偏导数,则 f(x) 为 S 上的凸函数的充要条件为:对于 任意不同两点 x(1)和 x(2),均有
f(x(2))≥f(x(1))+∇f(x(1))T(x(2)−x(1))二阶条件
设 f(x) 在凸集 S上有二阶连续偏导数,则 f(x) 为 S上的凸函数的充要条件为:f(x) 的海塞矩阵 ∇2f(x)在 S 上处处半正定(为凹函数的充要条件为处处半负定)。
注意:假如海塞矩阵 ∇2f(x)在 S 上处处正定,则 f(x) 为严格凸函数,但是反过来不成立。
顺序主子式的定义
海塞矩阵判断凸函数例子
凸函数的性质
凸函数有几个非常重要的性质,对于一个凸函数 f, 其重要性质
- 一阶特性(First-order characterization):f(y)≥f(x)+∇f(x)(y−x)
- 二阶特性(Second-order characterization):∇2f(x)⪰0这里的 ⪰0 表示 Hessian 矩阵是半正定的。
- Jensen不等式(Jensen’s inequality):f(E(x))≤E(f(x))这里的 E 表示的是期望,这是从凸函数拓展到概率论的一个推论,这里不详细展开。
- sublevel sets,即集合 {x:f(x)≤t} 是一个凸集
常见的凸函数有下面这些
- 仿射函数( Affine function ): aTx+b
- 二次函数( quadratic function),注意这里的 Q 必须为半正定矩阵: 12xTQx+bTx+c(Q⪰0)
- 最小平方误差( Least squares loss ): ||y−Ax||22 (总是凸的,因为 ATA 总是半正定的)
- 示性函数(Indicator function):IC(X)={0x∈C∞x∉C
- max function: f(x)=max{x1,…xn}
范数(Norm):范数分为向量范数和矩阵范数,任意范数均为凸的,各种范数的定义如下
向量范数
0范数:||x||0 向量中非零元素的个数
1范数: ||x||1=∑ni=1|xi|
p 范数:||x||p=(∑ni=1xpi)1/p (p>1)
无穷范数: ||x||∞=maxi=1,…n|xi|矩阵范数
核(nuclear)范数: ||X||tr=∑ri=1σi(X) , (σi(X)是矩阵分解后的奇异值,核范数即为矩阵所有奇异值之和)
谱(spectral)范数:||X||op=maxi=1,…rσi(X), 即为最大的奇异值
凸优化
对于下面的优化问题
minxf(x)s.t.gi(x)≤0, i=1,…,mhj(x)=0, j=1,…,r当 f(x),gi(x 均为凸函数, 而 hj(x) 为仿射函数(affine function)时,该优化称为凸优化,注意上面的 min 以及约束条件的符号均要符合规定。
凸优化也可以解释为目标函数 f(x) 为凸函数而起约束围成的可行域为一个凸集。
常见的一些凸优化问题
常见的一些凸优化问题有:线性规划(linear programs),二次规划(quadratic programs),半正定规划(semidefinite programs),且 LP∈QP∈SDP, 即后者是包含前者的关系。
- 线性规划问题一般原型如下(c为向量,D,A为矩阵)
- 二次规划问题一般原型如下(要求矩阵 Q 半正定)
- 而半正定规划问题一般原型如下(X 在这里表示矩阵)