9.1-策略表示:从表格到函数

在本书之前的所有章节中,策略都用表格来表示:所有状态的行动概率都存储在一个表格中,如表\(9.1\)。实际上,策略也可以用函数来表示,记为\(\pi(a|s, \theta)\),其中\(\theta \in \mathbb{R}^m\)为参数向量。该策略函数也可以写成其他形式,例如\(\pi_\theta(a|s)\)\(\pi_\theta(a, s)\)\(\pi(a,s,\theta)\)

\(9.1\):策略的表格化表示。该表包含\(9\)个状态,每个状态对应\(5\)个行动。

我们首先说明表格法和函数法之间的区别。

  • 首先,定义最优策略的方式不同? 当以表格形式表示策略时时,最优策略的定义是它能够最大化所有状态的状态值,即其状态值大于或等于其他任意策略的状态值。当以函数形式表示策略时时,最优策略的定义是它能够最大化一个标量目标函数。置于什么是标量目标函数。后面将详细介绍。

Note

在之前,一个策略\(\pi^*\)是最优的,如果对所有\(s\in \mathcal{S}\)和任何其他策略\(\pi\)\(v_{\pi^*}(s)\geq v_\pi(s)\)\(\pi^*\)的状态值是最优状态值。

  • 第二,策略的更新方式不同 当策略以表格形式展示时,可以通过直接改变表格中的元素来直接更新选择某些动作的概率。而当用函数描述策略时,不能再以这种方式更新策略,而只能通过改变函数参数\(\theta\)来间接更新选择某些动作的概率。

  • 第三,获取行动概率的方式不同 当用表格描述策略时,可以直接通过查看表格中对应的元素来获得某个行动的概率。而用函数描述策略时,我们需要将状态-行动对\((s, a)\)输入函数中,通过计算函数来获得其概率(见图\(9.2(a)\))。当然,根据函数的结构也多种多样。我们也可以仅输入一个状态\(s\),然后输出所有动作的概率(见图\(9.2(b)\))。

\(9.2\):用函数来表示策略。这些函数可能具有不同的结构。

上面的几点不同使得用函数表示策略具有诸多优势,例如它在处理大型状态-行动空间时更加高效,也具有更强的泛化能力。其原因与用函数表示值是类似的,这里不再赘述。

当用函数表示策略时,我们的任务是最大化一个标量目标函数\(J(\theta)\),其中\(\theta\)代表策略函数的参数。不同的参数对应于不同的目标函数值,因此我们需要找到最优的参数从而优化该目标函数。最简单的优化方法是梯度上升:

\[\theta_{t+1}=\theta_t+\alpha\nabla_\theta J(\theta_t),\]

其中\(\nabla_\theta J\)表示\(J\)关于\(\theta\)的梯度,\(t\)为时间步长,\(\alpha\)为优化速率。

这实际上就是策略梯度方法的基本思想,虽然这个基本思想非常简单,但是想要理解其中的细节还是要花一点时间的。我们将在本章后续部分回答以下三个问题。

  • 应该使用什么目标函数?(第\(9.2\)节)
  • 如何计算目标函数的梯度?(第\(9.3\)节)
  • 如何利用经验样本计算梯度并优化目标函数?(第\(9.4\)节)

评论