谷歌大脑提出VeLO优化器,无需调参,最高比Adam快16倍!

427a0fa3cc52782db5ad005de8a7b501.png

文 | 萧箫 发自 凹非寺
源 | 量子位

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

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

bb6812f9ae1bb766eb2567c7d4ad90f2.png

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

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

3ef6ac93128ca3f208eb60aa0583d120.png

有网友看到了一丝优化器进步的曙光:

在Adam之后出现了不少优化器,却都表现得非常失败。这个优化器或许确实能表现更好。

f12801fb84e15258bd4a44f4523dbb0e.png

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

VeLO究竟是怎么打造的?

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

07e4b2507f317e04772bd5af9fb19424.gif
▲神经网络训练过程,图源Thomas Wolf

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

61caf0b36202270799e3b529b1b48729.png

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

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

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

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

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

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

ceca9e35053e353e1e6f823864059895.png

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

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

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

结果表明,VeLO在83个任务上的加速效果超过了一系列当前已有的优化器。其中y轴是相比Adam加速的倍率,x轴是任务的比例。

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

a894d66dc4c3be43fd62c27064bc6e78.png

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

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

c2a086bbe2ec96280836ce9b0e66fcd6.png

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

3f6952a4061b88d104888c58bfce80f6.png

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

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

8071f7ac4b0efeb5a50adc2f7793495d.png

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

One More Thing

前段时间,一位哈佛博士生提了个有意思的想法,得到不少人赞同:

更多论文的作者们也应该像演职员表一样,公开自己在论文中的工作内容。

260cb50a3c263322b5ead91df6555441.png

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

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

00a0f18815cd996e46892fd86626a18e.png

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

GitHub地址:

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

论文地址:
https://arxiv.org/abs/2211.09760

425398f807b6d6f943f75e25cc46f36d.jpeg后台回复关键词【入群

加入卖萌屋NLP、CV、搜广推与求职讨论群

3c0b6f409686d298f0ea52283ed26c73.png

