凸优化数学基础笔记(六):凸集、凸函数与凸规划
现有最优化方法对一般函数只能找到局部最优解,判断有无极值点以及它是否为全局最优解要用到函数凸性概念。一般在现实优化问题上,我们一般把优化问题变成凸优化问题,因为凸优化,凸优化(Convex OPtimization)是数学优化中的一个重要分支,研究的是在凸集上极小值的问题。下面首先介绍凸集。从直观上看,凸集是这样一些点的集合,它的内部没有"洞"(hole),边界不向内凹。凸集的基本特征,是其上任取两点所联成线段上的点依然属于这个集合。在数学上就是采用这种描述方法给凸集下定义的。首先给出凸组合的概念,在给出凸集和凸函数的定义,并简单讨论凸函数判定方法。
1.凸 集(Convex Set)
Definition 6.1(凸组合定义) 设\(\mathbf{X}1,\mathbf{X}2,\cdots,\mathbf{X}l\) 是\(\mathbf{R}^n\) 中的\(l\)个已知点。若对于某个点\(\mathbf{X}\in\mathbf{R}^n\) 存在常数\(\alpha_1,\alpha_2,\cdots,\alpha{l}\geq0\),且\(\sum{i=1}^{l}\alpha_i=1\) 使得\(\mathbf{X}=\sum{i=1}^l\alpha_i\mathbf{X}_i\),则称\(\mathbf{X}\) 是\(\mathbf{X}_1,\mathbf{X}_2,\cdots,\mathbf{X}l\) 的凸组合 。若 \(\alpha_1,\alpha_2,\cdots,\alpha_l>0\) 且\(\sum{i=1}^l\alpha_i=1\),则称\(\mathbf{X}\)是\(\mathbf{X_1},\mathbf{X}_2,\cdots,\mathbf{X}_l\) 的严格凸组合。
考虑两点\(\mathbf{X}_1\)和\(\mathbf{X}_2\)的凸组合\(\mathbf{X}=\alpha_1\mathbf{X}_1+\alpha_2\mathbf{X}_2\) ,其中\(\alpha_1,\alpha_2\geq{0}\) 且\(\alpha_1+\alpha_2=1\)。把 \(\alpha_2=1-\alpha_1\) 代入\(\mathbf{X}\) 的凸组合中得到\(\mathbf{X}=\mathbf{X}_2+\alpha_1(\mathbf{X}_1-\mathbf{X}_2)\) ,其中\(\alpha\in[0,1]\)。由解析几何知识可知,当 \(\alpha_1\)从0变到1时,点\(\mathbf{X}\) 由点\(\mathbf{X}_2\) 出发沿\(\mathbf{X}_1-\mathbf{X}_2\) 的方向移动到\(\mathbf{X}_1\) 。由此可知,\(\mathbf{X}_1\)和\(\mathbf{X}_2\) 所有严格凸组合的集合是不含\(\mathbf{X}_1\)和\(\mathbf{X}_2\) 两端点的线段。
Definition 6.2 (凸集的定义) 设集合\(\mathbf{C}\subseteq{\mathbf{R}^n}\)。如果对于任意两点\(\mathbf{X}_1,\mathbf{X}_2\in{\mathbf{C}}\) ,它们的任意两点\(\mathbf{X}_1,\mathbf{X}_2\in{\mathbf{C}}\) ,它们的任意凸组合仍然属于\(\mathbf{C}\) ,则称集合\(\mathbf{C}\) 为凸集。特别地规定,空集是凸集。
Definition 6.3 (半空间的定义) 设\(\mathbf{a}\in\mathbf{R}^n\) 且 \(\mathbf{a}\neq \mathbf{0},b\in{\mathbf{R}^1}\) ,则集合\(\{\mathbf{X}|\mathbf{a}^T\mathbf{X}\geq{b},\mathbf{X}\in{R^n}\}\) 称为\(\mathbf{R}^n\) 中的一个半空间。
容易地验证,空间\(\mathbf{R}^n\)、半空间、超平面、直线、点、球都是凸集。
定理 6.1 任意一组凸集的交集仍然是凸集。
证 明: 设\(C=\cap_{i\in I}C_i\) ,其中\(I\)是\(\{C_i\}\) 的下标集,\(C_i\) 都是凸集。任取\(\mathbf{X}_1,\mathbf{X}_2\in{C}\) , 则对于任意\(i\in{I}\) 都有\(\mathbf{X}_1,\mathbf{X}_2\in \mathbf{C}_i\)。任取\(\alpha_1,\alpha_2\in{[0,1]}\) 且\(\alpha_1+\alpha_2=1\),因为\(C_i\) 是凸集,有 \(\alpha_1\mathbf{X}_1+\alpha_2\mathbf{X}_2\in{C_i}\)。于是,\(\alpha_1\mathbf{X}_1+\alpha_2\mathbf{X}2\in \cap{i\in{I}}C_i=C\),即\(\mathbf{C}\) 是凸集。
2.凸函数(Convex Function)
Definition 6.4 (凸函数的定义) 设\(f:\mathbf{C}\subseteq\mathbf{R}^n\rightarrow\mathbf{R}^1\) , 其中\(\mathbf{C}\) 为凸集。若对于任意两点\(\mathbf{X}_1,\mathbf{X}_2\in{C}\) 和任意一对满足\(\alpha_1+\alpha_2=1\) 的数\(\alpha_1,\alpha_2\in[0,1]\) ,都有 \(f(\alpha_1\mathbf{X}_1+\alpha_2\mathbf{X}_2)\leq \alpha_1f(\mathbf{X}_1)+\alpha_2f(\mathbf{X}_2)\) ,则称\(f\) 为定义在\(\mathbf{C}\) 上的凸函数 。若对于任意一对满足\(\alpha_1+\alpha_2=1\)的数\(\alpha_1,\alpha_2\in(0,1)\) 都有:
\[f(\alpha_1\mathbf{X}_1+\alpha_2\mathbf{X}_2)<\alpha_1f(\mathbf{X}_1)+\alpha_2f(\mathbf{X}_2) \tag{1} \]
则称\(f\)为定义在凸集\(C\)上严格凸函数。
Definition 6.5 若函数\(g(\mathbf{X})=-f(\mathbf{X})\)在凸集\(C\) 上是(严格)凸函数,则称\(f\)是定义在凸集\(C\) 上的(严格)凹函数。
定理 6.2 设\(f:C\subset\mathbf{R}^n\rightarrow\mathbf{R}^1\),其中\(\mathbf{C}\)为非空凸集。若\(f\)是凸函数,则对于任意实数\(\beta\), 水平集\(\mathbf{D}_{\beta}=\{\mathbf{X}|f(\mathbf{X})\leq\beta,\mathbf{X}\in{C}\}\) 是凸集。
证 明: 若\(\mathbf{D}{\beta}\)是空集,则\(\mathbf{D}{\beta}\) 是凸集。以下设\(\mathbf{D}_{\beta}\) 非空,任取\(\mathbf{X}_1\) ,\(\mathbf{X}2\in{D{\beta}}\) , 则\(f(\mathbf{X}_1)\leq\beta,f(\mathbf{X}_2)\leq\beta\) 。设\(\alpha_1,\alpha_2\in[0,1]\) ,且\(\alpha_1+\alpha_2=1\) 根据\(f\)的凸性,必有
\[f(\alpha_1\mathbf{X}_1+\alpha_2\mathbf{X}_2)\leq \alpha_1f(\mathbf{X}_1)+\alpha_2f(\mathbf{X}_2)\leq \alpha_1\beta+\alpha_2\beta=\beta \tag{2} \]
即 \(\alpha_1\mathbf{X}1+\alpha_2\mathbf{X}2\in{\mathbf{D}{\beta}}\) ,所以 \(\mathbf{D}{\beta}\) 是凸集。
3.判断凸函数的方法
判定一个函数是否为凸函数,一般来说比较困难,但函数可微时,有如下几个定理可供使用。
定理 6.3 设\(f:\mathbf{C}\subseteq\mathbf{R}^n\rightarrow{\mathbf{R}^1}\) 是可微函数,其中\(\mathbf{C}\) 为凸集,则:
-
\(f\)为凸函数的充要条件 是,\(\forall \mathbf{X}_1,\mathbf{X}_2\in{\mathbf{C}}\), 都有
\[f(\mathbf{X}_2)\geq f(\mathbf{X}_1)+\nabla{f(\mathbf{X}_1)}^T(\mathbf{X}_2-\mathbf{X}_1) \tag{3} \]
-
\(f\)为严格凸函数的充要条件 是,\(\forall \mathbf{X}_1,\mathbf{X}_2\in\mathbf{C}\),且\(\mathbf{X}_1\neq\mathbf{X}_2\),都有
\[f(\mathbf{X}_2)>f(\mathbf{X}_1)+\nabla f(\mathbf{X_1})^T(\mathbf{X}_2-\mathbf{X}_1) \tag{4} \]
证 明: (1)必要性证明 :已知\(f\)是\(\mathbf{C}\)上的凸函数,证明式(3)。由凸函数定义可知,对满足\(\alpha_1+\alpha_2=1\) 的任意正数\(\alpha_1,\alpha_2\in[0,1]\)都有
\[f(\alpha_1\mathbf{X}_1+\alpha_2\mathbf{X}_2)\leq\alpha_1f(\mathbf{X}_1)+\alpha_2f(\mathbf{X}_2) \tag{5} \]
令\(\alpha_2=t\),则\(\alpha_1=1-t\),代入上式中,整理得到:
\[\frac{f(\mathbf{X}_1+t(\mathbf{X}_2-\mathbf{X}_1))-f(\mathbf{X}_1)}{t}\leq f(\mathbf{X}_2)-f(\mathbf{X}_1) \tag{6} \]
令 \(t\rightarrow{0}\) ,由\(f\)的可微性,利用一阶Taylor展开式,方向导数定义及式(6)可得:
\[\nabla f(\mathbf{X}_1)^T(\mathbf{X}_2-\mathbf{X}_1)\leq {f(\mathbf{X}_2)-f(\mathbf{X}_1)} \tag{7} \]
必要性得证;
充分性证明: 任取一对正数\(\alpha_1,\alpha_2\in[0,1]\) ,且\(\alpha_1+\alpha_2=1\),考虑点 \(\mathbf{X}=\alpha_1\mathbf{X}_1+\alpha_2\mathbf{X}_2\) 根据充分性假设,应有:
\[\begin{aligned} &f(\mathbf{X}_1)\geq f(\mathbf{X})+\nabla f(\mathbf{X})^T(\mathbf{X}_1-\mathbf{X})\\ &f(\mathbf{X}_2)\geq f(\mathbf{X})+\nabla f(\mathbf{X})^T(\mathbf{X}_2-\mathbf{X}) \end{aligned} \tag{8} \]
两式分别乘以\(\alpha_1\) 和\(\alpha_2\) 后相加,得到:
\[\alpha_1f(\mathbf{X}_1)+\alpha_2f(\mathbf{X}_2)\geq f(\mathbf{X})+\nabla f(\mathbf{X})^T(\alpha_1\mathbf{X}_1+\alpha_2\mathbf{X}_2-\mathbf{X})=f(\alpha_1\mathbf{X}_1+\alpha_2\mathbf{X}_2) \tag{9} \]
由凸函数定义可知,\(f\) 是\(\mathbf{C}\)上的凸函数。
(2)命题(2)充分性可仿照命题(1)的充分性证得;
必要性:因为严格凸函数本身是凸函数,所以\(\forall \mathbf{X}_1,\mathbf{X}_2\in{\mathbf{C}}\) ,且\(\mathbf{X}_1\neq\mathbf{X}_2\) 都有
\[f(\mathbf{X}_2)\geq f(\mathbf{X}_1)+\nabla f(\mathbf{X}_1)^T(\mathbf{X}_2-\mathbf{X}_1) \tag{10} \]
以下证明式中只能取">"号,假设存在\(\mathbf{X}_1,\mathbf{X}_2\in{\mathbf{C}}\) 且\(\mathbf{X}_1\neq\mathbf{X}_2\) ,满足
\[f(\mathbf{X}_2)=f(\mathbf{X}_1)+\nabla f(\mathbf{X}_1)^T(\mathbf{X}_2-\mathbf{X}_1) \tag{11} \]
取\(\mathbf{X}=\frac{1}{2}\mathbf{X}_1+\frac{1}{2}\mathbf{X}_2\) ,由\(f\) 的严格凸性,有:
\[f(\mathbf{X}_3)<\frac{1}{2}f(\mathbf{X}_1)+\frac{1}{2}f(\mathbf{X}_2) \tag{12} \]
把式(11)代入式(12)中,经整理得:
\[f(\mathbf{X}_3)<f(\mathbf{X}_1)+\nabla f(\mathbf{X}_1)^T(\mathbf{X}_3-\mathbf{X}_1) \tag{13} \]
根据本定理(1)部分结论得知,此时与\(f\)的凸性相矛盾。
定 理 6.4 设\(f:\mathbf{C}\subseteq\mathbf{R}^n\rightarrow\mathbf{R}^1\) 是二次可微函数,\(\mathbf{C}\) 为非空开凸集,则\(f\)为\(C\)上为凸函数的充要条件是 ,\(f(\mathbf{X})\) 的Hessian矩阵\(\nabla^2f(\mathbf{X})\) 在凸集\(C\) 处处半正定,即\(\nabla^2f(\mathbf{X})\succeq{0}\) 。
定 理6.5 设\(f:\mathbf{C}\subseteq\mathbf{R}^n\rightarrow{\mathbf{R}^1}\) 是二次可微函数,\(\mathbf{C}\) 为非空凸集。若\(Hessian\)矩阵\(\nabla^2f(\mathbf{X})\) 在凸集\(\mathbf{C}\) 上到处正定,则 \(f\)在\(\mathbf{C}\) 上为严格凸函数。
需要注意,该定理的逆命题不真。
例如 \(f(x)=x^4\) 在\(\mathbf{R}^1\) 上为严格凸函数,但是它的\(Hessian\)矩阵\(\nabla^2f(\mathbf{x})=12x^2\)在点\(x=0\) 处是半正定的。
4.凸规划 (Convex Programing)
凸规划是数学优化中的一个重要概念,指目标函数(损失函数)为凸函数、可行域为凸集的优化问题,具有许多的优化性质,例如局部最优解就是全局最优解,且对偶理论成熟。广泛应用于机器学习,信号处理,金融工程等领域。
Definition 6.6 (凸规划问题) 设\(f:\mathbf{C}\subseteq\mathbf{R}^n\rightarrow{\mathbf{R}^1}\) ,其中 \(\mathbf{C}\) 是非空凸集合 ,\(f\) 为凸函数,则形式如下:
\[\begin{aligned} &\min f(\mathbf{X})\\ &s.t. \mathbf{X}\in{\mathbf{C}} \end{aligned} \tag{14} \]
的优化问题为凸规划问题。更进一步,设将可行域的凸集可写为如下形式:
\[\begin{aligned} \mathbf{C}=\{\mathbf{X}|g_i(\mathbf{X})\geq0,i=1,\cdots,l;h_j(\mathbf{X})=0,j=1,\cdots,m,\mathbf{X}\in R^n\} \end{aligned} \tag{15} \]
若\(g_1,g_2,\cdots,g_l\) 都是\(\mathbf{R}^n\) 上的凸函数,\(h_1,h_2,\cdots,h_m\) 都是\(R^n\)上的线性函数,则容易验证\(C\)是凸集 。事实上,因为\(-g_1,-g_2,-g_l\)都是凸函数,根据定理6.2集合\(\mathbf{C}_i=\{\mathbf{X}|-g(\mathbf{X})_i\leq0,\mathbf{X}\in{\mathbf{R}^n}\}(i=1,2,\cdots,l)\) 也都是凸集。此外,超平面\(P_j=\{\mathbf{X}|h_j(\mathbf{X})=0,\mathbf{X}\in{\mathbf{R}^n}\}(j=1,\cdots,m)\) 也都是凸集。显然,\(C\)是\(C_1,\cdots,C_l,P_1,\cdots,P_m\) 的交集,也是凸集。于是,这种情况下凸规划问题又可表示成如下形式:
\[\begin{aligned} &\min{f(\mathbf{X})}\\ &s.t.\begin{cases} g_i(\mathbf{X})\geq0 ,\hspace{2em} i=1,2,\cdots,l\\ h_j(\mathbf{X})=0,\hspace{2em} j=1,2,\cdots,m \end{cases} \end{aligned} \tag{16} \]
如下定理指明凸规划的一个重要性质。
定 理6.6 设\(\mathbf{X}^{*}\) 是凸规划问题的局部极小值,
- 若\(f\)是凸函数,则\(\mathbf{X}^{*}\) 是凸规划问题的局部极小值点;
- 若\(f\)是严格凸函数,则\(\mathbf{X}^{*}\) 是凸规划问题的唯一全局极小值点。
证 明: (1)使用反证法。假设\(\mathbf{X}^{*}\) 不是全局极小值点,则必存在\(Z\in\mathbf{C}\) 使得 \(f(\mathbf{Z})<f(\mathbf{X})\) 。对应\(\mathbf{Z}\) 与\(\mathbf{X}^*\) 的任意凸组合\(\mathbf{X}=\alpha_1\mathbf{Z}+\alpha_2\mathbf{X}^*\),其中\(\alpha_1,\alpha_2\in(0,1)\) 且\(\alpha_1+\alpha_2=1\),根据\(f\)的凸性,有
\[f(\mathbf{X})=f(\alpha_1\mathbf{Z}+\alpha_2\mathbf{X}^*)\leq \alpha_1f(\mathbf{Z})+\alpha_2f(\mathbf{X}^*)<\alpha_1f(\mathbf{X}^*)+\alpha_2f(\mathbf{X}^*)=f(\mathbf{X}^*) \tag{17} \]
由此看到,当\(\alpha_1>0\)充分小时,\(\mathbf{X}\)充分接近\(\mathbf{X}^*\) ,注意到此时也有\(f(\mathbf{X})<f(\mathbf{X}^*)\),而这与\(\mathbf{X}^*\) 是局部极小值点相矛盾,因此\(\mathbf{X}^*\) 必是全局极小值。
(2) 假设\(\mathbf{X}^*\) 不是唯一全局的极小值点,必存在\(\mathbf{X}^{'}\in\mathbf{C}\) 但\(\mathbf{X}^{\prime}\neq\mathbf{X}^*\),使得\(f(\mathbf{X}^{\prime})=f(\mathbf{X}^*)\)。考虑中点\(\mathbf{X}=\frac{1}{2}(\mathbf{X}^{\prime}+\mathbf{X}^{*})\in{\mathbf{C}}\) 。由于 \(f\)的严格的凸性,有
\[f(\mathbf{X})=f(\frac{1}{2}(\mathbf{X^*}+\mathbf{X}^{\prime}))<\frac{1}{2}(f(\mathbf{X}^*)+f(\mathbf{X}^{\prime}))=f(\mathbf{X}^{*}) \tag{18} \]
此式与\(\mathbf{X}^{*}\) 为全局极小值点相矛盾。这就证明了唯一性。
由上面的推导可知,凸规划有如下优秀的重要性质:
-
局部最优即全局最优:凸规划的任一局部极小值点都是全局极小值点;
-
最优解集为凸集:若存在最优解,则所有最优解构成一个凸集;
-
可微情况下的最优性条件 :若\(f\)可微,则\(\mathbf{x}^*\)为全局最优解的情况下,的充要条件:
\[\nabla f(\mathbf{x}^*)^T(\mathbf{y}-\mathbf{x}^*)\geq{0} \hspace{2em}\forall{y}\in{X} \]
-
对偶理论:凸规划的对偶问题也是凸的,且强对偶性通常成立(在某些约束品性下,如Slater条件),即原问题与对偶问题的最优值相等。
其常见的优化问题的例子:
- 线性规划:目标函数和约束均为线性,显然满足凸性。
- 二次规划 :目标函数为二次型 \(\frac{1}{2}x^TQx+c^Tx\),若 \(Q\) 半正定,则为凸二次规划。
- 最小二乘: \(min||\mathbf{A}x-b||_2^2\) 是凸的;
- 锥规划:如二阶锥规划、半定规划,都是凸规划的重要推广。