首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

AI如何更好地协助人类,我们从美食游戏中得到了一些启发

大数据文摘出品

来源:Berkeley

编译:徐玲、LYLM、HM、楚阳

通过与机器自我博弈或对抗,AI学会了下围棋和打Dota或星际争霸这样的游戏。

然而AI的陪练系统通常会根据其进步而增加训练难度。在自我博弈的训练中,有时,AI要学会左右互搏,有时,AI要和其他AI一起玩以方便各自提升。

AI越厉害,其面临的任务也就越复杂,训练也需越来越高效。不过,无论是围棋、Dota还是星际争霸,AI都已经打赢了人类玩家。

同时,AI表现出更强大的合作精神,在Open AI的一次公开比赛中,Open AI Five(完虐人类玩家的DotaAI选手)和For the Win(攻陷雷神之锤的AI选手)分别和人类选手组队,结果显示,AI选手比人类同伴更愿意为同伴赴汤蹈火。

然而,来自伯克利进一步的研究表示,AI并非无懈可击,他们的讨论揭示出了一些问题。

Sheever:我的AI队友Viper曾为我献出了生命。他试图帮助我,心想“我肯定它知道自己在做什么”。显然我并不知道,但他相信我。而我的人类队友通常不会这样做。

Christy:他们非常无私。

Sheever:的确如此。

Michael:他们也希望你这样信任他们。

Sheever:是的,(笑)我们让他们失望了。

Blitz:有趣的是,我可以说我们做错了,是因为他们没有跟我们一起去。

我想,这明显是一个团队问题,但我却束手无策。不管我走哪条道儿都不对真是令人沮丧的事情。但每当我走一步,他们便义无反顾的跟上来,这感觉很爽。

当然,也有人觉得AI和人类选手的合作差强人意。AI只是机械的把他们的人类队友当成另一些AI选手,而非Sheever和 Blitz,也就是说,他们对人类队友的认知是模糊的。尽管他们会为团队利益而牺牲自己,但也有可能会莫名其妙一走了之。

所以,自我博弈真的能训练出协作AI吗?我们需要测试一下。

胡闹厨房中的AI

为了进一步研究这个问题,我们需要一个简单的协作环境,尽管它有各种各样的潜在合作策略,但最优策略并不明显。于是我们想到了《胡闹厨房》这个游戏,玩家需要在规定的时间内完成订单上的食物并送达顾客,对人类玩家来说,时间限制会导致手忙脚乱,对AI却是小case。

我们做了一个《胡闹厨房》的简化版本,使之更强调特定情境下的协同作战。在规定的时间内,玩家首先要在特定位置取到洋葱,然后走到锅前,将洋葱下入汤锅中,待汤煮熟,玩家须将其端到指定位置以供客人食用。听起来貌似很简单,但参与游戏的玩家们需要制定策略以明确分工,同时保证自身运动协调以避免碰撞他人。我们设计了一个接近最优的分层规划器,可即便这样,这个协作游戏对我们的AI模型来说也是很难的,它在规定时间内只完成了不到一半的任务。

假设上图中是你和你的好基友爱丽丝,并且你们试图打败同一游戏设定之下的鲍勃和查理,你们分工明确:爱丽丝站在洋葱前,并把洋葱一一抛给站在锅前的你,然后你迅速将其投入锅中。这比鲍勃和查林沿路线将洋葱一个个从指定位置运到锅中要省时得多。由此你知道,你们貌似要比想象得更强大。

上图:Alice(绿色)和你(蓝色)传递洋葱。下图:Bob(绿色)和Charlie(蓝色)走了很长一段路。

但如果你事先和爱丽丝并没有沟通,她不知道你的想法,那结果就会是另外一个样子:你站在锅前等爱丽丝给你抛来洋葱,但她并没有理你,而只是默默的把洋葱沿路从指定位置搬到锅里,你给了她一个眼神,但她并没有体会到,于是你只好也一个个搬的起洋葱,而此时,鲍勃和查林因为没有浪费时间而领先你们并赢了比赛。

