我们这里要简要介绍一下增强学习(RL)——一种为了提高玩游戏效率的训练程序的通用技术。我们的目标是解释其实际实现:我们讲述一些基本理论,然后走马观花地看一下为玩《战舰》游戏而训练神经网络的最小python程序。
导言
增强学习[RL]技术是一种可用于提高效玩游戏效率的学习算法。与督导机器学习[ML]方法一样,增强学习是从数据——这里是指过去玩游戏的数据——中进行学习。然而,尽管督导学习算法只是根据现有的数据进行训练,但RL还挑战如何在收集数据的过程中表现良好性能。具体地说,我们所追求的设计原则是
让程序从过去实例中识别好的战略,
通过连续地玩游戏快速地学习新的战略。
我们在这里特想让我们的算法快速学习的理由是在培训数据有限或者战略空间太大而难以进行穷尽搜索的情况下最富有成果地运用RL。正是在这种体制下督导技术面临困境而RL则闪耀着光芒。
我们在本贴中要回顾一般性的RL培训程序:策略梯度、深度学习方案。我们下一节要回顾一下这种办法背后的理论。随后,我们将粗略地演示一下培训神经网络来玩战舰游戏的 python 实现。
我们的python码可以从我们的github网页这里下载。它需要 jupyter, tensorflow, numpy, 和 matplotlib包。
策略梯度,深度RL
策略深度和深度RL有两个主要构件。下面我们要详述二者并描述它们是如何协作训练好的模型的。
策略网络
一定深度RL算法的策略是一种神经网络,它将状态值ss映射为一定游戏行为 aa的概率。 换句话说,该网络的输入层接受环境的数字编码——游戏在特定时刻的状态。当输入通过网络馈送后,其输出层的值对应着我们现有每个行动可选的对数概率——我们可供选择的每个可能的行动都有一个输出节点。请注意如果我们肯定知道我们应采取的步骤,只有一个输出节点有一定的概率。但如果