-
标题: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)|} λ=N1∑si,ai∣Q(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.参考文献
图书《强化学习:前沿算法与应用》白辰甲著. P.172 策略约束的离线学习 ↩︎
离线强化学习(Offline RL)系列2: (环境篇)D4RL数据集简介、安装及错误解决 - 知乎 (zhihu.com) ↩︎