04 - Convex Set

这篇文章主要介绍各种和 Convex Set 相关的概念和性质。

Line and Line Segment

给定两个点 $\b{x}_1, \b{x}_2 \in \mathbb{R}^n$,line 可以被定义为 $$(1 - \lambda) \b{x}_1 + \lambda \b{x}_2 \;\; \forall \lambda \in \mathbb{R} $$

参考下面这个图

根据向量相加的原则可知虚线上的点都可以表示成 $\b{x}_1 + \lambda (\b{x}_2 - \b{x}_1) \; \forall \lambda \in \mathbb{R}$,也就是 $(1 - \lambda) \b{x}_1 + \lambda \b{x}_2$。

对于 line segment,只要限定 $\lambda$ 在 $[0, 1]$ 之间即可,即

给定两个点 $\b{x}_1, \b{x}_2 \in \mathbb{R}^n$,line segment 可以被定义为 $$(1 - \lambda) \b{x}_1 + \lambda \b{x}_2 \;\; \forall \lambda \in [0, 1] $$ Line segment 也被记为 $LS[\b{x}_1, \b{x}_2]$

Affine Set

给定集合 $A \in \mathbb{R}^n$,如果 $\forall \b{x}_1, \b{x}_2 \in A, \lambda \in \mathbb{R}$ 有 $(1 - \lambda) \b{x}_1 + \lambda \b{x}_2 \in A$,则 $A$ 被称为 Affine Set/Affine Space.

这里给出一个推论,如果 $A$ 是 affine set,$\b{x}_1, \b{x}_2, \b{x}_3 \in A$,则 $\b{x}_1 + \lambda(\b{x}_2 - \b{x}_3) \in A$ (之所以给这个推论是为了下面定理的证明)。

如果 $A$ 是 affine space,$\b{x}_1, \b{x}_2, \cdots, \b{x}_n \in A$ 且 $\sum_{i=1}^n \lambda_i = 1$,则 $\sum_{i=1}^n \lambda_i \b{x}_i \in A$

注意 affine space 和 vector space 的区别 (视频里一直用 vector subspace,但我觉得用 space 就可以了,因为 vector subspace 我觉得是个相对的概念,而且 vector subspace 本身也是 vector space),vector space 要求如果 $\b{x}_1, \b{x}_2 \in A$ 则 $\alpha \b{x}_1 + \beta \b{x}_2 \in A \;\; \forall \alpha, \beta \in \mathbb{R}$,它要求任意的 linear combination 都属于 $A$,比 affine space 更严格。所以,$\b{0}$ 必须是 vector space 的一个元素,而对于 affine space 则没有这个要求,如下图所示

如果 A 为 affine space,$\b{x}_0 \in A$,则 $\{\b{x} - \b{x}_0: \b{x} \in A\}$ 为 vector space

$A\b{x} = \b{b}$ 的解集属于 affine set

令 $X = \{ \b{x}_1, \b{x}_2, \cdots, \b{x}_k \}$,如果一个点 $$\b{x} = \sum_{i=1}^{k} \lambda_i \b{x}_i, \;\; \sum_{i=1}^{k} \lambda_i = 1$$ 则这个点被称为 affine combination of points in $X$。所有可能的 affine combination 构成的集合被称为 affine hull $$aff(X) = \{\sum_{i=1}^{k} \lambda_i \b{x}_i: \b{x}_1, \cdots, \b{x}_k \in X, \sum_{i=1}^{k} \lambda_i = 1\}$$

Convex Set

给定集合 $C \in \mathbb{R}^n$,如果 $\forall \b{x}_1, \b{x}_2 \in C, \lambda \in [0, 1]$ 有 $(1 - \lambda) \b{x}_1 + \lambda \b{x}_2 \in C$,则 $C$ 被称为 Convex Set.

