Shortcuts

MBPO

概述

Model-based policy optimization (MBPO) 首次在论文 When to Trust Your Model: Model-Based Policy Optimization 中被提出。 MBPO 利用模型生成的短轨迹,并保证每一步的单调提升。 具体来说,MBPO 通过训练模型集合来拟合真实环境的 transition ,并利用它生成从真实环境状态开始的短轨迹来进行策略提升。 对于 RL 策略的选择,MBPO 使用 SAC 作为其 RL 的部分。

这个 repo awesome-model-based-RL 提供了更多 model-based rl 的论文。

核心要点

  1. MBPO 是一种 基于模型(model-based)的 强化学习算法。

  2. MBPO 用 SAC 作为 RL 策略。

  3. MBPO 仅支持 连续动作空间

  4. MBPO 使用了 model-ensemble

关键方程或关键框图

预测模型(Predictive Model)

MBPO 利用高斯神经网络集合(ensemble of gaussian neural network),集合中的每个成员都是:

\[p_\theta(\boldsymbol{s}_{t+1}|\boldsymbol{s}_t,\boldsymbol{a}_t) = N(\mu_\theta(\boldsymbol{s}_t,\boldsymbol{a}_t), \Sigma_\theta(\boldsymbol{s}_t,\boldsymbol{a}_t))\]

模型训练中使用的最大似然损失为:

\[L(\theta)=\mathbb{E}\left[log(p_\theta(\boldsymbol{s}_{t+1}|\boldsymbol{s}_t,\boldsymbol{a}_t))\right]\]

策略优化(Policy Optimization)

策略评估步骤(Policy evaluation step):

\[Q^\pi(\boldsymbol{s}_t,\boldsymbol{a}_t) = \mathbb{E}_\pi[{\sum}_{t=0}^{\infty}\gamma^t r(\boldsymbol{s}_t,\boldsymbol{a}_t)]\]

策略提升步骤(Policy improvement step):

\[\min J_\pi(\phi, D) = \mathbb{E}_{s_t \sim D}[D_{KL}(\pi \| exp\{Q^\pi - V^\pi\})]\]

注意:这个更新要保证 \(Q^{\pi_{new}}(\boldsymbol{s}_t,\boldsymbol{a}_t) \geq Q^{\pi_{old}}(\boldsymbol{s}_t,\boldsymbol{a}_t)\), 可以查看原论文中 Appendix B.2 部分 Lemma2 的相关证明 paper

伪代码

../_images/MBPO.png

注意

MBPO 的首次实现只给出了应用于 SAC 的超参数,并不适用于 DDPG 和 TD3 。

实现

默认配置定义如下:

class ding.policy.mbpolicy.mbsac.MBSACPolicy(cfg: EasyDict, model: Module | None = None, enable_field: List[str] | None = None)[source]
Overview:

基于模型的SAC,带有价值扩展(arXiv: 1803.00101)和关于λ回报的价值梯度(arXiv: 1510.09142)。

https://arxiv.org/pdf/1803.00101.pdf https://arxiv.org/pdf/1510.09142.pdf

Config:

ID

符号

类型

默认值

描述

1

learn._lambda

浮点数

0.8

Lambda for TD-lambda return.

2

``learn.grad_clip`

浮点数

100.0

Max norm of gradients.

3

learn.sample
_state

布尔

Whether to sample states or
transitions from env buffer.

注意

对于其他配置,请参考 ding.policy.sac.SACPolicy。

基准

Benchmark of MBPO algorithm

环境

评估结果

配置链接

霍珀

../_images/sac_mbpo_hopper.png

config_link_p

猎豹

../_images/sac_mbpo_halfcheetah.png

config_link_q

Walker2d

../_images/sac_mbpo_walker2d.png

config_link_s

附注:

  1. 上述结果是通过在三个不同的随机种子(0,1,2)上运行相同的配置获得的。

其他公开的实现

参考文献

  • 迈克尔·詹纳、贾斯汀·傅、马文·张、谢尔盖·莱文:“何时信任你的模型:基于模型的策略优化”,2019年;arXiv:1906.08253。