谷歌官博发文,阐述了谷歌使用演化AutoML自动搜寻神经网络架构的成果。我们是否可以利用现有的计算资源大规模地通过编程的方式改进图像分类器?能否在极少专家参与的情况下得到解决方案?现如今的人工神经网络能有多好的表现?
大脑的进化进程持续已久,从5亿年前的非常简单的蠕虫大脑到现如今各种现代结构。例如,人类的大脑可以完成各种各样的活动,其中许多都是毫不费力的。再例如,分辨一个视觉场景中是否包含动物或建筑物对我们来说是微不足道的。
如果神经网要完成这项任务,则需要专家经过多年研究以后进行精心的设计,才能解决一项专门的任务,比如发现照片中存在的物体,发现基因变异,或者帮助诊断疾病。理想情况下,人们希望有一个自动化的方法可以为任何给定的任务生成正确的网络结构。
生成这些网络结构的方法之一是通过使用进化算法。传统的拓扑学研究已经为这个任务奠定了基础,使我们现如今能够大规模应用这些算法,许多科研团队正在研究这个课题,包括OpenAI、Uber实验室、Sentient验室和DeepMind。当然,谷歌大脑也一直在思考自动学习(AutoML)的工作。
除了基于学习的方法,例如强化学习,我们是否可以利用现有的计算资源大规模地通过编程的方式改进图像分类器?我们能在极少专家参与的情况下得到解决方案吗?现如今的人工神经网络能有多好的表现呢?我们通过两篇论文来回答这些问题。
在2017年ICML上发表的论文 “Large-Scale Evolution of Image Classifiers”中,我们通过简单的模块和初始条件构建了一个进化进程。这个想法简单的解释,就是“从头开始”,通过进化完成大规模地架构构建工作。从非常简单的网络开始,在进化的过程中获得了与人工设计的模型具有可比性的模型。在这个过程中,许多应用程序可能不需要人工参与,这令人备受鼓舞。
例如,一些使用者可能需要一个更好的模型,但却没有时间成为机器学习的专家。自然而然的,需要考虑下一个问题,人工设计的网络和进化网络的结合是否能获得比单独两种的方法更好的结果。因此,在2018年我们发表的一篇论文“Regularized Evolution for Image Classifier Architecture Search”,我们提供复杂的模块和良好的初始条件来构建进化进程。
此外,我们使用Google的新TPUv2芯片进行计算。在CIRAR-10和ImageNet两个流行的图像数据集上,通过对现代的硬件、专家知识和进化进行结合来获得最先进的模型。
一个简单的方法介绍第一篇论文:简单突变和选择过程不断改进网络
接下来将举一个简单的例子来解释第一篇论文。
在下面的图片中,每个点都是一个神经网络,这个网络在一个常用的图像分类数据集(CIRAR-10)上进行了训练。最初,整体由几千种相同的不包含隐藏层的简单种子模型组成。从简单的种子模型开始是很重要的,如果我们从一个拥有专业知识的高质量模型开始,那么最终得到一个高质量的模型会更容易。而用简单的模型作为种子,这个过程会逐步推进。
在每一步中,随机选择一对神经网络。具有较高准确率的网络被选择为父类,并通过进行复制和变异来生成子节点,加入到整体中,与此同时另一个神经网络会消失。在这个过程中,其他所有的网络会保持不变。随着循环这个步骤,整个网络就像人类的进化一样。
图1:进化实验示意图。每个点代表整体中的个体。这四个图是发现的结构的一个例子。这些都对应着最优秀的个体(即通过准确性验证进行选择获得的最右边的个体)和它的三个祖先。
我们的论文提到的突变是有目的的简化,例如随机删除一个卷积,在任意的层之间添加一个跳跃式传递,或者改变学习速率。这种方法在结果上显示出了进化算法的潜力,而不是搜索空间的质量。
例如,在一次进化中,如果我们使用了一个单一的突变将其中一个种子网络转换成一个Inception-ResNet分类器,那么我们就会错误认为算法获得了一个理想的结果。然而,在这种情况下,我们所做的只是通过操纵结果,对复杂突变的最终答案进行了硬编码。如果我们坚持简单的突变,这是不可能发生的,而进化正在做的也是这个工作。
在实验中,简单的突变和选择过程会导致网络在时间进程上不断改进,并达到很高的测试精度,即使面对寻览过程中从未出现过测试集。在这篇论文中,网络也可以继承父节点的权重。因此,除了进化的架构之外,在搜索空间探索初始条件和学习率时,整体系统也在训练它的网络。因此,这个过程获得了具有优化的超参数的完全训练模型。实验开始后,不需要任何专家输入。
尽管我们通过简单的初始架构和直观的突变来对研究人员的参与进行最小化处理,但大量的专家知识都融入了这些体系结构的模块之中。其中包括一些重要的发明,如卷积、ReLUs和批处理的归一化层。我们正在对一个由这些部分组成的体系结构进行进化。“体系结构”这个词不是偶然的,因为这个过程类似于用高质量的砖建造房子。
进化确实可以匹配或超越人工设计获得最先进的模型
在发表了第一篇论文之后,我们希望减少算法的选择范围来缩小搜索空间,使这个过程更易于管理。利用我们的架构推导,我们从搜索空间中去掉了所有可能导致大规模错误方法,类比于盖房子,我们去除了把墙放在屋顶上的可能性。
与神经网络结构的搜索相似,通过对网络结构的大致结构进行固定,可以帮助算法的实现。这要怎么做呢? Zoph等人在2017年的论文中引入了用于架构搜索的初始(inception-like)模块,已经证明这种方法是特别有效的。他们的想法是获得一大堆被称为细胞的重复单元。栈是固定的,但是单个模块的体系结构可以改变。
图2:在Zoph等人(2017)中提出的结构块。左边的图表是完整的神经网络的外部结构,它通过一堆重复的单元来对从底部到顶部的输入数据进行解析。右边的图表是一个细胞的内部结构。我们的目标是建立一个能够产生精确网络的细胞。
在我们的第二篇论文中,“Regularized Evolution for Image Classifier Architecture Search”,我们展示了将进化算法应用到上面描述的搜索空间的效果。这些突变通过随机地重新连接输入(在右侧的图中的箭头)或随机地进行替换操作来修改单元格,例如,它们可以使用最大值化操作任意地替换一个图中“max 3x3“的像素块。这些变异仍然相对简单,但是初始条件不尽相同,现在的整体已经可以用模型进行初始化,这些模型必须符合由专家设计的细胞结构。
尽管这些种子模型中的单元是随机的,我们不再从简单的模型开始,这样操作保证可以更加容易地得到高质量模型。如果进化算法的贡献是有意义的,那么在这个搜索空间,最终的网络应该比现有已构建的网络要好得多。我们的论文表明,进化确实可以匹配或超越人工设计获得最先进的模型。
控制变量比较法
尽管突变-选择的进化过程并不复杂,但也许一个更直接的方法也可以做同样的事情,如随机搜索。其他的选择方法虽然没有更简单,却也存在于文献中,如强化学习。正因为如此,我们第二篇论文的主要目的是在技术之间提供一个控制变量的对比。
图3:对进化、强化学习和为实现架构结构的随机搜索进行了比较。这些实验是在CIFAR-10数据集上进行的,并将搜索空间最初用于强化学习,这与Zoph等人在2017年实验的条件相同。
上面的数据对进化、强化学习和随机搜索进行了比较。左边的图片中,每条曲线代表了每个实验的进展,表明在搜索的早期阶段,进化比强化学习要快。这个结果特别重要,因为可用的计算能力较低,实验可能不得不提前停止。此外,进化对于数据集或搜索空间的变化非常具有鲁棒性。
总的来说,这个对照比较的目的是为科研团队提供一个高计算代价的实验的结果。在这个过程中,我们希望通过提供不同搜索算法之间关系的案例研究来促进对么一个研究人员提供架构搜索。例如,上面的结论表明,在使用较少的浮点操作的前提下,通过进化获得的模型可以达到非常高的精确度。
我们在第二篇论文中使用的进化算法的一个重要特征是正则化的形式的一种,即我们不让效果最差的神经网络死亡,而是移除最老的神经网络,不管它们有多好。这种方法提高了正在优化任务的健壮性,并保证最终会生成更加精确的网络。原因之一我们不允许继承权重,所有的网络都必须从头开始训练。因此,这种正则化的形式选择了在重新训练后仍然保持良好状态的网络。
换句话说,因为一个模型可能在偶然的情况下变得更加精确,训练过程中的噪音意味着即使是相同的体系结构也可能得到不同的精度值,只有经过几代后仍然能保持准确率的结构才能在长期内存活下来,导致效果优良的网络有被再次选择的机会。关于这个猜想的更多细节可以在论文中找到。
我们进化出的最先进的模型被称为“变形板(AmoebaNets)”,是我们的AutoML努力的最新成果之一。所有这些实验都通过使用几百个的GPU/TPU进行了大量的计算。就像一台现代的计算机可以胜过成千上万台几十年前的旧机器一样,我们希望在将来这些实验能够成进入千家万户。在这里我们的只是希望帮助大家对未来有一个简单的了解。
-
谷歌
+关注
关注
27文章
6142浏览量
105106 -
神经网络
+关注
关注
42文章
4763浏览量
100541
原文标题:谷歌演化AutoML自动发现神经网络新架构
文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论