太精彩了,女士们、先生们。我们刚刚进行了一场关于自动驾驶的精彩小组讨论。现在,假设我们正在驾驶一辆自动驾驶汽车,从物理世界前往虚拟世界。这个虚拟世界被称为电子游戏。因此,我们今天即将进行下一场会议,主题是游戏人工智能。虽然这是今天的最后一场会议,但毫无疑问,这是最有趣的一场。因为每个人都喜爱电子游戏,所以我很荣幸地介绍今天的主持人周安晨。

周安晨是基石资本(Foundation Capital)的合伙人,专注于投资数据驱动型公司。在此之前,她在海德公园天使投资人(Hyde Park Angels)担任了两年天使投资人。她的职业生涯始于思科(Cisco)的工程师,后来共同创立了一家移动游戏公司。乔安妮(Joanne)在芝加哥大学布斯商学院获得了工商管理硕士学位,并在加州大学伯克利分校获得了学士学位。女士们、先生们,让我们欢迎乔安妮·陈来主持这场关于游戏人工智能的会议。

非常感谢。我特别兴奋,因为我是一名资深玩家,所以非常高兴能来到这里。首先,我想介绍田渊栋,他是Facebook人工智能研究院的研究科学家。他致力于将深度强化学习应用于游戏。他是“黑暗森林”项目的首席研究员,这是Facebook的计算机围棋项目。他还曾在谷歌自动驾驶团队工作。他将分享他在Facebook的一些学习成果,我很兴奋地介绍他。请大家欢迎田渊栋。

田渊栋在2017年AI前沿会议上的演讲:游戏人工智能:成就与挑战。感谢大家的到来和参与这次演讲。今天我将谈论游戏人工智能的成就与挑战。我将探讨为什么我们需要在游戏领域进行人工智能研究,为什么我们要利用游戏环境来推动人工智能技术的发展,以及我们将分享该领域的一些工作。请问可以翻到下一页吗?

我想大家都知道什么是游戏。如果你问那些十岁的孩子,他们最想参与的最有趣的活动是什么,他们可能会说是游戏。游戏人工智能之所以有趣,主要有两个原因。首先,它具有非常深奥的策略。例如,如果你下国际象棋或围棋,你必须坐在那里思考几个小时,以在棋盘上找到有趣的策略。

其次,游戏之所以有趣,是因为现在的游戏变得越来越逼真。如果我们问那些从未玩过游戏的人,让他们描述这些人物和精美的图像,他们可能会说:“哦,这看起来像真实的图像。”但实际上并非如此,它们是由计算机图形渲染而成的。我认为在不久的将来,我们将看到来自这些游戏的图像越来越逼真,直到它们比真实世界更加逼真。

将游戏作为人工智能的载体有很多好处。首先,它会为你提供无限量的数据。如果人们之前尝试过从事人工智能工作,他们就会知道人工智能最大的障碍之一是数据。如果没有数据,任何非常花哨且依赖大量数据的算法都无法很好地工作。但对于游戏,它实际上提供了一个你可以探索的环境,你可以找到并基本上获得所有带有完整标签信息的数据。

这基本上是完全免费的。其次,如果你使用游戏环境作为数据源,通常你可以比现实世界运行得更快。这一点非常重要,因为目前所有的算法都非常“饥饿”,需要大量数据来填充模型,以便使其正常工作。第三,当然,作为科学实验,我们希望环境是可控且可复现的。而在现实世界中,这将是一个难题。

因为实验中有很多不可控的意外因素,如果你不能很好地控制它们,这一切都是不可重复的。但在游戏环境中,情况则不同,因为你可以使用相同的随机种子再次运行相同的环境,结果将变得相同,你会得到非常可重复的模式。游戏环境还有一些其他好处。例如,你基本上不必担心安全和伦理问题。

例如,如果你想尝试在现实世界中运行自动驾驶汽车,事情就会变得有点困难,特别是从政府和政治的角度来看。但如果你在虚拟环境中运行自动驾驶汽车,事情就会变得容易得多。你就像在开车一样,可以尝试不同的方法。但是,当然没有免费的午餐。因此,如果将游戏环境作为人工智能的数据源,确实存在一些弱点和我们需要考虑的担忧。

首先,我们目前使用的所有算法都相当缓慢,而且数据效率不高。所以即使你有一个强大的游戏环境,游戏环境的运行速度可以是现实世界的一千倍,我们仍然面临着算法相当“愚蠢”的问题,它们需要很长时间才能训练好。如果人们尝试过Atari或OpenAI Gym等环境,你会发现我们训练这个算法需要大约一百万局游戏,渐渐地,这个智能体开始变得有点聪明,并逐渐理解游戏中发生了什么。

