OpenAI 于近日的一项研究中发现,在一个非明确的技能训练的环境中,AI 能够通过“自我对局”的训练掌握一系列动作技能,比如进攻、躲避、假动作、踢、抓等等。“自我对局”训练确定了环境对于提升AI系统的重要性。Dota2在“自我对局”训练中的表现和结果让团队越来越相信,“自我对局”训练不久将会成为AI系统的核心。
论文原文:https://arxiv.org/abs/1710.03748
代码:https://github.com/openai/multiagent-competition 我们在几个3D机器人之间设置了一些基本的游戏竞赛,利用一些简单的目标(比如:将对手推到场地圈外;到达场地的另一边,并阻止对手到达;把球踢进对手的网内,而不让对手的球踢进自己的网内等。)对每个机器人进行训练,并且分析机器人在完成目标时所使用的技能和策略。
一开始,机器人会因为站立、前进这样的行为而获得丰厚的奖励,但最后这些奖励会被清零,只有胜利的机器人才会获得奖励。除了这些简单的奖励以外,机器人还会学到一系列动作技能,比如进攻、躲避、假动作、踢、抓等等。在这个过程中,每个机器人的神经网络都单独接受了“近端策略优化”(http://t.cn/RWc4h7I) 的训练。
为了弄清楚在这些目标和竞赛的压力面前,机器人会作出如何复杂的行动,我们不妨分析一下机器人的“摔角相扑”比赛吧。在这个比赛中,为了训练机器人行走,我们在比赛前期给机器人设置了丰厚的奖励;增加了从这个圆形场地中心起的负L2距离,并且将其设置为机器人获得的丰厚奖励。机器人一开始的时候可以使用这些奖励在比赛场地内作出一些动作和反应,但是我们会在训练中把奖励悄悄地清零。这样一来,在接下来的训练迭代中,机器人才会为了得到更多的奖励,自觉地对自己的动作和技能进行优化。
设计出有助于这些技能训练的任务和环境并非不可能,但这不仅需要研究员耗费大量的精力,还需要他们具备独到的创意。此外,机器人的行为也可能会因为人类设计师在设计中出现的问题而变得更复杂。通过成千上万次的迭代优化,我们能够开发出更好的机器人,进而可以创造出功能强大的AI系统,该系统能够自我引导,并完成性能自我优化。在Dota2项目中我们也能发现类似的自我优化现象。在Dota2项目中,“自我对局”训练让我们成功创造出了一个能够在电子竞技的solo版本中击败顶级人类玩家的强化学习机器人。
视频链接:
https://v.qq.com/x/page/d0560a80uzz.html?_out=101
刚刚完成“摔角相扑”训练的机器人,现在又要开始应对“强风”了。
这些机器人还能进行“迁移学习”,它们能够把在一场景学习到的技能运用于另一个从未接触过的场景。在一个案例中,我们给那些经过了“摔角相扑”训练的机器人设置了一个任务,让它们在强风中始终保持站立。结果是,那些无视这个强风环境的机器人能够始终保持直立,而接受过传统强化学习训练的机器人在尝试行走时则会立刻摔倒。
我们的机器人会与“co-learning策略”发生过拟合,该策略是针对某些特定的对手而设计的,但是在面对新的对手时,这个策略就会失效。针对这一问题,我们的解决方案是——让机器人与多个不同的对手进行“较量”。这些对手来自于一系列的策略,其中有同步训练或早期训练的策略。面对这些各式各样、风格不一的对手,机器人就必须学习更多通用的策略和技术,这样才能“来者不惧”。
原文链接:https://blog.openai.com/competitive-self-play/