[RL Notes] Dyna 架构
Contents [show]
1. Dyna 架构
智能体与环境交互获得经验,这些经验一方面可以直接用于学习,例如通过Q 学习的方法,更新价值函数和策略,这称为直接强化学习(direct RL)。直接学习直接与环境交互,不受模型设计偏差的影响。另一方面,这些经验可以用来改进模型,即模型学习,并通过如Q 规划的方法从模型模拟的经验中学习,称为间接强化学习。间接学习可以在有限交互的基础上充分利用已有的经验。
Dyna 架构将两种方法结合起来,如图 1 所示。
智能体从环境中得到真实经验,这些真实经验一方面用于直接学习,进行策略和价值函数的更新,另一方面用于模型学习,然后通过模型模拟经验。为了对生成的模拟经验进行控制,需要选择初始状态和动作,这一过程称为搜索控制(search control)。通过模拟经验可以得到规划,进而更新策略和价值函数。
通过 Dyna 架构,同样的强化学习方法既可以从真实经验中进行学习,又可以从模拟经验中进行规划。
2. Dyna 算法
使用 Dyna 架构结合 Q 学习和 Q 规划,得到表格型 Dyna-Q 算法的完整步骤如下所示。
表格型 Dyna-Q 算法
对所有的 s∈S 和 a∈A,初始化 Q(s,a) 和 Model(s,a)
无限循环:
(a) S← 当前(非终止)状态
(b) A← ε-贪心(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 学习。