有趣的是,即使你有好的谋略而对手没有也一样可能输,这就是关键所在。在团队竞争中,如果你不知道你的对手很菜,那你打败他们会更加轻而易举。但如果你不知道你的同伴很菜,那比赛结果可能会糟糕到任意程度——比你俩本身就是惺惺相惜的难兄难弟还糟糕。

然而,我们的AI模型不论是对同伴还是对手的认知都很模糊,这也是它不够厉害的原因之一。正所谓,不怕神一样的对手,就怕潜伏着的很菜的队友。

不同游戏设定下的模型差异

在博弈论中,竞争相当于零和博弈(我的收益是你的损失,反之亦然),而合作则是一种常见的收益博弈(我的收益是你的收益,反之亦然)。

零和博弈时,模型在自我博弈的训练中不断更新自己,直到它收敛于一种均衡,此时模型不再更新,每一种均衡都对应于一个最大最小策略,即每个人都希望最大化自己的最小收益,由于博弈是零和的,这意味着他们都假定对方会最小化自己的收益。

有意思的是,在自我博弈训练中执行最大最小策略的模型在达到均衡的时候至少不会让自己吃亏。因为如果你的对手没有最大化他的最小收益,意味着他没有让你最小化你的最小收益,那你还有进步空间。

下面这个图可以很好的解释这个现象,如图,当AI 选左边,人类选择左边或右边时,AI会获得1个或8个收益,而当AI选右边,人类选择左边或右边,AI会获得3个或7个增益,由此,AI决定选右边。

收益博弈时,对局双方都会获得收益,模型依然会收敛到无法更新,此时,双方的收益均已最大化。在训练过程中,模型在尝试双赢策略,与最大最小化策略不同,在一方的收益未最大化之前,模型不为自己设置收益下限,而这,可能使模型的性能变得糟糕。

用下图来解释就是:AI为了最大化自己和人类的利益而选择左边,当人类选择右边时,两个收益均为最大,而当笨人类选择左边时,则两者收益都是1,这样,模型就退步了。

需要说明的是,这些观点只为可以达到均衡的算法负责。事实上,由于训练神经网络的难度大,我们的算法并未达到均衡,并且,训练出来的模型其实是很脆弱的,模型可能会因为没有见过人类文玩家的新玩法而被打个措手不及。

接下来,模型将会和经验尚不足的人类玩家一起训练,我们称这样的模型是具有人类意识的,暂且称之为意识模型。

几点猜想

我们做出了以下猜想:

猜想一:由自我博弈训练出的模型由于没有考虑到人类玩家的主观能动性,它和人类玩家搭档时效果可能会变差

猜想二:意识模型比“自我博弈”模型更符合实际,因此,前者更适合和人类玩家合作,这意味着它模型需要获取人类玩家的游戏数据,然而,如果用模仿学习的方式去获取数据集会导致我们将人类玩家的欠优化状态直接转移给模型,但事实上,我们的目的是让模型意识到人类的欠优化属性并学会处理这个问题。

猜想三:意识模型会比通过模仿学习训练来的模型表现更优。

我们用一个最基本的方法建立了一个意识模型:采用人类玩家的实战游戏数据集作为数据输入,以行为克隆的方式训练出虚拟的人类模型,利用深度增强学习和此虚拟人类模型来训练意识模型。

模型验证

为验证上述猜想,我们在《胡闹厨房》中设定了五种特定情境,下图从左到右依次是:狭小的空间、非对称空间、环形空间、强制协调空间和计数器回路空间。

基于以上五种情境,新模型和其他模型将会有十种可能的组合,利用人类玩家的游戏数据克隆出来的类人模型会充当测试人员,权且称之为Hproxy,新的模型必须和Hproxy一起玩耍,前者可以是由自我博弈训练出的SP(self-play)模型,由模仿学习训练出的BC模型以及与PPOBC模型。这里要声明的是,BC模型和Hproxy所使用的人类玩家的游戏数据是不重叠的。

我们同样记述了两个自我博弈型(SP + SP)的代理的表现,大致将其视作最优团队表现的上限,以及自我博弈型和能够获取测试时人类模型的(PPOHproxy + Hproxy)人类觉察型代理的表现,大致将其视作当代理必须要和测试时人类搭档玩游戏时的最优表现的上限。

