本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1. 凸集
集合C被称为凸集,如果C中任意两点间的线段仍然在C中。即对于任意x1,x2∈C和满足0≤θ≤1的θ都有
θx1+(1−θ)x1∈C(1-1)
2. 凸函数
凸函数的原始定义:
函数f:Rn→R是凸的,如果dom f是凸集,且对于任意x,y∈dom f和任意0≤θ≤1,有
f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y)(2-1)
严格凸:上式中当x=y且0≤θ≤1时,不等式严格成立(即取小于号)
几何意义:上述不等式意味着点(x,f(x))和(y,f(y))之间的线段在函数f的图像上方。
2.1. 凸函数的一阶条件
假设f可微(即其梯度∇f在开集dom f内处处存在),则函数f是凸函数的充要条件是dom f是凸集且对于任意x,y∈dom f,下式成立:
f(y)≥f(x)+∇f(x)T(y−x)(2-2)
几何意义:凸函数的一阶Taylor近似是原函数的一个全局下估计,也即凸函数任意一点处的切线都在原函数图像的下方。反之亦然(充分必要条件)
2.2. 凸函数的二阶条件
假设f二阶可微,即对于开集dom f内的任意一点,它的Hessian矩阵或者二阶导数∇2f存在,则函数f是凸函数的充要条件是其Hessian矩阵是半正定阵:即对于所有的x∈dom f有:
∇2f(x)⪰0(2-3)
几何意义:函数图像在点x处具有正(向上)的曲率。
2.1. 凸函数例子
常见的凸函数:
- 指数函数:eax,∀a∈R
- 范数: ∥x∥p=(∣x1∣p+∣x2∣p+⋯+∣xn∣p)1/p,p≥1。Rn上的任意范数均为凸函数。
- 负熵函数:函数xlogx在其定义域(R++或者RX)上是凸函数。
3. 凸优化问题
优化问题的标准形式:
min s.t. f0(x)fi(x)≤0,i=1,2,⋯,mhi(x)=0,i=1,2,⋯,p(3-1)
我们称x∈Rn为优化变量,称函数f0:Rn→R为为目标函数或代价函数;不等式fi(x)≤0称为不等式约束,hi:Rn→R称为等式约束。优化问题的定义域是目标函数和约束函数的定义域的交集。满足约束条件的定义域中的点称为可行点;所有可行点的集合称为可行集。
问题(3−1)的最优值p⋆定义为:
p=inf{f0(x)∣fi(x)≤0,i=1,2,⋯,m,hi(x)=0,i=1,2,⋯,p}(3-2)
如果问题不可行,则p⋆=∞
凸优化问题的标准形式
min s.t. f0(x)fi(x)≤0,i=1,2,⋯,maiTx=bi,i=1,2,⋯,p(3-3)
其中,f0,f1,⋯,fm是凸函数
凸优化问题与一般优化问题的标准形式的区别在于以下三点:
- 目标函数必须是凸的
- 不等式约束函数必须是凸的
- 等式约束函数必须是仿射函数
至于为什么等式约束必须是仿射函数,这里有个直观的解释:等式约束可以看成要同时满足hi(x)≤0和−hi(x)≤0,为了满足不等式约束的条件,要求hi(x)同时是凸函数和凹函数,这样的函数只能是仿射函数。
凸优化问题有一个很好的性质:任意局部最优解也是全局最优解。
对于无约束条件的凸优化问题,x是其最优解的充要条件是:
∇f0(x)=0(3-2)