Axi's Blog

Back

RL 学习笔记(9):集成规划与学习Blur image

本内容暂时为 PPT 转述,后续会进行修编

第 11 讲:集成规划与学习#

引言与回顾 (Page 2-3)#

  • 背景: 前面我们学习了
    • 无模型学习 (Model-Free Learning) 方法:如蒙特卡洛 (MC)、时序差分 (TD) (Sarsa, Q-learning) 以及 n 步自举法。这些方法直接从与环境交互产生的真实经验中学习价值函数或策略,不试图显式地学习环境的模型。它们的核心是回溯 (Backup) 操作,利用后续奖励和价值估计来更新当前状态或状态-动作对的价值。
    • 基于模型 (Model-Based) 的方法:如动态规划 (Dynamic Programming, DP)。这些方法需要一个环境模型(状态转移概率 P\mathcal{P} 和奖励函数 R\mathcal{R})。基于模型,可以通过规划 (Planning) 来计算价值函数或策略,例如通过价值迭代或策略迭代,遍历状态空间进行回溯计算。
  • 目标 (Page 2):如何将这两种方法结合起来,发挥各自的优势?即如何在学习过程中利用模型进行规划,加速学习过程或提高数据利用率?
  • 模型与规划定义 (Page 3)
    • 模型 (Model):对环境工作方式的一种表示,通常包括状态转移动态和奖励机制。
    • 规划 (Planning):利用模型来生成模拟经验 (Simulated Experience),并使用这些模拟经验通过回溯等方式来改进价值函数或策略的过程。这与无模型学习使用真实经验进行回溯是类似的,但经验来源不同。

