首页 > 其他分享 >Adafactor Adaptive Learning Rates with Sublinear Memory Cost

Adafactor Adaptive Learning Rates with Sublinear Memory Cost

时间:2024-09-11 15:24:24浏览次数:9  
标签:mathbb Adafactor times beta Cost Rates 作者 hat

目录

Shazeer N. and Stern M. Adafactor: Adaptive learning rates with sublinear memory cost. ICML, 2018.

本文介绍了一种 memory-efficient 的优化器: Adafactor.

符号说明

  • \(x\), parameters;
  • \(W \subset x\), a linear transformation, $ \in \mathbb{R}^{n \times m}$

Adafactor

下面, 我们一步步介绍 Adafactor 对于 Adam 的修改.

Factored Second Moment Estimation

  • 一般的 Adam 的更新流程如下:

  • 一个比较重要的点是 一阶和二阶 的动量估计, 这个估计导致了 Adam 至少需要 2x 的参数的缓存.

  • 假设对于 linear transformation \(W \in \mathbb{R}^{n \times m}\), 它所对应的二阶动量为: \(V \in \mathbb{R}^{n \times m}\), 作者希望将他分解成两个低秩矩阵: \(R \in \mathbb{R}^{n \times k}, S \in \mathbb{R}^{k \times m}\), 使得

    \[V \approx RS. \]

  • 由于 \(V\) 是非负的, 所以作者更倾向于 nonnegative matrix factorization, 并利用泛化的 KL 散度—— I-divergence:

    \[d(p, q) = p \log \frac{p}{q} - p + q \]

    作为度量.

  • 作者希望 \(R, S\) 能够满足:

    \[\min_{R \in \mathbb{R}^{n \times k}, S \in \mathbb{R}^{k \times m}} \quad \sum_{i=1}^n \sum_{j=1}^m d(V_{ij}, [RS]_{ij}) \\ s.t. \quad R_{ij} \ge 0, \quad S_{ij} \ge 0. \]

  • 特别的, 作者证明了, 在 \(k=1\) 的情况下, 一定有:

    \[RS = V1_m 1_n^T V / 1_n^T V 1_m, \quad 1_{\ell} := (1, \ldots, 1) \in \mathbb{R}^{\ell} \]

    成立. 于是, 在这种情况下, 不失一般性的, 可以领:

    \[R = V 1_m, C = 1^T V. \]

  • 于是, 作者给出了如下的 \(V_t\) 的更新方案:

    \[G_t = \nabla f_t(W_{t-1}) \\ R_t = \beta_2 R_{t-1} + (1 - \beta_2) (G_t^2 1_m) \\ C_t = \beta_2 C_{t-1} + (1 - \beta_2) (\mathbf{1}_n^T G_t^2) \\ \hat{V}_t = (R_t C_t / 1_n^T R_t) / (1 - \beta_2^t) \\ W_t = W_{t-1} - \alpha G_t / (\sqrt{\hat{V}_t} + \epsilon). \]

No Momentum

  • 为了进一步降低一阶动量的缓存, 作者直接令 \(\beta_1 = 0\), 即移除了一阶动量.

Out-of-Date Second Moment Estimator

  • 作者认为, 当模型变化特别快的时候, 二阶矩的估计很容易过时:

  • 如上图所示, 当我们用一个较大的 \(\beta_2\), 如果没有 warm-up (即模型缓慢更新) 阶段, 效果是特别差的.

  • 为了验证这一点, 作者统计:

    \[\text{RMS}(U_t) = \text{RMS}_{x \in X} (u_{xt}) = \sqrt{\text{Mean}_{x \in X} (\frac{g_{xt}^2}{\hat{v}_{xt}} )}. \]

    作者认为, 如果训练是稳定的, \(\text{RMS}(U_t) \approx 1\), 既然 Adam 的一个假设是:

    \[\mathbb{E}[\hat{v}] = \mathbb{E}[g^2]. \]

  • 如上图所示, \(\beta_2\) 取得比较大的时候, 结果并不是这样的. 于是:

    \[U_t= G_t / \sqrt{\hat{V}_t} \\ \hat{U}_t = U_t / \max(1, RMS(U_t) / d) \\ W_t = W_{t-1} - \alpha_t \hat{U}_t. \]

    即 Adafactor 会手动校准.

