【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

谷歌大脑开源项目 AutoML-Zero:仅用数学运算就能探索出机器学习算法

  • 2020-07-20
  • 本文字数:2315 字

    阅读完需:约 8 分钟

谷歌大脑开源项目AutoML-Zero:仅用数学运算就能探索出机器学习算法

近年来,机器学习取得了巨大的成功,这些成功得益于机器学习算法的不断优化,例如深度神经网络。深度神经网络在不断发现问题和解决问题的过程中又推动了 AutoML 的发展。到目前为止,AutoML 一直致力于通过组合复杂的手工设计组件来构建解决方案。一个典型的例子是神经架构搜索,这是一个子领域,在这个子领域中,人们可以从复杂的层(例如卷积、批标准化和 dropout)自动构建神经网络,这也是许多研究的主题。


AutoML 中使用的这些手工设计的组件的另一种方法是从头开始搜索整个算法,这很有挑战性。因为它需要探索广泛而稀疏的搜索空间,但它有很大的潜在好处:它不会偏向我们已知的内容,而且有可能发现新的、更好的机器学习架构


打个比方,我们可以这样来描述 AutoML:如果一个人要建造一座房子,那么他从零开始动手,要比只使用预制板建造房子有更多的灵活性或改进的潜力。然而,对房屋的设计却是极为艰难的一个步骤,因为与预制的整个房间的组合相比,将砖瓦和砂浆结合起来的可能方法要多得多。因此,早期对算法从头开始学习的研究主要集中在算法的某一方面,例如学习规则,以此来减少搜索空间和所需的计算量。自 20 世纪 90 年代初以来该问题就没有被重新研究过,直到现在。


我们最近将在 ICML 2020 上发表的论文,论证了从零开始成功地进化机器算法是有可能的。我们提出的方法,称为 AutoML_Zero,从空程序开始,仅使用基本的数学运算作为构建块,应用进化方法自动找到完整机器学习算法的代码。针对小图像分类问题,我们的方法重新发现了基本的机器学习技术,如带有反向转播的二层神经网络、线性回归等,这些都是多年来研究人员发明的。这一结果证明了自动发现更多新的机器学习算法来解决未来更难的问题的可行性。


论文地址:


https://arxiv.org/abs/2003.03384


GitHub 地址:


https://github.com/google-research/google-research/tree/master/automl_zero

从零开始进化学习算法

我们使用经典进化方法的一种变体来搜索算法空间。自 20 世纪 80 年代以来,这些方法在发现计算机程序方面已被证明是有用的。它们的简单性和可扩展性使其特别适合于学习算法的发现。


在我们的例子中,population 是用空程序初始化的。然后,它在重复循环中进化,以产生越来越好的学习算法。在每个周期中,两个(或更多)随机模型相互竞争,最精确的模型成为父模型。亲本克隆自身产生一个子代,子代会发生变异。也就是说,子代码是以随机的方式修改的,这可能意味着,例如,在代码中任意插入、删除或修改一行。然后在图像分类任务中对变异算法进行评估。



population 用空程序进行初始化。历经许多代之后,我们看到一个更进化的 population,它的两个算法相互竞争。最准确的算法将赢得生“孩子”的机会。经过许多这样的事件之后,最终的 population 将包含高度精确的分类器

探索困难的搜索空间

与以前的 AutoML 工作相比,我们的 AutoML-Zero 设置使得搜索空间非常稀疏,在 10^{12} 个候选者中可能只有一个精确的算法。这是由于提供给算法的构建块的粒度造成的,这些构建块只包括变量赋值、加法和矩阵乘法等基本操作。在这样的环境中,随机搜索无法在合理的时间内找到解决方案,然而根据我们的测量,进化速度可以加快数万倍。我们将搜索分布在偶尔交换算法的多台机器上(类似于现实生活中的迁移。)我们还构建了小的代理分类任务,用于评估每个子算法,并使用高度优化的代码来执行这个评估。


尽管如此稀疏,但随着时间的推移,进化搜索会发现更复杂、更有效的技术。最初,出现了最简单的算法,该算法用硬编码的权重表示线性模型。随着时间的推移,该算法发明了随机梯度下降法(SGD)来学习权重,尽管梯度本身并没有作为构建块提供。虽然一开始存在缺陷,但 SGD 的问题得到了相对较快的解决,开始了对预测和学习算法进行一系列改进。在我们的简单场景中,该过程发现了几个已知对研究社区有用的概念。最后,我们的方法成功地构建了一个模型,性能优于类似复杂度的手工设计的模型。



进化实验的进展,随着时间的推移,从左到右,我们看到算法变得更加复杂,更加正确。

算法演进

