您当前的位置: 首页 > 旅游

百度通用AI大突破智能体通过交互式学习实

2019-01-12 06:19:52

【编者按】百度此次开发的AI需要完成的任务是在二维迷宫里找东西,但与以往大多数研究让AI自己去探索新环境不同,百度研究人员使用了一个“教练”算法,使用语言命令AI去到不同的地方做事情。在这里,AI要完成任务,除了自己处理视觉信号导航,还需要学会理解语言信号并将这些语言信号与视觉信息对应起来。此项研究就是:虚拟环境中类似人类语言习得的深度组合性框架。

本文转自“新智元”,作者:赵以文/刘小芹/胡祥杰;经亿欧,供业内人士阅读。

复杂语言系统的发展是实现人类水平的机器智能的关键。语言的语义来源于感知经验,可以编码有关感知世界的知识。这种知识能够从一个任务迁移到另一个任务,赋予机器泛化的能力(generalization ability)。有研究认为,机器必须经历物理的体验,才能学习人类水平的语义[Kiela et al.,2016],即,必须经历类似人类的语言习得过程。然而,目前的机器学习技术还没有能以高效率实现这一点的方法。因此,我们选择在虚拟环境中对这个问题进行建模,作为训练物理智能机器的第一步。

在通过自然语言的指导学习新的概念和技能时,人类是能够非常好地举一反三、推广泛化的。我们能够将已有的技能应用到新学会的概念上,而且毫不费劲。例如,当一个人在学会如何执行“用刀切X”,X等于苹果这个命令后,当X是其他这个人知道的东西,例如梨或橙,或者甚至X是其他他从未被问过的东西时,他都能够正确执行这个命令。

(a)测试命令包含一个从未遇过的单词组合;(b)测试命令包含全新的物体概念。

这篇论文介绍了一个框架,该框架演示了一个智能体在特定任务中的zero-shot学习能力,即,在名为XWORLD的类似迷宫的环境中学习导航。我们试图解决的问题与婴儿牙牙学语时在学习走路和导航中所遇到的问题类似。父母可能会给出一些简单的指导性的命令,其中最初只包含两三个单词,然后随着时间的推移命令逐渐变得复杂。同时,父母也会在其他一些任务中教孩子语言,例如识别物体的任务。在婴儿理解了语言并掌握了导航的技巧后,他能够马上把在物体识别中学到的新概念应用到导航任务中,即使这些概念从未出现在父母的导航命令中。

我们在XWORLD中用多个学习回合训练我们的婴儿智能体。在每个回合,智能体得到一系列的原始像素图像用以感知环境,一个由teacher发出的自然语言形式的命令,以及一组奖励。当某些条件被触发时,智能体也偶尔会接到来自teacher的有关对象识别的问题。通过探索环境,智能体同时学习环境的视觉表示,语言的句法和语义,以及如何在环境中给自己导航。

智能体的整个框架使用梯度下降端到端地从零开始训练。我们在三个不同的命令条件下测试智能体表现,其中两个要求智能体能够推广去解释从未见过的命令和词汇,而且框架的结构是模块化的,以便其他模块(如视觉感知模块和动作模块)在这种情况下仍然可以正常工作。我们的实验表明,该智能体在所有条件下表现得差不多好(平均成功率约90%)。此外,简单学习图像和语言的联合嵌入的几个基线框架的结果很差。

概况而言,我们的研究的主要贡献是:

一种将视觉和语言整合到一起的新的导航任务,使用深度强化学习(RL)。此外,该语言没有被预解析(pre-parsed)[Sukhbaatar et al.,2016]或被链接到环境中[Mikolov et al.,2015,Sukhbaatar et al.,2016]。相反,智能体必须从零开始学习所有内容,并将语言置于视觉的基础上。

语言的多任务迁移学习加速了RL。辅助任务中的语言习得可以帮助智能体更快地理解导航命令,从而更快地掌握导航技巧。

通过利用语言和模型架构的组合性(compositionality)得到zero-shot学习能力。我们认为这种能力是人类水平的智能的关键要素。

