💸十七、环境模型预测
2025-2-14
| 2025-4-9
字数 213阅读时长 1 分钟
type
status
password
date
slug
summary
category
URL
tags
icon
使用环境模型模拟真实环境。其中产生的数据称为模拟经验,用产生的数据称为真实数据。
💡
环境模型预测是指采用环境模型产生的模拟经验,训练策略网络/值网络(或选择动作)。
  • 真实环境
    • 状态转移动态
    • 奖励函数
  • 环境模型
    • 状态转移动态
    • 奖励函数

Dyna

Dyna-Q 使用一种叫做 Q-planning 的方法来基于模型生成一些模拟数据,然后用模拟数据和真实数据一起改进策略。Q-planning 每次选取一个曾经访问过的状态,采取一个曾经在该状态下执行过的动作,通过通过环境转移得到转移后的状态以及奖励,并根据这个模拟数据,用 Q-learning 的更新方式来更新动作价值函数。

原理

  • 和环境交互产生真实经验
  • 左边代表直接强化学习
    • 更新值函数和策略
  • 右下角落边代表学习模型
    • 使用真实经验更新模型
  • 右边代表基于模型的规划
    • 基于模型随机采样得到模拟经验:只从以前得到的状态动作对随机采样
    • 使用模拟经验做规划更新值函数和策略
notion image

训练

notion image

改进

Dyna-Q+

将奖励更改为。其中是原来的奖励,为小的权重参数,为某个状态多久未到达过了

打靶法

不用构建智能体的值函数/策略,直接使用环境模型来规划下一个动作的方法。具体的环境模型生成一系列的交互序列,选择回报的最大交互序列对应的动作。
notion image

训练

  • 从当前状态出发。
  • 对于每个候选动作,附上一个长度为的随机动作序列,得到
    • 可以通过此动作序列与环境模型交互出一条轨迹
      • 💡
        表示模拟经验,并非与环境交互产生的真实经验。
    • 基于此采样轨迹,可以对计算得到一个经验性的价值
      • 以上操作对每个候选动作计算一次,选择一个最高经验性价值的动作来执行

        改进

        •  交叉熵方法:维护一个带参数的分布,根据每次采样的结果来更新分布中的参数,使得分布中能获得较高累积奖励的动作序列的概率比较高。

        PETS算法

        在 PETS 中,环境模型采用了集成学习的方法,即会构建多个环境模型,然后用这多个环境模型来进行预测,最后使用 CEM 进行模型预测控制。

        模型结构

        • 环境模型:一个高斯分布,令环境模型为,其参数为,那么基于当前状态动作对,下一个状态的分布可以写为
          • 集成:我们构建个网络框架一样的神经网络,它们的输入都是状态动作对,输出都是下一个状态的高斯分布的均值向量和协方差矩阵。但是它们的参数采用不同的随机初始化方式,并且当每次训练时,会从真实数据中随机采样不同的数据来训练。

          预测

          每一次预测我们会从个模型中挑选一个来进行预测,因此一条轨迹的采样会使用到多个环境模型。最后计算将所有轨迹的回报,并采用最大回报轨迹的第1个动作。
          notion image

          MBPO 算法

          MBPO 算法基于以下两个关键的观察: (1) 随着环境模型的推演步数变长,模型累积的复合误差会快速增加,使得环境模型得出的结果变得很不可靠; (2) 必须要权衡推演步数增加后环境模型增加的误差带来的负面作用与步数增加后使得训练的策略更优的正面作用,二者的权衡决定了推演的步数。
          💡
          MBPO 算法在这两个观察的基础之上,提出只使用环境模型来从之前访问过的真实状态开始进行较短步数的推演,而非从初始状态开始进行完整的推演,并用推演得到的模型数据用来训练模型。
          notion image

          训练

          MBPO 算法会把真实环境样本作为分支推演的起点,使用模型进行一定步数的推演,并用推演得到的模型数据用来训练模型。
          • 初始化策略、环境模型参数、真实环境数据集、模型数据集
          • for 轮数  do
            • 通过环境数据来训练模型参数
            • for 时间步  do
              • 根据策略与环境交互,并将交互的轨迹添加到
              • for 模型推演次数  do
                • 中均匀随机采样一个状态
                • 为初始状态,在环境模型中使用策略进行步的推演,并将生成的轨迹添加到中
              • end for
              • for 梯度更新次数  do
                • 基于模型数据,使用 SAC 来更新策略参数
              • end for
            • end for
          • end for

          高级技巧

          后向聚焦采样

          很多状态值发生变化带动前继状态值发生变化,有的状态值改变很多,有的改变很少;我们可以根据样本状态值的变化程度,动态设置样本的采样率;使状态值变化越大,采样率越高。例如在Q-Learning中,我们可以使用作为样本的采样率。
           
        • 强化学习
        • 十八、目标导向的强化学习十六、多智能体系统
          Loading...