Skip to content

学习与规划

Dyna-Q 的精妙之处在于,它用同一个公式处理了两种截然不同的信息源:

  • 学习(Learning) :使用来自真实环境的采样 \((s, a, r, s')\) 更新 Q 表。
  • 规划(Planning) :使用来自模型生成的虚拟采样 \((s, a, r, s')\) 更新 Q 表。

由于这两者在表格法下共用同一个 TD 更新公式:

\[ Q(s, a) \leftarrow Q(s, a) + \alpha [r + \gamma \max_{a'} Q(s', a') - Q(s, a)] \]

教材通过 Dyna-Q 告诉读者:规划本质上就是一种利用“虚拟经验”进行的学习。 这种统一性在表格法章节下展示得最为清晰。

Dyna-Q 并不是一个“全新的算法”,而是一个 架构(Architecture)

  • 它在 Model-free(无模型) 的基础上(比如 Q-learning),套上了一个 Model-based(基于模型) 的外壳。
  • 在表格法这一章讲它,是为了展示如何通过引入“偏差(模型估计)”来降低“方差(采样波动)”,从而提升样本效率。

核心概念

Trade-off between Model-based and Model-free

判定一个算法是否为 Model-free 的唯一标准是: 它是否通过与真实环境的交互采样(Sampling)来获取信息,而不是依赖环境模型(如转移概率 \(P\))进行脑内规划 。我们之前提到的MC, TD(Q-learning和SARSA)都是model-based的:

  • MC 的做法 :通过策略与环境完整交互,记录下每一步真实的奖励,直到回合结束。它不关心环境是怎么跳转的,它只关心真实发生的奖励序列。
  • TD 的做法 :虽然它只走一步就更新,但那一步的奖励 \(R_t\) 和下一个状态 \(S_{t+1}\) 都是从真实环境中“踩”出来的。它不需要预知“我做这个动作会有多大概率去哪”,它只看实际去了哪。

基于模型(Model-based)与无模型(Model-free)算法之间的权衡(Trade-off)主要体现在 样本复杂度 (学习速度)与 期望回报 (最终性能)之间。

样本复杂度 (Sample Complexity) —— “学得快不快”

  • Model-based 优势 :由于拥有环境模型,智能体可以额外与模型进行模拟交互。这种“脑内演练”极大减少了对真实环境样本的需求,因此通常具有 更低的样本复杂度
  • Model-free 劣势 :智能体完全依赖与真实环境的交互采样。由于缺乏模型辅助,它需要海量的真实数据来抵消随机性带来的高方差,因此 样本复杂度较高

期望回报 (Expected Return) —— “学得好不好”

  • Model-free 优势 :它直接利用真实环境的反馈进行更新,不依赖任何主观猜测。虽然慢,但收敛后的策略往往最接近真实最优,通常具有 更高的期望回报
  • Model-based 劣势 :所建立的环境模型可能并不准确(存在模型偏差),不能完全代替真实环境。如果模型本身有误,智能体在“假环境”里学到的最优策略在真环境中表现会变差,因此其 期望回报可能不如无模型算法

总结如下:

维度 无模型 (Model-free) 基于模型 (Model-based)
交互对象 仅限真实环境 真实环境 + 环境模型
样本需求量 大(样本复杂度高) 小(样本复杂度低)
策略质量 高(无偏,上限更高) 可能较低(受限于模型准确度)
计算开销 较低(直接更新价值函数) 较高(需要学习和维护模型)

Dyna-Q

Dyna-Q 是由强化学习鼻祖 Richard Sutton 提出的一种架构。它的核心逻辑可以用一句话概括:在真实环境中采样的同时,顺便学一个环境模型,然后用这个模型进行“白日梦”式的模拟训练。

它的工作流程:

  1. 直接强化学习 (Direct RL) :像普通的 Q-learning 一样,在真实环境里走一步,拿一个真实奖励 \(R\),更新一次 \(Q\) 表。
  2. 模型学习 (Model Learning) :根据刚才那一步的真实经历,更新智能体对世界的理解。比如记住:“在状态 \(s\) 做动作 \(a\) 会变成 \(s'\),并拿到奖励 \(R\)”。
  3. 规划 (Planning) :这是 Dyna-Q 的灵魂。在空闲时间,智能体从记忆中随机抽取一些过去经历过的状态,利用刚才学到的“模型”进行 模拟交互 ,再次更新 \(Q\) 表。

它的更新目标依然是熟悉的 TD 形式:

\[ Q(s, a) \leftarrow Q(s, a) + \alpha [R + \gamma \max_{a'} Q(s', a') - Q(s, a)] \]

只是其中的 \((s, a, R, s')\) 既可以来自 真实采样 ,也可以来自 模型模拟


虽然 Dyna-Q 在理论上很完美,但在现代深度学习(Deep RL)时代,它遇到了几个尴尬的瓶颈:

  1. 它是“表格时代”的产物。Dyna-Q 最初是为 离散、有限状态 (比如迷宫网格)设计的。在简单的格子世界里,建立模型(存个表)非常容易。但在现代的复杂任务(如 Atari 游戏或机器人控制)中,状态是无限连续的,建立一个准确的环境模型变得极其困难。
  2. 模型偏差 (Model Bias) 的致命打击。正如你之前看到的 Trade-off 逻辑,环境模型往往不准确。在 Dyna-Q 中,如果模型学歪了,智能体在“白日梦(Planning)”阶段就会在错误的道路上越走越远。在深度学习中,这种偏差会被神经网络无限放大,导致策略崩溃。
  3. 采样效率与计算开销的博弈。现代的 Model-free 算法(如 PPO、SAC)通过大量并行采样已经足够强大。大家发现,与其花巨大的算力去练一个可能出错的模型(Dyna-Q 路子),不如直接多开几个游戏窗口去真刀真枪地练(Model-free 路子)。

不过Dyna-Q并没有消失,而是进化成了更加高级的形式:

  • MBPO (Model-Based Policy Optimization) :可以看作是深度学习版的 Dyna-Q。
  • World Models (世界模型) :不仅学模型,还用模型生成梦境。
  • DreamerV3 :目前最强的模型驱动算法之一,其核心思想其实就是 Dyna-Q 的现代加强版。

评论 #