主要内容

基于模型的策略优化代理

基于模型的策略优化(MBPO)是一种基于模型的、在线的、非策略强化学习算法。有关不同类型的强化学习代理的更多信息,请参见强化学习代理

下图显示了MBPO代理的组件和行为。agent通过环境交互对真实的经验数据进行采样,并利用这些经验训练出一个环境模型。然后,该代理使用环境模型生成的真实经验数据和经验更新其基础代理的策略参数。

MBPO代理与环境交互的示例。

MBPO代理可以在具有以下观察和行动空间的环境中进行训练。

观察太空 行动空间
连续 离散或连续

您可以使用以下非策略代理作为MBPO代理中的基本代理。

行动空间 基地Off-Policy代理
离散
连续

MBPO代理使用一个环境模型,您可以使用rlNeuralNetworkEnvironment对象,该对象包含以下组件。一般来说,这些组件在训练过程中使用深度神经网络学习环境行为。

在培训期间,MBPO代理:

  • 通过训练过渡函数、奖励函数和完成函数,在每一集开始时更新环境模型

  • 使用训练过的环境模型生成样本,并将样本存储在循环经验缓冲区中

  • 使用基本代理中单独的循环体验缓冲区存储来自代理与环境之间交互的真实样本

  • 使用从生成的经验缓冲区和真实经验缓冲区中随机抽样的小批经验更新基本代理的参与者和批评者

训练算法

MBPO代理使用以下训练算法,其中它们定期更新环境模型和基本的off-policy代理。要配置训练算法,请使用rlMBPOAgentOptions对象。

  1. 初始化基本代理的参与者和批评者。

  2. 在环境模型中初始化转换函数、奖励函数和已完成函数。

  3. 在每一期训练开始时:

    1. 对于每个模型训练阶段,执行以下步骤。要指定时代的数量,请使用NumEpochForTrainingModel选择。

      1. 训练转换函数。如果相应的LearnRate优化器选择是0,跳过此步。

        • 用一个半均值损失rlContinuousDeterministicTransitionFunction对象的最大似然损失rlContinuousStochasticTransitionFunction对象。

        • 为了使每个观测通道同等重要,首先计算每个观测通道的损失。然后,将每个损耗除以相应观测规范中元素的数量。

          l o 年代 年代 1 N o 1 o l o 年代 年代 o

        例如,如果环境的观察规范是由[rlNumericSpec ([10.1]) rlNumericSpec ([4 1])],然后No是2,o1是10,o2是4。

      2. 训练奖励功能。如果相应的LearnRate优化器选择是0或者定义一个基本真理的自定义奖励函数,跳过这一步。

        • 用一个半均值损失rlContinuousDeterministicRewardFunction对象的最大似然损失rlContinuousStochasticRewardFunction对象。

      3. 训练is-done函数。如果相应的LearnRate优化器选择是0或者定义了一个基本的自定义已完成函数,请跳过此步骤。

        • 使用加权交叉熵损失函数。一般情况下,终端条件(结束= 1)发生的频率远低于非终末状态(结束= 0).要处理严重不平衡的数据,可以使用下面的权重和损失函数。

          w 0 1 1 1 T w 1 1 1 T l o 年代 年代 1 1 w 0 T ln Y + w 1 1 T ln 1 Y

        在这里,是小批量尺寸,T是目标,和Y这是奖励网络的输出吗这批样品中的第一个。T= 1结束是1,T= 0结束是0。

    2. 使用训练过的环境模型生成样本。下图显示了视界为2的两个滚出轨迹的示例。

      从随机产生的观察开始的实例生成经验。

      1. 控件中定义的水平更新设置的基础上增加水平ModelRolloutOptions对象。

      2. 随机抽样一批NR来自真实经验缓冲的观察。指定NR,可以使用ModelRolloutOptions。NumRollout选择。

      3. 对于每个水平步:

        • 随机将观察结果分成N组,N是转换模型的数量,并将每个组分配给一个转换模型。

        • 对于每一个观察o,生成一个动作一个控件定义的探测策略ModelRolloutOptions。NoiseOptions对象。如果ModelRolloutOptions。NoiseOptions为空时,使用基本代理的探测策略。

        • 对于每个观察-动作对,预测下一个观察o '2使用相应的转换模型。

        • 利用环境模型的奖励函数,预测奖励值r基于观察、行动和下一次观察。

        • 利用环境模型的完成函数,预测终端信号完成基于观察、行动和下一次观察。

        • 增加经验(o一个ro '完成)到生成的经验缓冲区。

        • 对于下一个视界步骤,将每个观测值替换为预测的下一个观测值。

  4. 对于每个训练章节的每一步:

    1. 试用一小批来自真实经验缓冲区和生成经验缓冲区的总经验。指定,可以使用MiniBatchSize选择。

      • 样本N真正的=⌈·R来自真实经验缓冲区的样本。指定R,可以使用RealRatio选择。

      • N模型- - - - - -N真正的生成的经验缓冲区中的样本。

    2. 通过遵循基本代理的更新规则,使用采样的小批数据训练基本代理。有关更多信息,请参见相应的章节TD3DDPG,或DQN训练算法。

提示

  • MBPO代理可以比无模型代理更有效地处理样本,因为模型可以生成大量不同的体验。然而,MBPO代理比无模型代理需要更多的计算时间,因为除了训练基本代理外,它们还必须训练环境模型并生成样本。

  • 为了克服建模的不确定性,最佳实践是使用多个环境转换模型。

  • 如果它们是可用的,最好使用已知的地面真相奖励和已完成函数。

  • 最好是生成大量的轨迹(数以千计或数以万计)。这样做会生成许多样本,这降低了在训练集中多次选择相同样本的可能性。

  • 由于建模误差会累积,因此在生成样本时最好使用较短的视界。较短的视野通常足以产生多样化的经验。

  • 一般来说,使用rlMBPOAgent不适合有图像观测的环境。

  • 在使用SAC基代理时,采取更多的渐变步骤(由NumGradientStepsPerUpdateSAC代理选项)使MBPO代理更有效的采样。但是,这样做会增加计算时间。

  • 中的MBPO实现rlMBPOAgent是基于原始MBPO论文中的算法吗[1]但其差异如下表所示。

    原始论文 rlMBPOAgent
    在每个环境步骤生成样本 在每个训练集的开始生成样本
    训练演员和评论家只使用生成的样本 训练演员和评论家使用真实数据和生成数据
    使用随机环境模型 使用随机或确定性的环境模型
    使用囊代理 是否可以使用SAC、DQN、DDPG和TD3药物

参考文献

詹纳,迈克尔,贾斯汀·傅,马文·张和谢尔盖·莱文。《何时信任你的模型:基于模型的策略优化》在第33届神经信息处理系统国际会议论文集, 12519 - 30。1122.美国纽约红钩区:Curran Associates Inc., 2019。

另请参阅

||

相关的话题

Baidu
map