优化算法
凸优化 convex optimization
凸性
定义(凸集和凸函数)
集合的凸性:一个集合 \(X\) 是凸的定义为 \(\forall x, y \in X, \forall \lambda \in [0, 1]: (1 - \lambda)x + \lambda y \in X\)。
函数的凸性:一个函数 \(f: X \rightarrow \mathbb{R}\) 是凸的定义为 \(\forall x, y \in X, \forall \lambda \in [0, 1]: f((1 - \lambda)x + \lambda y) \le (1 - \lambda)f(x) + \lambda f(y)\)。
例
- 单点集是平凡凸集。
- 实数空间 \(\mathbb{R}^d\) 是凸集。
-- - 线性函数: \(f(x) = c^T x\) 是凸函数。
- 二次型: \(f(x) = x^T x\) 是凸函数。
- 非负加权和:设有一系列凸函数 \(f_1, f_2, \cdots , f_m\) 和非负系数 \(\alpha_1, \alpha_2, \cdots, \alpha_m\),则函数 \(f = \sum\limits_{i=1}^{n} \alpha_i f_i\) 是凸函数。
- 仿射变换的复合:设 \(f: \mathbb{R}^n \rightarrow \mathbb{R}\) 是凸函数,有仿射变换 \(A \in \mathbb{R}^{n \times m}, b \in \mathbb{R}^n\),则函数 \(g: \mathbb{R}^m \rightarrow \mathbb{R}\) 定义为 \(g(x) = f(Ax + b)\) 是凸函数。
- 逐点上确界:设有一凸函数族 \(f_{\theta}: X \rightarrow \mathbb{R}\),则函数 \(f: X \rightarrow \mathbb{R}\) 定义为 \(f(x) = \sup\limits_{\theta}f_{\theta}(x)\) 是凸函数。
定理(分离定理):设 \(X, Y \subseteq \mathbb{R}^d\) 是两个非空不相交凸集,则存在非零向量 \(w \in \mathbb{R}^d\) 和常数 \(c \in \mathbb{R}\),使得 \(\forall x \in X: w^T x \ge c \and \forall y \in Y: w^T y \le c\)。
定理(支撑定理):设 \(X \subseteq \mathbb{R}^d\) 是非空凸集,任取 \(x_0 \in \partial X\),则存在非零向量 \(w \in \mathbb{R}^d\),使得 \(\forall x \in X: w^T x \ge w^T x_0\)。
证明:讨论
若 \(\text{int}(X) \ne \emptyset\)。那么 \(\text{int}(X)\) 和 \(\{x_0\}\) 是两个非空不相交凸集,对其应用分离定理,得存在非零向量 \(w \in \mathbb{R}^d\) 和常数 \(c\),使得:\(\forall x \in \text{int}(X): w^\top x \ge c \and w^\top x_0 \le c\)。又由于 \(X \subseteq \overline{\text{int}{(X)}}\),通过凸集和连续性可以将不等式推广到 \(\forall x \in X: w^T x \le c \le w^T x_0\)。
若 \(\text{int}(X) = \emptyset\)。那么 \(X\) 完全包含在某个 \((d-1)\) 维仿射子空间中(因为不存在任何\(d\)维超球包含在\(X\)中),这个 \((d-1)\) 维仿射子空间就是所求超平面 \(\{x| w^T x = c\}\)。 \(\Box\)
定义(次梯度,Subgradient)
令凸集 \(X \subseteq \mathbb{R}^d, f: X \rightarrow \mathbb{R}\),若 \(g \in \mathbb{R}^d\) 满足 \(\exists x \forall y \in X: f(y) - f(x) \le g^T (y - x)\),则称 \(g\) 是 \(f\) 在 \(x\) 处的次梯度。记 \(f\) 在 \(x\) 处的次梯度集为 \(\partial f(x)\)。
命题(次梯度的存在性)
设 \(\mathcal{X} \subseteq \mathbb{R}^d\) 是凸集,\(f: \mathcal{X} \to \mathbb{R}\)。则:
- 次梯度处处存在 \(\Rightarrow\) 凸函数:若 \(\forall x \in \mathcal{X}, \partial f(x) \neq \emptyset\),则 \(f\) 是凸函数。
- 凸函数 \(\Rightarrow\) 内部点有次梯度:若 \(f\) 是凸函数,则 \(\forall x \in \text{int}(\mathcal{X}), \partial f(x) \neq \emptyset\)。
- 可微凸函数的梯度是次梯度:若 \(f\) 是凸函数且在 \(x\) 处可微,则 \(\nabla f(x) \in \partial f(x)\)。
证明:
子命题1:对任意 \(x, y \in \mathcal{X}\),\(\gamma \in (0,1)\),令 \(z = (1-\gamma)x + \gamma y \in \mathcal{X}\)。由假设,存在 \(g \in \partial f(z)\)。
对 \(x\) 用次梯度定义:\(f(x) \ge f(z) + g^\top(x-z) = f(z) + g^\top(x-y)\gamma\),
对 \(y\) 用次梯度定义:\(f(y) \ge f(z) + g^\top(y-z) = f(z) + g^\top(y-x)(1-\gamma)\),
第一式乘 \((1-\gamma)\),第二式乘 \(\gamma\),相加得:\((1-\gamma)f(x) + \gamma f(y) \ge f(z) + g^\top(x-y)\gamma(1-\gamma) + g^\top(y-x)\gamma(1-\gamma) = f(z) = f((1-\gamma)x + \gamma y)\),
故 \(f\) 是凸函数。\(\Box\)子命题2:易证 \(f\) 凸 \(\iff\) \(\text{epi}(f) = \{(y,t) : t \ge f(y)\}\) 凸。
任取点 \((x, f(x))\) 位于 \(\text{epi}(f)\) 的边界上,对 \(\text{epi}(f)\) 使用支撑定理,得到存在非零向量 \((a,b) \in \mathbb{R}^d \times \mathbb{R}\),使得对所有 \((y,t) \in \text{epi}(f)\):\[a^\top y + bt \ge a^\top x + b f(x) \tag{1} \]接下来证明 \(b > 0\):
显然不能 \(b < 0\),否则由于 \(t\) 可以任意大,式 \((1)\) 不可能存在下界。
再证明 \(b \ne 0\),因为 \(x \in \text{int}(\mathcal{X})\),对足够小的 \(\varepsilon > 0\),取 \(y = x - \varepsilon a \in \mathcal{X}\)。令 \(t = f(y)\),则 \((y, t) \in \text{epi}(f)\),代入 \((1)\):\[a^\top(x-\varepsilon a) + b f(y) \ge a^\top x + b f(x) \]\[\Rightarrow \quad b(f(y)-f(x)) \ge \varepsilon \|a\|^2 \tag{2} \]若 \(b = 0\),则由 \((2)\) 推出 \(\|a\|^2 = 0\),即 \(a = 0\),与 \((a,b) \neq 0\) 矛盾。故 \(b \neq 0\)。
最后构造次梯度:由 \((2)\) 和 \(b > 0\) 推出:\(f(y) \ge f(x) + \frac{\varepsilon \|a\|^2}{b} + \frac{1}{b}a^\top(x-y) \ge f(x) + \frac{1}{b}a^\top(x-y)\),即 \(f(y) \ge f(x) + \left(-\frac{a}{b}\right)^\top (y-x)\)。
通过凸性可以推广到所有 \(y \in \mathcal{X}\)。因此:\[-\frac{a}{b} \in \partial f(x) \]故次梯度存在。\(\Box\)
子命题3:对任意 \(y \in \mathcal{X}\),\(\gamma \in (0,1)\),由凸性得 \((1-\gamma)f(x) + \gamma f(y) \ge f((1-\gamma)x + \gamma y)\)
整理得 \(f(y) \ge f(x) + \frac{f(x + \gamma (y - x)) - f(x)}{\gamma}\)。令 \(\gamma \rightarrow 0^{+}\),右边第二项正是 \(f\) 在 \(x\) 处沿方向 \((y-x)\) 的方向导数。由于 \(f\) 在 \(x\) 处可微,\(f(y) \ge f(x) + \nabla f(x)^\top (y-x)\)。
故 \(\nabla f(x) \in \partial f(x)\)。\(\Box\)
凸优化
凸优化问题的目标是求解
其中 \(X\) 是凸集,\(f\) 是凸函数。
凸性保证局部最小值就是全局最小值。
黑箱模型
定义(Lipschitz 连续):函数 \(f: \mathbb{R}^d \to \mathbb{R}\) 称为 L-Lipschitz 的,如果对于所有 \(x, y \in \mathbb{R}^d\),有
黑箱模型中有两个参与者:学习者(Learner) 和 预言机(Oracle)。
学习者拥有无限的计算能力;知道 \(f\) 所属的函数类;知道定义域 \(\mathcal{X}\)。预言机拥有关于函数 \(f\) 的具体知识。学习者的目标是找到一个 \(\varepsilon\)-近似最优解,为此,学习者向预言机查询关于 \(f\) 在其感兴趣的点 \(x \in \mathcal{X}\) 处的信息。
我们关心的是学习者所遵循的算法经过多少次对预言机的查询才足以找到凸函数的 \(\varepsilon\)-近似最优解,这个次数被称为 预言机复杂度(Oracle Complexity)。
黑箱模型包含不同类型的预言机。如果预言机对于给定的点 \(x \in \mathcal{X}\) 能够提供 \(f\) 的直到 \(n\) 阶的每一个偏导数的值,我们就称它为 \(n\) 阶预言机。
比如,0阶预言机 仅回答函数值 \(f(x)\) 的查询,而 1阶预言机 额外提供关于 \(f\) 的次梯度的信息。

我们希望通过回答为什么优化在机器学习中至关重要以及哪些任务可以转化为优化问题来开启本[课程](https://sites.google.com/view/cjin/teaching/ece539cos512-2021-ver)。在本课程中,我们所说的优化问题,指的是在集合X上寻找函数f最小值的通用问题,简记为min f(x) s.t. x ∈ X。
浙公网安备 33010602011771号