上图包含了由我们的方法产生的最佳进化算法。最终的算法包括数据增强、双线性模型、梯度归一化和权重平均等噪声注入技术,并且对基线的改进也转移到搜索过程中未使用的数据集上。我们的论文描述了进化代码的不同行是如何实现这些技术的,并通过消融研究验证了它们的价值。


通过更多的实验,我们证明了通过控制“栖息地”(即进化过程评估算法适应度的任务)来引导进化搜索是可行的。例如,当我们减少数据量时,出现了有噪声的 ReLU,这有助于正则化。或者,当我们减少训练步数时,我们会见证学习率衰减的出现,从而实现更快的收敛。这类有针对性的发现很重要:如果自动工具发明器能想出一把锤子或一根针,事情可能会很有趣;但如果你给它看一些钉子时,它会想到一把锤子,给它看一些线时,它想出一根针,那就更有趣了。通过这样的类比,在我们的工作中,当存在少量数据(“钉子”)时,就会发现有噪声的 ReLU(“锤子”),而当存在少量训练步骤时,学习率就会下降。

结论

我们认为这只是初步工作。我们还没有从根本上进化出新的算法,但令人鼓舞的是,进化后的算法可以超越搜索空间中存在的简单神经网络。目前,搜索过程需要大量的计算。随着未来几年可用硬件规模的扩大和搜索方法的效率提高,搜索空间可能会变得更具包容性,搜索结果也会得到改善。随着我们对 AutoML-Zero 的进一步了解,我们对发现新的机器学习算法的前景感到兴奋。


作者介绍:


Esteban Real,主任软件工程师。Chen Liang,软件工程师,供职于 Google Research、Brain Team。


原文链接:


https://ai.googleblog.com/2020/07/automl-zero-evolving-code-that-learns.html


2020-07-20 15:412235
用户头像
李冬梅 加V:busulishang4668

发布了 772 篇内容, 共 349.4 次阅读, 收获喜欢 973 次。

关注

评论

发布
暂无评论
发现更多内容

浅析可视化分析技术

郑州埃文科技

SOA + 汽车智能硬件 = 无限可能

SOA开发者平台

SOA 软件定义汽车

SOA + 汽车智能硬件 = 无限可能

SOA开发者

软件 物联网 SOA 汽车

2021Android常见面试题分享,年薪50W

android 面试 移动开发

深入剖析RocketMQ源码-NameServer

vivo互联网技术

RocketMQ 服务器 java; NameServer

2021Android最新大厂面试真题总结,app架构师

android 面试 移动开发

2021Android常见笔试题,字节面试官

android 面试 移动开发

2021Android面试真题精选干货整理,准备Android面试

android 面试 移动开发

小学生都能读懂的网络协议之:WebSocket

程序那些事

网络协议 HTTP 程序那些事 webscoket

2021Android者真的太难了,大专生三面蚂蚁金服

android 面试 移动开发

2021Android面试心得,透彻解析

android 面试 移动开发

Vite + Vue3 + OpenLayers 手动激活地图

德育处主任

大前端 地图 vite Vue3 openlayers

2021Android开发现状分析,爆火的Android面试题

android 面试

2021Android开发面试解答之设计模式,食堂大妈看完都学会了

android 面试 移动开发

第 2 章 -《Linux 一学就会》- Linux 基本命令操作

学神来啦

Linux 运维 linux云计算

2021Android高级面试题及答案,30岁转行程序员

android 面试 移动开发

2021Android最新大厂面试真题总结,给大家安排上

android 面试 移动开发

2021Android最新大厂面试真题总结,震撼发布

android 面试 移动开发

带你掌握Vue过滤器filters及时间戳转换

华为云开发者联盟

JavaScript Vue 过滤器 时间戳 filters

Android技术分享| 一行代码实现安卓屏幕采集编码

anyRTC开发者

音视频 WebRTC 移动开发 Android技术分享 屏幕采集编码

kafka集群迁移实践

小江

kafka 迁移 消息队列

2021Android面试心得,Android详解

android 面试 移动开发

2021Android面试题知识点总结,层层深入

android 面试 移动开发

2021Android高级面试题总结,憋个大招

android 面试 移动开发

2021Android高级面试题汇总解答,阿里内部Android应届生就业宝典

android 面试 移动开发

2021Android进阶者的新篇章,已开源

android 面试 移动开发

2021Android进阶者的新篇章,移动开发框架

android 面试 移动开发

CSS中content属性的妙用

echeverra

CSS

2021Android面试笔试总结,这操作真香

android 面试 移动开发

腾讯云 CIF 工程效能峰会,10 月 19 - 20 日震撼来袭!

CODING DevOps

腾讯云 DevOps 云原生 云开发 CIF

2021Android高级面试题及答案,2021最新Android面试题目

android Android面试

谷歌大脑开源项目AutoML-Zero:仅用数学运算就能探索出机器学习算法_AI&大模型_Chen Liang_InfoQ精选文章