Obstacle Tower挑战赛获奖者以及发布开源环境
经过长达半年之久的角逐, Obstacle Tower挑战赛圆满落下帷幕,我们将宣布本次挑战赛的获奖选手,同时也将介绍面向研究人员的开源Obstacle Tower环境,开发者可以根据需求对其进行扩展。
Obstacle Tower挑战赛及获奖选手
今年二月Obstacle Tower挑战赛正式开启,我们希望通过挑战赛促进AI领域的研究,并提供了一个具有挑战性的新基准环境来测试智能代理的能力,这就是Obstacle Tower环境。
Obstacle Tower环境的开发目的是为了给如今机器学习算法提供要解决的难题,并通过利用程序化生成功能来挑战该领域的极限。
挑战赛允许参赛选手访问Obstacle Tower环境的100个实例,并在从未见过的程序化生成环境中评估他们训练的代理。通过这种方式,代理不仅要能够解决已经见过的环境版本,而且也要在未知版本中有出色的表现,这展现出智能代理的关键属性,也就是泛化能力。
在创建Obstacle Tower环境后,我们使用目前最先进的算法进行了早期基准测试。在用于评估代理的未知环境实例中,我们的学习代理平均能够解决3个楼层。相较而言,没有玩过游戏的人类玩家平均能够解决15个楼层,而且经常能够通过高塔的20个楼层。
比赛期间,我们收到了约3000多个提交的代理,我们很高兴看到参赛选手不断提交评估结果更好的代理。
参赛选手提交的前六名最终代理可以在未知的高塔中通过10个以上楼层,其中第一名代理平均可以解决约20个楼层,表现接近经验丰富的人类玩家。
下面列出了本次挑战赛至少解决10个楼层的获奖选手。
第一名:Alex Nichol,平均楼层19.4层,平均奖励35.86。
第二名:Compscience.org,平均楼层16层,平均奖励28.7。
第三名:Songbin Choi,平均楼层13.2层,平均奖励23.2。
第四名:Joe Booth,平均楼层10.8层,平均奖励18.06。
第五名:Doug Meng,平均楼层10层,平均奖励16.5。
第六名:UEFDL,平均楼层10层,平均奖励16.42。
发布Obstacle Tower开源版本
Obstacle Tower的所有源代码现在已经在Apache 2许可下发布。我们希望研究人员和开发者可以使用这些内容,帮助学习如何更好地解决任务,以及根据自己的需求修改Obstacle Tower环境。
Obstacle Tower环境以实现高度模块化为目标而开发,对环境的多个部分使用了程序化生成功能,包括:楼层布局,物品和每个房间的模块位置。我们希望这种模块化特性可以帮助研究人员,通过使用我们开发的组件和工具,轻松定义自己的任务。
Obstacle Tower挑战赛的关注重点是我们在研究论文中提到的弱泛化,有时也称为分布内泛化。对于此次挑战赛,代理会访问100个高塔环境,并在额外的5个高塔环境中进行测试。重要的是,所有高塔环境都使用相同的规则生成,因此对代理来说,环境不会有太大的差异。
兴趣也是一种不同的泛化,我们把它称为强泛化,有时也称作分布外泛化。在这种情况下,代理会在Obstacle Tower环境的特别版本中测试,该版本使用训练数据集中的不同规则来生成。
在研究论文中,我们提出了评估阶段的独立视觉主题,也就是使用不同纹理、几何体和光照的环境主题。因为我们的基准代理在这些情况下表现非常糟糕,因此我们决定在挑战赛中只测试弱泛化。
我们认为,强泛化基准可以更好地衡量人工智能的进步,因为人类可以轻松具备强泛化能力,而代理通常会在这类任务表现不佳。我们期待看到研究社区扩展我们的工作,通过使用该开源环境来提供自己独特的基准。
最后,我们希望特别提及该项目的合作者Julian Togelius和Ahmed Khalifa,感谢他们在设计过程所做的贡献,感谢Ahmed Khalifa开发的开源程序化生成工具,我们利用该工具在Obstacle Tower环境中创建了楼层布局。
更多关于Obstacle Tower项目的信息,以及根据使用需求来扩展项目的方法,请访问:
https://github.com/Unity-Technologies/obstacle-tower-source
获奖选手
1
第一名:Alex Nichol
Alex Nichol从11岁起就开始学习编程。进入高中后,他对AI充满了兴趣。他通过在线课程、文章和论文,自学了有关AI的所有知识。Alex Nichol在康奈尔大学就读三个学期后离开了大学,从事AI相关的全职工作,曾加入OpenAI工作。
参赛细节
Alex Nichol使用多个步骤来训练代理。首先,他训练出一个分类器去识别方块,门等对象。分类器在整个流程中使用,它会告诉代理在过去50个时间步长所看到的对象。然后,Alex Nichol使用行为克隆来训练代理,使它模仿人类的表现。
最后,Alex Nichol使用一种称为Prierarchy的PPO算法变体,根据游戏的奖励函数来调整行为克隆代理。该PPO算法变体把熵替换为KL散度,使代理接近原始行为克隆策略。
Alex Nichol尝试过一些其它方法,但并没有奏效。他使用GAIL算法来实现采样更高效的模仿学习,使用CMA-ES从头学习策略,并在分类器堆叠最后一层功能,将其提供给代理,而不是为状态使用分类器的输出。
你可以阅读下面的文章,了解Alex Nichol在此次挑战赛中的情况以及使用的代码:
https://blog.aqnichol.com/2019/07/24/competing-in-the-obstacle-tower-challenge/
2
第二名 - Compscience.org
在庞培法布拉大学的计算科学实验室中,Gianni和Miha负责开发计算和不同应用领域之间的接口,寻求使用智能行为来开发计算模型。Gianni是庞培法布拉大学计算科学实验室的负责人和ICREA研究所的教授,以及Acellera公司的创始人。Miha是Gianni的生物研究小组的博士生。
参赛细节
Compscience.org团队的最终模型是一个PPO算法,带有较少的行为集和重构的奖励函数。对于第1个楼层,该团队也使用KL散度来引导代理的行为,做法类似Alex Nichol的方法,但他们在较高楼层放弃了这种方法。
该团队也在重要楼层使用了一种采样算法,让代理玩家可以通过更多楼层和种子代码。之后,该团队在较高楼层上使用更为标准的采样方法。由于参赛时间限制,他们没有足够的时间评估每种方法的优势,所以他们计划在未来进行评估。
他们计划在能够更好地理解和泛化这些方法后发布源代码。最后,该团队尝试了世界模型的方法:使用自动编码器,创建观测结果的压缩形式,在此空间中使用进化算法构建策略。
Compscience.org团队非常享受参加Obstacle Tower挑战赛的过程,他们相信让环境在物理方面更逼真是很重要的,这样使代理可以使用足够的样本做特别的事情。该团队使用了数百万个步骤来训练代理,了解更多信息,请访问:
http://github.com/compsciencelab
3
第三名 - Songbin Choi
Songbin Choi住在韩国首尔,他是一名生物医学工程专业的博士。Songbin Choi通过自学来学会相关知识。过去,他曾解决过很多计算机视觉领域的任务和挑战。Songbin Choi对Obstacle Tower挑战赛非常感兴趣,他希望以此为机会来挑战强化学习的问题。
参赛细节
Songbin Choi使用了ML-Agents Toolkit中实现的PPO算法。在挑战赛期间,他的代理会以连续协调的方法采取行动,从而实现特定子任务,例如:移动方块到特定位置。他使用门控循环单元(GRU),从而让代理做出基于记忆的决策。
为了减少过度拟合情况,他添加了随机失活层(Dropout Layer),并使用成像任务中常见的数据增强方法,即左右翻转方法(Left Right Flipping)。然后,他录制人类游戏过程,在训练时,把那些体验过程重复添加到回放缓冲区。
在挑战赛中使用Obstacle Tower环境让Songbin Choi成为了该游戏的行家。虽然收集人类游戏过程的成本非常高,但收集的过程质量很高,而且减少了需要的模拟时间。
Songbin Choi也尝试过较长的序列长度,但结果并没有实现更好的性能,这和他的期望相反。他仍在试着弄清楚为什么这种方法不起作用。他在训练过程中使用100个高塔环境的种子代码,没有用于评估的单独验证数据集。尽管他努力在减少过拟合情况,但仍怀疑模型中存在这种情况。
尽管在近几年中,计算机视觉领域的深度学习方法已经逐渐成熟,特别是处理图像分类任务的方法,但深度强化学习任务相对来说还是比较困难。在Songbin Choi训练的代理中,表现最好的代理还是无法取得和人类玩家差不多的游戏水平,也就是达到第30个楼层。
在观看AlphaGo和AlphaStar击败职业选手后,Songbin Choi相信Obstacle Tower环境仍有很大的提升空间。
4
第四名-Joe Booth
Joe Booth在电子游戏行业拥有超过25年的工作经验,参与过许多耳熟能详的游戏大作和系列作品,例如:《FIFA》、《极品飞车》、《幽灵行动》和《过山车大亨》。他目前是Orions Wave孵化器公司的开发部门副总裁。他的主要工作重点是Orions Systems视频分析平台,该平台通过可交换的分布方法来使用人类和AI/CV计算,从而挑战如今AI的极限。
参赛细节
在Obstacle Tower挑战赛中,Joe Booth使用了“PPO + 演示”方法的优化版本。他注重压缩网络的输入和输出,添加递归记忆,并使用了《Large-Scale Study of Curiosity-Driven Learning》(好奇心驱动学习的大规模研究)论文中的超参数。
在第二轮比赛中,他加入的演示过程可以让代理通过第10个楼层,但是结果并不稳定。他也尝试使用了语义分割的方法,虽然他意识到这种方法在有限的时间上不会得到相应回报,但这是他打算长期发展的方向。
了解Joe Booth参与Obstacle Tower挑战赛的更多信息,请访问:
https://medium.com/@Joebooth/794d3e6d3310
5
第五名-Doug Meng
Doug Meng是一名NVIDIA的解决方案架构师,专注于应用机器学习,以及在云端使用GPGPU。他在机器学习,统计学和分布式系统领域有数年的经验,在信号处理领域进行过研究。
参赛细节
Doug Meng使用经过修改的DeepMind IMPALA ,批量推理和自定义回放缓冲区来训练代理。他使用Obstacle Tower环境的复古模式,该模式有4个帧进行叠加,而且还利用了OpenAI基线的一些其它技巧。
Doug Meng使用12天时间完成训练代理。大多数时间用于减少训练时间,从而可以尝试更多算法。Doug Meng还尝试了PPO算法和Rainbow算法,但他的假设过度偏离了策略,对模型的性能造成很大影响,而IMPALA 只是稍微偏离策略。因此,这些方法训练出来的代理无法稳定通过第7楼层。
6
第六名-UEFDL
UEFDL是由东芬兰大学计算机学院的三名成员组成的团队,其中包括:Anssi Kanervisto,Janne Karttunen和Ville Hautamaki。
Anssi Kanervisto是一名读博第二年的博士生,专注于把电子游戏用到强化学习的研究中。Janne Karttunen是一名刚毕业不久的理科硕士,她的论文和深度强化学习有关,研究如何把游戏中的学习结果转化到机器人。Ville Hautamaki是一名高级研究人员,主攻机器学习、贝叶斯推理和语音技术。
参赛细节
UEFDL团队使用了OpenAI Stable Baselines代码库中的A2C算法和LSTM算法。其中一个模型用于第0-4楼层,另一个模型用于第5-9楼层。用于第10楼层以及更高楼层的模型没有学会解决难题,因此他们没有加入该模型。
他们首先为第0到4楼层训练模型,然后给模型作为起点,来训练第5到9楼层。通过这种方法,代理可以专注于找到后续关卡的钥匙,并避免在第5到9楼层出现的问题:忘记如何完成较早的楼层。虽然这种情况不太可能发生,但还是做了防范措施。
他们也尝试了其它方法,例如:使用好奇心的AC2算法,不同熵值的PPO算法,把Obstacle Tower部分环境替换为人类游戏过程的“回放环境”。
未来展望
我们非常感谢参加Obstacle Tower挑战赛的所有选手,以及我们的合作伙伴Google Cloud提供了GCP平台奖励,AICrowd提供了挑战赛的举办平台。在开始此次比赛时,我们不确定参赛选手是否可以通过10个楼层,但参赛选手的表现给我们留下了深刻的印象,达到了未知高塔环境的第19个楼层。
尽管如此,Obstacle Tower环境的每个实例包含100个楼层,这意味着仍有80%的高塔环境仍未解决。不仅如此,由于较高楼层上有更多敌人、更多危险房间和更复杂的楼层布局,因此对操控和规划方面有更高的要求。
这意味着Obstacle Tower环境有很大空间来开发新的方法,从而取得更多进步。随着研究人员继续研究Obstacle Tower环境,我们期待在未来看到更多相关进展。
小结
如果你对Obstacle Tower挑战赛有任何问题,请咨询:OTC@unity3d.com。
如果你对机器学习和游戏的相关领域进行工作感兴趣,我们正在招聘:
https://careers.unity.com/find-position?text=AI@Unity
下载Unity Connect APP,请点击此处。 观看部分Unity官方视频,请关注B站帐户:Unity官方。
点击[阅读原文]在Unity答疑专区留下你的问题,Unity社区和官方团队帮你解答:
Connect.unity.com/g/discussion
推荐阅读
在Unity 2019.2中扩展Shader Graph,实现自定义光照
官方活动
直播课程|Unity Progressive Lightmapper GPU版在三大渲染管线中的应用
8月14日星期三晚Unity直播课程平台部技术总监杨栋将介绍Unity Progressive Lightmapper GPU版在三大渲染管线中的应用。[更多详情......]
直播地址:
https://connect.unity.com/events/progressive_gpu_2019
8月21日前加入Unity Connect,创建个人频道,成为与Unity社区同行的伙伴-Unity Buddy,享受专属福利。
Unity Connect评论区支持你认可的Buddy,有机会获得Buddy送出的Unity周边。
了解如何成为Unity Buddy,请点击此处。
喜欢本文,请点“在看”