凸优化基础
数学基础系列博客是自己在学习了稀牛学院&网易云课堂联合举办的《人工智能数学基础》微专业后的课程笔记总结。怀着对授课讲师Jason博士无限的敬佩与感激之情,我在完整听了两遍课程之后,对这门进行了笔记整理。Jason博士用深入浅出的方式把数学知识真的是讲透彻了,我的笔记显然无法完整传达Jason博士的精彩授课内容,在此非常推荐每一个打算进入或了解AI的同学去学习这门课程!
一:一般优化问题
1.1 无约束优化问题
自变量为矢量的函数f:Rn→R:
minf(x)x∈Rn
求解方法有两种:(均求得局部最优解,不一定是全局最优解,因为不知道函数的形状)
- 直接法求解。令∇f(x)=0,求得驻点,如果有必要,则再根据Hessian矩阵的正定性判断驻点的性质(局部极大、局部极小、鞍点)
- 迭代法求解
- 梯度下降法(dk=−gk),每次下降的方向为负梯度方向。
- 牛顿法(dk=−Hk−1gk),考虑泰勒级数中的二阶项。
- 拟牛顿法(避免求Hessian矩阵的逆,使用另一个矩阵Sk近似)
- DFP
- BFGS
- 两者的区别在于Sk的不同。
1.2 有约束优化问题
minmizef0(x)subject to fi(x)≤0for i=1,2,...mhi(x)=0for i=1,2,...p
-
可行域:满足f(x)定义域和约束条件的x的集合。
-
举例:下图中虚线为等高线
minimizef(x)=x12+x22−4x1+4=(x1−2)2+x22subject toc1(x)=x1−2x2+6≥0c2(x)=−x12+x2−1≥0,c3(x)=x1≥0,c4(x)=x2≥0

1.3 补充知识 Ax=b
矩阵乘法
A∈R2×2[21−11]x∈R2[xy]=b∈R2[15]
A∈R3×3⎣⎡24−21−67102⎦⎤x∈R3⎣⎡uvw⎦⎤=b∈R3⎣⎡5−29⎦⎤
- 行视图- 超平面
2x−yx+y=1=5
对于Ax=b,从行视图的角度,可以理解为多个超平面的交集。所谓超平面,在二维空间中指直线,在三维空间中指平面。在更高维空间中,不可以可视化,但可以类比理解为y=wTx+b的平面。
二:凸集和凸函数
2.1 凸集
2.1.1 凸集和仿射集
-
仿射集:集合中任意两点间的直线也在集合中,那么该集合称为仿射集。例如x=θx1+(1−θ)x2∈C,(C∈Rn,θ∈R).
-
Ax=b的解的集合为仿射集。Ax=A(θx1+(1−θ)x2)=θAx1+(1−θ)Ax2=θb+(1−θ)b=b.
如果x1和x2都为方程组的解,那么x1和x2连接组成的直线是的任意一点x也是方程组的解。所以解的集合就是x,是一个仿射集。

-
凸集:集合中任意两点间的线段也在集合中,那么该集合称为凸集。例如:对于x1,x2∈C,有x=θx1+(1−θ)x2∈C,(C∈Rn,θ∈[0,1]).

