您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  要资料 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 讲座吧   成长之路  
会员   
 
   
 
  
每天15篇文章
不仅获得谋生技能
更可以追随信仰
 
 
     
   
 订阅
  捐助
百度通用 AI 大突破,智能体通过交互式学习实现举一反三
 
来源:网络 发布于: 2017-4-18
来自于要资料   152 次浏览     评价:      
 

百度IDL研究员徐伟、余昊男、张海超提出了一个新的框架,通过多任务强化学习和零数据学习,让智能体在没有先验知识的情况下,自己学会了结合语言和视觉两种信号在迷宫中导航并定位物体。这项研究是百度在通用AI研究中交互式学习上的突破,有助于研发在现实世界中完成任务的机器人。

百度这次开发的AI需要完成的任务是在二维迷宫里找东西,但与以往大多数研究让AI自己去探索新环境不同,百度研究人员使用了一个“教练”算法,使用语言命令AI去到不同的地方做事情。

在这里,AI要完成任务,除了自己处理视觉信号导航,还需要学会理解语言信号并将这些语言信号与视觉信息对应起来。这种结合了图像分析、自然语言处理以及现实世界行动的能力,正是人类使用语言命令机器人去完成任务所不可或缺的。由此,这项研究对于机器人应用有很大的潜力。

论文作者、百度深度学习研究院杰出科学家徐伟在接受外媒采访时表示,他们希望教会机器人用人的方式做事情,这样对人类用户而言更加方便,而“语言则是知识交流很重要的部分”。

百度的这个AI具体怎么工作呢?在一个7×7的迷宫中,AI需要找到水果,找到了以后有奖励,碰壁或者走错方向则会受处罚。论文里的AI算法由四个部分组成:一个语言模块,用于理解命令和生成答案;一个识别模块,用于明确关键词(比如苹果);一个视觉模型,用于“看”迷宫;还有一个决策模型,用于决策。

上文提到的那个“教练”算法会发出指令(英语),比如“往苹果的东边移动”,经历数百万次的迭代以后,AI就能学会什么是“东”、什么是“苹果”,以及这两个概念如何关联。

不仅如此,研究人员还发现,实验中AI通过强化学习,在接收到以前没有接触过的语言命令后,也能正确执行任务。

虽然目前论文里AI能够完成的任务还十分简单,算法也不能生成完整的句子响应,但徐伟表示,这项研究是一项“概念证明”(proof of concept),用于探索算法能否同时学会语言和在迷宫中导航。

研究人员在论文中表示,他们接下来计划将实验拓展到三维环境。

值得一提,系统是使用百度PaddlePaddle框架写的。

这个实验与徐伟的研究目标十分呼应。3月2日,深度学习技术及应用国家工程实验室学术研讨会在京召开(李彦宏称百度要做女排那样的人工智能国家队),徐伟在现场表示:“现在我们的机器和人还是有着非常大的差距,我们应该从一个非常简单的学习场景开始,让机器像儿童一样,通过在环境中的互动去学习感知、行动、语言这样一些基本的能力。”

当天,徐伟发表了关于通用AI的演讲,谈论了如何打造通用人工智能的研究平台。徐伟在演讲中说:“我在这里和大家分享的是我们对于以后人工智能发展的希望和我们现在做的一些工作。我特别要强调的是,我们现在考虑的是通用人工智能的技术发展。”

下面,我们具体来看看这项研究。

虚拟环境中类似人类语言习得的深度组合性框架(A Deep Compositional Framework for Human-like Language Acquisition in Virtual Environment)

摘要

我们让一个智能体在一个被称为 XWORLD 的 2D 迷宫环境中学习导航任务。在每个回合,智能体得到一个原始像素帧的序列,一个由指导者(teacher)发出的命令,以及一组奖励。智能体需要从零开始学习 teacher 的语言,以在经过训练后能够正确执行 zero-shot 的命令:1)命令语句中出现的词组从未在先前出现过;和/或 2)命令语句包含从另一个任务中学习到的新的对象概念(new object concepts),但这些概念从未在导航(navigation)任务中学过。

我们对智能体的深层框架的训练是端到端的:它同时学习环境的视觉表示,语言的句法和语义,以及用于输出行动的动作模块(action module)。该框架的 zero-shot 学习能力来自其具有参数约束(parameter tying)的组合性(compositionality)和模块化(modularity)。我们对该框架的中间输出进行了可视化,证明智能体真正理解如何解决问题。我们相信,我们的结果提供了对在3D环境中训练具有类似能力的智能体的初步启发。

引言

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

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

图1:XWORLD 环境和 zero-shot 导航任务的图示。(a)测试命令包含一个从未遇过的单词组合;(b)测试命令包含全新的物体概念,这些概念在前面的回合(a)的物体识别任务中学过。

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

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

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

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

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

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

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

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

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

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

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

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

Zero-shot 导航的组合性框架

我们的框架包含四个主要模块:语言模块,识别模块,视觉感知模块和动作模块。框架的设计主要受需要导航到新的物体的影响(图1b),这些新的物体概念不会出现在命令语句中(仅出现在识别模块中作为答案显示,而不会出现在图2a的语言模块)。

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

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

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

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

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

实验

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

图3:训练激励曲线。图中显示的激励是每个回合累积的折扣激励,由每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).

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

图5. 用两个例子来描述语言的编程过程。考虑到当下的环境图像和导航命令,程序通过三个步骤生成一个attention map。

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

图6:bypassing long walls的例子。在每一个通道中,只有三个关键的步骤得到了展示。

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

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

结论

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

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

   
 订阅
  捐助
相关文章 相关文档 相关课程



我们该如何设计数据库
数据库设计经验谈
数据库设计过程
数据库编程总结
数据库性能调优技巧
数据库性能调整
数据库性能优化讲座
数据库系统性能调优系列
高性能数据库设计与优化
高级数据库架构师
数据仓库和数据挖掘技术
Hadoop原理、部署与性能调优
 
每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号