第8章 深度学习在电子游戏中的应用

我们在第7章重点讲解了如何解决棋盘游戏问题。现在我们来讨论更加复杂的问题——训练人工智能(AI)玩电子游戏。与棋盘游戏不同的是,本章涉及的游戏预先不知道规则。AI不会告诉我们如果它采取一个动作将会发生什么。它不会模拟一系列按钮按下动作以及这些动作对游戏状态的影响,让我们看到哪个动作会得到最好分数,而是必须从观看游戏、玩游戏以及实验来学习游戏的规则和约束条件。

本章将探讨的主题有Q-learning算法、经验回放、actor-critic算法和基于模型的算法。

强化学习中面临的挑战是:要为网络制订一个好目标。我们在第7章介绍了“策略梯度”算法。如果能把强化学习任务变成监督任务问题,一切就会容易得多。所以,如果目标是要建立一个会玩电子游戏的AI主体(agent),可以尝试去做的一件事情就是:研究人类是如何玩游戏的,并让agent向人类学习。我们可以记录一个人类专家玩游戏的过程,记录屏幕图像以及玩家正在按下的按钮。

深度神经网络能够识别图像中的模式,因此,可以训练一个“以屏幕作为输入,以人类在每一帧所按下的按钮为目标”的网络。这和第7章中预训练AlphaGo的方法相类似。该算法被尝试应用于一系列复杂的3D游戏(如Super Smash BrosMario Tennis),如图8-1所示。卷积网络被用于图像识别,而LTSM被用于处理帧间的长期相关性。使用这种算法,针对Super Smash Bros进行训练的一个网络可以在最大难度设置下,击败游戏中的AI:

图8-1 游戏界面

向人类学习是一个良好开端,但是进行强化学习的目的应该是:超越人类的表现。而且,采用向人类学习这种方式训练出的agent总是会受到它们所能做到的事情范围的限制,而想要通过训练agent得到的结果是:agent能够真正向自身学习。本章其余部分的内容将着眼于“以超越人类水平为目标”的学习算法。 ...

Get Python深度学习从原理到应用 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.