-
一个集合是仿射集,但不一定是凸集;一个集合如果是凸集,那么一定是仿射集。
2.1.2 常见的凸集
part1
- 所有的Rn,既是凸集又是仿射集。
- 所有的R+n,只是凸集,因为是半空间。
- 超平面:C={x∣aTx=b},既是仿射集又是凸集。
- 半空间:C={x∣aTx≥b}或者C={x∣aTx≤b}。
part2
首先补充向量范数的知识:
-
2-norm:
∥x∥2=i=1∑n∣xi∣2=(xTx)1/2
-
1-norm:(绝对值相加)
∥x∥1=i=1∑n∣xi∣
-
∞-norm:(绝对值最大的那个数的值)
∥x∥∞=i=1,…,nmax∣xi∣
-
p-norm(p≥1):
∥x∥p=(i=1∑n∣xi∣p)p1
注意p一定要大于等于1
-
范数球:例如∣∣x∣∣2≤1.给定任意的x,y∈Rn,且∣∣x∣∣2≤1,∣∣y∣∣2≤1,则有∣∣∣θx+(1−θ)y∣∣2≤θ∣∣x∣∣2+(1−θ)∣∣y∣∣2≤1.所以二范数围成的集合是凸集。
-
在二维情形下,
-
∣∣x∣∣1≤1→∣x∣+∣y∣≤1;
-
∣∣x∣∣2≤1→x2+y2≤1;
- ∣∣x∣∣∞≤1→∣x∣≤1 and ∣y∣≤1

-
当p≥1时,范数球组成的集合是凸集。
part3
-
凸集的性质:凸集的交集是凸集,例如:S={∣∣x∣∣2≤1,x≥0},∣∣x∣∣2≤1是范数球,凸集;x≥0是半空间,凸集;凸集的交集还是凸集。所以S是凸集。
证明:假定S1,⋯,Sk是凸集,给定x,y∈⋂i=1kSi(即x和y都是交集中的点),则有:
θx+(1−θ)y∈Si,i=1,⋯,k,因为每一个集合都是凸集,所以连接任意两点的线段都在每一个集合内,因此也就在所有集合的交集内。即:θx+(1−θ)y∈∩i=1kSi,因此凸集的交集还是凸集。
-
凸集的并集不一定是凸集。
-
多面体:有限个半空间和半平面的交集
P={x∣Ax≤b,Cx=d}

原因分析:对于Ax≤b,每一行都是一个半空间(凸集),而Ax≤b为多个半空间的交集,也是凸集;对于Cx=d每一行都是一个超平面(凸集),多个超平面的交集还是凸集。
2.2 凸函数
2.2.1 凸函数的定义
2.2.2 常见的凸函数
- 一元函数举例:
-
ax+b 既凸且凹
-
x2 凸函数(二阶导数大于0)
-
eαx 凸函数(二阶导数:α2eαx)
-
−log x convex on x>0,二阶导数x21
-
xlogx convex on x>0,二阶导数 x1
- 二元函数举例
-
f(x)=aTx+b,既凸且凹。∇f(x)=a,∇2f(x)=0.
-
f(x)=xTPx+2qTx+r, 是凸函数的条件:∇2f(x)=2P≥0,即P为半正定矩阵。
-
f(x)=∣∣x∣∣22=xTx,是凸函数,因为P=I是单位阵。

2.2.3 保凸运算
-
f(x)凸,则f(Ax+b)凸。
- 解释:Ax+b为仿射变换,相当于对原始图像进行了‘线性变换+平移’。并不改变函数的凸性。可以参考《通俗理解仿射变换》。
- 举例:f(x)=x2是凸函数,f(2x+1)=(2x+1)2也是凸函数。
- 这个性质,就可以解释线性回归的损失函数∣∣y−Xw∣∣22是凸函数。
-
g凸,h凸,扩展的h非递减,则f(x)=h(g(x))凸。例如:f(x)=∥y−Ax∥22凸,g(x)=∥y−Ax∥2,h(x)=x2在x≥0部分非递减。
-
f1,⋯,fm凸,w1,⋯,wm≥0,则∑i=1mwifi凸,例如:f(x)=∥y−Ax∥22+γ∥x∥22凸,γ≥0.简单来讲:就是凸函数的非负线性组合还是凸函数。
-
逐点最大:f1,⋯,fm凸,则f(x)=max{f1(x),⋯,fm(x)}凸。f(x,y)对于每个y∈A凸,则supy∈Af(x,y)凸。

2.2.4 α水平集
- 一元函数f的α水平集为:
Sα={x∣f(x)≤α}
则有f为凸函数 →Sα对于每个α是凸集,反之则不成立。

