Facebook新论文提出CommAI:评估实现有用通用人工智能的第一步

Facebook 人工智能研究中心近日在 arXiv 上发布了一篇 ICLR 2017 的 Workshop Track 论文,介绍了一个用于评估通用人工智能的框架 CommAI,并且还在 GitHub 上开源了一个 CommAI-env 平台:https://github.com/facebookresearch/CommAI-env/。原论文可点击文末「阅读原文」下载。


image (2).png


每天都有机器学习被应用到新的艰巨问题上,通用人工智能(general AI)似乎也已经成为了一个可以实现的目标。但是,大多数当前的研究的关注重点则是重要的但范围狭窄的应用,如图像分类或机器翻译。我们相信这在很大程度上是因为缺乏用来测量实现范围广泛的机器智能的进展的方法。为了填补这一空白,我们在这里为通用人工智能提出了一个具体的迫切需求(desiderata)的集合,还有一个用于测试机器在满足这些迫切需求上的表现的平台,同时还能将所有进一步的复杂性(further complexities)保持到最小。


1.用于机器智能评估的迫切需求


我们不会试图通过抽象的术语来定义智能,而是采用了一种务实的方法:我们想要开发出对我们有用的人工智能。这自然会引出以下迫切需求。


通过自然语言交流


只有当一个人工智能能够和我们交流时,这个人工智能才是有用的,这样我们就能够:给它分配任务、理解其返回的信息以及教其学习新技能。因为到目前为止自然语言对我们来说是最简单的交流方式,所以我们需要为我们有用的人工智能赋予基本的语言能力。机器在测试环境中所接触到的语言必然非常有限。但是,鉴于我们也想让机器成为强大的高速的学习者(见下一点),那么人类之后也应该能够教会其更为复杂精细的语言技能,因为人类在新的领域指导机器上会变得很重要。具体而言,其环境不仅应该让机器接触到一系列任务,而且还应能通过简单的自然语言提供指令和反馈。机器应当依靠这种形式的语言交互来有效地解决这些任务。


学习去学习(learning to learn)


对于有用的人工智能来说,灵活性(flexibility)是一个核心要求。随着我们的需求的改变,人工智能应当能够帮助我们解决我们面临的新挑战:从早上解决工作中遇到的科学问题到晚上我们的冰箱中的储备。因此,人工智能的进展应该在其掌握连续的新任务流的能力上进行测量,同时还需要解决新任务的数据效率(data-efficiency)作为一个基本评估组件,且无需区分训练和测试阶段。我们必须将这种学习去学习的能力(这涉及到跨任务的泛化(Ring, 1997; Schmidhuber, 2015; Silver et al., 2013; Thrun & Pratt, 1997))与一次性学习(1-shot learning,是指艰巨但更有限的泛化到同样任务中新类别的能力,比如扩展一个目标分类器使其能够仅从少数几个样本中识别其未曾见过的目标;Lake et al., 2015)区分开。人们普遍认为要想实现跨任务的泛化,程序需要能够执行组合学习(compositional learning),即针对跨任务的子问题而存储和重新组合解决方案(Fodor & Lepore, 2002; Lake et al., 2016; Minsky, 1986)。因此,该测试环境应当具有相关任务的集合,比如一个可以从一个任务向另一个任务引导技能的组合学习器(compositional learner)。最后,掌握语言技能可能是学习去学习的一个关键组成,因为理解语言指令允许我们快速学习如何完成我们从未执行过的任务。


反馈


随着我们的成长,我们会学习掌握有越来越少明确奖励(reward)的复杂任务。一个有用的人工智能应该具备类似的能力。因此,在我们的测试环境中,奖励应该随时间减少。相反,机器要应能从不与一个明确的奖励分数直接相关的表现线索(performance cues,比如纯粹的语言反馈(参见 Weston, 2016)或观察其它正确执行一项任务的代理(通过演示学习,参见 Argall et al., 2009))中学习。测试环境应该包含这样的线索。