[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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员面试金典 - 面试题 17.22. 单词转换(BFS)

1. 题目 给定字典中的两个词,长度相等。 写一个方法,把一个词转换成另一个词, 但是一次只能改变一个字符。 每一步得到的新词都必须能在字典中找到。 编写一个程序,返回一个可能的转换序列。如有多个可能的转换序列,…

成功:选择比努力更重要,智慧比勤奋更重要

人生三句话: 1、想要什么,比做什么更重要; 2、选择比努力更重要; 3、智慧比勤奋更重要;信息时代的财富,蕴藏在哪里?农业时代财富,蕴藏在土地,谁拥有土地&…

OpenAI新模型惊艳了!对话问答能力逆天

编|昕朋 Aeneas源|新智元OpenAI新模型来了!全新对话模型ChatGPT,可以回答用户问题,还能挑出问题的错误之处。面对不懂的问题,还会承认错误并拒绝回答!当人们翘首期待GPT-4时,OpenAI在…

程序员面试金典 - 面试题 17.17. 多次搜索(Trie树)

文章目录1. 题目2. 解题2.1 暴力超时2.2 Trie树1. 题目 给定一个较长字符串big和一个包含较短字符串的数组smalls,设计一个方法,根据smalls中的每一个较短字符串,对big进行搜索。 输出smalls中的字符串在big里出现的所有位置positions&#…

雅虎的Mash-up 之路

当今的互联网,每天都会冒出许多的新产品、新技术、新概念,越来越多的Web N.0已经让我们看得眼花缭乱。现在业界对Mash-up有个比较统一的定义:Mash-up 模式指的是网站采用混合技术搭建,不同的功能模块与不同的外界API接口对接实现。…

python读单行文本求平均值_如何从文本文件python中的数字列表中找到平均值

在文本文件中,有一个名称列表,旁边有一个数字,表示他们在本例中的分数。有没有办法计算出文本文件中所有数字的平均值。在 代码:print("average calculator") option input("option: ") option_class input…

把狗画成擦边猛男,「AI绘画」能有多离谱?

文|哈哈哈波特源|知乎一个AI绘画小程序日增用户65.7万人,一周内突破100万,这个增长速度也算是一夜爆红了,AI画作一时间在朋友圈传得沸沸扬扬,不仅如此,还迅速引起一波短视频热潮,相关…

程序员面试金典 - 面试题 16.03. 交点(数学)

1. 题目 给定两条线段(表示为起点start {X1, Y1}和终点end {X2, Y2}),如果它们有交点,请计算其交点,没有交点则返回空值。 要求浮点型误差不超过10^-6。若有多个交点(线段重叠)则返回 X 值最…

终结1.x时代,PyTorch 2.0来了!100%向后兼容,一行代码将训练提速76%

源|机器之心PyTorch 官方:我们这次的新特性太好用了,所以就直接叫 2.0 了。前段时间,PyTorch 团队在官方博客宣布 Pytorch 1.13 发布,包含 BetterTransformer 稳定版等多项更新。在体验新特性的同时,不少人…

python randint什么分布_python随机数分布random测试

因为概率问题,所以需要测试一下python的随机数分布。到底是平均(均匀)分布,还是正态(高斯)分布。 测试代码如下: #! /usr/bin/env python #codingutf-8 # # Describe : 测试random随机数分布 #…

LeetCode 1408. 数组中的字符串匹配(暴力查找)

1. 题目 给你一个字符串数组 words ,数组中的每个字符串都可以看作是一个单词。请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词。 如果你可以删除 words[j] 最左侧和/或最右侧的若干字符得到 word[i] ,那么字符串 words[i] 就是 words[…

逻辑性不好可以学python吗_如果本文若未能让你学会“Python”,可能真的不适合学习Python...

很多小伙伴们会问学习Python难学吗? python就是以他简单易学出名的。几乎是现在最简单,却可塑性最高的语言了。一般有其它编程语言基础的,自学,三小时左右就能学会。现在Python都有给小朋友的教程,简单程度可见一般。 …

意外地调用了方法或属性访问

我使用JAVASCRIPT动态创建HTML中的元素居然提示,“意外地调用了方法或属性访问”我的方法:function appendTag(element){var f document.createElement("font");f.setAttribute("style","color:red");var text document.createText…

谷歌要完,百度也危了

文 | 天于刀刀当我们在抱怨搜索引擎的时候我们具体在说些什么?也许是饱受诟病的广告?或者是不合理的网页排序?又或是一种最直观的感觉——不好使。但是从来没有人抱怨过搜索引擎这一个模式。尽管这些年,也诞生一些诸如Magi这样让人…

LeetCode 1409. 查询带键的排列(map模拟)

1. 题目 给你一个待查数组 queries ,数组中的元素为 1 到 m 之间的正整数。 请你根据以下规则处理所有待查项 queries[i](从 i0 到 iqueries.length-1): 一开始,排列 P[1,2,3,…,m]。对于当前的 i ,请你找…

根据年月日计算是星期几的函数,基姆拉尔森计算公式

算法如下: 基姆拉尔森计算公式W (d2*m3*(m1)/5yy/4-y/100y/400) mod 7 在公式中d表示日期中的日数,m表示月份数,y表示年数。 注意:在公式中有个与其他公式不同的地方: 把一月和二月看成是上一年的十三月和十四月&#…

centos7 如何安装部署k8s_如何在centos7上安装FreeIPA的客户端

1.文档编写目的在前面的文章《如何在Redhat7上安装FreeIPA》介绍了FreeIPA的安装及使用,本篇文章主要介绍如何在RedHat7上安装FreeIPA的客户端并配置。 2.内容概述1.环境准备2.安装FreeIPA客户端及使用3.总结及异常处理 3.测试环境1.centos 7.62.FreeIPA4.6.44.环境…

何恺明新作来了!更快更有效的训练FLIP

文 | Random源 | AIWalkerpaper:https://arxiv.org/abs/2212.00794本文提出一种用于训练CLIP的简单而有效的方案FLIP(Fast Language-Image Pre-training, FLIP),它在训练过程中对图像块进行大比例的随机Mask移除。Mask机制使得我们可以在有限周期内学习到更多的imag…

LeetCode 1410. HTML 实体解析器(哈希map)

1. 题目 「HTML 实体解析器」 是一种特殊的解析器,它将 HTML 代码作为输入,并用字符本身替换掉所有这些特殊的字符实体。 HTML 里这些特殊字符和它们对应的字符实体包括: 双引号:字符实体为 " ,对应的字符…

json和python中字典的区别和联系_Python 中json与字典的关系

Python开发中字典和 json的概念区别: json.dumps( dict )    字典变为字符 json.loads( jsoninput )    字符变为字典 一、字典 字典是一种数据结构,而json是一种数据格式,格式就会有一些形式上的限制,比如json的格式要求必须且只能使…