离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BRAC算法原理详解与实现(经验篇)
论文原文:【Yifan Wu, George Tucker, Ofir Nachum: “Behavior Regularized Offline Reinforcement Learning”, 2019; arXiv:1911.11361】
本文是CMU和Google Research一起合作于2019年提出并发表在ICLR会议上,是一篇广泛的研究了BCQ和BEAR两个算法的优劣之后总结性工作,算法全称: Behavior Regularized ActorCritic (BRAC)(有点综述实验的味道,和之前的Deep reinforcement learning that matters很像)
摘要:BCQ算法通过添加VAE和扰动网络使得学习策略尽可能的靠近行为策略,BEAR算法提出来支撑集进一步优化学习策略,两者的相同点是都用了 ensemble Q-value函数,其中 BCQ的 k=2k=2k=2, BEAR 的 k=4k=4k=4,另外他们都使用了regularized learned policy来解决一些un-seen的state-action对(OOD)。
本文作者通过VP(value penalty)和PR(policy regularization 两种方式来提高算法的效率。并在此技术上讨论了诸如regularization weight、Divergence for regularization以及超参数选择等6方面的内容,论文做了大量的实验(一如既往的Google风格),结论是: (1)加权目标Q值集合和自适应正则化系数是不必要的;(2)价值惩罚(VP)的使用略优于策略正则化(PR),而许多可能的分歧(KL,MMD,Wass Dis)可以达到类似的性能。也许在这些离线设置中最重要的区别是是否使用了适当的超参数。
文章目录
- 2. BRAC方法
- 2.1 两种方法
- 2.1.1 value penalty (VP)
- 2.1.2 policy regularization(PR)
- 2.2 四种度量方法
- 2.2.1 Kernel MMD
- 2.2.2 KL-Divergence
- 2.2.3 *f*-divergence
- 2.2.4 Wasserstein Distance(WD)
- 3. 实验过程及分析(很关键的内容)
- 3.1 固定&自适应regularization weights
- 3.2 Ensemble for target Q-values
- 3.3 值函数惩罚或策略正则化
- 3.4 正则化之间的差异
- 3.5 超参数敏感性(Hyperparameter Sensitivity)
- 3.6 BCQ和其他Baseline的比较
- 3.7 模型训练超参数汇总
- 4. 代码
- 5. 拓展阅读
- 参考文献
- OfflineRL推荐阅读
2. BRAC方法
作者首先回顾了BCQ和BEAR两种算法,其中BEAR算法使用了软更新的方式防止过估计(overestimate)问题(这里的 ψj′\psi_{j}^{\prime}ψj′ 表示目标Q函数的软更新集合, k=4k=4k=4)
Qˉ(s′,a′):=0.75⋅minj=1,…,kQψj′(s′,a′)+0.25⋅maxj=1,…,kQψj′(s′,a′)\bar{Q}\left(s^{\prime}, a^{\prime}\right):=0.75 \cdot \min _{j=1, \ldots, k} Q_{\psi_{j}^{\prime}}\left(s^{\prime}, a^{\prime}\right)+0.25 \cdot \max _{j=1, \ldots, k} Q_{\psi_{j}^{\prime}}\left(s^{\prime}, a^{\prime}\right) Qˉ(s′,a′):=0.75⋅j=1,…,kminQψj′(s′,a′)+0.25⋅j=1,…,kmaxQψj′(s′,a′)
另外分析了BCQ更新学习策略的过程如下:
πθ(a∣s):=argmaxai+ξθ(s,ai)Qψ(s,ai+ξθ(s,ai))for ai∼πb(a∣s),i=1,…,N\pi_{\theta}(a \mid s):=\underset{a_{i}+\xi_{\theta}\left(s, a_{i}\right)}{\operatorname{argmax}} Q_{\psi}\left(s, a_{i}+\xi_{\theta}\left(s, a_{i}\right)\right) \quad \text { for } a_{i} \sim \pi_{b}(a \mid s), i=1, \ldots, N πθ(a∣s):=ai+ξθ(s,ai)argmaxQψ(s,ai+ξθ(s,ai)) for ai∼πb(a∣s),i=1,…,N
2.1 两种方法
2.1.1 value penalty (VP)
作者提出了一个对值函数添加惩罚(penalty)项 αD(π(⋅∣st),πb(⋅∣st))\alpha D(\pi(\cdot|s_{t}), \pi_{b}(\cdot|s_{t}))αD(π(⋅∣st),πb(⋅∣st)) 作为对策略的penalty,计算过程如下:
VDπ(s)=∑t=0∞γtEst∼Ptπ(s)[Rπ(st)−αD(π(⋅∣st),πb(⋅∣st))]V_{D}^{\pi}(s)=\sum_{t=0}^{\infty} \gamma^{t} \mathbb{E}_{s_{t} \sim P_{t}^{\pi}(s)}\left[R^{\pi}\left(s_{t}\right)-\alpha D\left(\pi\left(\cdot \mid s_{t}\right), \pi_{b}\left(\cdot \mid s_{t}\right)\right)\right] VDπ(s)=t=0∑∞γtEst∼Ptπ(s)[Rπ(st)−αD(π(⋅∣st),πb(⋅∣st))]
可以清楚看到,和普通的算法的区别就在这个惩罚项上,有那么点baseline的感觉,作者也在这里强调了当使用single-sample estimate的时候等价于SAC算法。
2.1.2 policy regularization(PR)
这部分和VP的计算方式一样,不同点在于公式中的 α\alphaα:
- if α=0\alpha = 0α=0, Q函数更新
- else α≠0\alpha \neq0α=0. policy更新
2.2 四种度量方法
下面四种度量方式都是去计算两个分布之间的距离或者说衡量两个分布是否一致的方法,其中Kernel MMD在BEAR算法中使用过,KL在TRPO、PPO、BCQ等很多算法中使用过,Wasserstein在分布强化学习(A Distributional perspective of Reinforcement Learning)中使用过,此处不在一一详解。
2.2.1 Kernel MMD
MMD2({x1,⋯,xn},{y1,⋯,ym})=1n2∑i,i′k(xi,xi′)−2nm∑i,jk(xi,yj)+1m2∑j,j′k(yj,yj′)\operatorname{MMD}^{2}\left(\left\{x_{1}, \cdots, x_{n}\right\},\left\{y_{1}, \cdots, y_{m}\right\}\right)=\frac{1}{n^{2}} \sum_{i, i^{\prime}} k\left(x_{i}, x_{i^{\prime}}\right)-\frac{2}{n m} \sum_{i, j} k\left(x_{i}, y_{j}\right)+\frac{1}{m^{2}} \sum_{j, j^{\prime}} k\left(y_{j}, y_{j^{\prime}}\right) MMD2({x1,⋯,xn},{y1,⋯,ym})=n21i,i′∑k(xi,xi′)−nm2i,j∑k(xi,yj)+m21j,j′∑k(yj,yj′)
2.2.2 KL-Divergence
DKL(πθ(⋅∣s),πb(⋅∣s))=Ea∼πθ(⋅∣s)[logπθ(a∣s)−logπb(a∣s)]D_{\mathrm{KL}}\left(\pi_{\theta}(\cdot \mid s), \pi_{b}(\cdot \mid s)\right)=\mathbb{E}_{a \sim \pi_{\theta}(\cdot \mid s)}\left[\log \pi_{\theta}(a \mid s)-\log \pi_{b}(a \mid s)\right] DKL(πθ(⋅∣s),πb(⋅∣s))=Ea∼πθ(⋅∣s)[logπθ(a∣s)−logπb(a∣s)]
2.2.3 f-divergence
Df(p,q)=Ex∼p[f(q(x)/p(x))]=maxg:X↦dom(f∗)Ex∼q[g(x)]−Ex∼p[f∗(g(x))]D_{f}(p, q)=\mathbb{E}_{x \sim p}[f(q(x) / p(x))]=\max _{g: \mathcal{X} \mapsto \operatorname{dom}\left(f^{*}\right)} \mathbb{E}_{x \sim q}[g(x)]-\mathbb{E}_{x \sim p}\left[f^{*}(g(x))\right] Df(p,q)=Ex∼p[f(q(x)/p(x))]=g:X↦dom(f∗)maxEx∼q[g(x)]−Ex∼p[f∗(g(x))]
2.2.4 Wasserstein Distance(WD)
W(p,q)=supg:∥g∥L≤1Ex∼p[g(x)]−Ex∼q[g(x)]W(p, q)=\sup _{g:\|g\|_{L} \leq 1} \mathbb{E}_{x \sim p}[g(x)]-\mathbb{E}_{x \sim q}[g(x)] W(p,q)=g:∥g∥L≤1supEx∼p[g(x)]−Ex∼q[g(x)]
3. 实验过程及分析(很关键的内容)
实验之前,我们先说一下实验进行的dataset问题,作者通过添加不同的noise生成5类数据集,分别如下:
3.1 固定&自适应regularization weights
发现: 当BEAR使用 ε\varepsilonε 的推荐值时,α\alphaα 的学习值在训练过程中持续增加,这意味着 πθ\pi_{\theta}πθ 和 πb\pi_{b}πb 之间的MMD约束几乎从不得到满足。表明BEAR有效地执行了具有大α\alphaα 的策略正则化,而不是约束优化。
结论:自适应和固定的 α\alphaα 都比partially trained policy效果要好, 图中的黑色线是行为策略未注入噪音的结果。
3.2 Ensemble for target Q-values
发现:BEAR和BCQ都使用多个学习 QQQ 函数的最小值和最大值的加权混合(而TD3只使用最小的两个值),且BEAR进一步将 QQQ 函数的数量从2增加到4。
结论:
(1) k=1k=1k=1 或者 k=2k=2k=2 的效果一般,只有 k=2k=2k=2 和 k=4k=4k=4 都显着改善了部分训练的策略基线。 一般来说,增加 ensemble 中的 kkk 值会导致更稳定或更好的性能,但需要更多的计算成本。 但发现 k=4k=4k=4 仅比 k=2k=2k=2 提供marginal improvement,因此后文实验用了 k=2k=2k=2
(2) 除了Hopper之外,取混合值比取最小值略好外,其他所有情况取最小值均比混合值好。由于取最小两个Q函数的简单性和强性能,后续的实验中使用了这种方法。(如图3)
3.3 值函数惩罚或策略正则化
实验基础
- MMD policy regularization
- fixed α\alphaα,
- computation of target Q-values based on the minimum of a k=2k=2k=2 ensemble
发现:在4种环境中,虽然这VP和PR都优于部分训练的策略,但发现VP 价值惩罚在大多数情况下的性能略优于PR 策略正则化。我们在其他差异选择中一致地观察到这种优势(完整的比较见附录图8)。
3.4 正则化之间的差异
发现与结论: Kumar认为在BEAR中 kernel MMD优于KL,因为将学习策略分布的支持应该在行为策略的支持范围内,而不是强迫两种分布相似,虽然在概念上是合理的,但作者在实验中没有找到支持这一论点的证据,另外整体来说PR和VP中误差范围并不大,但在hopper环境中除外,其他的来说MMD、KL、f-divergence和WD的差别并不大。
3.5 超参数敏感性(Hyperparameter Sensitivity)
这一块是整个实验的重点部分,首先放出实验的关键参数,比如BCQ中 Φ\PhiΦ , BEAR 中的 ε\varepsilonε , 以及MMD中的 α\alphaα 等参数。
3.6 BCQ和其他Baseline的比较
结论: 作者比较了迄今为止性能最好的算法之一,kl_vp(原始形式的KL散度的值惩罚)、BCQ、BEAR和其他两个基线:vanilla SAC(使用自适应熵正则化)和行为克隆。图6显示了比较。结果表明
(1) vanilla SAC只在HalfCheetah环境中工作,而在其他三种环境中失败。
(2) 行为克隆从来没有学习到比用于收集数据的部分训练的策略更好的策略,尽管BCQ始终学习比部分训练策略更好的策略,但它的性能总是明显比kl_vp差。
结论: BCQ不如明确使用行为正则化(BEAR和kl_vp)好用。
3.7 模型训练超参数汇总
4. 代码
【Code】Behavior Regularized Actor Critic
5. 拓展阅读
[1]. Haoran Xu, Xianyuan Zhan, Jianxiong Li, Honglei Yin: “Offline Reinforcement Learning with Soft Behavior Regularization”, 2021; arXiv:2110.07395.
[2]. Chi Zhang, Sanmukh Rao Kuppannagari, Viktor K Prasanna: “BRAC+: Improved Behavior Regularized Actor Critic for Offline Reinforcement Learning”, 2021; arXiv:2110.00894.
参考文献
[1]. Yifan Wu, George Tucker, Ofir Nachum: “Behavior Regularized Offline Reinforcement Learning”, 2019; arXiv:1911.11361
OfflineRL推荐阅读
离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BEAR算法原理详解与实现
离线强化学习(Offline RL)系列3: (算法篇)策略约束-BCQ算法详解与实现
离线强化学习(Offline RL)系列2: (环境篇)D4RL数据集简介、安装及错误解决
离线强化学习(Offline RL)系列1:离线强化学习原理入门
离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BRAC算法原理详解与实现(经验篇)相关推荐
- 离线强化学习(Offline RL)系列3: (算法篇) IQL(Implicit Q-learning)算法详解与实现
[更新记录] 论文信息:Ilya Kostrikov, Ashvin Nair, Sergey Levine: "Offline Reinforcement Learning with Im ...
- 离线强化学习(Offline RL)系列3: (算法篇) AWAC算法详解与实现
[更新记录] 论文信息:AWAC: Accelerating Online Reinforcement Learning with Offline Datasets [Code] 本文由UC Berk ...
- 离线强化学习(Offline RL)系列3: (算法篇) Onestep 算法详解与实现
[更新记录] 论文信息: David Brandfonbrener, William F. Whitney, Rajesh Ranganath, Joan Bruna: "Offline R ...
- 离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BEAR算法原理详解与实现
论文信息:Stabilizing Off-Policy Q-Learning via Bootstrapping Error Reduction 本文由UC Berkeley的Sergey Levin ...
- 离线强化学习(Offline RL)系列4:(数据集)Offline数据集特征及对离线强化学习算法的影响
[更新信息] 文章信息:Kajetan Schweighofer, Markus Hofmarcher, Marius-Constantin Dinu, Philipp Renz, Angela Bi ...
- 离线强化学习(Offline RL)系列4:(数据集) 经验样本复杂度(Sample Complexity)对模型收敛的影响分析
[更新记录] 文章信息:Samin Yeasar Arnob, Riashat Islam, Doina Precup: "Importance of Empirical Sample Co ...
- 深入剖析Redis系列(三) - Redis集群模式搭建与原理详解
前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...
- Mysql高手系列 - 第20篇:异常捕获及处理详解(实战经验)
Mysql高手系列 - 第20篇:异常捕获及处理详解(实战经验) 参考文章: (1)Mysql高手系列 - 第20篇:异常捕获及处理详解(实战经验) (2)https://www.cnblogs.co ...
- 机器学习算法[9]--集成方法之XGBoost原理详解及XGBoost库实现
机器学习 1. XGBoost 1.1 原理 1.1.1 算法解析 1.1.2 算法流程 1.2 XGBoost库实现 1. XGBoost 1.1 原理 XGBoost(Extreme Gradie ...
最新文章
- 云计算适用于中小企业吗?
- MVC扩展控制器工厂,通过继承DefaultControllerFactory来决定使用哪个接口实现,使用Ninject...
- Openstack 与VMware 不同CPU迁移原理
- Delphi 与 DirectX 之 DelphiX(46): TDIB.DoAntiAlias;
- 网络负载平衡oracle,[Oracle] RAC 之 - 负载均衡深入解析
- 第 5-4 课:ThreadLocal 详解 + 面试题
- UI干货素材模板|从做好网页头部内容设计开始!
- ToolBar组件的使用
- html 元素换行_超文本标记语言的段落与换行显示!
- 零基础学python-看完这篇,零基础也知道怎么学Python
- 腾讯前端面试题:一言不合就写个五子棋
- java super.参数,Java super和this的对比及使用
- 估算CSDN约有340万用户开通了博客
- windows 安装 dnw、fastboot 驱动的时候遇到问题(数字签名)
- 网盘多线程提速下载利器:JDownloader 2 for Mac
- Tasking编译器开发TC275(Tricore)中使用自定义段
- 计算机与单片机串口程序,51单片机与电脑串口通信,并用数码管显示的两种方法...
- 市场竞争力法则:以小博大,虽败犹荣
- 2021年中国旅游城市星级饭店总体发展概况分析:营业收入总额874.51亿元[图]
- 鸢尾花分类——神经网络详解
热门文章
- 洛阳理工Linux实验报告,谁来给我抄实验报告啊!这一张又一张写得。。。。
- uni-app最新获取微信头像方法getUserProfile?
- HBase Flush 解析
- mc服务器怎么修改浮空字,我的世界浮空字体怎么使用 浮空字体使用攻略
- Zend Studio 9.0.3正式版注册破解
- 研究表明:手机移动数据可用于预测犯罪行为
- PHP点歌插件,此刻直播助手 弹幕点歌插件使用教程
- 2.7——golang数据类型【字符串类型】
- 下载 | 数学分析八讲(修订版)
- spark xgboost 特征重要性分析 gain、cover、freq