XWORLD环境

首先,让我们简单介绍一下XWORLD的环境。更多细节请参见论文附录8.3。XWORLD是一个2D的栅格(grid)世界。一个智能体在多个时间步长T中与环境进行交互,其中有4个动作:上,下,左,右。训练过程有许多个回合。每个回合开始时,指导者(teacher)启动计时器并发出一个自然语言形式的命令,要求智能体到达环境中特定对象的位置。其中可能会有其他物体作为干扰物出现。因此,智能体需要区分不同的对象,并导航到正确的位置。智能体通过具有自我中心视图的RGB像素感知整个环境。如果智能体在时间结束前正确执行了命令,则会得到积极的激励R+;每当它碰到墙壁,或者到达的位置不是目标对象时,分别会得到消极的激励R-w或R-o;假如智能体在徘徊不前,会得到消极奖励R−t。在每个回合结束后,环境和智能体都会被重置。

下面是一些示例命令(括号里包含从智能体中保留的环境配置,下同):

请导航到苹果。(有一个苹果,一个香蕉,一个橙子和一个葡萄。)

你能移动到苹果和香蕉之间的格吗?(有一个苹果和一个香蕉,苹果和香蕉间有一个空格隔开。)

你能移动到红苹果那儿吗?(有一个青苹果,一个红苹果和一个红樱桃。)

这个导航任务的难点在于,一开始,智能体对这种语言是一无所知的:每个字似乎都没有意义。经过试验和犯错后,智能体必须弄清语言的句法和语义,以正确地执行命令。

我们添加一个辅助的对象识别任务来帮助智能体学习语言。在探索环境的同时,当某些条件被触发时,teacher会询问一些与对象有关的问题,问题的答案都是一个词汇,并且答案也由teacher提供。下面是一些QA示例:

Q:北边的物体是什么?A:香蕉。(智能体在香蕉南边,苹果北边,黄瓜西边。)

Q:香蕉在哪里?A:北。(智能体在香蕉南边,苹果东边。)

Q:苹果西边的物体的颜色是什么?A:黄色(苹果的西边有一个香蕉,东边有一个黄瓜。)

我们希望智能体在这个辅助任务的帮助下,能够更快地学习语言。

Zero-shot导航的组合性框架

我们的框架包含四个主要模块:语言模块,识别模块,视觉感知模块和动作模块。框架的设计主要受需要导航到新的物体的影响,这些新的物体概念不会出现在命令语句中。

这个框架有三个关键属性:

语言模块必须是组合性的(compositional)。该模块需要处理句子,同时保留(主要的)句子结构。例子之一是输出语法分析树(parse tree)的语法分析器(parser)。

归纳偏向(inductive bias)[Lake et al.,2016]必须从现有的句子中学习。语言模块知道如果用完全新的单词填充到已知结构里的单词位置时,应该如何解析句子。

语言接地(language grounding)和识别必须缩减成(大约)相同的问题。这样可以确保用n-1个单词训练的语言接地在从识别任务中训练的第n个单词上仍然能正常工作。

左:输入是环境图像和句子(一个导航命令或一个问题)。输出分别是导航动作或问题的答案。(a)中的红色和蓝色线表示完全相同过程的不同任务。右:语言模块。输入是字嵌入序列。输出是最后一步的注意力地图。

实验

我们使用了Adagrad,让随机梯度下降(SGD)的学习率达到。在所有的实验中,我们把Batch的大小设定在16,并且训练200k的batches。目标参数θ-在每一个J=2k batches中都会被更新。所有的参数都有一个默认权重衰退,相当于x Bath大小。对于神经络中的每一层,通过默认其参数为0,以及一个标准的派生1/√N,其中N是每一层的参数数量。智能体总共拥有500k个探索步骤,探索率(exploration rate)α的降低是线性的,从1到0。我们修正了编程步骤的数量S作为3。我们使用了4个随机的初始化来训练每一个模型。整个框架都使用PaddlePaddle 4来端到端的部署和训练。

