一:凸集
1 定义:
一个集合中,任意两点之间的连线仍在该集合内,称该集合为凸集
数学上,取两点x, y两点连线的线段上任意一点可表示为:
z=y+α(x-y)=αx+(1-α)y , 其中,α在[0,1]之间
2常见的凸集:
任意直线组成的集合,任意线段组成集合,欧几里得球和椭球,超平面和半空间,多个半空间构成的多面体
Rn空间:也称为n维全空间
R^n空间的子空间
::: hljs-center
图1:aTx=b的超平面以及由此超平面分开的两个半空间
:::
二:凸函数
1 定义:
函数的定义域为凸集,且定义域内任意两点x,y有
f(αx+(1-α)y)≤αf(x)+(1-α)f(y),其中,α在[0,1]之间
即两点之间的弦都在函数上方
2 函数的扩展
有时候函数的定义域并不是全空间,这会导致在函数计算时增加约束。此时,可以将不在定义域的函数值扩展为无穷大,得到的新函数定义域覆盖整个全空间。且如果原函数为凸,新的扩展函数也为凸:
证明:当两点在定义域内。根据函数定义,满足
当两点都在定义域外。则定义1不等式右边取正无穷,也成立
当一点在定义域内,一点在定义域外,上述不等式右边取正无穷,仍成立
3 凸函数的一阶条件
假设f可微,则f微凸函数的充要条件为:
f(y)≥f(x)+∇f(x)(y-x),即函数的切线永远在函数值的下方
4 凸函数的二阶条件:
假设f二阶可微,则f为凸的充要条件为:对于定义域内任意一点,其二阶hessian矩阵都为半正定
5 常见的函数凸性求解
一般我们都可以先假设函数二阶可微,对其求二阶导判断函数凸性。
备注: 拟凸函数
比凸函数要求低一点,但是可以获得和凸函数同样好的性质或者近似好的性质
定义:任意α,对于函数f(x)≤α 的x组成的下水平集合集合C,C都属于凸集,则f(x)称为拟凸函数
三:优化问题
1 一般形式:
其中f0(x)称为目标函数,h(x)称为等式约束,fi(x)称为不等式约束。
定义域应该为所有函数定义域的交集
极大化一个值也可以相当于极小化其负数得到优化问题的标准形式
2 松弛约束
有时候我们可以引入一个松弛变量,将原不等式转换成一个等式加一个非负约束。
min fo(x)
s.t. fi(x) + si = 0; hi(x) = 0; si ≥ 0
3 消除等式约束
可以直接根据等式约束替换,如果函数形式在替换后变成一个更加简单地形式,那么可以通过变量等式间接求出最优解
4 优化部分变量
我们总可以通过先优化一部分再优化另一部分的变量来达到优化一个函数的目的,如果变量相互独立的话,那么就可以一个变量一个变量进行优化
5 拉格朗日对偶问题
重要性质:任意一个标准形式的优化问题 的拉格朗日对偶函数都是一个凹函数,且拉格朗日函数已经将所有约束通过拉格朗日乘子变成优化项,因此构成了一个无约束的凸问题。极大化对偶函数的问题(称为原问题的对偶问题),一定是一个凸问题, 且这个凸问题最终会给出一个原问题的下界。
6 KKT条件
一般来说,如果下界和原本的值相距太大的话,对于我们来说,知道下界也是没有意义的。当对偶问题和原问题最优值相等时,我们称其满足强对偶性。
对于目标函数合约书函数可微的任意优化问题,如果强对偶性成立,那么任何一对原问题和对偶问题的最优解必须满足KKT条件,此时KKT条件是必要条件
四 凸优化问题
目标函数和不等式约束函数都是Rn上的连续可微凸函数,等式约束为Rn上的仿射函数(形如:ATX=B,表达成等式约束即ATX-B=0)。
1 凸优化问题的重要性质一:局部最优解是全局最优解
这就说明,我们可以设计一个简单地局部算法,例如贪婪算法或者梯度下降法,收敛得到的局部最优解即为全局最优解,相对来说高效
2 凸优化的重要性质二:
满足slater条件时,对偶问题得到的最优值等于原问题的最优值
注意:slater条件只是其充分条件,也就是说,有些情况下即使不满足slater条件,原问题与对偶问题的最优值可能也是相等的。
3 凸优化的KKT条件
满足KKT条件的点也是原,对偶的最优解。此时KKT条件是充要条件
参考
[1]、《凸优化》,Stephen Boyd等著,王书宁等译