跳转至

3 优化

凸集和凸函数

凸集

给定集合 C \subseteq \mathbb{R}^n 。若 \forall x, y \in C 满足

\forall t \in[0,1], t x+(1-t) y \in C

那么集合 C 为凸集。

凸函数

给定一个函数 f:\mathbb{R}^n→\mathbb{R},如果 domain(f) 是凸集,且任意 x,y\in domain(f),

\forall t \in[0,1], f(t x+(1-t) y) \leq t f(x)+(1-t) f(y)

那么函数 f 是凸函数。

凸函数例子

  • 指数函数 \exp (a x)

  • 负对数函数 -\log (x)

  • 反射函数 \boldsymbol{a}^{\top} \boldsymbol{x}+b
  • 二次函数 x^{\top} A \boldsymbol{x}+2 \boldsymbol{b}^{\top} \boldsymbol{x}+c \quad(A 半正定 )
  • 范数 \|x\|_p=\sqrt[p]{\sum_i\left|x_i\right|^p}
  • 最大函数 f(x)=\max \left\{x_1, \cdots, x_n\right\}
  • Softplus \log (1+\exp (x))
  • LogSumExp \log \left(\sum_i \exp \left(x_i\right)\right)
  • LogDeterminant -\log \operatorname{det}(X) 在半正定矩阵定义域上

一阶条件

假设函数 f 可微,那么 f 是凸函数当且仅当 ∀ x,y∈dom(f), $$ f(y)≥f(x)+∇f(x)^⊤ (y-x) $$ 即 —— 函数在切线上方。

二阶条件

假设函数 f 二阶可微,那么 f 是凸函数当且仅当 ∀ x∈dom(f), $$ ∇^2 f(x)≽0 $$ 即 —— 海森矩阵半正定。

优化问题

优化问题

\begin{array}{cl} & \min _x f(x) \\ \text { s.t. } & g_i(x) \leq 0, i=1,2, \ldots, m \\ & h_j(x)=0, j=1,2, \cdots, n \end{array}

这里的 s.t. 是 subject to,意为 “在……的约束下”。

凸优化问题

\begin{gathered} \min _x f(\boldsymbol{x}) \\ \text { s.t. } g_i(\boldsymbol{x}) \leq 0, i=1,2, \ldots, m \\ \boldsymbol{a}_i^{\top} \boldsymbol{x}=b, j=1,2, \cdots, n \end{gathered}

其中 f(\boldsymbol{x}), g_i(\boldsymbol{x}) 是凸函数。

  • 凸优化中,局部最优等价于全局最优。假设函数 f 可微凸函数,那么 xf 的全局最优当且仅当 ∇f(\mathbf{x})=0

无约束优化:梯度下降

目标: \min _x f(x)

\begin{aligned} &\text { while }\left\|\nabla f\left(x_t\right)\right\|>\delta \text { do } \\ &\quad \boldsymbol{x}_{t+1} \leftarrow \boldsymbol{x}_t-\alpha \nabla f\left(\boldsymbol{x}_t\right) \\ &\text { end while } \end{aligned}

有约束优化:KKT条件(拉格朗日乘子法)

\begin{array}{cc} & \min _{\boldsymbol{x}} f(\boldsymbol{x}) \\ \text { s.t. } & g_i(\boldsymbol{x}) \leq 0, i=1,2, \ldots, m \\ & h_j(\boldsymbol{x})=0, j=1,2, \cdots, n \end{array}

引入拉格朗日函数:

L(\boldsymbol{x}, \boldsymbol{u}, \boldsymbol{v})=f(\boldsymbol{x})+\sum_i u_i g_i(\boldsymbol{x})+\sum_j v_j h_j(\boldsymbol{x})

其中 u_i \geq 0

最优解的必要条件:KKT条件

\begin{gathered} \boldsymbol{\nabla}_{\mathbf{x}} L(\boldsymbol{x}, \boldsymbol{u}, \boldsymbol{v})=\mathbf{0} \\ g_i(\boldsymbol{x}) \leq 0 \\ h_j(\boldsymbol{x})=0 \\ \mu_i \geq 0 \\ \mu_i g_i(\boldsymbol{x})=0 \end{gathered}

