专栏首页新智元【深度学习进化论】谷歌大脑神经演化新算法 PK OpenAI 集群智能

【深度学习进化论】谷歌大脑神经演化新算法 PK OpenAI 集群智能

【新智元导读】神经演化方法在上世纪80年代被提出,由于神经网络的兴起而一度遭受冷遇。不过现在,谷歌大脑和 OpenAI 都在重新审视这种方法。通过在深度学习中引入大自然的智慧——演化/适者生存,我们能够得到更聪明、更有效的算法吗?

现代人工智能被开发来模仿自然——人工智能领域的主要追求是在计算机里复制人类生理决策的过程。

30 多年来,大多数 AI 在类脑方面的发展都围绕着“神经网络”,这个词借用了神经生物学的术语,将机器思维描述为数据在神经元——彼此相连的数学函数——之间的运动。但自然还有其他的妙法:计算机科学家现在正在重新审视一个早已有之的研究领域,这个领域的理论认为,通过演化——千万年大自然塑造人类大脑的过程——可以帮助我们开发更聪明、更有效的算法。

神经演化重新成为热点:谷歌大脑和 OpenAI 分别研究

由达尔文提出,而后又由无数科学家不断完善的自然演化理论认为,有机体的遗传物质中一个随机的微小变化将为它在野外生存带来优势或劣势。如果生物体的突变有利于其存活和繁殖,那么这种突变就得以传递。反之,这种突变就会与有机体一起死亡或灭绝。

在算法世界中,这被称为神经演化(neuroevolution)。人工神经网络复制的是学习个别概念的过程,而神经演化则试图重建构建大脑的过程——只有强者(或适者)生存的过程。

虽然神经演化自 20 世纪 80 年代起就出现了,但随着研究人员深入发掘机器学习领域各家观点的文献,人们又重新开始关注起这一概念来。在过去的一个月中,Google Brain 和非营利组织 OpenAI 各自发布了关于这一主题的论文(未经同行评议)。Google Brain 是将神经演化用于图像识别,而 OpenAI 则是使用“worker”算法,教会一个主算法完成任务的最佳方法。

谷歌大脑:模仿自然演化,培养高性能后代算法

在已经十分复杂的人工智能研究领域引入生物学概念可能令人困惑。所以,我们来打个比方。你可以把算法看成是马。马在它们一生中都会学习,但人类只会评估它们的几个不同的指标,比如跑得有多快。图像识别的准确率作为单个的数字,很容易评估,就像马在马场上跑一圈需要花费多少时间。但是,是什么让马跑得更快?这个问题的答案实际上复杂得令人难以置信——这涉及一个庞大的 DNA 网络,它要控制肌肉生长,让马拥有更高的耐力,甚至是智力。这种复杂性可以类比为算法的基本参数,或者说算法在图像识别时结果好(或坏)的原因。

在研究中,Google 团队生成了 1000 个图像识别算法,这些算法使用现代深度神经网络进行训练,目标是要识别出特定的图像集。然后,研究人员使用 250 台计算机,每台计算机选择两种算法,让这些算法识别图像来测试算法的准确率。具有较高精确度的算法存活下来,而表现较差的算法则被“杀死”。

研究人员会复制幸存下来的算法,得到算法的克隆(或者说“孩子”),并且对这些“孩子”稍做改变,就像人类 DNA 在繁殖过程中会随机发生变化一样。这些改变主要是让新算法在如何解释训练数据方面与原来的算法有所不同。

接下来,子算法(也就是上文提到的最初算法的“孩子”)会使用与其亲本算法相同的数据进行训练,训练完后,会被放回到 1000 个算法的批次中,从头开始接受筛选的过程。

Google 的研究人员发现,神经演化能够以 94.6% 的精度培养一个算法,并且他们后来进行的四次重复验证中,都得到类似(但不相同)的结果。改善算法图像识别能力的突变得到奖励(也就是存活下来),而降低性能的突变则被淘汰——就像在大自然中发生的一样。