但如果我们让一个十岁的孩子玩这些游戏,也许只需要十分钟,他们实际上就知道发生了什么,从人脑的角度来看,事情要快得多。因此,我们仍然需要在这个方向上进行算法改进。其次,即使你使用游戏环境,你仍然需要大量的资源。在这里,我基本上想分享一个关于AlphaGo的故事。去年八月,我来到波士顿参加美国围棋大会,在那里我们见到了AlphaGo团队的人。

我基本上询问了他们使用多少GPU来训练AlphaGo项目,并说他们想使用多少。首席工程师黄阿杰(Arjay Huang)说这相当机密,我不能透露任何信息。我基本上说我们使用的是……

需要80到90个GPU来训练模型。黄亚杰笑着说,哦,可能不到百分之一。这基本上意味着他们使用了超过一万个GPU来训练模型。因此,他们不想使用大量的监督训练数据,而是想利用大量资源来生成数据。这里也存在一种权衡。如果你在游戏环境中,就没有免费午餐。

这里的第三个障碍是,我们通常喜欢从抽象游戏中训练出非常好的模型,但如何将这些模型转移到现实世界中,面对那个可怕、寒冷且充满边缘情况的世界,这确实是一个问题。此外,目前存在太多环境,因此很难对进展进行基准测试。所以在实现非常接近现实世界的任务中的超人性能方面,我们还有很长的路要走。

在实际介绍我们的贡献之前,我想简要讨论一下游戏AI是如何工作的。首先,我要确保每个人都理解这个基本事实:即使拥有超级超级超级计算机,也很难,甚至不可能搜索整个空间。因此,为了让游戏AI发挥作用,我们应该将这个搜索空间分解为两个不同的阶段。

首先,如果我们有了游戏的初始位置或初始状态,我们可以从初始游戏状态进行广泛搜索。但在某个时刻,搜索必须停止,然后必须引入评估函数来直接给出对游戏状态的估计。将两者结合,你得到了一个相当强大但在计算上可行的搜索算法。

为了设计这两个组件,我们需要考虑很多事情。首先,为了设计如何进行广泛搜索,这取决于我们正在讨论的游戏类型。例如,对于国际象棋或跳棋,每步只有少数几个动作,我们实际上可以枚举所有可能的状态。

然后直到某种固定的深度,有了这些固定深度,我们实际上了解了游戏的一切。一旦我们找到有希望的走法,就可以用这些有希望的走法开始另一次搜索。这就是为什么他们使用Alpha-Beta剪枝加上迭代加深的原因。

另一方面,如果我们谈论围棋,甚至星际争霸,在这种情况下,我们在每种情况下都有太多可以尝试的走法。实际上,从头到尾,甚至只到三或四层深度,扩展整棵树是不切实际的。这确实让人们在使算法良好地运行游戏时感到困难。

直到最近,人们发现我们可以使用深度卷积网络,根据游戏局势选择性地找到最有希望的走法。这基本上使人们能够使用深度神经网络来玩围棋,并达到职业水平甚至超人水平。

另一方面,如何设计评估函数也取决于游戏。例如,在国际象棋中,人们可能会检查你拥有的棋子数量与对手拥有的棋子数量,并进行一些抽象,从而对局势有一个大致的了解。但对于围棋,很难估计游戏局势。

这也是为什么这很难的原因之一。直到最近,我们发现使用卷积网络可以对当前局势给出非常好的性能估计。而对于扑克和星际争霸,情况则不同,因为这两款游戏是不完全信息游戏,这意味着你并不真正了解对手那边的情况。

因此,你不能通过简单的数学计算来获得你当前的优势或劣势。在这两种情况下,你真的需要根据对手已经做出的动作来预测对手那边正在发生什么,从而估计游戏局势。

这两个组件实际上早在30年或40年前就被建模了,它们是经典的人工智能问题。那么当前的趋势有什么新之处?当前的趋势实际上为人们提供了一种不同的方法来建模这种价值和策略函数。

从传统的角度来看,如果你想编写一个非常强大的围棋程序,你应该怎么做?那就是聘请一位围棋专业人士,让他们坐下来写下所有的直觉。一旦他们有了所有这些直觉,你就可以将所有直觉放入代码中,这样机器人实际上就能理解局势并相应地行动。

但这种被称为传统方法的方法,通常在开始时非常好,因为专业玩家会给你很多非常重要的信息。但随着时间的推移,它将不具备可扩展性。这是因为你可以为你的游戏制定100条规则,对于这些规则,可能存在冲突的参数,而且它们非常复杂,很难实际调整它们。

