Subgradient Algorithm

Subgradient是一种可以优化不可微的凸函数的方法.

首先回顾凸函数的定义:

$f(y) \geq f(x) + \nabla f(x)^T(y-x), all \hspace{2 pt} x, y$

凸函数的subgradient的定义为满足以下条件的$g\in \mathcal{R}^n$

$f(y) \geq f(x) + g^T(y-x), all \hspace{2 pt} y$

subgradient具有以下特性:

  • 永远存在
  • 如果$f$在$x$处可微, 那么$g=\nabla f(x)$
  • 对于非凸函数也有类似的定义, 但是非凸函数的subgradient并不需要存在

几个例子:

例1. $f: \mathcal{R} \to \mathcal{R}, f(x) = |x|$

Screen Shot 2014-10-10 at 下午10.08.09

对于$x\neq 0, g=sign(x)$

对于$x=0, g$是$[-1, 1]$中的任一元素

例2. $f: \mathcal{R}^n \to \mathcal{R}, f(x) = \|x\|$

Screen Shot 2014-10-10 at 下午10.08.14

对于$x\neq 0, g=\frac{x}{\|x\|}$

对于$x=0, g$是${z: \|z\|\geq1}$中的任一元素

例3. $f: \mathcal{R}^n \to \mathcal{R}, f(x) = \|x\|_1$

Screen Shot 2014-10-10 at 下午10.08.20

对于$x\neq 0, g_i=sign(x_i)$

对于$x=0, g$是$[-1, 1]$中的任一元素

Subdifferential

凸函数$f$在某一点$x$的所有subgradient称为在该点的subdifferential.

subdifferential的特性:

  • $\partial f(x)$是凸的(即使对于非凸函数$f$)
  • 非空(低于非凸函数$f$可能是空的)
  • 如果$f$在$x$是可微的, 则$\partial f(x)={\nabla f(x)}$
  • 如果$\partial f(x)={g}$, 那么f是科委的, 并且$\nabla f(x)=g$

优化条件

对于凸函数$f$,

$f(x^*) = \min_{x \in \mathcal{R}^n} \iff 0 \in \partial f(x^*)$

亦即, $x$是$f$的最小点当且仅当$0$是$f$在$x^*$的subgradient

因为如果$g=0$, 则对于所有的$y$: $f(y) \geq f(x^*) + o^T(y-x^*)=f(x^*)$

Soft-thresholding

考虑如下的lasso问题

$\min_x \frac{1}{2}\|y-Ax\|^2 + \lambda\|x\|_1$, 其中$\lambda \geq 0$

简化一下上述问题, 令$A=I$:

$\min_x \frac{1}{2}\|y-x\|^2 + \lambda\|x\|_1$

上式的subgradient为:

$g=x-y+\lambda s$

其中s \begin{cases}=sign(x_i) & if x_i \neq 0\\ \in [-1, 1]& if x_i=0 \end{cases}

令$g=0$, 可以得到$x^*=S_{\lambda}(y)$:

$S_{\lambda}(y)= \begin{cases}y_i-\lambda & if y_i > \lambda \\ 0& if -\lambda\leq y_i \leq \lambda \\ y_i + \lambda & if y_i < -\lambda \end{cases}$

 

 Subgradient method

对于凸函数(不一定可微)$f: \mathcal{R}^n \to \mathcal{R}$, 在优化时将梯度替换为subgradient既是subgradient method:

$x^{(k)}=x^{(k-1)} - t_k \cdot g^{(k-1)}, k=1,2,3,...$

其中$g^{(k-1)}$是$f$在$x^{(k-1)}$的任意subgradient

subgradient method不一定是一个descent method, 所以需要取所有迭代中最小的那个(而不是最后一个)

$f(x_{best}^{(k)})=\min_{i=1,...,k}f(x^{(i)})$

参考文献

[1]. Subgradient method. Geoff Gordon, Ryan Tibshirani

226 total views, 1 views today

你可能感兴趣的:(Algorithm)