环境模型 (Environment Model) (Page 4-12)#

  • 模型组成 (Page 4):一个模型通常需要描述两部分:
    • 状态转移模型 (State Transition Model):预测采取动作 aa 后从状态 ss 转移到下一个状态 ss' 的概率。 Pssa=P[St+1=sSt=s,At=a]\mathcal{P}_{ss'}^{a} = \mathbb{P}[S_{t+1}=s' | S_t=s, A_t=a]
    • 奖励模型 (Reward Model):预测在状态 ss 采取动作 aa 后获得的期望立即奖励。 Rsa=E[Rt+1St=s,At=a]\mathcal{R}_{s}^{a} = \mathbb{E}[R_{t+1} | S_t=s, A_t=a]
  • 参数化模型 (Page 5)
    • 模型 M\mathcal{M} 通常由一组参数 η\eta 定义,表示为 Mη=Pη,Rη\mathcal{M}*{\eta} = \langle \mathcal{P}*{\eta}, \mathcal{R}*{\eta} \rangle,其中 PηP\mathcal{P}*{\eta} \approx \mathcal{P}RηR\mathcal{R}_{\eta} \approx \mathcal{R} 是对真实环境动态和奖励的近似。
    • 模型可以用来预测(或采样)下一个状态和奖励: St+1Pη(St,At)S_{t+1} \sim \mathcal{P}_{\eta}(\cdot | S_t, A_t) Rt+1Rη(St,At)R_{t+1} \sim \mathcal{R}_{\eta}(\cdot | S_t, A_t) (注意:Rη\mathcal{R}_{\eta} 通常输出期望奖励,或者是一个奖励分布)
  • 模型学习 (Model Learning) (Page 6)
    • 目标:从智能体与环境交互获得的真实经验数据 S1,A1,R2,,ST{S_1, A_1, R_2, \dots, S_T} 中学习(估计)模型参数 η\eta
    • 这本质上是一个监督学习问题:
      • 输入:状态-动作对 (St,At)(S_t, A_t)
      • 输出/目标:下一个奖励和下一个状态 (Rt+1,St+1)(R_{t+1}, S_{t+1})
    • 可以通过选择合适的损失函数(如均方误差、KL散度)并最小化经验损失来找到最优参数 η\eta
  • 模型的类型 (Page 7-10)
    • 期望模型 (Expectation Model) (Page 7):模型直接输出期望的下一个状态(或状态特征)和期望的奖励。例如,E[St+1]\mathbb{E}[S_{t+1}]E[Rt+1]\mathbb{E}[R_{t+1}]
      • 优点:简单。对于线性模型和线性价值函数,使用期望模型进行多步预测等于预测的期望值 (Page 7 公式证明)。
      • 缺点:丢失了环境的随机性信息,可能导致预测偏差(例如,无法预测到低概率但影响重大的事件,如掉入陷阱)。
    • 样本模型 / 生成模型 (Sample/Generative Model) (Page 8):模型可以生成下一个状态和奖励的样本,而不仅仅是期望值。它能反映环境的随机性。 R^t+1,S^t+1=model(St,At,ω)\hat{R}_{t+1}, \hat{S}_{t+1} = \text{model}(S_t, A_t, \omega) 其中 ω\omega 代表随机性来源。
      • 优点:更真实地反映环境动态。
      • 缺点:引入了额外的采样噪声。
    • 分布模型 (Distribution Model) (Page 9):模型显式地表示整个转移概率分布 P(ss,a)\mathcal{P}(s'|s, a) 和奖励分布 P(rs,a)\mathcal{P}(r|s, a)
      • 优点:信息最完整。
      • 缺点:学习和使用(尤其是在规划中)计算复杂度高,因为需要处理状态和奖励的所有可能性(分支问题)。
    • 具体模型实现 (Page 10):查找表模型、线性模型、高斯过程模型、深度神经网络模型等。
  • 查找表模型学习 (Lookup Table Model Learning) (Page 11)
    • 适用于离散的状态和动作空间。
    • 最简单的模型,直接存储观察到的转移和奖励。
    • 学习过程:记录每个状态-动作对 (s,a)(s, a) 被访问的次数 N(s,a)N(s, a),以及从 (s,a)(s, a) 转移到 ss' 的次数 N(s,a,s)N(s, a, s') 和对应的奖励总和。
    • 估计概率和奖励P^ssa=N(s,a,s)N(s,a)\hat{\mathcal{P}}_{ss'}^{a} = \frac{N(s, a, s')}{N(s, a)} R^sa=Rewards after (s,a)N(s,a)\hat{\mathcal{R}}_{s}^{a} = \frac{\sum \text{Rewards after } (s, a)}{N(s, a)} (Page 11 的公式是用指示函数写的,效果相同)
    • 作为样本模型使用:存储所有经验元组 (St,At,Rt+1,St+1)(S_t, A_t, R_{t+1}, S_{t+1})。当需要从 (s,a)(s, a) 进行模拟转移时,从所有以 (s,a)(s, a) 开始的存储元组中随机抽取一个,将其中的 (Rt+1,St+1)(R_{t+1}, S_{t+1}) 作为模拟结果。
  • 示例:查找表模型 (Page 12)
    • 展示了一个简单的两状态(A, B)环境和一些幕(episode)的经验。
    • 根据经验数据构建了一个查找表(样本)模型。例如,从状态 B 出发,有 6 次经验导致 R=1,S=BR=1, S'=B,有 2 次经验导致 R=0,S=AR=0, S'=A。因此,模型会以 75% 的概率模拟出 (R=1,S=B)(R=1, S'=B),以 25% 的概率模拟出 (R=0,S=A)(R=0, S'=A)