三:凸优化问题
3.1 凸优化问题说明
-
凸优化问题
minmizef0(x)subject to fi(x)≤0for i=1,2,...mhi(x)=0for i=1,2,...p
-
目标函数是凸函数,可行域是凸集
- 目标函数是凸函数。
- 不等式约束函数必须是凸的。(则0水平集是凸集)
- 等式约束函数必须是仿射的。(类似Ax=b,解为凸集)
-
凸优化问题的本质:在一个凸集上极小化一个凸函数
-
f0(x∗)=p∗
-
凸优化问题的局部最优即为全局最优
3.2 典型的凸优化问题
-
线性规划(Liner Programming;LP)
minimizecTx+dsubject to Gx≤h Ax=b
- 说明:首先目标函数是仿射函数,既是凸函数也是凹函数(二阶导数为0)。Gx≤h是一系列半空间的交集(凸集的交集还是凸集),是凸集;Ax=b是一系列超平面的交集(凸集的交集还是凸集),凸集。所以可行域为凸集。符合在凸集上极小化一个凸函数。
-
二次规划(Quadratic Programming;QP)(P半正定)
minimize21xTPx+cTx+dsubject to Gx≤h Ax=b
- 说明:目标函数求二阶导可知∇2f(x)=P≥0,即半正定。所以目标函数是一个凸函数。又因为可行域是凸集,所以符合在凸集上极小化一个凸函数。
-
QCQP(P和Qi均半正定):
minimize21xTPx+cTx+dsubject to21xTQix+riTx+si≤0;i=1,2⋯mAx=b
- 说明:目标函数为凸函数;可行域中,21xTQix+riTx+si≤0;i=1,2⋯m,可以理解为凸函数的0水平集,还是凸集。
四:普通问题转为凸优化问题(案例演示)
-
给定下列问题:将其转为标准的凸优化问题
minimize 21∥w∥22+Ci=1∑mξisubject toyi(wTxi+b)≥1−ξi,i=1,⋯,mξi≥0
其中w∈Rn,ξ=[ξ1,⋯,ξm]T∈Rm,b∈R.定义 k=m+n+1(未知变量的个数)。
说明:未知变量为w,b,ξ。C,y,x已知。
转换过程
-
定义变量
x∈Rk=⎣⎡wξb⎦⎤
X∈Rm×n=⎣⎢⎡x1T⋮xmT⎦⎥⎤,y∈Rm=⎣⎢⎡y1⋮ym⎦⎥⎤
-
回归QP问题:
minimize21xTPx+cTx+dsubject to Gx≤h Ax=b
-
定义
P∈Rk×k=⎣⎡I00000000⎦⎤,c∈Rk=⎣⎡0C⋅1(vector)0⎦⎤
G∈R2m×k=[−diag(y)X0−I−I−y0],h∈R2m=[−1(vector)0(vector)]
则
21xTPx=21[wT,ξT,bT]⎣⎡I00000000⎦⎤⎣⎡wξb⎦⎤=21[wT,ξT,bT]⎣⎡w00⎦⎤=21∥w∥22
cTx=[0,C1T,0]⎣⎡wξb⎦⎤=Ci=1∑mξi
Gx=[−diag(y)X0−I−I−y0]⎣⎡wξb⎦⎤=[−diag(y)Xw−ξ−by−ξ]≤[−10]→[diag(y)Xw+by≥1−ξξ≥0]→yi(wTxi+b)≥1−ξi,i=1,⋯,mξi≥0
- 经过上述推导,可以发现原问题转换为了一个QP问题,是一个凸优化问题。而对于凸优化问题,目前已经有非常成熟的解决办法了。因此,能够将一个问题转换为凸优化问题是最为重要的一步。
五:参考资料
- https://www.cnblogs.com/hgl0417/p/6670762.html
- https://www.matongxue.com/madocs/244.html