算法

  • Adafactor 对于 matrix:

  • Adafactor 对于 vector:

  • 默认的参数设置:

注: \(\rho\) 是人为设置的相对步长, 这里不多赘述了.

代码

[pytorch-optimizer]

标签:mathbb,Adafactor,times,beta,Cost,Rates,作者,hat
From: https://www.cnblogs.com/MTandHJ/p/18408312

相关文章

  • Adam-mini Use Fewer Learning Rates To Gain More
    目录概Adam-mini代码ZhangY.,ChenC.,LiZ.,DingT.,WuC.,YeY.,LuoZ.andSunR.Adam-mini:Usefewerlearningratestogainmore.arXivpreprint,2024.概作者提出一种简化的optimizer,在取得和Adam相媲美的性能的同时,只需要一半的内存开销.Adam-mini......
  • Rust‘s “zero-cost abstraction“
    Rust's"zero-costabstraction"Iteratorsvs.ForLoopsGenericsandMonomorphizationTrait-basedAbstractionClosuresvs.FunctionPointersEnumsandPatternMatchingSmartPointers(e.g.,Box,Rc,Arc)OwnershipandBorrowingStaticDispatchvs.......
  • costmap代价地图
    1什么是costmap代价地图在机器人进行路径规划时,我们需要明白规划算法是依靠什么在地图上来计算出来一条路径的。依靠的是gmapping扫描构建的一张环境全局地图,但是仅仅依靠一张原始的全局地图是不行的。因为这张地图是静态的,无法随时来更新地图上的障碍物信息。在现实环境中,......
  • Paper Reading: Cost-sensitive deep forest for price prediction
    目录研究动机文章贡献本文方法改进的K-means离散化代价敏感深度森林实验结果汽车共享价格数据集实验房屋租赁数据集实验房地产销售数据集实验优点和创新点PaperReading是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方。具体的细节还需......
  • 用Devecostudio写一个简单的计算器
    用Devecostudio写一个简单的计算器//计算器import{Button1}from'./Button1'import{Button2}from'./Button2'//定义两个按钮格式//import{Cal}from'./cal'也可以将四则运算的函数定义到别处然后引入,这里为了方便直接放到这里了interfaceOperator{ symbol:st......
  • LeetCode 2976 Minimum Cost to Convert String I
    MinimumCosttoConvertStringIProblemDescriptionYouaregiventwo0-indexedstrings,sourceandtarget,bothoflengthnandconsistingoflowercaseEnglishletters.Youarealsoprovidedwithtwo0-indexedcharacterarrays,originalandchanged,a......
  • ACCT2002 Cost Analysis for Decision Making
    ACCT2002CostAnalysisfor Decision MakingTrimester2A,2024SyllabusThisisamanagementaccountingfoundationunitthatsupportsmanagerialplanninganddecisionmakingthroughtheintegrationofethicsandstrategytocostingmodelsandprofitplanni......
  • 将DevEcoStudio进行汉化
    1、点击最上方菜单栏中的file,然后选择setting2、在弹出的窗口的左侧菜单栏中选择Plugins,然后在右侧选择Installed3、由于汉化插件已经给我们下载好了,所以直接在搜索框输入Chinese,然后勾选,点击Apply,之后点击ok4、然后选择Restart重启编译器即可5、再次进入后页面的内容......
  • costas_loop,costas_loop.v
      /*dsp48a1x2dsp48a1x2滤波器阶数4480n抽取倍数27x5x采样率64.8M2.4M......
  • 施耐德EcoStruxure Machine SCADA Expert(EMSE)软件应用(三)
    (出差了几天)今天我们来讨论下EMSE的工程新建首先打开软件后,点“新建”可以看到下面的新增向导:专案名称:工程项目的名称支持中文,但是个人建议还是英文比较好,可以避免很多莫名的Bug。位置:工程存放的位置,这个无所谓,在哪里都可以,只要你自己能找得到。目标平台:这个很重要,首先......