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*} ]

    参考文献

  • 相关阅读:
    加密算法整理
    NSURLConnection类说明
    ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
    "ld: library not found for l...." 问题的解决
    ios5 自定义导航条问题
    objectivec 语言知识点
    JSON
    [转]XCode中修改缺省公司名称/开发人员名称
    [转]iPhone开源项目汇总
    清除SQL 数据库日志 欧阳锋
  • 原文地址:https://www.cnblogs.com/DemonHunter/p/13026302.html
Copyright © 2011-2022 走看看