跳转至

1.6-轨迹、回报、回合

轨迹、回报、回合(Trajectories, returns, episodes)

图1.6: 根据两种策略所获得轨迹,轨迹在图中用红色虚线标出。

轨迹(trajectory)是一个状态-行动-奖励链。例如,给定一个图1.6所示的策略,智能体将会根据以下所示的轨迹进行移动:

\[s_1 \xrightarrow[r=0]{a_2} s_2 \xrightarrow[r=0]{a_3} s_5 \xrightarrow[r=0]{a_3} s_8 \xrightarrow[r=1]{a_2} s_9.\]

这条轨迹的回报(return)被定义为沿轨迹收集的所有奖励的总和:

\[\mathrm{return}_1=0+0+0+1=1.\tag{1.1}\]

回报也称为总回报(total rewards)或累计回报(cumulative rewards)。

回报可以被用来评估策略。例如,我们可以通过比较图\(1.6\)两个策略的回报。具体而言,从\(s_1\)开始,左侧策略获得的回报为\(1\),计算结果如上。对于右策略,从\(s_1\)开始,对应的轨迹如下:

\[s_1 \xrightarrow[r=0]{a_3}s_4 \xrightarrow[r=-1]{a_3} s_7 \xrightarrow[r=0]{a_2} s_8 \xrightarrow[r=+1]{a_2} s_9\]

对应的回报为:

\[\mathrm{return}_2=0-1+0+1=0.\tag{1.2}\]

\(\mathrm{return}_1\)\(\mathrm{return}_2\)表明左边的策略比右边策略更好。这一数学结论与直觉是一致的,即右边的策略更糟糕,因为它穿过了一个禁区。

回报包括即时回报(immediate reward)和未来回报(future reward)。在这里,即时回报是指在初始状态下采取行动后获得的回报;未来回报是指离开初始状态后获得的回报。即时回报有可能是负数,而未来回报有可能是正数。因此应根据回报(即总回报)而不是即时回报来决定采取何种行动,以避免短视决策。

\(\mathrm{return}_1\)是针对有限长轨迹定义的。对于无限长的轨迹,返回也可以定义。例如,图\(1.6\)中的轨迹在到达\(s_9\)后停止。由于策略对\(s_9\)已定义明确,因此在智能体到达\(s_9\)后,进程不必停止。我们可以设计一种策略,使智能体在到达\(s_9\)后保持不动。那么,该策略将产生以下无限长的轨迹:

\[s_1 \xrightarrow[r=0]{a_2} s_2 \xrightarrow[r=0]{a_3} s_5 \xrightarrow[r=0]{a_3} s_8 \xrightarrow[r=1]{a_2} s_9 \xrightarrow[r=1]{a_5} s_9 \xrightarrow[r=1]{a_5} s_9...\]

这条轨迹的回报之和为:

\[\mathrm{return}=0+0+0+1+1+1+\cdots=\infty,\]

但不幸的是,它是发散的。因此,我们必须引入无限长轨迹的贴现回报(discounted return)概念。具体来说,贴现回报是贴现回报的总和:

\[\text{discounted return}=0+\gamma0+\gamma^20+\gamma^31+\gamma^41+\gamma^51+\ldots,\tag{1.3}\]

在这里\(\gamma \in (0,1)\)被叫做贴现率(discount rate)。当\(\gamma \in (0,1)\),式\((1.3)\)可以被计算为:

\[\text{discounted return}=\gamma^3(1+\gamma+\gamma^2+\ldots)=\gamma^3\frac{1}{1-\gamma}.\]

由于以下原因,引入贴现率是有用的。首先,它取消了停止标准,允许无限长的轨迹出现。其次,贴现率可以用来调整对近期或远期回报的重视程度。具体来说,如果\(\gamma\)接近\(0\),那么智能体就会更重视在近期获得的回报。由此产生的政策将是短视的。如果\(\gamma\)接近\(1\),那么智能体会更重视远期的回报,由此产生的政策高瞻远瞩,敢于承担近期内获得负面回报的风险。这些观点将在第\(3.5\)节中加以论证。

上述讨论中没有明确提及的一个重要概念是 回合(episode)。当智能体按照策略与环境互动时,可能会在某些终端状态停止。由此产生的轨迹称为一个回合。如果 环境或政策是随机的,那么当我们从相同的状态出发时,就会得到不同的情节。但是,如果一切都是确定性的,那么从相同的状态出发,我们总会得到相同的事件。

通常假定一个回合是一个有限的轨迹。有插曲的任务称为偶然任务(episodic tasks)。不过,有些任务可能没有结束状态,也就是说,与环境的交互过程永远不会结束。这类任务称为持续性任务(continuing tasks)。事实上,我们可以通过将偶然任务转换为持续任务,以统一的数学方式处理偶然任务和持续任务。为此,我们需要对智能体达到终端状态后的过程进行定义。具体来说,在偶然任务中达到 终端状态后,智能体可以通过以下两种方式继续采取行动:

  • 首先,如果我们将终端状态视为一种特殊状态,我们就可以专门设计其行动空间或状态转换,使智能体永远停留在这种状态。这种状态被称为吸收状态(absorbing states),这意味着智能体只要达到这种状态便永远不会离开。例如,对于目标状态 \(s_9\),我们可以指定\(\mathcal{A}(s_{9})=\{a_{5}\}\)或设置\(\mathcal{A}(s_9)=\{a_1,\ldots,a_5\}\),对于所有 \(i=1,\cdots,5\)\(p(s9|s9,a_i)= 1\)

  • 其次,如果我们将终端状态视为一种正常状态,我们只需将其行动空间设置为与其他状态相同,智能体就可以离开该状态并再次回来。由于每次到达\(s_9\)都能获得\(r=1\)的正奖励,智能体最终会学会永远停留在 \(s_9\),以获得更多奖励。值得注意的是,当一回合无限长且停留在\(s_9\)得到的奖励为正时,必须使用贴现率来计算贴现收益,以避免出现分歧。

在本书中,我们将考虑第二种情况,即目标状态被视为正常的状态,其行动空间为\(\mathcal{A}(s_9)=\{a_1,\cdots,a_5\}\)