五次实验结果显示出的差异也说明了一个一直持续出现(consistent)的问题。Google 研究员、论文共同作者 Esteban Real 说,算法在整个过程中一直陷入困境,似乎不确定是要继续演化,还是抛弃突变再重新开始。Real 表示,这种情况可以类比翅膀在生物中的演变。“只有单边的翅膀可能对你没有用,”他说:“但是一对完整的翅膀能让你飞翔。”

Google 的团队正在努力让演化模型更全面地探索不同的突变(从而构建完整的一对翅膀)。但情况还是很棘手。团队只希望算法在有限的方式中变异,这样它最终不会有一大堆额外的无用代码。Real 解释说:“最糟糕的情况是有许多的半边翅膀。”

OpenAI:借助“集群智能”,教会主算法完成任务

通过聚焦图像识别问题,Google 团队测试了神经演化两方面的能力,一是解决生物大脑擅长解决的问题,二是解决现代问题的能力。另一方面,OpenAI 则使用神经演化更纯粹的形式,完成不同的任务。

OpenAI 团队希望使用“worker”算法,训练主算法来完成未知的任务,例如玩视频游戏,或在 3D 模拟器中行走。论文其中一位作者、OpenAI 研究员 Tim Salimans 解释说,这种技术不是教导机器如何做出决策的主要方式,而是教导它们如何更有效地从特定信息中学习。演化算法能够监控 worker 如何学习,在本质上是学会学习(元学习)——从相同量的数据中提取更多的知识。

为了进行研究,OpenAI 团队设置了 1440 个 worker 算法来完成 Atari 游戏。这些 worker 会一直玩游戏直到 Game Over,然后它们会把自己的分数汇报给 Master(主人)。和 Google 的研究一样,OpenAI 的研究人员也复制了那些获得了最高分数的算法,并且让副本产生随机突变。突变后的 worker 会回到整个循环里,在整个过程中不断重复,有利的突变得到奖励,有害(不好)的则被淘汰。

这种方法也有局限性,最主要的是 worker 算法只将一个数字——它们的最高分——汇报给主算法。虽然得到最佳分数的算法都存活下来了,但要让 Master 知道是什么特别的举动让 worker 取得了高分,则需要过多的计算力。(在生物学中,这种情况可以一个蚁群类比:工蚁出去找到最佳的解决方案;蚁后是信息的中心枢纽。)

神经演化:与神经网络同样值得关注的方法

“20 世纪 80 年代,神经进化学和神经网络的研究规模还比较相似。”Kenneth Stanley说,他是美国中加州大学的副教授,最近刚刚加入 Uber 的 AI 团队(Uber 收购了他联合创立的公司Geometric Intelligence)。

“只有很少的人考虑过大脑——它称得上是自然界中智能的唯一证据——是如何演化出来的。”Stanley 说,“有些人认为最简单直接的方法就是在计算机上创造一次人工大脑的达尔文式进化。”

自从1986年三位计算机科学家 David Rumelhart、Geoffrey Hinton 和 Ronald Williams发表了一篇关于神经网络从自己的错误中进行学习(称为BP,即backpropagation)的论文,神经网络开始长足的发展。结果大大提升了人工神经网络的效用。但所谓的进展缓慢仍然使资金大为缩减,随之而来的 AI 寒冬延缓了神经网络的成长。直到 2000-2009 年代中期,Hinton 等人又开始发表论文,论证了 BP 算法可以让神经网络显著增长,并进而理解复杂得多的概念。神经网络此时显得如此诱人,以至于更大规模的计算机科学机构无法拒绝。这些网络被贴上了“深度”的标签。深度神经网络从此成为了现代人工智能领域最受欢迎的大餐。

“因此,对神经演化的关注度降低了,这成了大脑演化的一条平行线,”Staney 说。

