MDP形式的优势之一是它可以有效地应用于许多不同时间尺度的任务。人们可以用它来确定决定哪些肌肉收缩以抓住一个物体的任务,哪一架飞机可以方便地到达一个遥远的城市,以及采取哪种工作来过上令人满意的生活。这些任务的时间尺度差异很大,但每个任务都可以有效地表达为MDP,可以通过本书所述的规划或学习过程来解决。所有这些都涉及与世界的互动,按顺序决策,以及为随着时间累积奖励的目标有效地构思,因此任何事都可以表述为MDP。
虽然所有这些任务都可以表述为MDP,但人们可能会认为它们不能被制定为单一的MDP。它们涉及不同的时间尺度,不同的选择和行动概念!例如,在肌肉收缩层次上规划穿越大陆的飞行是不利的。然而,对于其他任务,抓握,投掷飞镖或击打棒球,低水平的肌肉抽搐可能恰到好处。人们无缝地完成所有这些事情而不会在各级之间切换。 MDP框架可以延伸到同时覆盖所有级别吗?
也许可以。一个流行的想法是以很小的时间步在细节层次上形式化MDP,然后使用扩展出的行动方案来实现在更高层次上做规划。要做到这一点,我们需要一个扩展到许多时间步的行动方案的概念,并包含终止的概念。形式化这两个想法的一般方法是策略和依赖于状态的终止函数
,像在GVF(general value function,广义价值函数)中那样。我们将这一对定义为一种广义的行动概念,称为一个选项(option)。在时刻 t 执行选项
是从
获得要采取的动作
,然后在时刻 t + 1 以概率
结束。如果选项不在 t + 1 处终止,则从
中选择
,并且选项在 t + 2 结束的概率为
,依此类推,直到最终终止。将低级动作视为选项的特殊情况是很方便的 - 每个动作对应于一个选项
,其策略选择动作(
表示所有
)和其终止函数为零(对于所有
,
)。选项有效地扩展了行动空间。agent可以选择低级别操作/选项,在一个时间步之后终止,或者选择在终止之前可能执行许多时间步的扩展选项。
选项的设计使它们可以与低级别的操作互换。例如,动作值函数 的概念自然地推广到选项值函数,它将状态和选项作为输入并返回从该状态开始的预期返回,执行该选项以终止,然后遵循该策略,
。我们还可以将策略的概念概括为从选项而不是操作中选择的分层策略,其中选项在被选中时执行直到终止。有了这些想法,本书中的许多算法可以推广到学习近似的选项值函数和分层策略。在最简单的情况下,学习过程从选项启动“跳转”到选项终止,只有在选项终止时才会发生更新。更巧妙的是,可以使用“选项内”学习算法对每个时间步进行更新,这通常需要异策略学习。
也许通过选项思想实现的最重要的概括是第3,4章和第8章中提出的环境模型。传统的动作模型是状态转移概率和在每个状态采取动作的预期即时奖励。如何将传统动作模型推广到选项模型?对于选项,适当的模型又是两部分,一部分对应于执行选项所产生的状态转换,另一部分对应于沿途的预期累积奖励。选项模型的奖励部分,类似于状态 - 行动对(3.5)的预期奖励,是 (17.2)
所有选项和所有状态
,其中
选项根据
终止的随机时间步长。注意整体折扣参数
在该等式中的作用——折扣是根据
,但是选项的终止是根据
。选项模型的状态转换部分更加微妙。模型的这一部分表征了每个可能的结果状态的概率(如(3.4)中所述),但是现在这种状态可能在不同数量的时间步之后产生,每个时间步都必须以不同折扣计算。选项
指定的模型,
可能会开始执行于的每个状态
,
可能会终止于的每个状态
,
(17.3)
注意,由于因子,这个
不再是转移概率,并且不再是
的所有值的总和为1。 (尽管如此,我们继续在
中使用'|'的表示法。)
选项模型的过渡部分的上述定义允许我们制定适用于所有选项的Bellman方程和动态编程算法,包括作为特殊情况的低级动作。例如,分层策略 的状态值的一般Bellman方程是
(17.4)
其中表示状态
中可用的选项集。如果
仅包括低级动作,那么该等式缩减到通常的贝尔曼方程(3.14)的版本,除了
被包括在新的
(17.3)中并且因此不出现。同样,相应的规划算法也没有
。例如,带有类似于(4.10)的选项的值迭代算法是
如果包括每个
中可用的所有低级动作,则该算法收敛于传统的
,从中可以计算最优策略。但是,当在每个状态中仅考虑(
)中的可能选项的子集时,使用选项进行规划特别有用。然后,值迭代将收敛到限制为有限选项集的最佳分层策略。尽管此策略可能不是最佳的,但收敛速度可以快得多,因为考虑的选项较少,并且因为每个选项都可以跳过很多时间步。
要使用选项进行规划,必须给出选项模型,或者学习它们。学习选项模型的一种自然方法是将其制定为GVF(general value function,广义价值函数)的集合(如上一节中所定义),然后使用本书中介绍的方法学习GVF。不难看出如何为选项模型的奖励部分做到这一点。只选择一个GVF的累积量作为奖励(),其策略是选项的策略(
),其终止函数是折扣率乘以选项的终止函数(
)。这样真正的GVF就等于选项模型的奖励部分,
,并且可以使用本书中描述的学习方法来近似它。选项模型的状态转换部分只是稍微复杂一点。需要为选项可能终止的每个状态分配一个GVF。我们不希望这些GVF累积任何东西,除非选项终止,然后只有当终止处于适当的状态时。这可以通过选择GVF的累积量来实现,该累积量预测到状态
的转变为
。 GVF的策略和终止函数的选择与选项模型的奖励部分相同。所以真正的GVF就等于选项的状态转移模型的
部分,
,并且本书的方法可以用来学习它。虽然这些步骤中的每一步看似自然,但将它们全部放在一起(包括函数逼近和其他基本要素)是非常具有挑战性的并且超出了当前的最高水平。