基本概念
1.凸集
假设我们拥有一个集合
C
,从中任取两个元素
θx+(1−θ)y∈C
那么我们称集合
C
为一个凸集,通过上述定义我们知道,如果一个集合中的任意两个点的线性组合所得到的一系列的点也在该集合中(该两点之间的连线上的点都在该集合中),那么该集合就被称作 凸集。
2.凸函数
如果一个函数 f 满足一下两个条件,就称该函数为一个凸函数
- 该函数的定义域为一个凸集,我们用
D(f) 来表示该定义域- 对于所有的点
x,y∈D(f)
以及参数
θ∈R,0≤θ≤1
,有
f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y)
我们可以更加直观的去刻画该定义,如果一个函数是一个凸函数,那么该函数两点的连线必然在该函数图形的上方
凸优化问题
1.凸优化问题的格式
如果一个优化问题满足如下格式,我们就称该问题为一个凸优化问题:
minimizesubject to f(x)gi(x)≤0,hi(x)=0,i=1,...,mi=1,...,p
其中,目标函数 f 为凸函数,不等式约束gi 也为凸函数,而等式约束 hi 为一个仿射函数
注:在这里我们需要注意, gi(x) 的不等号必须是 ≤ ,因为如果该不等号为 ≥ ,那么由这些条件所围的区域就不再是凸区域,如果不是凸区域,那么该问题就不再是一个凸优化问题2.凸优化问题的一个很好用的定理
对于一个凸优化问题,其局部最优点就是它的全局最优点
3.常见的几种凸优化问题
- 线性规划:如果凸优化中的目标函数 f 和不等式约束条件
gi 都为线性函数,那么此时的凸优化问题就成为了线性规划问题,其格式如下:
minimizesubject to cTx+dGx≤hAx=b
- 二次规划:如果凸优化中的目标函数 f 为 二次函数,那么此时的凸优化问题就成为了二次规划问题,其格式如下:
minimizesubject to 12xTPx+cTx+dGx≤hAx=b
- 二次约束二次规划:如果在上述二次规划中再加入一个令其不等式约束条件也为二次的,那么这时候我们称该问题为二次约束二次规划问题, 其格式如下:
minimizesubject to 12xTPx+cTx+d12xTQx+γTix+si≤0,Ax=bi=1,...,m4.拉格朗日对偶
我们对凸优化问题的原始描述如下所示:
minimizesubject to f(x)gi(x)≤0,hi(x)=0,i=1,...,mi=1,...,p
我们定义该问题的广义拉格朗日函数为:L(x,λ,ν)=f(x)+∑i=1mλigi(x)+∑i=1pνihi(x)其中, λ,ν 被称为拉格朗日乘子
为了将该有约束最优化问题转化为无约束最优化问题,我们将原问题转化为如下格式:
p∗=minxmaxλ,ν:λi≥0L(x,λ,ν)=minxθP(x)
在这里, θP(x)=maxλ,ν:λi≥0L(x,λ,ν) 。通过上面的转化,我们知道当 gi(x)>0 时, θP(x) 的最大值为 +∞ ,当 hi(x)≠0 时, θP(x) 的最大值依然为 +∞ ,只有当 gi(x),hi(x) 满足约束条件,即 gi(x)≤0,hi(x)=0 时,才能使得 θP(x) 的最大值为 f(x) 。所以我们求原问题的最小值等价于求 θP(x) 的最小值。因此通过这样的变化,我们就将带约束的凸优化问题等价的转化为了无约束的最优化问题 p∗ 。在这里,我们将 p∗ 称为原始问题( primal problem)。
该primal problem所对应的对偶问题( dual problem),简记为 d∗ ,我们对该问题描述如下:
d∗=maxλ,nu:λi≥0minxL(x,λ,ν)=maxλ,nu:λi≥0θD(λ,ν)
这里, θD(λ,ν)=minxL(x,λ,ν) ,通过上述的描述,我们可以知道 d∗≤p∗ ,当满足某些条件时,可以将不等号变为等号,即从弱对偶( d∗≤p∗ )转化为强对偶( d∗=p∗ )。该条件就是传说中的 KKT(Karush-Kuhn-Tucker)条件。
KKT条件:
∇xL(x,λ,ν)=0λigi(x)=0gi(x)≤0λ≥0
因此,当满足KKT条件时,原始问题的最优化可以等价转化为对偶问题的最优化,而一般对偶问题要比原问题更好解决。
- 对于所有的点
x,y∈D(f)
以及参数
θ∈R,0≤θ≤1
,有