【离线学习(Offline Learning)算法TD3-BC论文理解:A Minimalist Approach to Offline Reinforcement Learning

  • 标题:A Minimalist Approach to Offline Reinforcement Learning

  • 链接:https://arxiv.org/pdf/2106.06860.pdf

  • 发表于: NeurIPS 2021

  • 源码仓库:https://github.com/sfujim/TD3_BC

  • 相关领域:强化学习 深度学习 离线学习 策略优化


    [TOC]

1.当前领域面临的问题

离线学习(Offline Learning)与数据集交互,不与环境交互。除开数据集本身质量不谈,无法与环境交互就导致一个很关键的问题——由于策略 π \pi π 是从头开始学习的,那么在使用Bellman最优方程进行 value estimate 时,原本求期望的操作变成了对数据集存储不同状态转移的结果取平均1,这导致策略评估中,不在数据集的(s,a)被低估,在数据集的(s,a)被高估,由于无法和环境交互,值函数的误差不能被纠正,策略往往就会走向错误的方向。

2.作者提出的方法

本文在原有的TD3基础上,仅仅改动一点actor学习目标,相比于先前增加计算量和引入多余超参数的方法,在计算量与TD3持平的水平下,达到了最好的效果。

原本的TD3在策略网络更新的学习目标如下:
π = a r g m a x E ( s , a ) ∼ D [ Q ( s , π ( s ) ) ] \pi = argmax \mathbb{E_{(s,a)\thicksim\mathfrak{D}}}[Q(s,\pi{(s)})] π=argmaxE(s,a)D[Q(s,π(s))]
TD3-BC在此基础上做了如下改进:
π = a r g m a x E ( s , a ) ∼ D [ λ Q ( s , π ( s ) ) − ( π ( s ) − a ) 2 ] \pi = argmax \mathbb{E_{(s,a)\thicksim\mathfrak{D}}}[\lambda Q(s,\pi{(s)})-(\pi(s)-a)^2] π=argmaxE(s,a)D[λQ(s,π(s))(π(s)a)2]

  • 引入正则化项:TD3-BC的思路是,如果当前状态 s s s在数据集中,那么根据策略 π b \pi_b πb选择的动作 a a a构成的元组(s,a)其 s s s一定在数据集中,那么训练策略 π \pi π和行为策略 π b \pi_b πb只要保证在一定距离之内,那么生成的元组也在数据集中有较大的概率密度,因此,基于行为克隆的思路,TD3-BC使用L2损失约束策略 π ( s ) \pi(s) π(s)选择的动作 a π a_{\pi} aπ与数据集中动作 a a a的距离
  • 加入权重:新引入一项BC损失,BC损失的影响程度需要权重约束,很好理解。值得思考的是——权重 λ \lambda λ的取值有一定的讲究,由于正则化项为L2损失约束,在经过归一化处理后实际上损失大小是很小的,但是前项Q的规模很大程度影响Q的大小,因此我们引入一个基于batchsize取绝对值平均的方式保证Q的大小

λ = α 1 N ∑ s i , a i ∣ Q ( s i , a i ) ∣ \lambda = \frac{\alpha}{\frac{1}{N}\sum_{s_i,a_i}|Q(s_i,a_i)|} λ=N1si,aiQ(si,ai)α

BC(behavior cloning)

行为克隆是模仿学习中的一种主流算法,另一种算法为对抗式模仿学习,模仿学习最初为了使得智能体从专家数据集中学习决策,让智能体像人做到的一些任务而免去复杂的条件约束。作为一种使用专家数据集的训练方式,和离线学习类似,都有可能出现初始策略意外走向数据集中不存在的(s,a)导致策略越走越偏。行为克隆算法可以看作最小化策略动作差异,期望策略能从专家示例中很好的恢复专家的决策行为,使得决策者的值函数比较大2,使得策略尽量不走偏专家策略。

3.相关实验以及解读

  • 实验数据集:实验数据集采用D4RL-mujoco进行实验,D4RL是目前强化学习涵盖数据集非常丰富的一个数据集3,安装也很方便。为后续复现有一定帮助。

重点一:快,和TD3几乎一样的快

重点2:在mujoco提供的三种情景下的五类数据集上,效果都优于前面三种Offline 模型
在这里插入图片描述

4.源码分析与实战

作者给出了GITHUB仓库,链接在顶部,项目文件非常简洁,一个用于训练文章主件main,一个封装TD3-BC模型结构,一个用于数据处理的utils。

def Train(self, replaybuffer, batchsize):
    ...
lmbda = self.alpha/Q.abs().mean().detach()
actor_loss = -lmbda * Q.mean() + F.mse_loss(pi, action) 

只在TD3-BC.py改了这两行,对应的就是上文的两个公式

5.我的复现及尝试

鸽了…

6.讨论思考与分析

  • 本文将模仿学习中的行为克隆的思路挪到了离线学习里,仅仅通过约束策略选取的范围就控制了整个策略网络的方向
  • 行为克隆这种思路存在复合误差的问题,能否将用于纠正这种误差的Online Learning方法DAgger迁移到Offline learning中?

7.参考文献


  1. 图书《强化学习:前沿算法与应用》白辰甲著. P.172 策略约束的离线学习 ↩︎

  2. 模仿学习(一)–行为克隆 - 知乎 (zhihu.com) ↩︎

  3. 离线强化学习(Offline RL)系列2: (环境篇)D4RL数据集简介、安装及错误解决 - 知乎 (zhihu.com) ↩︎

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值