Uncertainty-aware Grounded Action Transformation towards Sim-to-Real Transfer for Traffic Signal Control

根据这段伪代码(Algorithm 1)和描述提供的信息,以下是对动作选择流程的详细分析,以及如何解决策略 $ \pi_\theta $ 和逆向模型 $ h_{\phi-} $ 在动作生成和修正中的作用:


UGAT 算法的核心流程

  1. 预训练策略 $ \pi_\theta $(第1行)

    • 在虚拟环境 $ E_\text{sim} $ 中,用强化学习对策略 $ \pi_\theta $ 进行预训练,进行 $ M $ 次迭代。
    • $ \pi_\theta $ 的预训练确保其在仿真环境中具备初步的动作选择能力。
  2. 数据收集和模型更新(第3-7行)

    • 同时在仿真环境 $ E_\text{sim} $ 和真实环境 $ E_\text{real} $ 中运行策略 $ \pi_\theta $,生成状态转移数据 $ (s_t, a_t, s_{t+1}) $:
      • 仿真环境中的数据存储到 $ D_\text{sim} $。
      • 真实环境中的数据(可能是离线日志)存储到 $ D_\text{real} $。
    • 根据收集的数据,训练或更新前向模型 $ f_{\phi+} $ 和逆向模型 $ h_{\phi-} $。
  3. 动作修正(Action Grounding Step)(第12-19行)

    • 核心问题:如何确定执行的动作是策略 $ \pi_\theta $ 的输出,还是通过逆向模型修正的动作?
      • 根据描述,动作修正依赖于模型的不确定性 $ u_t $。
      • 如果 $ u_t \geq \alpha $,说明当前模型的预测不可靠,直接使用策略 $ \pi_\theta $ 的动作 $ a_t $。
      • 否则,使用逆向模型 $ h_{\phi-} $ 提供的修正动作 $ \hat{a}_t $。
  4. 策略更新(第20行)

    • 策略 $ \pi_\theta $ 使用仿真环境的交互数据,通过强化学习进一步优化。
  5. 不确定性调整(第23行)

    • 根据公式 (8),更新不确定性阈值 $ \alpha $,以适应下一轮的策略训练。

动作选择的具体流程分析

在这个算法中,动作选择的流程如下:

1. 初始动作选择:通过策略 $ \pi_\theta $

  • 第13行:
    • 策略 $ \pi_\theta $ 根据当前状态 $ s_t $ 输出动作 $ a_t \(: \)
      a_t = \pi_\theta(s_t)
      $

2. 动作修正:通过逆向模型 $ h_{\phi-} $

  • 计算修正动作和不确定性

    • 使用 $ g_\phi $,结合当前状态 $ s_t $ 和策略动作 $ a_t $,计算:
      • 修正动作 $ \hat{a}_t $。
      • 动作预测的不确定性 $ u_t $。
    • 根据 Equation (7),不确定性 $ u_t $ 表示当前预测的可靠性。
  • 不确定性检查(第15行):

    • 如果 $ u_t \geq \alpha $,说明模型预测不够可靠:
      • 丢弃修正动作 $ \hat{a}_t $,直接执行原始动作 $ a_t $。
    • 如果 $ u_t < \alpha $,说明修正动作 $ \hat{a}_t $ 是可信的:
      • 使用 $ \hat{a}_t $ 替代原始动作。

3. 动作在仿真环境中的执行

  • 无论是策略输出的动作 $ a_t $,还是修正后的动作 $ \hat{a}t $,最终都会被传递到仿真环境 $ E\text{sim} $,用于更新仿真状态 $ s_{t+1} $。

总结:伪代码和框架图的统一

通过详细分析,我们可以看出伪代码和框架图的关系实际上是协同的,而不是矛盾的:

  1. 策略 $ \pi_\theta $ 是主要的动作生成器

    • 在每一步中,策略 $ \pi_\theta $ 根据状态 $ s_t $ 首先生成动作 $ a_t $。
    • 这符合伪代码第13行的描述。
  2. 逆向模型 $ h_{\phi-} $ 是动作修正器

    • 通过 $ g_\phi $ 计算逆向模型修正动作 $ \hat{a}_t $ 和不确定性 $ u_t $。
    • 如果 $ u_t < \alpha $,修正后的动作 $ \hat{a}_t $ 被执行。
    • 如果 $ u_t \geq \alpha $,则直接执行策略的原始动作 $ a_t $。
    • 这对应框架图中 $ h_{\phi-} $ 的作用。
  3. 两者的最终执行关系

    • 在大多数情况下,策略 $ \pi_\theta $ 输出的动作 $ a_t $ 是主要执行的动作。
    • 逆向模型 $ h_{\phi-} $ 仅在动作需要修正时提供辅助。

算法的作用总结

  1. 策略 $ \pi_\theta $

    • 是主要的动作生成器,直接输出动作 $ a_t $。
  2. 逆向模型 $ h_{\phi-} $

    • 提供动作修正能力,避免策略 $ \pi_\theta $ 在不确定情况下的错误动作执行。
  3. 模型的不确定性量化 $ u_t $

    • 决定是否接受修正动作 $ \hat{a}_t $。
    • $ u_t $ 是连接策略和逆向模型的核心参数。

希望这个解释清晰地消除了你的疑惑!如果还有其他细节需要讨论,可以进一步展开!

posted @ 2024-12-23 17:01  GraphL  阅读(3)  评论(0编辑  收藏  举报