[机器学习必知必会]凸优化

本文深入解析凸优化问题,包括其定义、优势及在机器学习领域的应用。探讨了凸集、凸函数、正定矩阵等核心概念,介绍了常见凸优化问题如线性规划、二次规划及其求解过程。

定义

凸优化问题OPT,convex optimization problem,指定义在凸集中的凸函数最优化的问题。尽管凸优化的条件比较苛刻,但仍然在机器学习领域有十分广泛的应用。

凸优化问题的优势

  1. 凸优化问题的局部最优解就是全局最优解
  2. 很多非凸问题都可以被等价转化为凸优化问题或者被近似为凸优化问题(例如拉格朗日对偶问题)
  3. 凸优化问题的研究较为成熟,当一个具体被归为一个凸优化问题,基本可以确定该问题是可被求解的

相关数学概念

1. 凸集
1.1 定义:

CCC是凸集,如果对于任意的x,y∈Cx,y\in Cx,yC和任意的θ∈R\theta \in \mathbb{R}θR满足0≤θ≤10\leq \theta \leq 10θ1时,θx+(1−θ)y∈C\theta x + (1-\theta)y \in Cθx+(1θ)yC 恒成立

1.2 几何意义

直观来说,任取一个集合中的两点练成一条线段,如果这条线段完全落在该集合中,那么这个集合就是凸集。
凸集的几何意义

2. 凸函数
2.1定义:

定义在Rn→R\mathbb{R}^n \rightarrow \mathbb{R}RnR上的函数fff是凸函数,如果它的定义域D(f)\mathbb{D}(f)D(f)是一个凸集且对任意的x,y∈Dx,y\in \mathbb{D}x,yD0≤θ≤10\leq \theta \leq 10θ1,f(θx+(1−θy))≤θf(x)+(1−θ)f(y)f(\theta x +(1-\theta y)) \leq \theta f(x) + (1-\theta)f(y)f(θx+(1θy))θf(x)+(1θ)f(y)恒成立

2.2几何意义:

凸函数几何意义

2.3凸函数的一阶充要条件:

假设定义在Rn→R\mathbb{R}^n \rightarrow \mathbb{R}RnR上的函数fff可微(即对于所有x∈D(f)x\in \mathbb{D}(f)xD(f),梯度▽f(x)\triangledown f(x)f(x)均存在)。则函数fff是凸函数当且仅当函数定义域D(f)\mathbb{D}(f)D(f)是一个凸集,且对于所有x,y∈D(f)x,y\in \mathbb{D}(f)x,yD(f)均满足:
f(y)≥f(x)+▽f(x)T(y−x) f(y) \geq f(x)+\triangledown f(x)^T(y-x) f(y)f(x)+f(x)T(yx)

一阶充要条件从几何意义上讲,即定义域内所有函数值都大于等于该点的一阶近似。

凸函数一阶充要条件的几何意义

2.4 凸函数的二阶充要条件:

