让AI自己调整超参数,谷歌大脑新优化器火了,自适应多任务丨开源

  萧箫发自凹非寺

  量子位公众号 QbitAI

  还在苦恼怎么给优化器调整更好的参数吗?

  现在,谷歌大脑搞出了一个新的优化器 VeLO,无需手动调整任何超参数,直接用就完事了。

  与其他人工设计的如 Adam、AdaGrad 等算法不同,VeLO 完全基于 AI 构造,能够很好地适应各种不同的任务。

  当然,效果也更好。论文作者之一 Lucas Beyer 将 VeLO 与其他“重度”调参的优化器进行了对比,性能不相上下:

  有网友看到了一丝优化器进步的曙光:在 Adam 之后出现了不少优化器,却都表现得非常失败。这个优化器或许确实能表现更好。

  所以,这个基于 AI 的优化器是如何打造的?

  VeLO 究竟是怎么打造的?

  在训练神经网络的过程中,优化器(optimizer)是必不可少的一部分。

  △神经网络训练过程,图源 Thomas Wolf

  但 AI 模型应用都这么广泛了,训练 AI 模型用的优化器却仍然是人工设计的,听起来多少有点不合理。

  于是谷歌大脑的研究人员灵机一动:为何不用 AI 来做一个优化器呢?

  设计上,优化器的原理基于元学习的思路,即从相关任务上学习经验,来帮助学习目标任务。

  相比迁移学习,元学习更强调获取元知识,它是一类任务上的通用知识,可以被泛化到更多任务上去。

  基于这一思想,VeLO 也会吸收梯度并自动输出参数更新,无需任何超参数调优,并自适应需要优化的各种任务。

  架构上,AI 优化器整体由 LSTM(长短期记忆网络)和超网络 MLP(多层感知机)构成。

  其中每个 LSTM 负责设置多个 MLP 的参数,各个 LSTM 之间则通过全局上下文信息进行相互协作。

  训练上,AI 优化器采用元训练的方式,以参数值和梯度作为输入,输出需要更新的参数。

  经过 4000 个 TPU 月(一块 TPU 运行 4000 个月的计算量)的训练,集各种优化任务之所长后,VeLO 终于横空出世。

  比人工调参优化器效果更好

  结果表明,VeLO 在 83 个任务上的加速效果超过了一系列当前已有的优化器。

  其中y轴是相比 Adam 加速的倍率,x轴是任务的比例。

  结果显示,VeLO 不仅比无需调整超参数的优化器效果更好,甚至比仔细调整过超参数的一些优化器效果还好:

  与“经典老大哥”Adam 相比,VeLO 在所有任务上训练加速都更快,其中 50% 以上的任务比调整学习率的 Adam 快 4 倍以上,14% 以上的任务中,VeLO 学习率甚至快上 16 倍。

  而在 6 类学习任务(数据集+对应模型)的优化效果上,VeLO 在其中 5 类任务上表现效果都与 Adam 相当甚至更好:

  值得一提的是,这次 VeLO 也被部署在JAX中,看来谷歌是真的很大力推广这个新框架了。

  巴特,也有网友认为耗费 4000 个 TPU 月来训练 VeLO,计算量成本过大:

虽然这个进展很重要,但它甚至都快赶上 GPT-3 的训练量了。

  目前 VeLO 已经开源,感兴趣的小伙伴们可以去试试这个新的 AI 优化器。

  One More Thing

  前段时间,一位哈佛博士生提了个有意思的想法,得到不少人赞同:更多论文的作者们也应该像演职员表一样,公开自己在论文中的工作内容。

  Kareem Carr 是生物统计学领域的博士生,作者贡献在生物论文中比较常见,不过之前在 AI 论文中见得不多。

  现在,这篇谷歌大脑论文的作者们也这样做了,谁写的论文、谁搭建的框架一目了然:

  不知道以后会不会成为机器学习圈的新风气(手动狗头)。

  GitHub 地址:

https://github.com/google/learned_optimization/tree/main/learned_optimization/research/general_lopt

  论文地址:

  https://arxiv.org/abs/2211.09760

  参考链接:

  [1]https://twitter.com/jmes_harrison/status/1593422054971174912

  [2]https://medium.com/huggingface/from-zero-to-research-an-introduction-to-meta-learning-8e16e677f78a#afeb

  [3]https://mp.weixin.qq.com/s/QLzdW6CMkcXWQbGjtOBNwg