这也需要很强的领域知识。如果你想建立一个超人玩家,那么你需要找到一个人,找到一个超人玩家来实际构建它,这使得这变得不可能。但在机器学习方面,如果我们已经有了深度学习,那么我们就完全改变了范式,实施了端到端的训练过程。

在该过程中,与其拥有目标专家,我们可以拥有大量数据,并使用这些数据训练一个模型,从而为你带来惊人的性能。以前,人们认为这是不可能的,因为模型不够复杂。但是,由于当前的进步,我们实际上能够做到这一点,并展示了那里非常有趣和惊人的性能。

在这个大伞下,我们已经在两个直接方向上完成了有趣的工作。作为研究人员,我们对两个方向感兴趣。一是我们希望在给定当前资源的情况下开发更好的算法和系统。二是我们希望开发更好的环境,以便我们可以使用更少的资源来实现良好的性能。

这里有两项工作。我将谈论我们的“黑暗森林”围棋引擎。我想大家都知道AlphaGo,确实AlphaGo在这方面要强得多。然而,我们在AlphaGo之前三个月就发布了我们的机器人,我们的“黑暗森林”围棋代理。

我们使用的GPU资源不到DeepMind声称的一百分之一。因此,在那个围棋程序中,我们实际上达到了相当强的性能,互联网上的其他人也乐于使用它。这基本上是在互联网上展现出非常拟人化走法的首批机器人。因此,我们开源了代码,并取得了不错的性能。这是第一部分。

在工作的第二部分中,我们训练了一个可以玩3D格斗游戏的机器人,名为Doom。这是当前游戏如《反恐精英》的前身。在这个游戏中,我们看到AI学会了如何根据当前情况躲避对手的火箭弹,而这些情况从未由我们亲自教导过。这非常有趣,它是从原始图像端到端训练的。这里有一些网络结构,我将跳过这部分,因为我没有五分钟的时间。它使用自编码器模型,并利用课程学习先在简单地图上训练,然后迁移到用于比赛的更大地图上。

我们在去年的Wisdom比赛中获得第一名,在击杀分数上领先超过30%。最近,我们还在这个名为Elf的平台上工作。这个平台是一个广泛、轻量且灵活的游戏研究框架,如果你想把任何游戏放进去,它非常有用,使其成为多线程,并能并发高效运行。

基于这个平台,我们有一个名为Mini RTS的微型即时战略游戏版本,这个游戏每核可以运行40K帧。如果你能在这个环境中训练机器人,它会给出非常有趣的战术。这里有一些统计数据表明,我们的环境比其他环境更强、更快。这里有一个简单的视频展示了左上角的机器人能够学习所有这些基本战术。

例如,你首先收集资源,建造兵营,建造一些单位,然后可以进行反击。基本上,你可以反击对手的进攻,并最终赢得游戏。问:视频可以快进吗?答:可以。是的,你会看到机器人实际上找到了一种策略,可以在没有人一步步教导的情况下攻击对手,并且它可以端到端地学习。

最近,我们还有一个名为House 3D的优秀环境,它是今年ICLR论文的投稿。在这个House 3D环境中,目标是在没有任何人类干预的情况下从一个地方导航到另一个地方。人类只告诉机器人需要去厨房,机器人就会在这个虚拟环境中去厨房。

我们使用了Sensei数据集,其中包含45k个场景,拥有各种不同类型的房屋,在这些房屋中,所有标签对象都完全标注。我们将这个数据集转化为互动环境,以便机器人代理可以四处移动。我们实际上为代理提供了多模态学习。

这些模态包括深度、分割掩码、RGB图像以及顶视图。一旦我们有了这些模态,我们就可以训练一个神经网络,赋予代理能力,使其在这个虚拟环境中表现出色。

最后,我们实际上看到,如第一个视频所示,我们展示了机器人能够在这个室外环境中四处移动,试图通过一直向内移动来找到这个环境中的客厅。是的,然后我们看到机器人实际上找到了它的位置。

对于右边的视频,我们能够展示机器人可以从这个车库四处移动,然后发现车库里有一扇门,可以进入其中,最终到达这个客厅,最终找到沙发并停在那里。

你可以看到,使用更深的强化学习方法,给定奖励函数,机器人的所有这些行为都可以自动学习。这基本上就是演讲内容,我将在两天后有一个教程,即本周日下午。

在这个教程中,我们将讨论AI和游戏,以及强化学习的基础知识和高级主题,还包括一些案例研究,包括AlphaGo以及我们的工作。如果人们感兴趣,欢迎参加教程。它将持续大约四个小时。谢谢。对,我想问一个问题。