我们记录了两个SP模型合作时表现并视之为所有团队协作的典范,并视PPOHproxy + Hproxy 为测试时的最佳组合。

结果如下图所示。我们能看到上述三个猜想都被证实。有趣的是,在利用Hproxy 测试时,即使最普通的行为克隆模型也比SP模型的性能好。

结果的定性分析

为什么意识模型在这个任务中的表现更好?一个可能的原因是它可以根据人类玩家采取的不同策略来对自身行为进行调整。在环形空间的游戏设定下,PBT和SP两种模型通常不会因为人类选择而改变自身前进方向。如果人类玩家想要走上另外一条路,模型和人类就会发生碰撞甚至卡住难以动弹。与此形成鲜明对比的是,在同样情况下,意识模型可以轻而易举的选择人类玩家没有选择的那一条道路。

首先来看一下上方动画图示中的上图。在最初阶段,人类玩家持有一个洋葱并且面向上方柜台。SP模型会认为人类下一步的行为会是什么呢?它只会认为人类的行为会和它的相似,他认为人类有0~30%的可能性会向上走,57~99.9%的可能性会向下走。因此,SP模型判定人类玩家会向下走,所以它决定逆时针前进——这一举动的结果就是SP模型与人类玩家相撞。

与此同时,如果我们去掉什么都不做的选项,BC模型认为人类有99.8%的可能性会向上走,而人类玩家向下走的可能性

是我们的模型只是太脆弱了吗?

也有可能。SP模型在和Hproxy合作时懵圈了,它不仅对队友的定义模糊,甚至会因为新的合作模式而不知所措。而BC模型会因为曾经了解过人类玩家而表现得相对优秀。

如果模型对新合作模式的敏感会导致其泛化能力的下降,那么基于群体的神经网络训练(population-based training,PBT)应该会表现的更好,因为他同时训练了大量不同模型,所以最后胜出的模型应该可以适应不同的分布,而不是仅仅只是胜出模型本身。然而,当我们用PBT模型来训练模型然后重复上述实验时,结果是也是相似的。

另一种验证该猜想的方式是训练一个对新合作模式不敏感但是对它的队友行为有着错误预估的模型。为此,我们训练了一个规划模型,它用了分级搜索的方式来制定最优计划,然后逐步执行任务我们用意识模型执行分层搜索方式并且假设队友行为总是与BC模型预测的最可能行为相同。实验结果与上面的相似,尽管模型只是在和Hproxy合作时表现不错。

与人类玩家合作的模型表现

当然,我们还应该测试在使用人类玩家的时候,以上结果是否仍然成立。总的来说是成立的,但是并不如上面的结果那样清晰有力。猜想一很明显成立,在与人类玩家配对时SP模型的表现明显不如与SP模型自己与自己配对的时候好。猜想二也成立:PPOBC模型在统计学层面表现的明显比SP和PBT模型好,尽管相关现象并不如之前那样明显。对于猜想三,由于我们的模型与人类玩家比赛时10场只赢了5场,所以我们并不能给出一个确定的答案。

我们认为与人类玩家合作时结果不同的原因有二:

人类玩家和BC模型之间的差别比Hproxy和BC模型(两者都用了真人合作数据进行训练)之间的差别要大得多。因此 ,同样是和人类玩家合作,PPOBC模型的表现不如Hproxy好。这点在第四和第五种游戏情境下表现的尤为突出:PPOBC模型均表现得十分差。

人类玩家可以归纳总结出SP模型和PBT模型的合作机制,于是自行适应这些机制。然而BC模型没有人类玩家这样灵活适应的能力。这就使得SP和PBT模型的性能大幅度上升。

讨论

至此,我们已经看到了SP模型对队友的行为有着不准确的估计与预期。在与人类玩家一起玩时,即使是由通过克隆人类行为而得到的很朴素人类模型也可以表现优于前者,甚至有可能战胜过人类玩家。

