zoukankan      html  css  js  c++  java
  • 优化整理

    函数(g)的一些性质

    • Lipschitz continuity

      [Vert heta Vert_2 leq D Rightarrow Vert g'( heta)Vert_2 leq B ]

    • Smoothness

      [Vert g'( heta_1) - g'( heta_1)Vert_2 leq L Vert heta_1 - heta_2Vert_2 ]

    • Strong convexity

      [g( heta_1) geq g( heta_2) + g( heta_1)^T( heta_2- heta_1) + frac{mu}{2}Vert heta_1 - heta_2Vert_2 ]

    Smoothness函数的性质

    光滑凸函数的性质

    • 如果(g)是二阶可微的,则

      [Vert g''( heta)Vert leq L ]

    • 二阶上界

      [g( heta_1) leq g( heta_2) + g'( heta_2)( heta_1- heta_2) + frac{L}{2}Vert heta_1- heta_2Vert ]

      可以直接通过上述的(g''( heta)leq L)导出

    • 下界

      [g( heta_1) geq g( heta_2) + g'( heta_2)( heta_1- heta_2) + frac{L}{2}Vert heta_1- heta_2Vert ]

      (h( heta) = g( heta) - heta^T g'( heta_2))(h( heta))为凸函数且在( heta_2)取得最小值,(h( heta)leq h( heta-frac 1 L g'( heta))),将进行泰勒展开可以得到结果。

    • co-coercivity

      [frac 1 L Vert g'( heta) - g'(eta)Vert_2^2 leq [g'( heta) - g'(eta)]^T( heta-eta) ]

    • 到最优点的距离

      [g( heta) - g( heta_*)leq g'( heta)^T( heta- heta_*) ]

    • 如果(g)(mu) 强凸的,那么

      [g( heta) leq g(eta) + g'(eta)( heta-eta) + frac{1}{2 mu}Vert g'( heta) - g(eta)Vert ]

      同样,令(h( heta)=g( heta) - heta^T g'(eta))并利用强凸的定义即可。

    • 如果(g)(mu)强凸,那么到最优点的距离

      [g( heta) - g( heta_*) leq frac{1}{2mu} Vert g'( heta) Vert^2 ]

    光滑函数梯度下降

    令光滑函数梯度下降的迭代过程为( heta_t = heta_{t-1} - frac 1 L g'( heta_{t-1}))

    • 如果(g)(mu)强凸的,那么

      [Vert g( heta_t) - g( heta_*)Vertleq (1-mu/L)^t[g( heta_0) - g( heta_*)] ]

      即,梯度下降算法是(1- mu/L)线性收敛的。

      image-20200601102009614

      最后使用(Vert g'( heta) - g'( heta_*)Vert^2 geq 2mu (g( heta) - g( heta_*)))

    • 如果(g)仅仅是(L-smooth)的,那么

      [g( heta_t) - g( heta) leq frac{2LVert heta_0 - heta_*Vert}{t+4} ]

      ( heta_t)的迭代过程带入,并利用(co-coercivity)

      QkHbj.png

      利用凸函数的性质和柯西施瓦茨不等式可以得到

      [g( heta_{t-1} )- g( heta_*)leq g'( heta_{t-1})( heta_{t-1}- heta)leqVert g'( heta_{t-1})Vert Vert heta_{t-1}- hetaVert ]

      同时利用上一步的结果(g( heta_t)leq g( heta_{t-1}) -frac{1}{2L}Vert g'( heta_{t-1})Vert^2)

      QkgFM.png

      定义

      QkrV3.png

      Qk3zS.png

      倒数第二步骤,从(1-t)的加和,两边都是加上前一步结果后,左式的(frac{1}{Delta_{k-1}})被消除,因此就等于最后的结果。

    加速梯度下降

    对于(L-smooth)函数(g),以及下述优化流程

    [egin{align*} heta_t &= eta_{t-1} - frac 1 L g'(eta_{t-1})\ eta_t &= heta_t + frac{t-1}{t+2}( heta_t - heta_{t-1}) end{align*} ]

    则会有(g( heta_t)-g( heta_*)leq frac{2LVert heta_0 - heta_*Vert^2}{(t+1)^2})

    如果(g)还是一个(mu)强凸函数,那么下属流程

    [egin{align*} heta_t & =eta_{t-1} - frac 1 L g'(eta_{t-1})\ eta_t &= heta_t + frac{1-sqrt{mu/L}}{1+sqrt{mu/L}}( heta_t- heta_{t-1}) end{align*} ]

    则会有(g( heta_t)-g( heta_*)leq LVert heta_0 - heta_* Vert^2( 1-sqrt{1-mu/L})^t)

    文章说的ten-line proof并没看懂...

    Proximal gradient descent

    Proximal gradient descent针对的是

    [min_x g(x) + h(x) ]

    其中(g(x))Lipschitz连续,(h(x))是凸函数不一定可微分。

    其要找到一个(z)使得

    [min_z Vert x-zVert^2+h(z) ]

    推导过程为,假设除去(h(x))按照正常的梯度下降方法,

    [x^+ = x-frac{1}{L} abla g(x) ]

    对其在(x)点进行二阶展开

    [egin{align*}x^+ &= argmin_z g(x) + abla g'(x)^T(z-x)+frac{1}{2L}Vert z-xVert^2+h(z)\&=argmin_z frac 1 {2L} Vert z- (x-L abla g(x))Vert^2+h(z)end{align*} ]

    最后一个等式去除了一些无关的常数项,因此最后一行其实是原式子的上界,通过对其上界进行优化从而实现其下降。

    求解过程如下

    QFU1D.png

    加入没有(g(x))这一项,对(g(x))进行求导,可以得到

    [x^{(t+1)} = x^{(t)} - frac{1}{L} abla f(x^{(t)}) ]

    继而可以得到( abla f(x^{(t)})=L(x^{(t)}-x^{(t+1)})),为了表示方便,令(gamma = frac{1}{L}),同时设(G_{gamma} = frac{1}{gamma}(x-x^{(t+1)}))。现在证明(G_{gamma}=0 Rightarrow partial g(x)+h(x))

    因为(x^{(t+1)}=argmin_z {frac{1}{2gamma} Vert z-(x^{(t)}-gamma abla g(x^{(t)}))Vert + h(z)}),上式对(z)求导即可得到结果

    这个结果进一步说明了Proximal Gradient Descent与通常的梯度下降间的联系。

    (f(x)=g(x)+h(x))证明:

    [f(y)geq f(x^{(t+1)})+<G_gamma(x), y-x>+frac alpha 2 Vert y-xVert^2+gamma (1-frac{eta gamma}{2})Vert G_gamma(x)Vert^2 ]

    (x^{(t+1)}=x - gamma G_gamma(x))代入(f(x))得到

    [egin{align*}f(x^{(t+1)})&=g(x-gamma G_gamma(x))+h(x^{t+1})\&leq g(x) - gamma< abla g(x), G_gamma(x)>+frac{eta gamma}{2}Vert G_gamma(x)Vert^2 \&leq g(y)+< abla g(x), x-y>-frac alpha 2 Vert x-yVert^2\&quad -gamma< abla g(x), G_gamma(x)>+frac{eta gamma}{2}Vert G_gamma(x)Vert^2\&= g(y)+< abla g(x), x-y-gamma G_gamma(x)>-frac alpha 2 Vert x-yVert^2\&quad +frac{eta gamma}{2}Vert G_gamma(x)Vert^2\end{align*} ]

    参考文献

  • 相关阅读:
    AcWing 157. 树形地铁系统 (hash判断树同构)打卡
    AcWing 156. 矩阵 (哈希二维转一维查询)打卡
    AcWing 144. 最长异或值路径 01字典树打卡
    AcWing 143. 最大异或对 01字典树打卡
    AcWing 142. 前缀统计 字典树打卡
    AcWing 139. 回文子串的最大长度 hash打卡
    AcWing 138. 兔子与兔子 hash打卡
    常用C库函数功能及用法
    编程实现C库函数
    C语言面试题5
  • 原文地址:https://www.cnblogs.com/DemonHunter/p/13026302.html
Copyright © 2011-2022 走看看