本节将介绍关于凸集的基本信息,包括概念、基本性质以及常见凸集。
在最优化问题范畴中,凸优化问题是一类常见的、并且性质优秀的优化问题。一些情况下可以通过凸优化问题来解决非凸优化问题。
而凸集合与凸函数决定了该优化问题是凸优化问题。具体表现在:
在最优化问题概述中我们介绍了可行域的概念。它可能并不仅仅被定义域空间描述,并且也可能伴随着约束条件的限制。在这里为了简化问题,仅观察定义域空间的描述。
{
min
f
(
x
)
s.t.
x
∈
S
{minf(x)s.t. x∈S
这里通过两个简单示例描述凸优化相关的优秀性质:

观察左侧函数图像,在 [ a , b ) [a,b) [a,b)区间内,可以找到该函数的最小点,并且该点是一个平稳点——在该点处函数的导数为 0 0 0;
同时观察右侧函数图像,同样可以找到该函数的最小点。只不过区别于左侧函数图像的是:该区间内函数的平稳点存在若干个:
但这些红色点也同样都是平稳点,也就是说:仅通过平稳点无法确定其是否为全局最优解。这是凸函数的重要性质;相反地,右侧图像描述的函数被称作非凸函数。已知函数:
G
(
x
1
,
x
2
)
=
x
1
2
+
x
2
2
\mathcal G(x_1,x_2) = x_1^2 + x_2^2
G(x1,x2)=x12+x22,想要求解在可行域
S
\mathcal S
S内关于
G
(
x
1
,
x
2
)
\mathcal G(x_1,x_2)
G(x1,x2)的最小值。对应优化问题表示如下:
{
min
G
(
x
1
,
x
2
)
=
x
1
2
+
x
2
2
s.t.
(
x
1
,
x
2
)
∈
S
{minG(x1,x2)=x21+x22s.t. (x1,x2)∈S
现在存在两个可行域
S
1
,
S
2
\mathcal S_1,\mathcal S_2
S1,S2,对应图像表示如下:

从几何角度观察,函数
G
(
x
1
,
x
2
)
\mathcal G(x_1,x_2)
G(x1,x2)描述的图像形状是圆,上述图像中的虚线表示函数图像可能出现的等值线。
观察左侧图像,在可行域
S
1
\mathcal S_1
S1范围内取到合适的
x
∗
(
x
1
∗
,
x
2
∗
)
x^*(x_1^*,x_2^*)
x∗(x1∗,x2∗),使得
G
(
x
1
∗
,
x
2
∗
)
\mathcal G(x_1^*,x_2^*)
G(x1∗,x2∗)达到最小,很明显,是上述的红色点。作为最优解的
x
∗
x^*
x∗,可以发现:
x
∗
x^*
x∗点所在位置是函数
G
(
x
1
,
x
2
)
\mathcal G(x_1,x_2)
G(x1,x2)与可行域
S
1
\mathcal S_1
S1描述范围的切点;也就是说:
x
∗
x^*
x∗点处的负梯度方向
−
∇
G
(
x
1
∗
,
x
2
∗
)
-\nabla \mathcal G(x_1^*,x_2^*)
−∇G(x1∗,x2∗)与切线方向垂直。
其中红色箭头表示负梯度方向。关于负梯度方向,详见线搜索方法(方向角度)。
这意味着:从可行域
S
1
\mathcal S_1
S1范围内任取一点
x
x
x,那么向量
x
−
x
∗
x - x^*
x−x∗与负梯度方向之间的夹角总是
≥
9
0
o
\geq 90^o
≥90o。如果用向量内积的形式表示,必然有:
这里的
G
(
x
∗
)
\mathcal G(x^*)
G(x∗)表示
∇
G
(
x
1
∗
,
x
2
∗
)
\nabla \mathcal G(x_1^*,x_2^*)
∇G(x1∗,x2∗),后续同理。
−
[
∇
G
(
x
∗
)
]
T
(
x
−
x
∗
)
≤
0
∀
x
∈
S
1
-[\nabla \mathcal G(x^*)]^T(x - x^*) \leq 0 \quad \forall x \in \mathcal S_1
−[∇G(x∗)]T(x−x∗)≤0∀x∈S1
最终归纳得到如下等价条件:
x
∗
is Optimal
⇔
−
[
∇
G
(
x
∗
)
]
T
(
x
−
x
∗
)
≤
0
∀
x
∈
S
1
x^* \text{ is Optimal } \Leftrightarrow -[\nabla \mathcal G(x^*)]^T(x - x^*) \leq 0 \quad \forall x \in \mathcal S_1
x∗ is Optimal ⇔−[∇G(x∗)]T(x−x∗)≤0∀x∈S1
观察右侧图像,可以按照上述寻找切点的方式去寻找最优解。假设找到了右侧的红色点。但这个最优解并不满足上述的等价条件。
见下图中右侧两个红色箭头明显是一个锐角。

综上,可行域内任意一点 x x x与最优解 x ∗ x^* x∗之间满足如上等价条件,那么该可行域是凸集;反之为非凸集。从而将可行域 S 1 \mathcal S_1 S1称为凸集;而可行域 S 2 \mathcal S_2 S2称作非凸集。相反,如果一个可行域被确定是凸集,那么它同样存在一些优秀性质:
关于凸集
(
Convex Set
)
(\text{Convex Set})
(Convex Set)的定义表示如下:
∀
x
,
y
∈
C
;
∀
λ
∈
[
0
,
1
]
⇒
λ
⋅
x
+
(
1
−
λ
)
⋅
y
∈
C
\forall x,y \in \mathcal C;\forall \lambda \in [0,1] \Rightarrow \lambda \cdot x + (1 - \lambda) \cdot y \in \mathcal C
∀x,y∈C;∀λ∈[0,1]⇒λ⋅x+(1−λ)⋅y∈C
文字的描述可简单表述为:可行域
C
\mathcal C
C中任意两点间的连线,其连线上的任一点仍属于该可行域
C
\mathcal C
C。示例图像表示如下:
第二张图也被称作多面体。很明显,最后一个图描述的可行域不是凸集,其连线上的点并不全在可行域上。
关于凸集合性质存在如下等价条件:如果某可行域
C
\mathcal C
C是一个凸集,对于
∀
x
1
,
x
2
,
⋯
,
x
k
∈
C
\forall x_1,x_2,\cdots,x_k \in \mathcal C
∀x1,x2,⋯,xk∈C,且对于
∀
λ
1
,
λ
2
,
⋯
,
λ
k
≥
0
\forall \lambda_1,\lambda_2,\cdots,\lambda_k \geq0
∀λ1,λ2,⋯,λk≥0且
∑
i
=
1
k
λ
i
=
1
k∑i=1λi=1
反之同样可以推出
C
\mathcal C
C是一个凸集。
∑
i
=
1
k
λ
i
⋅
x
i
∈
C
\sum_{i=1}^k \lambda_i \cdot x_i \in \mathcal C
i=1∑kλi⋅xi∈C
这里以
k
=
3
k=3
k=3为例。对于
x
1
,
x
2
,
x
3
∈
C
,
∀
λ
1
,
λ
2
,
λ
3
≥
0
x_1,x_2,x_3 \in \mathcal C, \forall \lambda_1,\lambda_2,\lambda_3 \geq 0
x1,x2,x3∈C,∀λ1,λ2,λ3≥0且
λ
1
+
λ
2
+
λ
3
=
1
\lambda_1+\lambda_2 + \lambda_3 = 1
λ1+λ2+λ3=1,对应
λ
1
x
1
+
λ
2
x
2
+
λ
3
x
3
\lambda_1x_1 + \lambda_2x_2 + \lambda_3x_3
λ1x1+λ2x2+λ3x3在可行域
C
\mathcal C
C中的描述表示为:
x
1
,
x
2
,
x
3
x_1,x_2,x_3
x1,x2,x3围成的三角形的范围:
显然,该三角形围成的范围是可行域
C
\mathcal C
C的一部分。

对于表达式
∑
i
=
1
k
λ
i
⋅
x
i
k∑i=1λi⋅xi
条件不能漏掉~
λ
i
(
i
=
1
,
2
,
⋯
,
k
)
≥
0
\lambda_i(i=1,2,\cdots,k) \geq 0
λi(i=1,2,⋯,k)≥0且
∑
i
=
1
k
λ
i
=
1
\sum_{i=1}^k \lambda_i = 1
∑i=1kλi=1。
相应的组合概念如:
很明显,从关于
λ
i
(
i
=
1
,
2
,
⋯
,
k
)
\lambda_i(i=1,2,\cdots,k)
λi(i=1,2,⋯,k)的约束程度角度,有:凸组合
>
>
> 仿射组合;非负组合
>
>
> 线性组合。
关于凸包 ( Convex Hull ) (\text{Convex Hull}) (Convex Hull),它针对的是任意一个集合,并非只有凸集。在选定集合 C \mathcal C C的条件下,从 C \mathcal C C中取点后作凸组合,将所有凸组合结果构成一个新集合,该集合被称作凸包。
凸包的作用:由于凸包是由凸组合构成的集合,因而:对于任意集合
C
\mathcal C
C(凸、非凸),它的凸包一定是凸集合。从而凸包是优化过程中将非凸集合凸化的一个工具。
这里作为科普,不做过多描述~
常见的凸集合有:

由于一个线性不等式刻画的是半空间,那么由多个线性不等式对应半空间的交集/围成的空间就是多面体。
从而又将线性等式刻画的集合转化为线性不等式刻画的集合。这里的
∣
∣
u
∣
∣
2
≤
1
||u||_2 \leq 1
∣∣u∣∣2≤1描述的是中心为
0
0
0,半径为
1
1
1的单位球空间。对应的
r
⋅
u
r \cdot u
r⋅u则表示对球空间进行放缩;
x
c
+
r
⋅
u
x_c + r \cdot u
xc+r⋅u则是对放缩后的结果进行平移~相关文章见下方链接~其中矩阵
P
\mathcal P
P是正定矩阵,否则
P
−
1
\mathcal P^{-1}
P−1无法求解。假设在
n
+
1
n+1
n+1维的特征空间中,其中
x
=
(
x
1
,
x
2
,
⋯
,
x
n
)
T
∈
R
n
x = (x_1,x_2,\cdots,x_n)^T \in \mathbb R^n
x=(x1,x2,⋯,xn)T∈Rn,最后一维特征表示为
t
t
t。下面公式则表示为:前
n
n
n维的二范数结果
∣
∣
x
∣
∣
2
≤
||x||_2 \leq
∣∣x∣∣2≤第
n
+
1
n+1
n+1维的特征结果
t
t
t。import numpy as np
import matplotlib.pyplot as plt
import math
x = np.linspace(-5,5,50)
y = np.linspace(-5,5,50)
t = 5.0
def f(x,y):
return math.sqrt((x ** 2) + (y ** 2))
ax = plt.axes(projection='3d')
for i in list(x):
for j in list(y):
if f(i,j) <= t:
ax.scatter(i,j,f(i,j),c="tab:blue",s=2)
else:
continue
plt.show()
最终结果表示如下:

半定矩阵锥:
可见,集合中的每个元素都是
n
n
n阶对称矩阵。其中
X
≽
0
⇔
Z
T
X
Z
≥
0
∀
Z
\mathcal X \succcurlyeq 0 \Leftrightarrow \mathcal Z^T \mathcal X \mathcal Z \geq 0 \quad \forall \mathcal Z
X≽0⇔ZTXZ≥0∀Z。同上:
X
≻
0
⇔
Z
T
X
Z
>
0
∀
Z
\mathcal X \succ 0 \Leftrightarrow \mathcal Z^T \mathcal X \mathcal Z > 0 \quad \forall \mathcal Z
X≻0⇔ZTXZ>0∀Z对于集合
S
+
n
\mathcal S_{+}^n
S+n中的元素
X
\mathcal X
X,它们必然是半正定矩阵。因而
λ
⋅
X
(
∀
λ
≥
0
)
\lambda \cdot \mathcal X (\forall \lambda \geq 0)
λ⋅X(∀λ≥0)依然是半正定矩阵。因而满足锥集合的定义:
X
∈
S
+
n
⇒
λ
⋅
X
∈
S
+
n
λ
≥
0
\mathcal X \in \mathcal S_{+}^n \Rightarrow \lambda \cdot \mathcal X \in \mathcal S_{+}^n \quad \lambda \geq 0
X∈S+n⇒λ⋅X∈S+nλ≥0
因而集合
S
+
n
\mathcal S_{+}^n
S+n是锥集合。
新的问题:锥集合
S
+
n
\mathcal S_{+}^n
S+n是不是凸集合
?
?
?根据凸集合的定义,有:
关于半定矩阵锥的图像,以二阶矩阵为例。如果二阶矩阵
(
x
y
y
z
)
∈
S
+
2
(xyyz)
这里的图像不容易看,像个船头~大家自己多试试角度~import numpy as np
import matplotlib.pyplot as plt
import tqdm
x = np.linspace(-5,5,20)
y = np.linspace(-5,5,20)
z = np.linspace(-5,5,20)
def SequentialPrincipalMinor(x,y,z):
return x * z - (y ** 2)
ax = plt.axes(projection='3d')
for i in tqdm(list(x)):
for j in list(y):
for k in list(z):
if i >= 0 and k >= 0 and SequentialPrincipalMinor(i,j,k) >= 0:
ax.scatter(i,j,k,c="tab:blue",s=2)
else:
continue
plt.show()
最终结果表示如下:

个人理解:集合
S
+
+
n
\mathcal S_{++}^n
S++n不仅是锥集合,并且也是凸集合。
这个图就不贴了,和上面的结果很像~
Process
:
43
:
34
/
1
:
21
:
31
\text{Process}: 43:34/1:21:31
Process:43:34/1:21:31
相关参考:
最优化理论与方法-第二讲-凸集
凸优化笔记1:凸集Convex Sets