DeepMind在最近一期《自然》杂志上发表论文,展现其研究成果。论文称,DNC已有能力在没有现成知识的情况下,规划出最佳的伦敦地铁线路,或根据符号语言所描述的目标来解决方块拼图问题。以下是DeepMind发布的博客原文和《自然》杂志相关内容,由钛媒体记者SophieTang综合编译。
最近,我们在《自然》杂志上发表了一份研究,介绍名为“可微分神经计算机”(differentiable neural computer,DNC)的深度强化学习神经网络。我们在研究中展示了DNC如何学习使用其记忆,回答有关复杂结构数据的问题,比如人工生成的故事、家谱,甚至是伦敦地铁线路图。此外,DNC还能通过强化学习,解决方块游戏难题。
柏拉图曾把记忆力比作蜡板,上面一旦刻了字,就能永久保存。柏拉图用一个比喻来解释“可塑性”,即人们可以塑造或重塑自己的想法。但我们的记忆,除了存储内容外,还能够形成联系,相互连接。
英国哲学家约翰洛克相信,如果记忆是在临近的时间段和空间里形成的,那么它们就可以相连。除了蜡板以外,最著名的比喻就是马塞尔普鲁斯特的玛德莲蛋糕了(一个成年人只要尝一口年幼时吃过的甜点,童年回忆就如洪水一样涌现)。现在我们知道,片段式记忆(或称事件记忆)依靠的是海马体。
时至今日,人类对记忆的比喻变得更为精炼。记忆对我们来说不再是蜡板,而是一种可塑的过程。在这个过程中,特定的片段组成你的经历,而这些记忆的片段可以重组。
另外,行为与记忆之间的关系是可变的,而非“刺激—反应”这样么简单。它怎么变,与事件的背景与处理事件的优先级别相关。
举个例子来说,如果记得伦敦地铁图,就能回答以下两个有相同答案的问题:“怎么从Piccadilly Circus站去Moorgate站?”和“如果选一条和NorthernLine线相邻的线向北走,怎样才能到Moorgate站?”可见,记忆的内容可以和记忆的使用被分开。
另一种观点认为,记忆经过整理之后,可以用于计算。它更像是乐高玩具,人们可以根据问题重组记忆。
神经网络在图形认知方面表现出色,反应快速,决策及时,而我们才刚开始建立能缓慢思考的神经网络,这种网络能有目的,或理性地运用知识。比如,让它储存像交通运输网这种信息,随后有逻辑、合理地思考这些碎片化知识,并回答问题。
我们在最近发表的论文中阐述,如何结合神经网络和记忆系统,造出这一种能快速储存并灵活解读知识的学习型机器。这些被我们成为DNC(differentiable neural computers)的机器,可以像神经网络一样学习,还可以像电脑一样存储复杂数据。
一台普通电脑的处理器可以通过RAM读写信息。RAM给了处理器更多的空间来整理计算过程中的信息。储存临时信息的空间被称为变量,被存在记忆卡上。对电脑来说,设置一个储存数字的变量很简单,建立数据结构也不难,因为变量之间都有关联。
最简单的数据结构之一是列表,列表中,变量按顺序排列。一种更复杂的数据结构是树状结构,如家谱,顺着孩子就能找到父母,以及他们和祖先之间的联系。最复杂且综合的数据结构是图表,如伦敦地铁图。
我们设计DNC的初衷,是让机器独自学习建立复杂数据结构,并解决相关问题。DNC的核心是一个叫“控制器(controller)”的神经网络,它的功能与电脑处理器类似。控制器负责输入、解读、书写记忆,并回答相关问题,它的“记忆”由一系列储存临时信息的空间构成。
控制器可以进行数个记忆操作。每时每刻,控制器都在决定是否写入内存。选择书写的话,信息就被存储到全新的地方,或一个控制器找的地方。这样,控制器就能随时随地更新存储空间的内容。如果所有的记忆空间都满了,控制器也可以选择清空,正如电脑可以换个地方放置无用的数据。
控制器写入记忆,就是把一个矢量单位信息输送到选定的记忆空间。一旦写入信息,不同的记忆空间都会存在联系,这种联系就是存储信息的顺序。
控制器除了写入信息外,还可以解读储存在不同区间的记忆,通过搜索,利用现有的联系,顺序或逆序回忆已写入的信息。被解读过的信息可以直接回答某个问题,或对某个问题作出反应,采取行动。总的来说,这些操作令DNC有能力分配记忆空间、存储记忆信息,并快速搜索记忆。
神经网络控制器接受外部信息。DNC储存的是“已有关联”,“已有关联”能帮控制器搜索记忆
非专业读者看来,我们重复用“控制器能够……”,“DNC决定做……”的措辞挺奇怪的,但这是因为,DNC是从0开始学习使用记忆、回答问题。我们把DNC的回答拿去和正确答案作比较,于是,控制器不断优化自己,给出与正确答案越来越接近的答案。在此过程中,控制器也学会了如何使用自己的记忆。
我们想问DNC和数据结构相关的问题,以此测试它的能力。图表数据是一个很好的测试手段,因为它常包含了一些可以被任意相连的数据,并形成路径和周期。我们的论文表明,DNC可以通过自主学习,解释一张图表,并回答与之相关的问题。
向DNC描述过伦敦地铁图后,我们问它,“搭乘Central Line线,从Bond Street站出发,坐一站,换乘Circle Line线坐四站,再搭Jubilee Line线坐两站,最后你在哪里出站?”我们也会让DNC计划路线,问它“怎么从Moorgate站到Piccadilly Circus站?”
DNC在接受训练时使用的是随意生成的图表(左)。训练以后,我们再测试DNC能否在伦敦地铁图中找到合适的路线(右)。我们用多组三个词来描述地铁图,并用两个任务来举例:“横向往返运动”,即DNC从站点开始,按一定顺序的路线行走;“最短路线”,也就是DNC要找到两个站点之间最短的线路。
利用一份家谱,我们展示了DNC可以回答需要做复杂运算的问题。比方说,即使我们仅提供了父母、孩子以及兄弟姐妹之间的信息,也可以问DNC“谁是Freya妈妈那边的叔父?”现在我们可以看到controller读取的是哪个记忆区间的信息,以此分析DNC如何使用其记忆。和DNC相比,之前传统神经网络要么没法存储信息,要么就是不会学习解读数据,举一反三。
DNC回答有关家谱的问题
我们还可以通过强化学习来训练DNC。我们让DNC对一个问题作出反应,但不会告诉它正确答案。一旦它的反应令人满意,我们就会给它打高分。或是让DNC面对一些彩色砖堆,给它指令:“把浅蓝格子放到绿格子底下;橙色格子移到红色格子的右边;紫色的弄到橙色的下面;浅蓝色的放深蓝色右边;绿色格子扔红色格子底下;紫色格子放绿色格子的左边。”
DNC解决移动方块游戏的问题。
我们可以创建许多可实现的目标,再让神经网络来执行任务,达成目标。在这种情况下,就像一台电脑,DNC能够记住好几条线索,不同线索和某个特定目标相关,DNC可以执行这些任务。
人类记忆如何运作是一个古老的问题,我们对它的理解还不完全。我们希望DNC能够为电脑科学提供新手段,也为认知科学、神经科学提供一个新的模型:这是一台学习机械,无需提前编程,也可以整理信息,让信息和事实相联系,并且利用这些信息解答问题。