接口


计算机与真实世界之间的接口应该尽可能的具有普适性。机器本身需要学习处理不同种类输入输出流的最佳方式,在被应用到不同领域时不需要人们对其重新编程。进而我们开始假想一种可实现的最简单的接口。在每个时间步骤中,机器接受一位(bit)数据后输出一位,而不需要在数据流上附加额外的数据结构(在模拟的初始化阶段,使用一个额外的通道来奖励系统)。


我们不是说符合我们这些需求的人工智能将会是一个成熟的人工智能,但是我们认为,这些应当是人工智能学会更高级技能的前提条件。


2.CommAI 框架


CommAI(Communication-based AI),是我们设计用于评价人工智能是否满足上述要求的一个架构,它将会优先考虑人工智能的交流能力。我们已经开发了开源的 CommAI-env 平台来完成 CommAI 的一些任务。我们已经实现了一些满足上述诸多要求的具体任务——CommAI-mini 任务(参见论文的补充材料)。


在一个 CommAI-mini 任务中,环境首先向学习器(learner)展示一个(简化的)正则表达式。接着,学习器被要求识别这个表达式或者生成一个符合上述表达式的字符串。环境将接收学习器的反应,同时将会对学习器的的表现作出反馈(很有可能是以奖励分数的形式出现)。如下图例子所示,所有的信息交换都在比特层面(bit level)上进行。


image (3).png


学会去学习(Learning-to-learn)是必需的,因为学习器将几乎不可能在同一种目标语法上进行测试。同时,随着测试的进行,语法的复杂度也将会逐步增加,并且学习器还被要以不同的方式使用同一种语法(例如用于识别或是生成)。在其中「组合性(Compositionality)」在不同层面上扮演了重要的角色:


(1)例如分解比特信息流到字符及解析信息到可预测部分(如描述、测试字符串、分隔符等)的能力,能够很大程度上帮助学习机在不同任务上具有泛化能力;


(2)在识别任务上的成功将有助于解决等价的生成任务(反之亦成立);


(3)我们将通过逐步在正则表达式中加入运算符的方式,来控制字符创集及其描述的复杂度。例如,检测一个字符串是否含有某集合中含有的所有的 n-gram,需要检查字符串中 n-gram 的出现情况。所以一个组合学习器在解决了分解任务后再解决涉及到 n-gram 的聚合任务时会表现更快。


该任务与传统的人工语法学习(Artificial Grammar Learning,Reber,1967)不同,因为学习器被给予了详细的英语指导及关于它表现的反馈,这些指导包括关于目标字符集合及它将如何处理它(description:、verify:、produce 等)的内容。因而,这就符合了我们的语言交流标准。


重要的是,尽管 CommAI-mini 任务是完全「语言」上的——它们与字符串识别与生成有关,我们仍因为简明性及易理解性而选择了常规语法领域(顺便一提,你可以将测试字符串认为是标记出非口语音源或视觉刺激序列)。满足语言要求并非是该项目本身要求的,而是该环境能够通过简化英语来提供大量关于指令、反馈的信息。另一些 CommAI 任务集则可能基于如简单物理任务上的内容,其中感知信息将会与仍用简化英语描述的指令、反馈一起(如 move the red block over the blue block(将红色块从蓝色块上面搬过去),Andreas et al., 2016 来获取相关的想法),在基于比特的通道(bit-based channel)上传播。


在它们的简明性之外,我们推测不用大量训练样本来解决 CommAI-mini 任务并非是当前机器学习方法研究领域之外的问题(更多高级任务样例可以在 CommAI-env 网页找到)。我们希望 CommAI-mini 挑战的复杂度恰好能够帮助研究人员开发真正全新的模型。


相关工作、致谢、参考文献和补充材料请参阅原论文。

入门Facebook论文ICLR 2017GitHub理论
暂无评论
暂无评论~