定义
凸优化问题OPT,convex optimization problem,指定义在凸集中的凸函数最优化的问题。尽管凸优化的条件比较苛刻,但仍然在机器学习领域有十分广泛的应用。
凸优化问题的优势
- 凸优化问题的局部最优解就是全局最优解
- 很多非凸问题都可以被等价转化为凸优化问题或者被近似为凸优化问题(例如拉格朗日对偶问题)
- 凸优化问题的研究较为成熟,当一个具体被归为一个凸优化问题,基本可以确定该问题是可被求解的
相关数学概念
1. 凸集
1.1 定义:
C是凸集,如果对于任意的x,y∈C和任意的θ∈R满足0≤θ≤1时,θx+(1−θ)y∈C 恒成立
1.2 几何意义
直观来说,任取一个集合中的两点练成一条线段,如果这条线段完全落在该集合中,那么这个集合就是凸集。
![[机器学习必知必会]凸优化 [机器学习必知必会]凸优化](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRME1TODNPRFkyTW1WaU5XWTVZelUyWmpBMlpqSTVNRFZrTjJJeVlUa3haVEprTVM1S1VFVkg=)
2. 凸函数
2.1定义:
定义在Rn→R上的函数f是凸函数,如果它的定义域D(f)是一个凸集且对任意的x,y∈D和0≤θ≤1,f(θx+(1−θy))≤θf(x)+(1−θ)f(y)恒成立
2.2几何意义:
![[机器学习必知必会]凸优化 [机器学习必知必会]凸优化](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpjeU5pOW1Zems1Tm1JNE16VTVaR1UwTldVNE9ESTBPV0V5TnpKa05EazJZV1k1Tmk1S1VFVkg=)
2.3凸函数的一阶充要条件:
假设定义在Rn→R上的函数f可微(即对于所有x∈D(f),梯度▽f(x)均存在)。则函数f是凸函数当且仅当函数定义域D(f)是一个凸集,且对于所有x,y∈D(f)均满足:
f(y)≥f(x)+▽f(x)T(y−x)
一阶充要条件从几何意义上讲,即定义域内所有函数值都大于等于该点的一阶近似。
![[机器学习必知必会]凸优化 [机器学习必知必会]凸优化](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpFM015OHlNamszWVdSbE5qSTNNemczWmpkaE1EYzRaR0UyTVdNNE56aGhOekZtWkM1S1VFVkg=)
2.4 凸函数的二阶充要条件:
记函数的一阶导数和二阶导数分别为g和H:
g=▽f=⎣⎢⎢⎢⎢⎡∂x1∂f∂x2∂f⋮∂xn∂f⎦⎥⎥⎥⎥⎤H=▽2f=⎣⎢⎢⎢⎢⎢⎡∂x12∂2f∂x2∂x1∂2f⋮∂xn∂x1∂2f∂x1∂x2∂2f∂x22∂2f⋮∂xn∂x2∂2f⋯⋯⋱⋯∂x1∂xn∂2f∂x2∂xn∂2f⋮∂xn2∂2f⎦⎥⎥⎥⎥⎥⎤
假设定义在Rn→R上的函数f二阶可微(即对于所有x∈D(f),海森矩阵▽2f(x)均存在)。则函数f是凸函数当且仅当函数定义域D(f)是一个凸集,且对于所有x∈D(f)均满足:
▽2f(x)⪰0
注意:这里的⪰表示的是半正定。
3. 正定矩阵
3.1 从二次型出发理解正定矩阵
正定矩阵的概念是从正定二次型引入的,对称矩阵A为正定的充要条件即该矩阵的特征值全为正数。
为方便理解正定/半正定矩阵,我们引入二次型f(x)=xTAx,对于含有n个变量的二次齐次函数,我们可以一般化地写为:
f(x1,x2,...,xn)=a11x12+a22x22+...+annxn2+2a12x1x2+...+2an−1,nxn−1xn
f(x1,x2,...,xn)=i=1∑naiixi2+2i=1∑nj=1∑naijxixj
同时,对于所有的二次齐次式我们都可以写成矩阵形式:
f(x1,x2,...,xn)=xTAx
如果对任意的x=0均有f(x)>0,则称f(x)为正定二次型,同时称A为正定矩阵。
因为对于任意的二次型,我们都能将其写为矩阵形式,且矩阵A的形式为:
⎣⎢⎢⎢⎡a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann⎦⎥⎥⎥⎤
因此二次型矩阵和对称矩阵是一一对应的关系。
3.2 从几何意义理解正定二次型
对于最简单的一元二次函数f(x)=x2,当x=0时f(x)>0恒成立。即一元正定二次型对应的图像是开口向上,顶点在原点的抛物线,同理二元正定二次型f(x,y)=x2+y2对应的图像是开口向上,顶点在原点的抛物面。
![[机器学习必知必会]凸优化 [机器学习必知必会]凸优化](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJNE9TOWpOMlpoT1RnMFpXVXhNbVZoWXpNeU5HRTNZV1ptWlRRNU5EVTJaRE0wT1M1S1VFVkg=)
扩展到n元正定二次型的图像也对应着一个抛物线,保证当自变量取值非零向量时,对应的函数值大于0恒成立。
3.3 半正定矩阵的图像
同样我们可以给出二元半正定二次型的图像,即某个自变量的特征值为0从而保证当自变量取值为非零向量时,对应的函数值大于等于0恒成立。
![[机器学习必知必会]凸优化 [机器学习必知必会]凸优化](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk15OHdNbVEwTVRjeFlUVmhNVEk0T0RRd1pqYzJNVFptT0RRMVlXUmxZMlZoTnk1S1VFVkg=)
凸优化问题
1. 定义:
mins.t.f(x)gi(x)≤0,i=1,2,...,mhj(x)=0,j=1,2,...,n
当f(x)和gi(x)均为凸函数,而hj(x)均为仿射函数时, 上述的优化问题即凸优化问题。
2. 常见的凸优化问题
2.1 线性规划(LP, Linear Program)
mins.t.cTx+dG(x)⪯hA(x)=b
其中目标函数和不等式约束都是仿射函数,且⪯表示按元素小于等于。
2.2 二次规划(QP, Quadratic Program)
mins.t.21xTPx+cTx+dG(x)⪯hA(x)=b
其中目标函数为凸二次型,不等式约束为仿射函数。
2.3 二次约束的二次规划(QCCP, Quadratically Contrained Quaratic Program)
mins.t.21xTPx+cTx+d21xTQix+rix+si≤0,i=1,2,....mA(x)=b
其中目标函数和不等式约束都是凸二次型。
2.4 半正定规划(SDP, Semidefinite Program)
mins.t.tr(CX)tr(AiX)=bi,i=1,2,....pX⪰0
其中需要最优化的变量X是一个对称的半正定矩阵,且C,A1,...,Ap为对阵矩阵。
3. 凸优化问题的一般求解过程
由于凸优化问题具有局部最优解即全局最优解的优良特性,因此求解过程可以简化为:找到一个点列使得目标函数值持续减少,直到触发停止条件或达到一个最小值。
设xk为第k次迭代的值,dk为第k次搜索方向,αk为第k次迭代的步长,则第k次迭代公式为:
xk+1=xk+αkdk
其中第k次的搜索方向满足:
▽f(xk)Tdk<0
f(xk+1)=f(xk+αkdk)<f(xk)
Reference
[1] https://www.jiqizhixin.com/articles/2019-03-05-8
[2] https://www.zhihu.com/question/38902714/answer/195435181
[3] https://www.jianshu.com/p/62539b0316e2
[4] plot: matplotlib.pyplot
[5] http://cs229.stanford.edu/section/cs229-cvxopt.pdf