凸优化

1. 凸优化介绍

1.1 优化问题
1.1.1 优化问题介绍
在统计学和机器学习领域,要做的绝大部分事情都是一种优化问题,即寻找决策变量x的最优问题min⁡x∈Df(x)\min_{x\in D}f(x)minxDf(x)。多数情况下,只需要将具体问题公式化为一个凸优化问题,并写成标准形式,剩下的就交给计算机求解。而具体如何求解优化问题,则需要选择合适的算法。
最初人们认为,优化问题是线性还是非线性,是优化问题的根本区别。而现在人们认为,优化问题是凸还是非凸,才是不同优化问题的根本区别。

1.1.2 优化问题的数学表示min⁡x∈Df(x)s.t. {gi(x)⩽0, i=1,⋯ ,mhi(x)=0, i=1,⋯ ,r\min_{x\in D}f(x)\\ \text{s.t.}\ \begin{cases}g_i(x)\leqslant0,\ i=1,\cdots,m\\h_i(x)=0,\ i=1,\cdots,r\end{cases}xDminf(x)s.t. {gi(x)0, i=1,,mhi(x)=0, i=1,,r式中D=dom(f)∩⋂i=1mdom(gi)∩⋂j=1rdom(hj)D=\text{dom}(f)\cap\mathop{\bigcap}\limits_{i=1}^m\text{dom}(g_i)\cap\mathop{\bigcap}\limits_{j=1}^r\text{dom}(h_j)D=dom(f)i=1mdom(gi)j=1rdom(hj)dom(f)\text{dom}(f)dom(f)表示f的定义域。x称为决策变量;f(x)称为目标函数,是标量;gig_igi称为不等式约束,是个标量;hjh_jhj称为等式约束,是个标量。
如果存在某个点x∈Dx\in DxD,满足m个不等式约束和n个等式约束,则x称为该优化问题的可行解(feasible point)。可行解可能不存在,也可能存在一个或多个或无穷多个,如果存在无穷多个可行解,则需要找到这些可行解中能让f(x)最小的那个点x∗x^*xx∗x^*x称为该优化问题的最优解

1.2 凸优化问题
1.2.1 凸集
集合C是Rn(n=1,2,⋯ )\bm{R^n}(n=1,2,\cdots)Rn(n=1,2,)的子集,如果集合C满足∀x,y∈C\forall x,y\in Cx,yC,推出tx+(1−t)y∈C, for all 0⩽t⩽1tx+(1-t)y\in C,\ \text{for all}\ 0\leqslant t\leqslant 1tx+(1t)yC, for all 0t1,那么集合C就是凸集。

1.2.2 凸函数
如果函数f:Rn→Rf:R^n\to Rf:RnR满足1.dom⁡(f)⊆Rn2.f(tx+(1−t)y)⩽tf(x)+(1−t)f(y), for ∀x,y∈dom(f),0⩽t⩽11. \operatorname{dom}(f) \subseteq R^n\\2. f(tx+(1-t)y)\leqslant tf(x)+(1-t)f(y),\ \text{for}\ \forall x,y\in\text{dom}(f),0\leqslant t\leqslant 11.dom(f)Rn2.f(tx+(1t)y)tf(x)+(1t)f(y), for x,ydom(f),0t1则该函数为凸函数。凸函数还有其他等价的定义方法。

1.2.3 凸优化问题
在优化问题的数学表示中,若dom(f)为凸集;f,gif,g_if,gi都是凸函数;hjh_jhj仿射(affine) 函数,即hj(x)=ajTx+bjh_j(x)=a_j^Tx+b_jhj(x)=ajTx+bj,则该问题是一个凸优化问题。不等式约束和等式约束给定了可行解的求解域,要求gig_igi为凸函数和hjh_jhj为仿射函数使得最终的可行域依然是凸集。

1.2.4 凸优化的分类
凸优化的标准问题有4类:① 线性规划(LP);② 二次规划(QP);③ 半正定规划(SDP);④ 锥规划(CP)。这4类标准问题之间是递进的包含关系,难易程度依次递增。
在这里插入图片描述

2. 不同类型的凸优化

2.1 线性规划LP
线性规划的数学表示:min⁡x∈DcTxs.t. {Dix⩽di, i=1,⋯ ,mAix=bi, i=1,⋯ ,r\min_{x\in D}c^Tx\\ \text{s.t.}\ \begin{cases}D_ix\leqslant d_i,\ i=1,\cdots,m\\A_ix=b_i,\ i=1,\cdots,r\end{cases}xDmincTxs.t. {Dixdi, i=1,,mAix=bi, i=1,,r通常会将线性规划写成如下的标准形式:min⁡x∈DcTxs.t. {Ax=bx⩾0\min_{x\in D}c^Tx\\ \text{s.t.}\ \begin{cases}Ax=b\\x\geqslant0\end{cases}xDmincTxs.t. {Ax=bx0要注意标准形式并不是简单地将Dx⩽dDx\leqslant dDxd变成了x⩾0x\geqslant 0x0,而是通过引入松弛变量(si=di−Dixs_i=d_i-D_ixsi=diDix),每引入一个松弛变量,原不等式约束就会多出一个等式约束,写进Ax=bAx=bAx=b中。所以标准形式的x已经不是原来的x,而是原来的x+松弛变量。

2.2 二次规划QP
二次规划的数学表示如下:min⁡x∈DcTx+12xTQxs.t. {Dx⩽dAx=b\min_{x\in D}c^Tx+\cfrac12x^TQx\\ \text{s.t.}\ \begin{cases}Dx\leqslant d\\Ax=b\end{cases}xDmincTx+21xTQxs.t. {DxdAx=b其中,若矩阵Q⩾0Q\geqslant0Q0就是凸优化问题,如果Q<0Q<0Q<0就不是凸优化问题(也可能通过一些tricks重写为凸优化问题)。通常所说的QP问题,默认指Q⩾0Q\geqslant0Q0。同样,为方便计算机求解,常将二次规划写成如下的标准形式:min⁡x∈DcTx+12xTQxs.t. {Ax=bx⩾0\min_{x\in D}c^Tx+\cfrac12x^TQx\\ \text{s.t.}\ \begin{cases}Ax=b\\x\geqslant0\end{cases}xDmincTx+21xTQxs.t. {Ax=bx0机器学习算法中的SVM就是一个QP问题。

2.3 半正定规划SDP
半正定规划的数学表示如下:min⁡x∈DcTxs.t. {x1F1+x2F2+⋯+xnFn⩽F0Ax=b\min_{x\in D}c^Tx\\ \text{s.t.}\ \begin{cases}x_1F_1+x_2F_2+\cdots+x_nF_n\leqslant F_0\\Ax=b\end{cases}xDmincTxs.t. {x1F1+x2F2++xnFnF0Ax=b式中,x=(x1,⋯ ,xn)T∈Rnx=(x_1,\cdots,x_n)^T\in R^nx=(x1,,xn)TRnFi∈Rd×dF_i\in R^{d\times d}FiRd×d是对称矩阵;A∈Rm×nA\in R^{m\times n}ARm×n。其标准形式如下:min⁡X∈DC⋅Xs.t. {Ai⋅X=bi, i=1,⋯ ,nX≥0\min_{X\in D}C\bm{\cdot} X\\ \text{s.t.}\ \begin{cases}A_i\bm{\cdot} X=b_i,\ i=1,\cdots,n\\X\geq0\end{cases}XDminCXs.t. {AiX=bi, i=1,,nX0式中,C⋅X=∑j=1b∑i=1ncijxijC\bm{\cdot} X=\sum_{j=1}^b\sum_{i=1}^nc_{ij}x_{ij}CX=j=1bi=1ncijxijC,X∈Rn×nC,X\in R^{n\times n}C,XRn×n是对称矩阵;bi∈R。b_i\in R。biR

2.4 锥规划CP
2.4.1 锥
锥的定义:对集合X,若∀x∈X\forall x\in XxX,都有θx∈X, θ⩾0\theta x\in X,\ \theta\geqslant0θxX, θ0,则称X为一个锥。
锥并不一定是凸的,一个凸锥需要满足如下的数学性质:若∀x,y∈X\forall x,y\in Xx,yX,都有θ1x+θ2y∈X, θ1,θ2⩾0\theta_1 x+\theta_2y\in X,\ \theta_1,\theta_2\geqslant0θ1x+θ2yX, θ1,θ20,则称X为一个凸锥。

2.4.2 锥规划
锥规划的数学表示如下:min⁡x∈DcTxs.t. {D(x)+d⩽KAx=b\min_{x\in D}c^Tx\\ \text{s.t.}\ \begin{cases}D(x)+d\leqslant K\\Ax=b\end{cases}xDmincTxs.t. {D(x)+dKAx=b式中,x∈Rnx\in R^nxRn;D(x)是x的一个线性映射;K是一个闭凸锥。

3. 无约束凸优化问题的求解算法

3.1 无约束凸优化问题
对于一个一般的凸优化问题,如果没有不等式约束gig_igi,也没有等式约束hih_ihi,则该问题就是一个无约束凸优化问题。
对无约束凸优化问题,该问题的最优解在∇f(x)=0\nabla f(x)=0f(x)=0处。对于x∈Rnx\in R^nxRn,则有n个方程求解n个未知数。但只有在少数情况下,方程能直接求出解析解。大多数情况下,由于∇f(x)\nabla f(x)f(x)是非线性的,很难得到解析解,需要设计迭代算法,利用计算机求解。

3.2 迭代算法
通常一个优化问题的迭代算法,有以下3个步骤:

  1. 选取起始点
  2. 设计算法,寻找下一个点
  3. 重复第2步,知道满足终止条件

算法的设计核心在于第2步,不同的算法主要是这一步的策略不同。而第2步通常有两个事情要做:

  1. 往哪个方向迈步子
  2. 步子迈多大

若根据泰勒公式的一阶近似选取下降方向,得到梯度下降。若根据泰勒公式的二阶近似选取下降方向,得到牛顿法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值