[RL Note] 模型和规划

1. 模型

  像时序差分这类基于采样的方法可以从经验中学习,而动态规划算法需要知道环境的运作方式,即环境模型。环境的模型指的是一个智能体可以用来预测环境对其动作的反应的任何事物,例如 MDP 的动态特性 $p(s’,r|s, a)$。通过这样的环境模型,我们可只知道在给定状态下采取某个动作所带来的后果,而不必真的去执行这个动作。

  如果模型是随机的,则会一定概率出现的多种后继状态和收益。如果模型生成对所有可能结果的描述及对应的概率分布,则称之为分布模型。如果模型从所有可能性中通过概率分布采样得到一个确定的结果,则称之为样本模型。例如对投掷硬币进行建模,分布模型给出所有可能的结果的出现概率(如出现正面概率为 $0.5$、出现反面概率为 $0.5$),或者出现任意正反面序列的概率;而样本模型给出一个具体的结果(如投掷一次出现正面),或者一系列投掷结果的随机序列。通过分布模型可以直接计算回报的期望,而采样模型只能通过平均多次采样来估计回报的期望。

  样本模型要根据一系列规则来生成结果,所需的计算量较大。分布模型包含更多信息,但有时会难以得到;如果包含的信息太多,模型体积也会较大。例如投掷五次硬币,样本模型要生成一个取值为 $0$(反面)或 $1$(正面)的随机数,重复 $5$ 次,而分布模型要枚举所有可能出现的序列(一共有 $2^5 = 32$ 种)并给出其出现的概率。通过使用分布模型生成的概率对其结果进行采样,可以得到采样模型。

2. 规划

  通过环境模型,可以生成并改进与环境进行交互的策略,这一过程称为规划。例如通过模拟经验来更新价值函数,并改善策略。

  更一般的,规划可以分为两种不同的方法。状态空间规划在状态空间中寻找最优策略或实现目标的最优决策路径,是一种搜索方法。动作引发状态的转移,价值函数的定义和计算都是基于状态的。方案空间规划将一个方案(即一个具体的决策序列)转换为另一个,在方案空间中进行规划,其价值函数(如果有的话)定义在方案空间中。

  规划的输入是策略和模型,输出是一个改善的策略。规划的一种实现方式是先从模型中对经验进行采样,然后使用这些生成的经验来更新价值函数——虽然这些“经验”并没有真实发生过。这就像人们在进行一项关键选择时,会事先根据自身经验判断各个选项所带来的收益,据此(贪婪地)选择受益最大的选项,而不必总在做出选择并得到后果之后再“幡然醒悟”。

3. 随机表格型 Q 规划

  类似于 Q 学习使用从环境中获得的经验来更新价值函数并改善策略,Q 规划使用从模型中获得的经验来进行类似地价值函数更新和策略改善。

  在随机采样单步表格型 Q 规划中,我们有一个环境动态特性的样本模型,以及一个对相关章台“状态-动作”二元组的采样策略(例如对“状态-动作”二元组进行均匀采样)。首先从所有“状态-动作”二元组集合中随机选择一个,如 $(S, A)$,接着从环境样本模型中获得后继的状态 $S’$ 和收益 $R$,然后进行一次更新

\begin{equation}
Q(S, A) \leftarrow Q(S, A) + \alpha \big[R + \gamma \max_{a}Q(S’, a) – Q(S, A) \big]
\end{equation}

最后改善策略

\begin{equation}
\pi(s) = \underset{a}{\arg\max} Q(s, a)
\end{equation}

  需要注意的是,上面的过程使用的都是模拟的经验,所有的更新都不需要智能体在真实环境中执行相关的动作。在实际问题中,如果执行动作的间隔较长,而学习更新的速度相对较快,那么每次更新之间就会有较大的间隔,此时就可以在这些间隔中穿插规划更新,来更好地改善价值函数和策略。