早在 2002年,刚开始职业生涯时,Stanley 就写了一个成为 NEAT 的算法,该算法允许神经网络随着时间的推移演化成更大、更复杂的版本。该研究的论文(Evolving neural networks through augmenting topologies)在 Google Scholar 上被引超过 1600 次,从发表以来已被深度神经网络设计和神经行为研究广为引用。2006 年,Stanley 发表了 Hyper-NEAT,这是一个让神经进化更大规模的算法,它受到 DNA 为有数万亿连接的数十亿生物神经元设计蓝图的能力的启发,尽管 DNA 只有约 30000 基因。(有趣的是,Hyper-NEAT的全名是 Hybercube-based NeuroEvolution of Augmenting Topologies,我觉得任何人都能取个为它更好的名字)。

与 Stanley 一样,OpenAI 和谷歌也在研究同一个领域,不过他们的想法不同。谷歌使用的混合方法结合了经典的神经演化和反向传播等技术,也是令今天的深度学习如此强大的方法:它教一个算法如何在真实世界行动,让它演化,而该算法的孩子将拥有大部分已经积累的知识。OpenAI 的方法与进化在生物学如何作用更加真实。该团队只让每一代的随机突变控制网络如何改善或如何失败,这意味着改善只是通过随机的进化创造的。但这两种尝试都有非常明确的目标——即识别图像,或在游戏中获得高分。算法如何达成目标则听其自然。

对于 OpenAI 的工作,Stanley 说:“一个人一出生大脑中就有着权重,并且它将贯穿在整个生命中。这就像假如我们养育了你,你的孩子,你的孙子,然后孙子这一辈懂得了微积分。”

https://qz.com/933695/researchers-are-using-darwins-theories-to-evolve-ai-so-only-the-strongest-algorithms-survive/

本文分享自微信公众号 - 新智元(AI_era)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-03-21

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【榜单】计算机科学中最重要的32个算法

    【新智元导读】 奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph...

    新智元
  • 【皮尤重磅报告】算法时代七大主题,数据与模型将操控人类

    【新智元导读】全球权威调查机构皮尤研究所日前发布报告《算法时代》,采访千余专家,分7大主题探讨算法对生活各方各面的影响。报告的目标是客观全面反映当前人们对即将到...

    新智元
  • 11位机器学习大牛最爱算法全解

    【新智元导读】“你最喜欢的机器学习算法是什么?”这个问题有些像“你最喜欢的颜色是什么?”说不重要吧,细究起来,颇有深意。本文摘选一些机器学习大牛在 Quora ...

    新智元
  • NeurIPS 2018提前看:生物学与学习算法

    Joni 目前是日本国立产业综合研究所的研究员。在中国大陆本科本行是自动化,后来对机器人研究有兴趣,在香港就读了电机工程的 Mphil 学位。博士时开始着迷生物...

    机器之心
  • 机器学习常见算法分类汇总

    机器学习无疑是当前数据分析领域的一个热点内容。很多人在平时的工作中都或多或少会用到机器学习的算法。本文为您总结一下常见的机器学习算法,以供您在工作和学习中参考。

    流川枫
  • 算法概论

    打好牢固的基础,是成就高楼万丈的基石头。在学习算法之前,我们先了解算法是什么?如何设计算法?什么才是“好”算法?如何优化算法?

    PayneWu
  • 2.1 C语言程序的灵魂

    广义地说:为解决一个问题而采取的方法和步骤,就称为“算法”。计算机算法可以分为两大类:数值运算算法和非数值运算算法

    C语言入门到精通
  • 计算机科学中最重要的 32 个算法

    奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutsch...

    前朝楚水
  • 主宰这个世界的10大算法

    出自linux中文社区 链接:https://linux.cn/article-3125-1.html 什么是算法? 简而言之,任何定义明确的计算步骤都可称为算...

    智能算法
  • 机器学习常见算法分类汇总

    来源: IT经理网 链接:www.ctocio.com/hotnews/15919.html 机器学习无疑是当前数据分析领域的一个热点内容。很多人在平时的工作...

    智能算法

扫码关注云+社区

领取腾讯云代金券