[RL Notes] Dyna 架构

1. Dyna 架构

  智能体与环境交互获得经验,这些经验一方面可以直接用于学习,例如通过Q 学习的方法,更新价值函数和策略,这称为直接强化学习(direct RL)。直接学习直接与环境交互,不受模型设计偏差的影响。另一方面,这些经验可以用来改进模型,即模型学习,并通过如Q 规划的方法从模型模拟的经验中学习,称为间接强化学习。间接学习可以在有限交互的基础上充分利用已有的经验。

  Dyna 架构将两种方法结合起来,如图 1 所示。

图 1

智能体从环境中得到真实经验,这些真实经验一方面用于直接学习,进行策略和价值函数的更新,另一方面用于模型学习,然后通过模型模拟经验。为了对生成的模拟经验进行控制,需要选择初始状态和动作,这一过程称为搜索控制(search control)。通过模拟经验可以得到规划,进而更新策略和价值函数。

  通过 Dyna 架构,同样的强化学习方法既可以从真实经验中进行学习,又可以从模拟经验中进行规划。

2. Dyna 算法

  使用 Dyna 架构结合 Q 学习和 Q 规划,得到表格型 Dyna-Q 算法的完整步骤如下所示。

表格型 Dyna-Q 算法
对所有的 $s \in \mathcal{S}$ 和 $a \in \mathcal{A}$,初始化 $Q(s, a)$ 和 $Model(s, a)$
无限循环:
  (a) $S \leftarrow$ 当前(非终止)状态
  (b) $A \leftarrow$ $\varepsilon$-贪心$(S, Q)$
  (c) 采取动作 $A$;观察产生的收益 $R$ 以及状态 $S’$
  (d) $Q(S, A) \leftarrow Q(S, A) + \alpha [R + \gamma \max_{a} Q(S’, a) – Q(S, a)]$
  (e) $Model(S, A) \leftarrow R, S’$(假设环境是确定的)
  (f) 重复 $n$ 次循环:
    $S \leftarrow$ 随机选择之前观察到的状态
    $A \leftarrow$ 随机选择之前在状态 $S$ 下采取过的动作 $A$
    $R, S’ \leftarrow Model(S, A)$
    $Q(S, A) \leftarrow Q(S, A) + \alpha[R + \gamma \max_{a} Q(S’, a) – Q(S, a)]$

其中 $Model(s, a)$ 表示基于“动作-状态”二元组 $(s, a)$ 预测的后继状态和收益。步骤 (d) 为直接强化学习,(e) 为模型学习,$f$ 为规划。如果省略步骤 (e) 和 (f),就得到表格型 Q 学习。