问题定义
凸优化问题
一般优化问题的描述:
\[\begin{array}{lll}\min&f_0(x)\\\\s.t.&f_i(x)\leq0&i=1,\ldots,m\\\\&h_i(x)=0&i=1,\ldots,p\end{array}
\]
广义凸问题:凸目标,凸集约束
狭义凸问题:
\[\begin{aligned}&\min\quad f_{0}(x)&&f_{0}(x)\text{为凸}\\&s.t.\quad f_{i}(x)\leq0\quad i=1,\ldots,m&&f_{i}(x)\text{均为凸}\\&a_{i}^{T}x=b_{i}\quad i=1,\ldots,p&&\text{等式约束为仿射函数}\end{aligned}
\]
常用定义
-
优化问题的域(domain):\(\text{D=}\bigcap\limits_{i=0}^mdom f_i \cap \bigcap\limits_{i=1}^pdom h_i\)
-
可行解集(feasibleset):\(X_{f}=\{x\mid x\in D, f_{i}(x)\leq0,i=1,\dots,m, h_{i}(x)=0,i=1,\dots,p\}\)
-
最优值(optimizationvalue):\(p^*=\inf\left\{f_0(x)\mid x\in X_f\right]\)
-
最优解(optimizationpoint/solution):\(\text{若 }x^*\text{ 可行,且 }f_0(x^*)=p^*\text{,称 }x^*\text{ 为最优解}\)
-
局部最优解(locallyoptional):\(f_0(x)=\inf \left\{\begin{array}{ll} \quad \quad \quad f_i(x)\leq0,i=1,\dots,m\\[1ex]f_0(z) | \quad h_i(z)=0,i=1,\dots,p\\ \quad \quad \quad \|z-x\|\leq R\end{array}\right\}\)
问题性质
常用等价变换
BoxConstraint(箱约束)转化为标准形式
\[l_i\leq x\leq u_i\Rightarrow\begin{cases}l_i-x_i\leq0\\[2ex]x_i-u_i\leq0\end{cases}
\]
缩放,给目标函数或约束条件乘上一些正系数,类似于数据清洗
\[\begin{aligned}\operatorname*{min}& \alpha_0 f_0(x)\\[2ex]s.t.& \alpha_i f_i(x)\leq0\quad i=1,\dots,m\\[2ex]& \beta_i h_i(x)=0\quad i=1,\dots,p\end{aligned}
\]
消除等式约束,可以把等式约束当做方程解出来带入其他部分
引入松弛变量
\[\begin{aligned}&\operatorname*{min}\quad f_{0}(x)\\&s.t.\quad s_{i}\leq0\\&f_{i}(x)-s_{i}=0\quad i=1,\ldots,m\\&a_{i}^{T}x=b_{i}\quad i=1,\ldots,p\end{aligned}
\]
许多优化算法(如线性规划、二次规划等)都是针对具有特定形式(如线性约束、凸目标函数)的问题设计的。通过引入松弛变量,可以将原始问题转化为这些算法能够处理的形式,从而利用这些算法来求解问题。
局部最优即是全局最优
证明:若找到了局部最优解\(x\),用反证法证明\(x\)一定是全局最优解
\[\begin{aligned}&\text{设 x 不是全局最优,那么必然}\exists y\in X_f, s.t. f_0(y)<f_0(x)\\&\because\text{x 为局部最优,}\Rightarrow\|y-x\|_2>R\\&\text{令 }z=\theta y+(1-\theta)x\text{,取 }\theta=\frac R{2\|y-x\|_2}\in[0,1]\\&\therefore\text{z 为凸组合,}z\in X_f\text{ 且 }f_0(z)\leq\theta f_0(y)+(1-\theta)f_0(x)\\&\|z-x\|_2=\theta\|x-y\|_2=\frac R2<R\text{,由 x 局部最优有 }f_0(x)\leq f_0(z)\\&\text{由此应该有 }f_0(y)<f_0(x)\leq f_0(z)\text{ (两条结论矛盾,因此原假设成立)}\end{aligned}
\]
对千拟凸优化问题,局部最优解是全局朵优解这一性质不成立
最优解处的一阶条件
设凸优化问题的目标函数是可微的,记最优解为\(x^*\),可行域为\(X_f\)对于任意的\(y \in X_f\),均满足
\[\nabla f_{0}^{T}(x^{*})(y-x^{*})\geq0
\]
简单证明一下,我们都知道凸函数的一阶性质是
\[f(y)\geq f(x)+\nabla f^{T}(x)(y-x) \quad \quad (1)
\]
如果最优解处的一阶条件是满足\(\nabla f_{0}^{T}(x^{*})(y-x^{*})\geq0\)的,那么代入(1)可以得到\(f(y) \geq f(x^*)\),符合\(x^*\)是最优解得要求
如果最优解处的一阶条件不满足\(\nabla f_{0}^{T}(x^{*})(y-x^{*})\geq0\)
考虑点 \(z(t) = ty + (1- t)x\), 其中 \(t \in (0, 1]\) 为参数。因为 \(z(t)\) 在 \(x\) 和 \(y\) 之间的线段上,
而可行集是凸集,因此 \(z(t)\) 可行。我们可断言对于总有小正数\(t\), 使得\(f_0(z(t) ) < f_0(x)\), 这证
明了x不是最优的。为说明这一点,注意
\[\left.\frac{d}{dt}f_0(z(t))\right|_{t=0}=\nabla f_0(x)^T(y-x)<0,
\]
综上所述,最优解处的一阶条件成立
看看上述式子的几何意义,设\(X\)为可行域,\(x\)为最优解,图中虚线簇为优化函数\(f_0\)的等高线,则最优解处的一阶条件给出了一个超平面\(\nabla f_0(x)^T(y-x)=0\),可行域作为一个凸集总在超平面的一侧,也就是\(\nabla f_0(x)^T(y-x)<0\)
仅有等式约束
\[\begin{array}{ll}\min&f_0(x)\quad dom\mathrm{~}f_0=\mathbb{R}^n\\s.t.&Ax=b\end{array}
\]
带入一阶最优条件
\[\text{令}v=y-x^*\text{,}约束条件化为\nabla f_0^T(x^*)v\geq0\text{,}v\in\mathcal{N}(A)\text{,则 }\nabla f_0^T(x^*)\perp v
\]
为何由\(\nabla f_0^T(x^*)v\geq0\)便可以断言\(\nabla f_0^T(x^*)\perp v\)?,不妨从几何的角度来理解。图上看结果是:最优解处函数梯度垂直于\(A\)的化零空间

