Firt Order Optimizers: Reviews and Updates
这篇内容会专注于一阶优化器的直觉与算法介绍,并从凸优化引入相关的基础概念
- Firt Order Optimizers: Reviews and Updates
- 论文中经常出现的基础概念:
- Gradient-Descent and Basic Variants
- Triple Momentum Gradient Descent
- Boosting First-Order Methods by Shifting Objective: New Schemes with Faster Worst Case Rates
论文中经常出现的基础概念:
Lipschitz Continuity & L-Smooth 指:
直觉来说是二阶导有上限
-strongly convex 指: 直觉来说是二阶导有正下限. 在凸优化问题中,连续函数二阶导为非负数,这里强凸函数的定义则是要求二阶导为正数. 文章中会出现 "L-smooth and -strongly convex"的说法,直觉地来说指函数的二阶导在正数区间.
co-coercivity 矫顽性可以由convexity 与 L-smooth一同推导, 其数学表述为
Gradient-Descent and Basic Variants
关于梯度下降相关算法,有一个比较好的博客
梯度下降算法
从surrogate function的角度来解析,在每一步上,可以理解构造一个与原函数在相切且二阶导为的二次函数, 每一步会更新到这个二次代理函数的最小值上. 这要求整个函数可导,如果不可导,则需要使用 subgradient descent.
subgradient 函数 定义为任意梯度函数(subgradient oracle),使得
Proximal Gradient Method
如果凸函数其中有一个部分不可导,但是处理比较简单,那么可以使用proximal optimization algorithms, 将函数分解为, 其中不一定可导.
可以理解为分两步:
- 将用当前位置的的函数值构造一个与原函数相切(曲率不必一致的)的函数,
- 把直接与新二次代理函数的求和求global minimum.
重点:
- 如果为L2-norm L1-norm, 这些常见的regularizer, 那么最后的求优化是一个典型的二次函数 + 二次函数或者 二次函数 + ,都是有closed-form solution的。
- 如果记为二次代理函数的极值点 , 将代入上文的最优化公式, 那么最后的求解函数常常会写成 proximal mapping (prox-operator), .说明最终的结果既需要考虑的局部最优点,也需要考虑.
特殊情况中,可以是一个 indicator function,指定函数的定义域, 如果在定义域内则,否则. 这样的情况下 函数变成了在有限定义域内寻找最优解的问题,得到的结果是最优解在边界上的投影。因而wiki说 prox函数是projection操作的推广。
Projected Gradient Descent
如果使用梯度下降的时候要求在定义域中,那么一个projected梯度下降的做法是,首先进行无约束梯度下降,然后将结果投影到边界上. 记为, 其中为欧几里得投影,可以写成
展开后变为
General Projected Gradient Descent 则会允许不同的距离量变为:
常用的距离量 Bregman Divergence 由可以产出 KL divergence.
mirror gradient descent常常用来分析
Nesterov Accelerated Gradient Descent
Nesterov Acceleration有很多个不同的版本。
Nesterov 在 1983年的paper:
其中 可被泛化为一般超参数. 可以理解为为沿着之前的更新方向look-ahead的目的位置, 然后在look-ahead的位置进行梯度更新. 这篇Medium博客提供了基于"look-ahead"的阐述.
pytorch的版本采用的是更着重于momentum的算法描述,对标的是momentum gradient descent.
Triple Momentum Gradient Descent
这篇paper提出了一个基于四个参数的 triple momentum (TM)框架.
这个框架下的优化器算法:
| Method | Parameters | | :---------------- | :-------------------------------: | | Gradient descent | | | Momentum Gradient | | | Nesterov AG | | | General TM Algo. | |
直觉上来说,如果, 则 , 代入后就能得到前面提到的几个算法公司.
作者给出了参数, 如果一直需要优化的函数是 的则令, 设定一下参数,
个人分析
这个paper是有小问题的,对前面TM框架进行分析,可以通过用表达可以消去.同时中有一个参数是多余的.这个公式最终可以化为
这里引出了下一篇paper提到的参数冗余问题。
Boosting First-Order Methods by Shifting Objective: New Schemes with Faster Worst Case Rates
对于原来的目标函数,可以转而求解一个新的shifted objective.
可以简单理解为原函数与最值点附近的下界二次函数的残差.容易证明
- h(x)是一个凸函数
- h(x)的极值点与相同,进而可以说的最优值点与的相同。
- h(x)-smooth
- 矫顽性:
Generalized Triple Momentum
其中的表达式等价于 其中为二次surrogate function 的最优解. 可得, 在一定程度上可以表达梯度下降算法.
而当时,可以简单地将这两条式子化为 Nesterov的标准形式。
进一步地观察的表达式的第二项,将代入,得到 , 由于强凸性, 第二项与符号相反,这是用于补偿strongly-convex函数的二阶导的,当我们用曲率为的更为扁平的二次代理函数求解时,我们会高估合适的梯度下降步长的大小,因而带着动量往前的 在预测look-ahead 时会减去之前高估的一部分步长.
参考参数
文章更严谨且通用地用李雅普诺夫函数 where 进行了证明, 说明其收敛速度上限比较小。
作者之后将这个算法附加在多个一阶算法上(SVRG, SAGA)。由于个人认知有限,暂还没有能力分析这些算法及其应用.