Subgradient是一种可以优化不可微的凸函数的方法.
首先回顾凸函数的定义:
$f(y) geq f(x) + abla f(x)^T(y-x), all hspace{2 pt} x, y$
凸函数的subgradient的定义为满足以下条件的$gin mathcal{R}^n$
$f(y) geq f(x) + g^T(y-x), all hspace{2 pt} y$
subgradient具有以下特性:
- 永远存在
- 如果$f$在$x$处可微, 那么$g= abla f(x)$
- 对于非凸函数也有类似的定义, 但是非凸函数的subgradient并不需要存在
几个例子:
例1. $f: mathcal{R} o mathcal{R}, f(x) = |x|$
对于$x eq 0, g=sign(x)$
对于$x=0, g$是$[-1, 1]$中的任一元素
例2. $f: mathcal{R}^n o mathcal{R}, f(x) = |x|$
对于$x eq 0, g=frac{x}{|x|}$
对于$x=0, g$是${z: |z|geq1}$中的任一元素
例3. $f: mathcal{R}^n o mathcal{R}, f(x) = |x|_1$
对于$x eq 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)={ abla f(x)}$
- 如果$partial f(x)={g}$, 那么f是科委的, 并且$ abla 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$
其中
令$g=0$, 可以得到$x^*=S_{lambda}(y)$:
$S_{lambda}(y)= egin{cases}y_i-lambda & if y_i > lambda \ 0& if -lambdaleq y_i leq lambda \ y_i + lambda & if y_i < -lambda end{cases}$
Subgradient method
对于凸函数(不一定可微)$f: mathcal{R}^n o 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