记函数的一阶导数和二阶导数分别为gggHHH
g=▽f=[∂f∂x1∂f∂x2⋮∂f∂xn]H=▽2f=[∂2f∂x12∂2f∂x1∂x2⋯∂2f∂x1∂xn∂2f∂x2∂x1∂2f∂x22⋯∂2f∂x2∂xn⋮⋮⋱⋮∂2f∂xn∂x1∂2f∂xn∂x2⋯∂2f∂xn2] g=\triangledown f=\begin{bmatrix} \frac{\partial f}{\partial x_1}\\ \frac{\partial f}{\partial x_2}\\ \vdots \\ \frac{\partial f}{\partial x_n} \end{bmatrix} \quad H=\triangledown^2f= \begin{bmatrix} \frac{\partial^2f}{\partial x_1^2} & \frac{\partial^2f}{\partial x_1 \partial x_2} & \cdots & \frac{\partial^2f}{\partial x_1 \partial x_n}\\ \frac{\partial^2f}{\partial x_2 \partial x_1} & \frac{\partial^2f}{\partial x_2^2} & \cdots & \frac{\partial^2f}{\partial x_2 \partial x_n}\\ \vdots & \vdots & \ddots & \vdots\\ \frac{\partial^2f}{\partial x_n \partial x_1} & \frac{\partial^2f}{\partial x_n \partial x_2} & \cdots & \frac{\partial^2f}{\partial x_n^2} \end{bmatrix} g=f=x1fx2fxnfH=2f=x122fx2x12fxnx12fx1x22fx222fxnx22fx1xn2fx2xn2fxn22f
假设定义在Rn→R\mathbb{R}^n \rightarrow \mathbb{R}RnR上的函数fff二阶可微(即对于所有x∈D(f)x\in \mathbb{D}(f)xD(f),海森矩阵▽2f(x)\triangledown^2 f(x)2f(x)均存在)。则函数fff是凸函数当且仅当函数定义域D(f)\mathbb{D}(f)D(f)是一个凸集,且对于所有x∈D(f)x\in \mathbb{D}(f)xD(f)均满足:
▽2f(x)⪰0 \triangledown^2f(x) \succeq 0 2f(x)0

注意:这里的⪰\succeq表示的是半正定。

3. 正定矩阵
3.1 从二次型出发理解正定矩阵

正定矩阵的概念是从正定二次型引入的,对称矩阵AAA为正定的充要条件即该矩阵的特征值全为正数。

为方便理解正定/半正定矩阵,我们引入二次型f(x)=xTAxf(x)=x^TAxf(x)=xTAx,对于含有nnn个变量的二次齐次函数,我们可以一般化地写为:
f(x1,x2,...,xn)=a11x12+a22x22+...+annxn2+2a12x1x2+...+2an−1,nxn−1xn f(x_1,x_2,...,x_n)=a_{11}x_1^2 + a_{22}x_2^2+...+a_{nn}x_n^2+2a_{12}x_1x_2+...+2a_{n-1,n}x_{n-1}x_{n} f(x1,x2,...,xn)=a11x12+a22x22+...+annxn2+2a12x1x2+...+2an1,nxn1xn
f(x1,x2,...,xn)=∑i=1naiixi2+2∑i=1n∑j=1naijxixj f(x_1,x_2,...,x_n)=\sum_{i=1}^{n}a_{ii}x_i^2 + 2\sum_{i=1}^{n}\sum_{j=1}^{n} a_{ij}x_ix_j f(x1,x2,...,xn)=i=1naiixi2+2i=1nj=1naijxixj

同时,对于所有的二次齐次式我们都可以写成矩阵形式:
f(x1,x2,...,xn)=xTAx f(x_1,x_2,...,x_n) = x^TAx f(x1,x2,...,xn)=xTAx
如果对任意的x≠0x\neq 0x=0均有f(x)>0f(x) > 0f(x)>0,则称f(x)f(x)f(x)为正定二次型,同时称AAA为正定矩阵。

因为对于任意的二次型,我们都能将其写为矩阵形式,且矩阵AAA的形式为:
[a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮an1an2⋯ann] \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{bmatrix} a11a21an1a12a22an2a1na2nann
因此二次型矩阵对称矩阵是一一对应的关系。

3.2 从几何意义理解正定二次型

对于最简单的一元二次函数f(x)=x2f(x)=x^2f(x)=x2,当x≠0x\neq 0x=0f(x)>0f(x) > 0f(x)>0恒成立。即一元正定二次型对应的图像是开口向上,顶点在原点的抛物线,同理二元正定二次型f(x,y)=x2+y2f(x,y) = x^2 + y^2f(x,y)=x2+y2对应的图像是开口向上,顶点在原点的抛物面。
二元正定二次型图像
扩展到nnn元正定二次型的图像也对应着一个抛物线,保证当自变量取值非零向量时,对应的函数值大于0恒成立。