比起用大量的人类玩家的游戏数据来尝试了解人类玩家,我们为什么不能尝试训练我们的模型以期它能适应很多不同的对手,包括人类玩家。PBT模型其实就是基于此观点训练出的模型,然而PBT模型面临着与SP模型相同的问题。当然,如果我们有更多数据或是我们仔细推敲PBT的算法,PBT模型也有可能取得很好的结果。

你可能会认为可以通过分析一个算法在训练时见到了多少种不同的状态来解释我们的结果:SP与PBT模型见到的状态是确定的,然而PPOBC模型在训练时需要应对BC模型的随机状态,所以PPOBC模型在训练时见到了很多不同的状态,这也使得PPOBC模型相对更适合和人类玩家合作。在使用规划模型的时候我们也看到了相似的结果,规划模型受到不同状态的影响有限。而且PPO模型中的熵增也使得SP和PBT模型在训练时增加了随机性元素。

另一个理解问题的角度是,SP模型最后使用了人类不会使用的协调方法。然而,这可能只是我们每次仅在一个游戏情境设定下对模型进行训练的结果,所以模型变得专精某种游戏情境。然而,人类的协调方法更加具有普适性。这也意味着我们可以通过迫使AI协调来使之变得更加具有普适性来从而更接近接近人类玩家。需要特别指出的是,我们如果在任意的游戏情境下训练SP模型,SP模型就需要学会更加具有普适性的合作方法,从而与人类合作的时候表现更佳。我们在未来会探索该可能性。

模型的未来

为了阐明为人类行为建立模型的重要性,我们在此使用了朴素的人类模型,并且展示了即使模型如此简单,它的表现也远胜于SP模型。基于此,我们提出以下几个方面改进的可能:

我们可以使用更多的数据使我们的模型更加精确,也可以使用比克隆行为更加复杂的方法来学习人类行为。

尽管人类模型是使用人类玩家的游戏数据进行训练,训练后的结果却应用在人机交互的场景中,这两种场景(人类玩家之间和人机之间)的差别可能十分大,这就使BC模型饱受善变的队友的折磨。我们可以通过交替地训练和收集数据以改进BC模型。

又或者,我们可以尝试一些对陌生环境没有那么敏感的模型,比如一些基于心智理论(Theory of Mind)的模型,这些模型是通过近似优化一些奖励函数来模拟人类行为的。

到现在为止,我们的假设中有一个显而易见的错误,我们认为所有的人类玩家拥有相同的策略。为了修正这一错误,我们可以让模型学习一系列人类玩家可能使用的策略,然后在游戏中了解人类玩家的策略,并根据人类玩家的策略对自身行为进行调整。

另一个很明显的错误假设是,人类玩家不一定会根据队友行为对自身行为作出调整。但事实上,人类玩家会在游戏过程中了解并适应队友行为如果我们能为此行为建模,我们就可以构建能够教授人类玩家更好的游戏策略的模型了。

另一个思路是,我们与其尝试让模型对于队友行为有着准确的预测,不如训练他们也适应很多不同风格的队友。这可能会对这一模型能够达到的最优表现有所限制,因为这个模型无法精通人类行为。即使如此,我们也仍可以得到一个很好的结果,而且要特别点明的是,这个模型至少应该打败通过模仿学习训练出的模型。显然,最简单的PBT模型不足以完成此任务,但是我们认为PBT的某类变种应该可以胜任。

另一个值得研究的点是我们应该搞明白这些问题的根源到底有多少是出在模型无法很好的兼容队友的不同行为状态上。当一个SP模型被迫适应新环境时时,它的表现就很差(甚至都无法与另一个SP模型合作)。如果我们能够训练出能够兼容一部分队友的不同行为状态的模型,大部分问题就可能可以被解决。在深度强化学习的帮助下,也许我们可以通过内在激励机制来提升模型性能,,或是在每种游戏情境下都创造一个随机起始状态而不是一个固定的状态

《胡闹厨房》 这个游戏有希望成为人类与AI协作能力的一个基准线,对此我们十分欣慰。与此同时,我们也希望有更多的研究致力于使AI更好地帮助人类。

链接:

https://bair.berkeley.edu/blog/2019/10/21/coordination/

志愿者介绍

点「在看」的人都变好看了哦!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191102A08Z8N00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券