Memory-Efficient Adaptive Optimization

Anil R., Gupta V., Koren T., Singer Y. Memory-efficient adaptive optimization. NeurIPS, 2019.

本文提出了一种 memory-efficient 的优化器: SM3.

符号说明

  • t=1,,T, optimization rounds;
  • wtRd, paramter vector;
  • t, convex loss function;
  • gt=t(wt), 梯度;
  • wRd, optimal paramter.

SM3

  • 自适应的优化器 (AdaGrad) 形式如下:

    γt(i)=s=1tgs2(i),i[d],

    然后每一步按照如下的规则更新:

    wt+1(i)=wt(i)ηgt(i)γt(i),i[d].

  • γt 的存在意味着我们需要 O(d) 的额外存储. 作者提出的 SM3 将这个额外的存储消耗降低为 O(k).

  • 首先, 通过某种方式确定 k 个非空子集:

    {Sr}r=1k,r=1kSr=[d].

  • 然后按照如下的方式更新:

  • 可以注意到, Sr 的存在相当于指定 iSr 的参数共享一个自适应的学习率. 特别的, 由于 Sr 不一定是互斥的, 所以每一次我们从中挑选一个最好的. 作者证明了这个方法的收敛性.

  • 进一步的, 作者提出了一个更加的稳定的版本, 具有更好一点的 bound:

区间的划分

  • 现在的问题是, 如何确定 {Sr}r=1k, 作者给出的建议是, 对一个 m×n 的权重, 可以分别按行共享和按列共享, 从而需要 m+n 个缓存.

代码

[PyTorch-SM3]

posted @   馒头and花卷  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2021-09-10 Adversarial Detection methods
2020-09-10 Defending Adversarial Attacks by Correcting logits
点击右上角即可分享
微信分享提示