可以想象:无论如何调整\(\nabla f_0(t)\)方向,也无法使所有的\(v\in\mathcal{N}(A)\)(对应\(Ax=0\))都做到\(\nabla f_0^T(x^*)v\geq0\),因此只能是
\[\nabla f_0^T(x^*)\perp v
\]
仅有非负约束
\[\begin{aligned}&\min f_0(x)\\&s.t. x\geq0\\&\nabla f_0^T(x^*)y-\nabla f_0^T(x^*)x^*\geq0 \quad \quad (1)\end{aligned}
\]
上式是关于任意\(y \geq 0\)的线性函数(\(y\)的约束与x相同),若想要(1)式子大于等于0恒成立,则系数必然有
\[\nabla f_0(x^*)\geq0 \quad \quad (2)
\]
为什么?倘若\(\nabla f^T_0(x^*)\)有负数分量\(\nabla f^T_{0i}(x^*)\),由于\(y\)在正数范围内任取,令\(y_i\)取到足够大的正无穷,其余分量为0,则(1)不成立。因此\(\nabla f^T_0(x^*)\)是不能有负数分量的
再看看其他有用的性质,令\(y=0\),由(1)可以得到.\(-\nabla f_0^T(x^*)x^*\geq0 \quad \quad (3)\)
结合(2)(3)和\(x\)非负的约束,可以得到\(\nabla f_0^T(x^*)x^*=0\),这两项内积为0,且都非负,所以\((\nabla f_0(x^*))_ix_i^*=0,\forall i\text{。}\),注意这里得出了一个重要性质,最优解处考察每一个维度,要么梯度值分量为0,要么约束取等号,这个条件叫做互补条件(complementary)。以下图为例检验一下,蓝色线为目标函数等高线,约束为第一象限\(\mathbb{R}^2_{++}\),此时满足互补条件

