学界 | OpenAI竞争性自我对抗训练:简单环境下获得复杂的智能体

百家 作者:机器之心 2017-10-12 08:17:07

机器之心编译

选自:OpenAI

参与:蒋思源、刘晓坤


OpenAI 近日表示通过自我对抗训练的竞争性多智能体可以产生比环境本身复杂得多的行为。该研究基于 Dota2 的自我对抗训练成果进一步研究了该机制的特点与优势。此外,OpenAI 表明自我对抗训练有助于实现迁移学习,将会成为 AI 系统的核心部分。


GitHub 项目地址:https://github.com/openai/multiagent-competition


我们发现自我对抗(self-play)可以在没有具体预先设计这些技能的环境中,让模拟 AI 自主发现并学习身体技能如扭、闪避、伪装、踢、抓以及鱼跃扑球。自我对抗能确保环境对 AI 保持适当的难度以帮助其提升技能。加上我们 DOTA2 自我对抗成果的证明,我们越加相信自我对抗将会成为未来强大 AI 系统的核心部分。


<iframe class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="1.7647058823529411" data-w="480" data-src="http://v.qq.com/iframe/player.html?vid=o0560mmytj1&width=370&height=208.125&auto=0" width="370" height="208.125" data-vh="208.125" data-vw="370" style="display: none; width: 370px !important; height: 208.125px !important;"></iframe>


我们在很多基本的游戏中为多个模拟 3D 机器人设置了竞争因素,为每一个智能体设置简单的目标从而得到训练(比如将对手推出相扑圈外;到达另一边;同时阻止对手做同样的事情。把球踢入网中,并阻止对手做同样的事情,等等),然后分析它们在训练期间使用的各种策略。


智能体起初通过能帮助探索的行为(如站立和前进)能收到密集的奖励,当需要决定输赢的时候,这些奖励就会退化为零,因为系统只会对竞争结果进行奖励。尽管奖励设置很简单,但是智能体也能学到机智的行为如扭、闪避、伪装、踢、抓以及鱼跃扑球等。每一个智能体的神经网络策略都独立使用近端策略优化(Proximal Policy Optimization)进行训练。


<iframe class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="1.7647058823529411" data-w="480" data-src="http://v.qq.com/iframe/player.html?vid=h05600y8yvx&width=370&height=208.125&auto=0" width="370" height="208.125" data-vh="208.125" data-vw="370" style="display: none; width: 370px !important; height: 208.125px !important;"></iframe>


为了理解简单目标和竞争压力的组合是如何产生复杂行为的,我们来分析相扑摔跤运动任务。在这里我们采用之前研究(https://arxiv.org/abs/1506.02438)中定义的密集奖励训练仿真行走机器人,我们删除速度因素,添加距离相扑圈中心的负 L2 范数距离,并把它作为相扑智能体的密集探索奖励。起初,智能体使用这种奖励机制在圈内探索,然后我们逐渐缓慢地将其退化为零,从而智能体开始学会优化竞争奖励,即在余下的训练迭代中,努力把对手推到圈外。



虽然设计需要所有这些技巧的任务和环境是可能的,但这对人类设计师而言,这需要精力和独创力,而智能体的行为会因为人类设计师的局限性而导致的问题复杂度的限制。通过让智能体迭代数千次竞争而不断发展出更好的版本,我们成功地创造出能自主引导(bootstrap)行为的 AI 系统。在我们的 Dota2 项目中,也发现了类似的现象,我们通过自我对抗创造了在电子竞技中可以打败顶尖人类玩家的强化学习智能体。


迁移学习


<iframe class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="1.7647058823529411" data-w="480" data-src="http://v.qq.com/iframe/player.html?vid=d0560a80uzz&width=370&height=208.125&auto=0" width="370" height="208.125" data-vh="208.125" data-vw="370" style="display: none; width: 370px !important; height: 208.125px !important;"></iframe>

智能体在相扑数据集中训练,然后迁移到在风中站稳的任务


这些智能体还展示了迁移学习的潜力,即智能体将从一个环境中学到的技能应用到以前未曾见过的情况。在案例中,我们先实现了智能体在相扑任务中的自我对抗训练,然后令其完成受风力干扰的站立任务。智能体尽管没有见过模拟风力的环境或观察到风力,但它仍然能保持直立,而使用经典强化学习算法在行走任务下训练的智能体,在新环境中很快就摔倒了。


智能体在使用经典强化学习训练行走任务后,迁移到风中站稳的任务


过拟合


我们的智能体使用合作学习策略(co-learning policies)会出现过拟合情况。因为这些策略正好是针对具体的对手,所以面对有不同特征的新智能体时,我们的智能体会出现误差。我们通过将每个智能体与不同的几个而不是一个对手进行训练以解决这种过拟合现象,这些可能的对手来自于在早期训练过程中并行训练策略的集成。鉴于对手的多样性,智能体需要学习一般策略,而不仅仅是针对特定对手的策略。


论文:Emergent Complexity via Multi-Agent Competition



论文地址:https://arxiv.org/abs/1710.03748


摘要:强化学习算法可以训练智能体以在复杂和真实的环境中解决问题。通常,经训练的智能体所拥有的复杂度和训练环境的复杂度密切相关。这表明强大的智能体一般需要在复杂的环境中训练。在本论文中,我们表明通过自我对抗(self-play)训练的竞争性多智能体环境可以产生比环境本身复杂得多的行为。我们同样表明这样的环境带有自然而成的课程(natural curriculum),因为对于任何技能水平,充满该阶段智能体的环境将会有适当的难度而训练更好的智能体。该项研究工作还介绍了几项竞争性多智能体环境(competitive multi-agent environments),其中智能体在 3D 物理模拟世界中进行竞争。即使环境比较简单,训练过的智能体也学习到了各种复杂而有趣的技能。例如奔跑、拦截、躲避、抢断(tackling)、愚弄对手等技能。更多学习的技能请查看:https://goo.gl/eR7fbX。


原文链接:https://blog.openai.com/competitive-self-play/


本文为机器之心编译,转载请联系本公众号获得授权

✄------------------------------------------------

加入机器之心(全职记者/实习生):hr@jiqizhixin.com

投稿或寻求报道:content@jiqizhixin.com

广告&商务合作:bd@jiqizhixin.com


点击「阅读原文」,在 PaperWeekly 上参与讨论此论文

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接