【田渊栋】这次有幸成为了首届VGML(Video Games and Machine Learning)的workshop的受邀演讲嘉宾。以下是流水帐。
我第一个演讲,因为Gabriel的开场白只花了十分钟,所以我有五十分钟,占了点小小的便宜。主要讲了DarkForest,Doom还有最近的ELF的框架。ELF是一个游戏之上的框架,任何游戏或者虚拟环境,只要带有C++接口都可以往里装(现在有Python接口也可以了),而ELF会自动处理并行的问题。ELF收集完了一个batch的游戏数据,就可以交给Python端的强化学习算法进行训练。这样的框架很灵活,不管是Self-Play还是Multi-Agent或者是MCTS,不管是简单的A3C或者是带规划(planning)的复杂强化学习算法,都可以统一在一起。另外我们还在ELF里面写了个微缩版的即时战略游戏MiniRTS,帧率在笔记本电脑上达到了单核4万帧每秒,对训练颇有帮助,训练一个包含采矿造兵防守进攻的能玩完整游戏的AI只需要单GPU几个CPU半天时间。
大家对ELF还有挺多兴趣的,问了好几个问题。DeepMind那边Oriol一副挺当回事的表情,并反复表示他们的文章里引了我们这篇。后来我一查居然同一篇文章引了两次,回想起Oriol说自己困得不行,得要回去睡觉,看来这文章还真是赶出来的。
然后是两个Spotlight。说实在这一次的workshop的文章质量很高,一篇是用多智能体的模型玩星际局部战斗,借用了博弈论里面counterfactual的思路去定义每个智能体的优势函数(advantage function),效果居然和把所有兵当成一个智能体的性能差不多,挺令人吃惊的。另一篇则回顾了俄罗斯方块的算法。
接下来是Marc,他之前在DeepMind后来去了新开的蒙特利尔Google Brain。他介绍了一下Atari Game的历史,把Atari游戏归为三类,一类是已经解决的,一类是还未解决的,另一类是被AI找到漏洞刷分的。有趣的是,大部分还未解决的游戏集中于Atari游戏发布后期,证明我们AI的水平目前还局限于此,未来还有很长的路要走。对于“游戏研究有何意义”的质问,他引用了强化学习老前辈Richard Sutton的观点,认为认为“游戏会比真实世界更真实”(原话是“游戏会比任何我们制造出来的东西更真实”, In Practice ... Games end up being more real than anything we make up")。
接下来是EA的Magnus Nordin,SEED组的老大(注意不是高达那个SEED)。来自游戏公司的讲义,其质量只能以惊艳来形容。他一开始介绍了目前运用深度学习在图形学和物理引擎上面的进展。其中通过像素点采样来进行光线跟踪,然后用神经网络插值这个效果实在太漂亮,眼看着图形学界折腾了十数年的实时光线跟踪就要被深度学习两三下做成了。之后他介绍了EA在AI上的进展,他们用online+offline A3C对一个3D射击游戏(可能是战地1942?)训练了一个相当复杂的网络,取得了不错的效果。
接下来是另两篇Spotlight。一篇做吃豆人(Pacman)游戏,用奖励分解(reward decomposition)的技术做到超人类的性能,在这个游戏上远远甩开了之前所有的算法。另一篇是基于两阶段GAN的地形生成算法,生成的地形相当自然漂亮。
下午做Minecraft上的平台Malmo的Katja过来做演讲。她对合作式AI有相当的兴趣。接下来就是大家非常关注的暴雪和DeepMind合作的星际2的API,由来自暴雪的主任工程师Jacob来讲。Jacob一身肌肉,颇有当电影明星的潜质。他一开始就声明要录音,说这是给他妈妈的礼物,让大家一起喊hi Mom。不得不说好温馨啊。他讲了很多干货,配上DeepMind之前发布的文章一起看效果更佳。我相信大家对此都很有兴趣,所以我会再开一篇博客专门讲。
说句题外话,晚上我们一起吃饭的时候,Jacob同学透露出他是坐经济舱十几个小时飞过来的,刚下飞机就过来做演讲,为的是给组里人省经费;收了账单还要仔细看里面有没有列着酒,因为酒不让报销……真是不容易。
接下来由来自DeepMind的Max讲几个和三维场景有关的工作。有些部分像UNREAL,从去年的NIPS Workshop开始大家都听过很多次了,还有一些是最近的工作,如用autoencoder来训练可迁移特征的DARLA,还有让Agent听从自然语言指令(instruction following)的工作。
最后是由来自密歇根大学的教授Honglak Lee的演讲收尾。主要讲了他们ICLR16和ICML17的两个工作。他们使用Minecraft这个平台,搭建二维迷宫,用Hierarchical RL让智能体在迷宫中顺序执行多个指令,并能执行以前没有见过(但每部分都见过)的指令。
Workshop的最后部分是让所有的演讲者坐在一起回答观众们的问题。总的来说气氛比较欢乐。以下是一些我还记得起来的问题及回答:
1. 什么是强化学习将来重要的方向?
大家各种讨论,主要提的方向是Model-based RL还有hierarchical RL。当然这些都说说而已嘛,不要当真。不过蒙对了也说不定。
2. 如何使得AI可被解释。
我的观点是现在主要是数据太多,依赖关系太复杂所以人看不过来。像AlphaGo,首先你不知道DCNN是怎么得到下一步的走法的,其次面对一株庞大无比的MCTS搜索树,人根本看不过来。所以说要达成可解释性,要不就让神经网络自己总结,然后反馈给人。你说我们凭什么在看不到对方心跳呼吸还有神经元传导细节的条件下去相信一个人,还不是因为相信他的话嘛。
3. 大家对内在驱动力(Intrinsic reward)的看法如何。
我觉得这个是非常重要的,以前是Feature engineering,现在变成了reward engineering。以后环境越来越多,人类肯定没有精力去设计所有的reward。这样的话让agent自己找到目标非常重要。其它人也纷纷觉得这是个很有意思的方向。
4. 计算资源重要还是新算法重要。
我觉得两者都重要,是不相关的两个因素。计算资源谁不喜欢,大家都想要GPU越多越好,本来跑两天的算法,两小时就可以跑出来,那太好了。但是我仍然认为新算法是推动领域发展的根本因素,不然大家都回家睡觉,等着机器传来奇迹吧。我们跑到悉尼来开这个会的初衷,不就是要来看不同的想法不同的思路的嘛,大家都依赖机器,那这个会就不用开了。
来源:知乎,https://zhuanlan.zhihu.com/p/28470717
演讲:游戏 AI 的成就和挑战
下面是新智元编辑根据田渊栋老师的演讲 PPT 整理的内容。
演讲《AI in Games:Achievements and Challenges》探讨了游戏 AI 的技术挑战和发展前景。就在上周末,OpenAI 开发的 DOTA2 游戏 AI 掀起了不小的轰动,更早些时间,DeepMind 宣布正式进军星际争霸II。这些无不表明电子游戏在开发和测试 AI 时的重要性。
游戏作为开发和测试 AI 的一种手段,拥有以下几大优点:
- 拥有取之不尽用之不竭的完整标记数据
- 环境受控且可靠
- 每个样本的成本低
- 比在现实中开发速度快
- 没有那么多伦理和安全上的担心
- 用简单的规则能够实现复杂的动态
不过,用游戏来开发和测试 AI 也有缺点,包括:
- 算法运行速度慢,数据不够有效(data-inefficient)
- 整体成本较高
- 如何将游戏抽象为真实世界,还存在一定的问题
- 很难基准衡量进步
尤其是第 3 点,如果最终不能扩展到现实世界,那么使用游戏这种虚拟环境优点再多也无济于事。
游戏 AI 有很长的历史,从早期的扑克牌、简单的国际象棋,到上世纪 70 年代的 Atari 游戏(比如 Pong、Breakout),再到 80 年代的超级马里奥。从上世纪 90 年代开始,游戏 AI 开始玩大规模在线游戏,比如星际争霸(1998 年)、模拟人生,到现在的星际争霸 II、GTA V,最终幻想系列。
游戏 AI 的研究人员也致力于从两方面改善游戏 AI 的不足,一是开发更好的算法和系统解决运行速度慢、现实抽象难的问题,一是完善开发环境,解决研发成本高和设定基准的问题。
以田渊栋和他的同事在 Facebook 的工作为例。围棋引擎 DarkForest Go Engine(Yuandong Tian, Yan Zhu, ICLR16)和 Doom AI(Yuxin Wu, Yuandong Tian, ICLR17)就是从算法/系统的角度入手,而 ELF 框架(Extensive Lightweight and Flexible Framework, Yuandong Tian et al, ArXiv)就是从开发环境入手。
接下来,演讲介绍了游戏 AI 的工作原理。一般来说,主要考虑这样几点:智能体每走一步需要操作多少次?游戏情景有多复杂?游戏搜索的深度是多少?
有些游戏,即使用超级计算机,也不可能搜索完全部的空间。
根据游戏规则的不同,每一步要执行动作的多少也不同,扑克只需要几步,国际象棋也就 30 到 40 步,因此使用的方法也相对简单,比如国际象棋使用 alpha-beta 剪枝结合迭代深化,即使是围棋,也可以只考虑前 100 到 200 步,比如常用的蒙特卡洛树搜索 + UCB 探索。
不够,星际争霸就很复杂了,每一步有 50 的 100 次方那么多可能的选择。
研究人员针对不同的游戏提出了不同的应对方法,比如围棋使用基于规则的方法再结合神经网络。
在游戏中应该如何为策略/价值函数建模?
游戏的环境是高维且非平滑的,而且与具体情境关系很大,在围棋里,一子落点不同就会得出完全不同的结果。使用传统方法需要手动设置步骤,有时候参数会矛盾导致难以扩展,还需要很强的领域知识。如今使用深度学习,实现了端到端的训练,数据变多了,调参变少了,没有很强的领域知识也能操作,而且取得了很好的效果。
以 AlphaGo 为例,有 GPU 和 TPU 做硬件支撑,策略网络和价值网络相结合。其中,策略网络使用了人类监督学习和强化学习,价值网络使用机器自我对弈的数据,预测当前落子对终局的影响。Fast rollout,比 DCNN 预测快几千倍,每一步只需 2 微秒,准确率大约 30%。
接下来,演讲介绍了 Facebook 的围棋 AI DarkForest。使用 DCNN 树搜索策略,预测接下来 k 步,使用 KGS 数据集170k 数据和 GoGoD 数据集 80k 数据做训练,准确率 57.1%。比 AlphaGo 早 3 个月发布,使用的 GPU 也不到 1%。
另外,还有第一人称视角射击游戏(FPS),这是田渊栋和同事 Yuxin Wu 在 ICLR17 发表的工作。
网络结构如下,使用普通帧加带了注意力的每一帧数据作为输入状态 S,研究人员发现将这些帧叠在一起比使用 LSTM 更加有效。
结果在 2016 年 VizDoom AI 竞赛 Track 1 获得了第一名。
还有为了更好的游戏 AI 研究环境而提出的 ELF 框架,能够整合任何有 C++ 接口的游戏,轻量级,而且十分灵活。
现在已经开源,http://github.com/facebookresearch/ELF
ELF 不仅用于游戏研究,还能开发和测试复杂强化学习算法、机器人领域离散/连续控制,以及对话问答系统。
演讲以未来的工作结尾,我们还需要更加丰富的游戏场景,更加真实的行动空间,基于模型的强化学习,以及训练 AI 对战 AI。
文章转自新智元公众号,原文链接