注意到这里的定义和 affine set 的极为相似,区别只在 $\lambda$ 的范围。对于 affine set,它要求经过 $\b{x}_1, \b{x}_2$ 的整个 line 都在集合中,而 convex set 只要求连接 $\b{x}_1, \b{x}_2$ 的 line segment 在集合中即可,所以 convex set 的要求要松很多,所有的 affine set 都同时是 convex set。

下图左边是一个 convex set,右边不是

Convex set 的例子包括 empty set, singleton set, $\mathbb{R}$ 等等。

在 convex set 的基础上我们可以构造新的 convex set,常见操作包括

上述操作得到的 set 依然是 convex set,证明比较简单,就略过了。

给定集合 $S$,所有包含 $S$ 的 convex set 的交集被称为 $S$ 对应的 convex hull

Convex hull 是包含 $S$ 的最小的 convex set。

Hyperplane

令 $\b{a} \in \mathbb{R}^n, \b{a} \neq 0, b \in \mathbb{R}$, 集合 $H = \{\b{x}: \b{a}^T \b{x} = b\}$ 被称为 hyperplane,其中 $\b{a}$ 被称为 normal vector

另一种定义 hyperplane 的方法是,如果已知一个点 $\b{x}_0 \in H$,则 hyperplane 可以表示为 $\b{a}^T (\b{x} - \b{x}_0) = 0$

下图给出了一个对 $f(\b{x})$ 的 contour 的一阶近似的 hyperplane,其中 $g(\b{x}_0)$ 是 gradient

Hyperplane 是一个 convex set,所以 $A\b{x} = \b{b}$ 的解集也是一个 convex set,因为 $A\b{x} = \b{b}$ 可以被看成是一堆 $\b{a}^T\b{x} = b$ 的交集。

关于 hyperplane 的表示这里多说两句,用 $\b{a}^T \b{x} = b$ 表示 hyperplane 是比较科学的,因为这种表示法明确给出了 normal vector 和截距。举个例子,令 $\b{x} \in \mathbb{R}^2$,如果你用 $\b{x}_1 = \b{x}_2$ 表示一个 hyperplane,那你就不知道它的 normal vector 到底是什么,可以是 $(-1, 1)^T$ 也可以是 $(1, -1)^T$,如果你用 $(-1, 1)\begin{pmatrix}\b{x}_1 \\ \b{x}_2\end{pmatrix} = 0$ 表示,我就知道 normal vector 是 $(-1, 1)^T$,这样我也能明确知道直线下方的区域满足 $(-1, 1)\begin{pmatrix}\b{x}_1 \\ \b{x}_2\end{pmatrix} < 0$,上方的区域满足 $(-1, 1)\begin{pmatrix}\b{x}_1 \\ \b{x}_2\end{pmatrix} > 0$。所以总的来说,$\b{a}^T \b{x} = b$ 是一种很清晰的表示方法。

Convex Set 相关定理

给定 $S \subset \mathbb{R}^n$ 为 closed convex set,$\b{y} \notin S$,则存在唯一的一个点 $\b{x}_0 \in S$ 满足 $\b{x}_0 = \arg\min_{\b{x} \in S} \Vert \b{y} - \b{x} \Vert$
给定 $S \subset \mathbb{R}^n$ 为 closed convex set,$\b{y} \notin S$
$\b{x}_0 = \arg\min_{\b{x} \in S} \Vert \b{y} - \b{x} \Vert$ 当且仅当 $(\b{y} - \b{x}_0)^T(\b{x} - \b{x}_0) \leq 0 \;\; \forall \b{x} \in S$

这个定理通俗一点讲,就是如果 $\b{x}_0$ 是 $S$ 中与 $\b{y}$ 距离最近的点,则所有其他 $S$ 中的点和 $\b{x}_0$ 的连线与 $\b{y}$ 和 $\b{x}_0$ 的连线都构成钝角,如下图所示

Seperating Hyperplane

