zoukankan      html  css  js  c++  java
  • 论文笔记(10)"Closing the Gap: Tighter Analysis of Alternating Stochastic Gradient Methods for Bilevel Problems"

    Introduction

    文章作者针对Bilevel optimization提出了一种对需要采样样本更少的single timescale算法,收敛速度为\(\mathcal{O}(\frac{1}{\sqrt{K}})\)

    Bilevel optimization问题的通常形式为

    即对于一个嵌套的问题,上层级的问题求解需要子问题的最优解(通常的对偶问题都可以写成这样的形式,如\(y\)为对偶变量)。

    上述问题的求解难点主要在于子问题\(y^*(x)\)的计算,一般很难得到解析解。

    文章主要论题在于当我们用迭代的算法得到一个不精确的\(y\)时,如何更新\(x\)以及最终的收敛性、效率如何。

    Main Idea

    文章的两个主要想法为

    1. \(x\)的更新方式

      \[\begin{align} \nabla F(x)=\nabla_x f(x, y^*(x)) - \nabla_{xy}g(x,y^*(x))[\nabla_{yy} g(x, y^*(x))]^{-1} \nabla_y f(x, y^*(x))\\ \label{eq:gradientx} \end{align} \]

      推导过程如下:

      \[\begin{align} \nabla F(x) &= \nabla_x f(x, y^*(x)) - \nabla_x y^*(x) \nabla_y f(x, y^*(x))\\ \end{align} \]

      对于\(\nabla_x y^*(x)\)

      \[\begin{align} \nabla_y y^*(x)=0 \end{align} \]

      \[\begin{align} \underbrace{\nabla_x(\nabla_y y^*(x))}_{\textit{take the gradient w.r.t. x}}&=0\\ \nabla_{xy}y^*(x) + \nabla_xy^*(x)\nabla_{yy}y^*(x)&=0\\ \nabla_{xy}g(x,y^*(x)) + \nabla_xy^*(x)\nabla_{yy} g(x, y^*(x))&=0\\ \end{align} \]

      第一个等式是对\(\nabla_y y^*(x)\)函数对\(x\)求梯度,要注意\(\nabla_x(\nabla_y y^*(x))\)\(\nabla_{xy}y^*(x)\)的区别。最后得到

      \[\begin{align} \nabla_xy^*(x)=-\nabla_{xy}g(x,y^*(x))[\nabla_{yy} g(x, y^*(x))]^{-1} \label{eq:1} \end{align} \]

    2. \(y^*(x)\)是关于\(x\)的光滑函数,即

    \[\Vert y^*(x_1)-y^*(x_2)\Vert \leq L_y\Vert x_1 -x_2\Vert \]

    Algorithm

    the update of \(y\)

    通常\(y^*\)是没有解析解的,文中通过\(T\)次梯度下降得到在\(k\)时刻\(T\)次梯度下降后的结果\(y^{k,T}\)来替代\(y^*(x^{k})\)

    the update of \(x\)

    将更新后的\(y\)代替\(y^*(x)\)带入\(\ref{eq:gradientx}\),得到

    \[\bar{\nabla}_x f(x,y):=\nabla_x f(x, y) -\nabla_{xy}g(x,y)[\nabla_{yy} g(x, y)]^{-1} \nabla_y f(x, y) \]

    其中对于Hessen矩阵的逆,使用近似

    \[[\nabla_{yy}g(x,y)]^{-1}\approx [\frac{N}{\ell_{g,1}}\prod_{n=1}^{N'}(I-\frac{1}{\ell_{g,1}}\nabla_{yy}g(x, y;\phi_{(n)}))] \]

    其中\(\phi_{(n)}\)是第\(n\)个样本点,\(N'\)是全部\(N\)个样本中的一部分样本,\(\ell_{g,1}\)\(\nabla g(x,y)\)的Lipschitz continuity值。

    这样整个算法流程为

    其中

    \[\begin{align} h_g^{k,t}&=\nabla_y g(x^{k}, y^{k,t};\phi^{k,t})\\ h_f^{k}&=\nabla_x f(x, y^{k+1};\xi^k)-\nabla_{xy}g(x, y^{k+1};\phi_{(0)})[\frac{N}{\ell_{g,1}}\prod_{n=1}^{N'}(I-\frac{1}{\ell_{g,1}}\nabla_{yy}g(x, y;\phi_{(n)}))]\nabla_y f(x,y^{k+1};\xi) \end{align} \]

    Convergence

    Assumption

    收敛性要求的条件有

    1. \(f,\, \nabla f,\, \nabla g,\, \nabla^2g\) 分别是\(\ell_{f,0},\, \ell_{f,1},\, \ell_{g,1},\, \ell_{g,2}\)Lipschitz continuity
    2. 对于任意固定的\(x\)\(g(x,y)\)对于\(y\)\(\mu_g-\)strongly convex
    3. 随机梯度\(\nabla f(x,y;\xi)\)\(\nabla g(x,y;\phi)\)和二阶导数\(\nabla^2 g(x,y;\phi)\)均是无偏的,且方差有界,分别为\(\sigma_{f}^2,\, \sigma_{g,1}^2,\,\sigma_{g,2}^2\)

    Proof

    Sketch

    令Lyapunov function \(\mathbb{V}^{k}:=F(x^{k})+\frac{L_f}{L_y}\Vert y^{k} - y^*(x^k)\Vert\),则

    \[\mathbb{V}^{k+1}-\mathbb{V}^{k}=\underbrace{F(x^{k+1})-F(x^{k})}_{\text{upper objective}}+\underbrace{\frac{L_f}{L_y}(\Vert y^{k+1}-y^*(x^{k+1})\Vert-\Vert y(x^k)-y^*(x^k) \Vert)}_{\text{convergence of $y$}} \]

    上述的Lyapunov function可以写成两部分,需要证明两者都是下降的。

    the convergence of the upper function

    先证明\(F(x^{k+1})-F(x^k)\)是递减,利用\(x^{k+1}=x^{k}-\alpha_k h_f^k\)得到

    其中\(\bar h_f^k\)\(h_f^k\)的期望,利用\(\Vert F(x^k)-\bar h_f^k\Vert = \Vert F(x^k)-h_f^k+h_f^k-\bar h_f^k\Vert\)得到

    可以看出\(F(x^{k+1})-F(x^k)\)是依赖于\(\Vert y^{k+1}-y^*(x^k)\Vert\)的收敛情况的。

    the convergence of the lower function

    需要注意Lyapunov function中关于\(y\)的是\(\Vert y^k-y^*(x^k)\Vert\),而\(y^{k}\)在算法中是通过\(x^{k-1}\)取得的,所以要通过\(x\)来解耦

    \[\Vert y^{k+1} - y^*(x^{k+1})\Vert^2 = \underbrace{\Vert y^{k+1} - y^*(x^{k})\Vert^2}_{J_1} +\underbrace{\Vert y^*(x^{k+1})-y^*(x^{k})\Vert^2}_{J_2}+2\underbrace{\langle y^{k+1}-y^*(x^k),y^*(x^k)-y^*(x^{k+1}) \rangle}_{J_3} \]

    这样将原式分为3部分,其中第一部分\(J_1\)是关于\(y^{k+1}\)在给定\(x^{k}\)后是否收敛到\(y^*(x^k)\)\(J_2\)则用到了\(y\)函数的光滑性。

    关于\(J_1\)这部分是很标准的证明过程

    关于\(J_2\)部分,这里直接使用光滑性质

    对于\(J_3\)再次利用\(y^*(x)\)的光滑性,用\(y^*(x^k)-y^*(x^{k+1})-\nabla y^*(x^k)^T(x^{k+1-x^k})+\nabla y^*(x^k)^T(x^{k+1-x^k})\)来解耦,得到

    对于\(J_3^1\)得到

    其中最后一个不等式用到了Yong's equality \(ab\leq 2\gamma_ka^2+\frac{b^2}{8\gamma_k}\)

    对于\(J_3^2\)直接使用光滑性质得到

    其中\((h)\)不等式用到了\(1\leq\frac{\eta}{2}+\frac{1}{2\eta}\)。最终整合起来得到

    Cases

    Min-Max Problems

    Min-Max常见于博弈论、优化等领域中,之前的Decomposition对偶与Proximal都可以归结为这类问题。对于一般的Min-Max问题,其\(g(x,y)=-f(x,y)\),因此\(\ref{eq:gradientx}\)\(\nabla_y f(x,y^*(x))=0\),故更新方式变为

    \[\begin{align} h_g^{k,t}&=-\nabla_y f(x^{k}, y^{k,t};\phi^{k,t})\\ h_f^{k}&=\nabla_x f(x^k, y^{k+1};\xi^k) \end{align} \]

    Compositional Problems

    Compositional Problems中通常会加入一个norm的正则项,如加入\(L_1\)-norm的Lasso等问题。对于一般的Compositional problems问题,其\(g(x,y)=\Vert y-h(x;\phi)\Vert^2\)\(f(x,y):=f(y)\),这样得到新的更新公式为

    \[\begin{align} h_g^{k,t}&=y^k-h(x^{k};\phi^k)\\ h_f^{k}&=\nabla h(x^k;\phi^k)\nabla f(y^{k+1};\xi^k) \end{align} \]

    Summary

    1. 对于\(x\)更新公式中的\(\nabla_{xy}g(x,y^*(x))[\nabla_{yy} g(x, y^*(x))]^{-1}\),我是将其用Newton Methods的方法去理解。
    2. 定义的Lyapunov function为upper objective加上一个\(R_y=\Vert y^k-y^*(x^k)\Vert\),需要注意的是norm中的\(y^*(x^k)\)实际上是\(k+1\)的。
    3. 收敛性证明中\(F(x)\)的收敛性除了和\(x\)的迭代有关系,还和lower level\(y\)的迭代有关系的,需要验证lower level迭代中\(y\)也是收敛的。
    4. 这篇文章很有实践指导意义,例如为什么在Min-Max问题中使用Alternative methods即使不加那个\(\nabla_{xy}g(x,y^*(x))[\nabla_{yy} g(x, y^*(x))]^{-1}\)也能表现很好?
    5. 以及\(y^*(x)\)确实包含\(x\)更新方向的信息。
  • 相关阅读:
    CNN comprehension
    Gradient Descent
    Various Optimization Algorithms For Training Neural Network
    gerrit workflow
    jenkins job配置脚本化
    Jenkins pipeline jobs隐式传参
    make words counter for image with the help of paddlehub model
    make words counter for image with the help of paddlehub model
    git push and gerrit code review
    image similarity
  • 原文地址:https://www.cnblogs.com/DemonHunter/p/15709077.html
Copyright © 2011-2022 走看看