深度强化学习实践(原书第2版)
上QQ阅读APP看书,第一时间看更新

6.1 现实的价值迭代

通过将交叉熵方法改为价值迭代方法,我们在FrozenLake环境中获得的改进是令人鼓舞的,因此,很希望能将价值迭代方法应用于更具挑战性的问题。但是,我们先来看一下价值迭代方法的前提假设和局限性。

我们快速回顾一下该方法。在每步中,价值迭代方法会对所有状态进行循环,并且对于每个状态,它都会根据Bellman近似值来更新价值。同一方法中Q值(动作价值)的变化几乎相同,但是要估算并存储每个状态和动作的价值。所以,这个过程有什么问题呢?

第一个明显的问题是环境状态的数量以及我们对其进行迭代的能力。在价值迭代中,我们假设事先知道环境中的所有状态,可以对其进行迭代,并可以存储与它们关联的近似价值。对于FrozenLake的简单网格世界环境绝对是可行的,但是对于其他任务呢?

首先,我们试着理解一下价值迭代方法的可伸缩性,或者说,在每个循环中能轻松地迭代多少个状态。即使是中型计算机也能存储几十亿个浮点值(32GB的RAM中为85亿个浮点值),所以看起来价值表所需的内存不是限制条件。数十亿个状态和动作的迭代将更加耗费中央处理器(CPU),但也不是一个无法解决的问题。

现在,我们的多核系统大多是空闲的。真正的问题是获得优质状态转移动态的估计所需的样本数量。假设有一个环境,它有十亿个状态(大约对应于大小为31 600×31 600的FrozenLake)。要为该环境的每个状态计算近似价值,需要在状态之间均匀分布数千亿次转移,这是不切实际的。

具有更多潜在状态的环境示例,请考虑Atari 2600游戏机。该游戏机在20世纪80年代非常流行,并且有许多街机风格的游戏。以当今的游戏标准来看,Atari游戏机是过时的,但它的游戏提供了一套出色的人类可以很快掌握的RL问题,这些问题对于计算机仍是一个挑战。正如前面提到的,毫无疑问,该平台(当然使用的是模拟器)是RL研究中非常受欢迎的基准。

我们来计算Atari平台的状态空间。屏幕的分辨率为210×160像素,每个像素都是128种颜色之一。因此,每一帧屏幕都有210×160=33 600个像素,所以每一帧的总可能状态数是12833 600,比1070 802略多。如果决定一次枚举Atari的所有可能状态,那么即使最快的超级计算机也要花费数十亿亿年。另外,这项工作的99.9%是在浪费时间,因为大多数组合即使在很长的游戏过程中也都不会出现,因此永远不会有这些状态的样本。但是,价值迭代方法希望对它们进行迭代,以防万一。

价值迭代方法的另一个问题是它将我们限制在离散的动作空间中。的确,Qs, a)和Vs)的近似值都假定动作是互斥的离散集,对于动作可以是连续变量(例如方向盘的角度、执行器上的力或加热器的温度)的连续控制问题而言,并不一定正确。这个问题比第一个问题更具挑战性,我们将在本书后半部分专门讨论连续动作空间问题的章节中讨论这个问题。现在,假设动作是离散的并且数量不是很大(量级为10),我们应该如何处理状态空间大小问题?