开发 | 手工搭建神经网络太费劲?来试试精确度高达94.1%的进化算法

AI科技评论按:阳春三月,辽阔的南美洲大草原上,两只体格强健的雄性美洲豹正在为争夺一只拥有美丽花纹的雌豹,进行着一场血腥而又激烈的较量。它们心里很清楚,成者为王,败则寇,只有赢得这场战斗,才有机会把自己的基因保留下来流传给后代。

这个方法残酷,但有效。在生物学中,人们将它称之为:进化论。

而当研究机器学习的科学家遇到生物学中的进化论,会有什么新的灵感产生?

答案是:进化算法。

近日,来自谷歌的研究人员Sherry Moore和Esteban Real等人就用进化算法为数据集CIFAR-10和CIFAR-100自动寻找神经网络。实验证明,该方法有效提高了匹配合适神经网络的效率和精确度。

上周,研究人员把实验的论文成果《Large-Scale Evolution of Image Classifiers》发布在了arXiv上,他们在论文中表示,在CIFAR-10的典型实验结果中,其准确度的期望值达到94.1%,标准差达到0.4%,其中最高精确度可达94.6%;而对CIFAR-100的单次实验精确度可达76.3%。

该算法可以为两个常见、但相当有难度的图像分类基准器(image classification benchmarks;)构建大型、精确的神经网络;而且此实验数据高于目前我们所知道的其他所有研究成果。 目前,该神经网络的工作效果完全可以和人类手工构建的神经网络相媲美。

| 进化算法的工作原理是什么?

为了达到自动寻找高性能的神经网络结构的目的,研究人员需要进化一个模型簇(population)。

每一个模型,也就是个体(individual),都是一个训练过的结构。模型在单个校验数据集(validation dataset)上的准确度就是度量个体质量或适应性的指标。AI科技评论从论文中总结出,每个进化过程都会经历一下几个步骤:

  1. 会有一个计算机,也就是工作者(worker),随机从模型簇中选出两个模型;
  2. 工作者比较两者孰优孰劣,根据优胜劣汰对模型进行识别;
  3. 不合适的模型会立刻从模型簇中被剔除,即代表该模型在此次进化中的消亡; 而更优的模型则成为母体(parent),进行繁殖;
  4. 通过这一过程,工作者实际上是创造了一个母体的副本,并让该副本随机发生变异,据此变异修改母本(这一点下面会讲到)。研究人员把这一修改过的副本称为子代(child);
  5. 子代创造出来后,就要接受工作者的训练,并在校验集上对它进行评估;
  6. 完成之后,把子代放回到模型簇中。此时,该子代则成为母体继续进行上述几个步的进化。

简言之,该进化算法就是在随机选出的两个个体中择其优,因此该方法也属于联赛选择算法(tournament selection)的一种

另外,如无其他说明,模型簇一般能容纳1000个个体,工作者的数量一般是个体数量的1/4,而消亡个体的目录会被删除,以保证整个算法能长时间在有限空间中运行。

| 变异类型有哪些?

由于子代相较于母体而言发生了变异,因此两者不是完全相同的。在每一代繁殖过程中,工作者都会从预先准备好的变异集合中随机选取变异。

可选的变异共有11中,以下为部分变异类型:

  • ALTER-LEARNING-RATE(抽样详情见下文)。
  • IDENTITY(意思是“继续培训”)。
  • RESET-WEIGHTS重置权重
  • INSERT-CONVOLUTION(在“卷积主干”随机插入卷积)
  • REMOVE-CONVOLUTION(移除卷积)

| 为什么要设立简陋的初始条件?

研究人员在论文中强调,实验的初始条件一定要非常简单。

个体一开始都只是基本的线性回归模型,不包含卷积,并且其学习速率仅为0.1。设置这样的条件就是为了保证进化能完全靠自己找到最合适的那个神经模型。

| 较此前研究有何突破?

事实上,很早以前就已经有科学家用神经发现法(neuro-discovery,神经进化的一种)自动匹配神经网络了(AI科技评论注:参见Miller等人于1989年发表的论文《Designing neural networks using genetic algorithms》)。虽然神经发现法的实验结果表现出很大的发展空间,但由于这一过程通常会涉及到大量的计算,因此,在当时的条件下,该方法在匹配精确度上仍无法和人工设计的模型相提并论。

而Esteban Real和他的团队则解决了这一问题。他们的解决办法是:

开发一种大规模并行且无锁的基础结构,使工作者们在不同的电脑上能够异步运行。它们不会直接与对方通信,而是共用一个存有模型簇的共享文档系统。 文档系统中的目录代表个体;对每个个体所进行的操作,如使之从模型簇中消亡,则表示为目录中的原子重命名(atomic rename)。

但如果遇到一个工作者去修改另一个正在被其他工作者操作着的个体的情况,该怎么解决呢?

研究人员在论文中表示,在这种情况下,受到影响的工作者会放弃操作,寻找其他个体。

附论文地址:https://arxiv.org/pdf/1703.01041.pdf

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-03-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

如何从零训练神经网络玩游戏?这里有一段详细的解读视频

Youtube 上的知名游戏博主 SethBling训练了一个叫 MariFlow 的神经网络来玩 Mario Kart 游戏。看懂他怎么做的,你也能举一反三。...

3607
来自专栏AI科技大本营的专栏

勒索病毒刚消停,可比它强悍千百倍的AI病毒,才刚刚开始

前几日肆虐全球的“wannacry”勒索病毒着实让我们惊出一身冷汗。如果这都惊到你了,那你是不知道人工智能系统中木马病毒的厉害,因为它所带来的损失可能不止是金钱...

36011
来自专栏数据结构与算法

【概率期望动态规划】

1~8题出处:hdu4576   poj2096   zoj3329   poj3744   hdu4089   hdu4035   hdu4405   hdu...

501
来自专栏大数据挖掘DT机器学习

文本分类实战: 机器学习vs深度学习算法对比(附代码)

这几周因为在做竞赛所以没怎么看论文刷题写博客,今天抽时间把竞赛用到的东西总结一下。先试水了一个很小众的比赛–文因互联,由AI100举办,参赛队不足20个,赛题...

7609
来自专栏人工智能头条

MLlib中的Random Forests和Boosting

1183
来自专栏量化投资与机器学习

HMM模型在量化交易中的应用(R语言版)

? 马尔科夫性 如果一个过程的“将来”仅依赖“现在”而不依赖“过去”,则此过程具有马尔可夫性,或称此过程为马尔可夫过程。 函数形式:X(t+1) = f( X...

2958
来自专栏大数据文摘

AI小视频 | 原创灵魂手绘,聊个5分钟的人工智能

1836
来自专栏Petrichor的专栏

深度学习: pooling (池化 / 降采样)

对于网络结构而言,上面的层看下面的层经过pooling后传上来的特征图,就好像在太空上俯瞰地球,看到的只有山脊和雪峰。这即是对特征进行宏观上的进一步抽象。

3172
来自专栏AI科技评论

学界 | 别再抄袭论文图片了,机器学习算法能自动检测出来

AI 科技评论按:近期来自纽约雪城大学的 Daniel Acuna 等人在 bioRxiv 上发表了一篇文章,作者在文章提出了一种机器学习算法,该算法能够自动进...

3575
来自专栏PPV课数据科学社区

如何「科学的比较」机器学习模型表现?

最近在赶paper,码字的时间不多,也刚好借着这个机会践行“写少、少写,写好”。今天谈谈如何对比多个机器学习算法的性能,阅读本文需要基本的统计检验知识,比如明白...

39310

扫码关注云+社区