• Subgradient Algorithm


    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|$

    Screen Shot 2014-10-10 at 下午10.08.09

    对于$x eq 0, g=sign(x)$

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

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

    Screen Shot 2014-10-10 at 下午10.08.14

    对于$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$

    Screen Shot 2014-10-10 at 下午10.08.20

    对于$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$

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

    令$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

  • 相关阅读:
    0008_Python变量
    shiro Filter过滤器管理197
    oracle 将一个数据库(A)的表导入到另一个数据库197
    top命令使用197
    SpringBoot下载Excel文件,解决文件损坏问题197
    java元注解197
    Content-Type
    centos7 下修改网络配置
    mint 20 install NVIDIA driver for 3080 via run
    使用numpy rot90操作image后,opencv cv2.rectangle 报错
  • 原文地址:https://www.cnblogs.com/kemaswill/p/4395835.html
Copyright © 2020-2023  润新知