图中显示的激励是每个回合累积的折扣激励,由每8k个训练示例平均得来。每条曲线的阴影区域表示4个随机初始化之间的方差。(a)我们的框架在不同的命令条件下的激励曲线。(b)标准命令条件下四个基线的曲线。

zero-shot导航

我们的主要问题是智能体是否具有执行以前从未遇过的命令的“零样本”(zero-shot)导航能力。我们设计了4个命令条件来训练智能体:

标准(Standard)。训练的命令集与测试的命令集具有相同的分布。

NC。在训练的命令集中删除某些词汇组合,虽然训练命令集中仍包含所有单词。具体来说,我们考虑了三种类型的词汇组合:(object,location),(object,color)和(object,object)。我们列举了美中类型的所有组合,并随机在teacher的导航命令集中删除了10%的组合。

NWNav和NWNavRec。一些物体词(object words)被排除在导航训练之外,而且仅出现在识别任务的训练中,作为新的概念。NWNavRec保证新词不会出现在问题中,而只能出现在答案中;NWNav则不出现在答案中。我们随机排除了10%的物体词。

我们的框架在不容的训练环境下都有相同的超参数。在测试中,我们把留存(held-out)综合物/词语拉回到命令中(例如,标准的条件),并且测试了10k的session,用于四个导航的次级任务:nav_obj,nav_col_obj,nav_nr_obj,and nav_bw_obj(Appendix 8.3).

顶部:导航命令。中间:当下的环境图像。底部:相应的attention地图,由语言模块输出。需要指出的是,attention地图都是自我为中心的,地图的中心就是智能体的定位。

考虑到当下的环境图像和导航命令,程序通过三个步骤生成一个attention map。

在每一个步骤中,程序会关注不同的句子中的不同部分。词语的attention通过彩色线条进行可视化,其中,越亮的部分代表更多的attention。在左边,每一个彩色线条代表的相应的attention地图和当下的环境,以及此前储存的一个(图2右)。最后的attention地图被用作程序的输出。

在每一个通道中,只有三个关键的步骤得到了展示。

我们计算了成功率,其中成功指的是智能体要在每一个session规定的时间内抵达目标定位。图3a展示了训练的回报曲线,表1a包含了成功率。曲线之间彼此很接近,这和期待的一致,因为指令(commands)10%的减少几乎不会改变学习的难度。我们在所有的环境下都获得了几乎相同的成功率,并且获得了高的zero-shot成功率。NWNavRec的结果显示,虽然一些新的对象概念是从一个完全不同的问题中进行学习的,但是它们也能够在不需要任何模型训练和调参的倾向下,在导航这一方面进行测试。

(a)我们的框架和SimpleAttention(SA)在不同训练命令条件(列)下的四个子任务的分解率。最后四行显示包含测试session,包含训练中没有看到的命令。(b)标准命令条件下所有方法的总体成功率。

结论

本文展示了虚拟智能体的一个端到端的组合框架,能够将已学会的技能推广到新的概念,而无需建模再训练或微调。这种推广能力是通过重新利用在其他任务中学到的,并由自然语言编码的知识实现的。通过以不同的方式组合词汇,智能体能够应对新的任务,同时利用现有的知识。这种能力对于快速学习和更好地泛化至关重要。我们在框架实际中反映了这些重要观点,并将其应用于具体的例子:在XWORLD中执行zero-shot导航。

我们的框架只是一个可能的实现。框架的一些组件仍存在改进的空间。我们的主张并不是一个智能体必须像论文中展现的那样具有心智模型(mental model),但是必须具有在第1节和第4节所讨论的几个关键属性。目前,智能体还只是在2D环境中进行了探索。未来,我们计划将该智能体放到例如Malmo[Johnson et al。,2016]那样的3D环境中。这将会提出一些新的挑战,例如,视觉感知和几何变换将更加难以模拟。我们希望目前的框架为如何在3D环境中训练类似的智能体提供一些初步的思考。

做标书公司
香港贷款
利是封定做
推荐阅读
图文聚焦