3.3 半正定矩阵的图像

同样我们可以给出二元半正定二次型的图像,即某个自变量的特征值为000从而保证当自变量取值为非零向量时,对应的函数值大于等于000恒成立。
二元半正定二次型图像

凸优化问题

1. 定义:

min⁡f(x)s.t.gi(x)≤0,i=1,2,...,mhj(x)=0,j=1,2,...,n \begin{aligned} \min &\quad f(x) \\ s.t. &\quad g_i(x) \leq 0, i=1,2,...,m \\ &\quad h_j(x) = 0, j = 1,2,...,n \end{aligned} mins.t.f(x)gi(x)0,i=1,2,...,mhj(x)=0,j=1,2,...,n
f(x)f(x)f(x)gi(x)g_i(x)gi(x)均为凸函数,而hj(x)h_j(x)hj(x)均为仿射函数时, 上述的优化问题即凸优化问题。

2. 常见的凸优化问题
2.1 线性规划(LP, Linear Program)

min⁡cTx+ds.t.G(x)⪯hA(x)=b \begin{aligned} \min &\quad c^Tx+d \\ s.t. &\quad G(x) \preceq h \\ &\quad A(x) = b \end{aligned} mins.t.cTx+dG(x)hA(x)=b
其中目标函数和不等式约束都是仿射函数,且⪯\preceq表示按元素小于等于。

2.2 二次规划(QP, Quadratic Program)

min⁡12xTPx+cTx+ds.t.G(x)⪯hA(x)=b \begin{aligned} \min &\quad \frac{1}{2}x^TPx+c^Tx+d \\ s.t. &\quad G(x) \preceq h \\ &\quad A(x) = b \end{aligned} mins.t.21xTPx+cTx+dG(x)hA(x)=b
其中目标函数为凸二次型,不等式约束为仿射函数。

2.3 二次约束的二次规划(QCCP, Quadratically Contrained Quaratic Program)

min⁡12xTPx+cTx+ds.t.12xTQix+rix+si≤0,i=1,2,....mA(x)=b \begin{aligned} \min &\quad \frac{1}{2}x^TPx+c^Tx+d \\ s.t. &\quad \frac{1}{2}x^TQ_ix + r_ix + s_i \leq 0, i=1,2,....m \\ &\quad A(x) = b \end{aligned} mins.t.21xTPx+cTx+d21xTQix+rix+si0,i=1,2,....mA(x)=b
其中目标函数和不等式约束都是凸二次型。

2.4 半正定规划(SDP, Semidefinite Program)

min⁡tr(CX)s.t.tr(AiX)=bi,i=1,2,....pX⪰0 \begin{aligned} \min &\quad tr(CX) \\ s.t. &\quad tr(A_iX)=b_i, i=1,2,....p \\ &\quad X \succeq 0 \end{aligned} mins.t.tr(CX)tr(AiX)=bi,i=1,2,....pX0
其中需要最优化的变量XXX是一个对称的半正定矩阵,且C,A1,...,ApC, A_1,...,A_pC,A1,...,Ap为对阵矩阵。

3. 凸优化问题的一般求解过程

由于凸优化问题具有局部最优解即全局最优解的优良特性,因此求解过程可以简化为:找到一个点列使得目标函数值持续减少,直到触发停止条件或达到一个最小值。

xkx_kxk为第kkk次迭代的值,dkd_kdk为第kkk次搜索方向,αk\alpha_kαk为第kkk次迭代的步长,则第kkk次迭代公式为:
xk+1=xk+αkdk x_{k+1}=x_k+\alpha_k d_k xk+1=xk+αkdk
其中第kkk次的搜索方向满足:
▽f(xk)Tdk<0 \triangledown f(x_k)^Td_k < 0 f(xk)Tdk<0
f(xk+1)=f(xk+αkdk)<f(xk) f(x_{k+1}) = f(x_k+\alpha_k d_k) <f(x_k) 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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值