最后一个式子表明只有 \mu_i=0 或者 g_i(x)=0

取一个简单的示例做解释

L(x,\mu)=f(x)+\sum_i\mu_ig_i(x),因为 \mu g(x)\le0,所以 \displaystyle\max_\mu L(x,\mu)=f(x)(1)。

所以目标函数变为(称之为 x\mu 问题)

\min _x f(x)=\min _x \max _\mu L(x, \mu)

如果对等号右边那一项交换顺序(称之为 \mu x 问题)

\begin{aligned} \max _\mu \min _x L(x, \mu)&=\max _\mu\left[\min _x f(x)+\min _x \mu g(x)\right](按定义展开)\\&=\max _\mu \min _x f(x)+\max _\mu \min _x \mu g(x)(分配算子,这一步可略)\\&=\min _x f(x)+\max _\mu \min _x \mu g(x)(第一项不受\mu约束) \end{aligned}

然后我们观察

\left.\begin{array}{c} \mu_k \geq 0 \\ g_k(x) \leq 0 \end{array}\right\}=>\min _x \mu g(x)=\left\{\begin{array}{cc} 0 & \text { if } \mu=0 \text { or } g(x)=0 \\ -\infty & \text { if } \mu>0 \text { and } g(x)<0 \end{array}\right.

说明

\max _\mu \min _x \mu g(x)=0 \text { 此时 } \mu=0 \text { or } g(x)=0 (2)

就是说

\max _\mu \min _x L(x, \mu)=\min _x f(x)+\max _\mu \min _x \mu g(x)=\min _x f(x)(3)

这说明 \min _x \max _\mu L(x, \mu)=\max _\mu \min _x L(x, \mu),两个算子可以交换顺序

\left.\begin{array}{c} L(x, \mu)=f(x)+\sum_{k=1}^q \mu_k g_k(x) \\ \mu_k \geq 0 \\ g_k(x) \leq 0 \end{array}\right\}=>\min _x \max _\mu L(x, \mu)=\max _\mu \min _x L(x, \mu)=\min _x f(x)

这就说明如果满足条件(2),互为对偶的两个问题 x\mu,\mu x 的解和 \min_x f(x) 是相同的。

设这个最优解是 \xi,则 x=\xi\mu=0g(\xi)=0。带入(1)中,有

\max_\mu L(\xi,\mu)=f(\xi)

又由(3)得【注意到 f(\xi)=\min_xf(x)

\max _\mu \min _x L(x, \mu)=f(\xi)

所以

L(\xi,\mu)=\min_xL(x,\mu)

说明 \xi 也是 L(x,\mu) 的极值点,后者在这点的偏 x 导数为 0。

结论就是:

\left.\begin{array}{c} L(x, \mu)=f(x)+\sum_{k=1}^q \mu_k g_k(x) \\ \mu_k \geq 0 \\ g_k(x) \leq 0 \end{array}\right\}=>\left\{\begin{array}{c} \min _x \max _\mu L(x, \mu)=\max _\mu \min _x L(x, \mu)=\min _x f(x)=f\left(\xi\right) \\ \mu_k g_k\left(\xi\right)=0 \\ \left.\frac{\partial L(x, \mu)}{\partial x}\right|_{x=\xi}=0 \end{array}\right.

KKT 条件总结起来就是:

\left.\begin{array}{c} L(x, \lambda, \mu)=f(x)+\sum_{i=1}^n \lambda_i h_i(x)+\sum_{k=1}^q \mu_k g_k(x) \\ \lambda_i \neq 0 \\ h_i(x)=0 \\ \mu_k \geq 0 \\ g_k(x) \leq 0 \end{array}\right\}=>\left\{\begin{array}{c} \min _x \max _\mu L(x, \lambda, \mu)=\max _\mu \min _x L(x, \lambda, \mu)=\min _x f(x)=f\left(\xi\right) \\ \mu_k g_k\left(\xi\right)=0 \\ \left.\frac{\partial L(x, \lambda, \mu)}{\partial x}\right|_{x=\xi}=0 \end{array}\right.

注: x, \lambda, \mu 都是向量。

本文阅读量