给定集合 $S_1, S_2$,如果存在 hyperplane $\b{a}^T\b{x} = b$ 满足 $\b{a}^T\b{x} \geq b \; \forall x \in S_1,\;\b{a}^T\b{x} \leq b \; \forall x \in S_2$,则 $\b{a}^T\b{x} = b$ 称为 $S_1, S_2$ 的 seperating hyperplane。

根据上面给出的两个 convex set 定理,给定一个 closed convex set $S$ 和点 $\b{y} \notin S$,一定存在一个 hyperplane $\b{a}^T\b{x} = b$ 能 seperate $\b{y}$ 和 $S$,下面是两个这样的 hyperplane

如果 $S_1, S_2$ 是非空且无交集的 convex set,那必然存在一个 hyperplane 能 seperate $S_1, S_2$

Cone

给定集合 $C$,如果给定任一 $\b{x} \in C$ 都有 $\lambda \b{x} \in C \; \forall \lambda \in \mathbb{R}$,则 $C$ 被称为 Cone

Farkas’ Lemma

令 $A \in \mathbb{R}^{m\times n}, \b{c} \in \mathbb{R}^n$,则下面两个结论有且只有一个是成立的
1. $\exists \b{x} \in \mathbb{R}^n \;\;\st\;\; A\b{x} \leq \b{0}, \b{c}^T \b{x} > 0$
2. $\exists \b{y} \in \mathbb{R}^m \;\;\st\;\; A^T\b{y} = \b{c}, \b{y} \geq \b{0}$

首先从几何的角度直观理解一下 Farkas’ lemma。令 $A = \begin{pmatrix} \b{a}_1 \\ \b{a}_2 \\ \b{a}_3 \end{pmatrix}$,其中 $\b{a}_i$ 为行向量,考虑下面的两个图,左边图对应上面的结论 1,其中蓝色区域对应所有满足 $A\b{x} \leq 0$ 的 $\b{x}$,$\b{c}$ 与这些 $\b{x}$ 的内积都 $\gt 0$。 右边图对应结论 2,其中 $\b{c}^T\b{x} < 0$,但 $\b{c}$ 可以表示为 3 个 $\b{a}$ 向量的线性组合同时系数都大于 0。很明显这两个结论是相互独立的,因为一个要求 $\b{c}$ 处于以 $\b{a}_1$ 和 $\b{a}_3$ 为边界的区域之外,一个要求处于这个 边界之内

根据 Farkas’ lemma,可以得出如下推论

令 $A \in \mathbb{R}^{m\times n}$,则下面两个结论有且只有一个是成立的
1. $\exists \b{x} \in \mathbb{R}^n \;\;\st\;\; A\b{x} < \b{0}$
2. $\exists \b{y} \in \mathbb{R}^m \;\;\st\;\; A^T\b{y} = \b{0}, \b{y} \geq \b{0}$

乍一看好像令 $\b{c} = \b{0}$ 就能得出这个推论,其实不然,首先推论里结论 1 是 $A^T\b{x} < 0$ 而不是 $A^T\b{x} \leq 0$,另外 $\b{c} = \b{0}$ 是不符合 Farkas’ Lemma 的,因为 Farkas’ Lemma 要求 $\b{c}^T\b{x} > 0$

Supporting Hyperplane

令 $S \neq \emptyset \subset \mathbb{R}^n$,$\b{x}_0$ 为 $S$ 的 boundary point,如果存在 hyperplane $\b{a}^T(\b{x} - \b{x}_0) = 0$ 使得
1. $S \subseteq H^+$, 即 $\b{a}^T(\b{x} - \b{x}_0) \geq 0 \; \forall \b{x} \in S$ 或者
2. $S \subseteq H^-$, 即 $\b{a}^T(\b{x} - \b{x}_0) \leq 0 \; \forall \b{x} \in S$
则该 hyperplane 称为 $S$ 的 supporting hyperplane