问题举例
线性规划
\[\begin{aligned}
&\mathrm{min} c^{T}x+d \\
&s.t. Gx+s=h \\
&Ax=b \\
&s\geq0
\end{aligned}\]
等价变换
\[\begin{aligned}&\mathrm{min}&&c^{T}x^{+}-c^{T}x^{-}+d\\&s.t.&&Gx^{+}-Gx^{-}+s=h\\&&&Ax^{+}-Ax^{-}=b\\&&&s\geq0, x^{+}\geq0, x^{-}\geq0\end{aligned}
\]
其中\(x^+\)和\(x^-\)是只有0分量和正分量的向量,举个例子:
x=[-2,1,-2,3],则\(x^+\)=[0,1,0,3],\(x^-\)=[2,0,2,0]
通过这种变换能够将问题化为线性约束以及非负约束,这方便使用函数(linprog)进行求解。
根据一阶最优条件线性规划的解在边界上
线性分数规划
\[\begin{aligned}
&\mathrm{min}&& \frac{c^{T}x+d}{e^{T}x+f} \\
&s.t.&& Gx\leq h \\
&&&Ax=b \\
&&&e^{T}x+f>0
\end{aligned}\]
这个问题不是凸优化问题,但是可以化为线性规划问题
取\(y=\frac{x}{e^{T}x+f}, z=\frac{1}{e^{T}x+f}\),得到等价问题
\[\begin{aligned}
&\mathrm{min}&& c^{T}y+dz \\
&s.t.&& Gy-hz\leq0 \\
&&&Ay-bz=0 \\
&&&e^{T}y+fz=1 \\
&&&z\geq0
\end{aligned}\]
【如何判断两个优化问题等价?】
【在一个优化问题里面找一个可行解,使得能在另一个那里找到对应的可行集,且这两个解对应的目标函数值是相等的】
二次规划
(quadratic programming, QP)目标函数为二次函数,约束为放射约束
\[\begin{array}{rl}\min&\frac{1}{2}X^TPX+q^Tx+r\\\\s.t.&Qx\leq h\quad P\in S_+^n\\\\&Ax=b\end{array}
\]
线性规划问题的最优解只能在边界点取到,二次规划问题的最优解可能在内部取到
二次约束的二次规划(Quadratically Constrained Quadratic Programing, QCQP)
\[\begin{aligned}&\text{min}&&\frac{1}{2}X^{T}PX+q^{T}x+r\\&s.t.&&\frac{1}{2}X^{T}P_{i}X+q_{i}^{T}x+r\leq0&&P\in S_{++}^{n}\\&&&Ax=b&&P_{i}\in S_{+}^{n}, i=1,\ldots,m\end{aligned}
\]
稀疏约束的最小二乘
之前提到可以使用1范数取代0范数
\[\begin{array}{ll}\hat{x}=\arg\min_x&\|b-Ax\|_2^2+\lambda_0\|x\|_0\\\\=\arg\min_x&\|b-Ax\|_2^2+\lambda_1\|x\|_1&(l_1-regularized least squares)\end{array}
\]
但是带有绝对值的目标函数显然是不好优化的,为此做一些变换
令\(x=x^+-x^-\),则\(\lambda_{1}\|x^{+}-x^{-}\|_{1}=\lambda_{1}1^{T}x^{+}+\lambda_{1}1^{T}x^{-}\),从而消除绝对值,化为二次规划的问题
\[\begin{array}{rl}\hat{x}=\arg\min_x&\|b-Ax^+-Ax^-\|_2^2+\lambda_11^Tx^++\lambda_11^Tx^-\\\\s.t.&x^+,x^-\geq0\end{array}
\]
半正定规划
半正定规划有两种形式,一种是矩阵形式,一种是向量形式
半正定规划的矩阵形式,这实际上是矩阵空间的线性规划(因为trace 的操作实际上是线性操作,
可从特例对角矩阵理解)
\[\begin{array}{rl}\mathrm{min}&tr(CX)\\\\s.t.&tr(A_iX)=b_i, i=1,\ldots,p\\\\&X\succeq0, X\in S_{+}^{n}, C\in R^{n\times n}, A_{i}\in R^{n\times n}, b_{i}\in R\end{array}
\]
向量形式
\[\begin{array}{ll}\min&c^Tx\\\\s.t.&x_1A_1+\cdots+x_nA_n\preceq B\\\\&x\in R^n, B,A_1,\ldots,A_n\in S^k, C\in R^n\end{array}
\]
经典的问题:谱范数(最大奇异值)问题
谱范数指的是矩阵的最大奇异值
求\(A(x)=A+x_1A_1+\cdots+x_nA_n,A_i\in\mathbb{R}^{p\times q}\)最小谱范数?
由于谱范数恒正,记优化函数为\(\sqrt{S}\),问题表述为
\[\begin{aligned}
\mathrm{min}& \sqrt{S} (\text{非凸})\quad\Leftrightarrow\quad S (\text{凸}) \\
s.t.& A(x)^TA(x)\preceq SI \\
\Rightarrow\mathrm{min}& \text{t} \\
s.t.& A(x)^TA(x)\preceq t^2I, t\geq0 \\
\Rightarrow\mathrm{min}& \text{t} \\
s.t.& \left.\left[\begin{array}{cc}tI&A(x)\\\\A^T(x)&tI\end{array}\right.\right]\succeq0, t\geq0 \\
&&\Rightarrow\mathrm{min} t \text{:} \\
s.t.& Y=\left[\begin{array}{cc}tI&A(x)\\[0.3em]A^T(x)&tI\end{array}\right], Y\succeq0, t\geq0
\end{aligned}\]
具体的等价证明参见附录
多目标优化
- 例如,投资要在总成本限制下,最小化风险,最大化收益;发展要在一定资源限制下,最大化发展速度与发展质量。
- 此时有多个目标,通常在某个指标上变好,就会在另外一个指标上变差,权衡不同目标,得出最优解的集合称为帕累托曲面(Pareto front)
帕累托曲面通常很难找到,因此多目标优化事实上是个很难做的问题,我们一般会定住某些目标将问题变为单目标优化问题,比如使用罚函数的思想。以岭回归为例
\[\begin{array}{l}\min\|b-Ax\|_2^2\text{,}\min\|x\|_2^2\\\min\|b-Ax\|_2^2+\lambda\|x\|_2^2\end{array}
\]
遍历不同的超参数\(\lambda\)即可得到帕累托曲面