前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发 | 手工搭建神经网络太费劲?来试试精确度高达94.1%的进化算法

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

作者头像
AI科技评论
发布2018-03-12 10:59:25
6290
发布2018-03-12 10:59:25
举报
文章被收录于专栏:AI科技评论AI科技评论

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技评论 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • | 进化算法的工作原理是什么?
  • | 变异类型有哪些?
  • | 为什么要设立简陋的初始条件?
  • | 较此前研究有何突破?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档