第3章 强化学习环境
强化学习的智能体通过和强化学习环境相互作用来学习如何获取更高的奖励。作为强化学习过程的一部分,强化学习环境在这个过程中起到了重要的作用。在前面的章节中我们已经知道,智能体处于环境的一个状态中,通过进行决策来选择一个具体的动作,通过环境转移到一个新的状态,并且获取一定的奖励。因此,可以说强化学习的过程就是智能体的算法在强化学习环境中的一系列决策过程。在一些情况下,智能体是否能够表现出人们期望的行为,不仅取决于智能体使用的强化学习算法,还取决于跟智能体相互作用的强化学习环境。举例来说,假如强化学习环境设置不当,导致某一个智能体停留在某个状态会产生大量的奖励(比如强化学习环境的模拟程序有Bug,会在一定条件下返回大量的奖励),这样会导致智能体产生一些轨迹,这些轨迹以人类的观点来看很奇怪,但是智能体确实获取了大量的奖励。同时,如果强化学习环境能够更快地根据智能体的状态和动作返回新的状态和奖励,显然强化学习的算法效率也能有巨大的提高,特别是对在线(On-Policy)算法强化学习环境的效率至关重要,这是因为在线算法相比于离线算法而言,通常需要对强化学习环境有更多的采样。
根据强化学习任务目标的不同,人们开发了很多强化学习环境。这些环境的特点是底层会有一定的规则,能够为智能体设定一定的初始状态,并且有一个固定的动作空间,智能体能够从这个动作空间中选择某一个动作进行决策,传递给强化学习环境,强化学习环境返回对应的奖励和下一个状态。这些环境一般会有一套统一的函数接口来完成上面的一系列任务。为了能够完成目标任务,可以自己开发一套强化学习环境,但这个偏离了本书的主旨。由于本书的侧重点是强化学习算法,本章将主要介绍一些经典的常用强化学习环境,读者可以使用这些强化学习环境来验证自己实现的强化学习算法。