zoukankan      html  css  js  c++  java
  • EE364b笔记

    次梯度方法

    • 次梯度方法不一定会使损失函数下降

      与line search方法不同,次梯度方法步长的schedule都是事先确定,因此不一定会导致损失函数下降,因此在证明收敛的时候用到的是(x^{t+1}-x^*)的范数。

    • 次梯度的证明框架

      [egin{align*} Vert x^{t+1} - x^{*}Vert^2 &= Vert x^{t} -alpha_t g_t -x^{*}Vert^2\ &=Vert x^{t} -x^{*}Vert^2 - 2 alpha_t langle g_t, x^t-x^* angle +alpha^2_tVert g_tVert^2\ &leq Vert x^{t} -x^{*}Vert^2 - 2alpha_t(f_t-f_*)+alpha^2_tVert g_tVert^2\ &= Vert x^0 - x^*Vert^2 - 2 sum_{k=0}^t alpha_k (f_k - f_*) +sum_{k=0}^t alpha_k^2 Vert g_tVert^2\ end{align*} ]

    • 步长选择

      步长选择常用的方法有

      • 常数(alpha)
      • (sum alpha_k =infty)(alpha_k o 0),常用的如(frac{1}{sqrt{k}})
      • (sum alpha_k^2leqinfty)(sum alpha_k = infty)(a_k o 0),常用的如(frac{1}{k})
    • 收敛分析

      根据次梯度的证明(f_{best}^t-f_*leq frac{R+sumalpha_k^2 G}{sum 2alpha_k })选取不同的步长,有不同的收敛结果但收敛速度都是(mathcal{O}(frac{1}{sqrt{t}}))

      • 在常数的情况下,(f_{best}^t)(f_*)之间有(frac{R}{2talpha})的误差
      • 在diminish的情况下,(f_{best}^*)会收敛到(f_*)
    • projected次梯度方法

      根据(Vert x^{t+1}-x^*Vert^2 =Vert Pi(z^{t+1})-x^* Vert^2leqVert z^{t+1}-x^*Vert ^2),投影的次梯度方法不会影响收敛情况。

    • Mirror descent

      参看之前的博客

    • adaptive methods

      先看一下polyak's step,根据(2alpha_t f^t-f_*leqVert x^{t}-x^* Vert^2-Vert x^{t+1}-x^*Vert^2 +alpha_t^2Vert g_tVert^2)得到,当(alpha_t=frac{f(x^{t})-f_*}{Vert g_tVert^2})时取得最小值。

    参考资料

  • 相关阅读:
    Swift的函数与函数指针、闭包Closure等相关内容介绍
    spring+dubbo整合
    常用设计模式-适配器模式
    常用设计模式-工厂模式
    java动态代理
    程序对关系型数据库批量操作
    springboot整合mybatis
    JAVA代码实现多级树结构封装对象
    springboot集成redis缓存
    springboot入门
  • 原文地址:https://www.cnblogs.com/DemonHunter/p/14383339.html
Copyright © 2011-2022 走看看