规划 (Planning) (Page 13, 15-18)#

  • 基本概念 (Page 13)
    • 给定一个(学习到的)模型 Mη=Pη,Rη\mathcal{M}*{\eta} = \langle \mathcal{P}*{\eta}, \mathcal{R}_{\eta} \rangle
    • 规划的目标是利用这个模型来求解对应的(近似)MDP S,A,Pη,Rη\langle \mathcal{S}, \mathcal{A}, \mathcal{P}*{\eta}, \mathcal{R}*{\eta} \rangle 的最优价值函数或策略。
    • 可以使用各种规划算法,如价值迭代、策略迭代、树搜索等。
  • 基于采样的规划 (Sample-Based Planning) (Page 15)
    • 一种非常通用且强大的规划方法,特别是与学习到的模型结合时。
    • 核心思想:不直接使用模型的概率分布 Pη\mathcal{P}*{\eta}Rη\mathcal{R}*{\eta}(这可能很复杂或难以获得),而是仅使用模型来生成模拟的经验样本St+1Pη(St,At)S_{t+1} \sim \mathcal{P}_{\eta}(\cdot | S_t, A_t) Rt+1Rη(St,At)R_{t+1} \sim \mathcal{R}_{\eta}(\cdot | S_t, A_t)
    • 然后,将任何无模型强化学习算法(如 MC 控制、Sarsa、Q-learning)应用于这些模拟的经验样本上,就如同这些样本来自真实环境一样。
    • 优点:避免了处理复杂概率模型的计算,可以直接复用高效的无模型 RL 算法。
  • 示例:基于采样的规划 (Page 16, 18)
    • 继续使用 Page 12 的例子。基于学习到的查找表模型,生成模拟的经验序列,例如 A,0,B,1, B,1,B,1, B,0,A,0, A,0,B,1, …
    • 将这些模拟序列输入到 MC 学习算法中,可以估计出状态价值 V(A)V(A)V(B)V(B)
  • 随机采样单步表格型 Q 规划 (Random-sample one-step tabular Q-planning) (Page 17)
    • 一个具体的基于采样的规划算法。
    • 算法流程:
      无限循环:
        1. 随机选择一个状态 S (通常是从之前访问过的状态中选取)
           随机选择一个动作 A (通常是从在状态 S 下尝试过的动作中选取)
        2. 查询模型 Model(S, A),获得一个**模拟**的下一奖励 R 和下一状态 S'
        3. 应用一步表格型 Q-learning 更新:
           Q(S, A) <- Q(S, A) + alpha * [R + gamma * max_a Q(S', a) - Q(S, A)]
      plaintext
    • 特点:它在模型产生的模拟数据上执行 Q-learning 更新,可以看作是在“思考”或“排练”中学习。

集成规划与学习:Dyna 架构 (Integrating Planning and Learning: The Dyna Architecture) (Page 19-32)#

  • 动机 (Page 19, 22):将直接从真实经验中学习(Direct RL)和利用模型进行规划(Planning / Indirect RL)结合起来。
  • 经验来源 (Page 19)
    • 真实经验:来自与真实环境的交互。
    • 模拟经验:由学习到的模型生成。
  • Dyna 架构思想 (Page 20, 22, 23, 26)
    • 智能体与环境交互,产生真实经验
    • 真实经验同时用于两个目的:
      1. 直接学习 (Direct RL):直接更新价值函数或策略(例如,通过 Q-learning 更新)。
      2. 模型学习 (Model Learning):更新环境模型 Mη\mathcal{M}_{\eta}
    • 在与环境交互的间隙(或者说,每一步真实交互之后),执行若干步规划 (Planning)
      • 使用当前学习到的模型 Mη\mathcal{M}_{\eta} 生成模拟经验
      • 使用模拟经验来更新价值函数或策略(例如,通过 Q-planning 更新)。
  • Dyna-Q 算法 (Page 24-25)
    • 一个具体的实现 Dyna 架构的算法,结合了 Q-learning 和 Q-planning。
    • 算法流程
      初始化 Q(s, a) 和 Model(s, a) 对所有 s in S, a in A(s)
      
      无限循环:
        (a) S <- 当前 (非终止) 状态
        (b) A <- epsilon-greedy(S, Q)  // 根据当前 Q 值选择真实动作
        (c) 执行动作 A;观察产生的真实奖励 R 和真实下一状态 S'
        (d) // 直接强化学习更新 (使用真实经验)
            Q(S, A) <- Q(S, A) + alpha * [R + gamma * max_a Q(S', a) - Q(S, A)]
        (e) // 模型学习 (假设确定性环境,直接存储)
            Model(S, A) <- R, S'
        (f) // 规划步骤 (重复 n 次)
            循环 n 次:
              // 从过往经验中随机选取状态和动作
              S_plan <- 随机选择一个之前观察到的状态
              A_plan <- 随机选择一个之前在 S_plan 状态下采取过的动作
              // 查询模型获取模拟经验
              R_plan, S'_plan <- Model(S_plan, A_plan)
              // 使用模拟经验进行 Q-learning 更新
              Q(S_plan, A_plan) <- Q(S_plan, A_plan) + alpha * [R_plan + gamma * max_a Q(S'_plan, a) - Q(S_plan, A_plan)]
      plaintext
    • 参数 nn 控制了每一步真实交互后执行的规划步数。n=0n=0 时,算法退化为简单的表格型 Q-learning(只有直接 RL)。n0n \> 0 时,算法在学习的同时进行规划。
  • Dyna-Q 效果示例 (迷宫问题) (Page 27-28)
    • 在一个简单的迷宫环境中,Dyna-Q (n=50n=50) 相比于没有规划的 Q-learning (n=0n=0),学习速度显著加快。
    • 原因:规划步骤利用模型将单步真实经验的“信息”传播到价值函数的其他部分,提高了数据利用效率。例如,发现一条捷径后,规划步骤可以快速更新通往捷径入口的路径上的 Q 值。
  • 模型不准确的问题 (Page 29)
    • Dyna 类算法的性能依赖于模型的准确性。如果模型学习得不准确或环境发生变化,基于错误模型的规划可能会计算出次优策略,甚至可能比纯粹的无模型方法更差。
  • Dyna-Q+:处理模型不准确性 (Page 30-32)
    • 是对 Dyna-Q 的改进,旨在处理环境变化或模型不准确的情况。
    • 核心思想:在规划步骤中加入探索奖励 (exploration bonus),鼓励智能体通过模拟来探索那些长时间未在真实环境中尝试的状态-动作对。
    • 机制 (Page 31)
      • 记录每个状态-动作对 (s,a)(s, a) 自上次在真实环境中被访问以来经过的时间步数 τ\tau
      • 在规划步骤中,从模型获取模拟奖励 RR 时,增加一个与 τ\tau 相关的奖励 bonus: 规划奖励=R+κτ\text{规划奖励} = R + \kappa \sqrt{\tau} 其中 κ\kappa 是一个小的正常数。τ\tau 越大,表示该 (s,a)(s, a) 越久没被真实访问过,模型可能越不准确,探索奖励就越大。
    • 效果 (Page 30, 32)
      • 当环境发生变化时(例如迷宫中开辟了新的、更短的路径),Dyna-Q 可能因为模型仍然基于旧环境而无法找到新路径。
      • Dyna-Q+ 的规划步骤会因为新路径上的状态-动作对具有较大的 τ\tau 值(从未或很久未被访问)而获得探索奖励,从而引导规划过程“探索”这些区域,更快地更新 Q 值以适应环境变化,找到新的最优路径。

总结 (涉及 Page 2, 14, 22, 26, 29 等)#

  • 本讲探讨了模型学习规划的概念,以及如何将它们与无模型学习方法集成起来。
  • 模型是对环境动态的表示,可以通过监督学习从经验中获得。
  • 规划是利用模型生成模拟经验来改进策略或价值函数的过程。基于采样的规划是一种通用方法,它将无模型 RL 算法应用于模拟数据。
  • Dyna 架构是一种经典的集成框架,它使用真实经验进行直接 RL 更新和模型学习,同时使用学习到的模型进行多步规划更新。
  • Dyna-Q 是 Dyna 架构的一个具体算法,结合了 Q-learning 和 Q-planning。
  • Dyna-Q+ 通过在规划中加入探索奖励,提高了算法在变化环境或模型不准确情况下的适应性。
  • 集成规划与学习旨在更有效地利用经验数据,通常能加速学习过程,尤其是在模型相对容易学习或数据获取成本高昂的情况下。
RL 学习笔记(9):集成规划与学习
https://axi404.top/blog/rl-note-9
Author 阿汐
Published at April 16, 2025
Comment seems to stuck. Try to refresh?✨