[更新记录]
论文信息:AWAC: Accelerating Online Reinforcement Learning with Offline Datasets
[Code]
本文由UC Berkeley的Sergey Levine团队(一作是Ashvin Nair和Abhishek Gupta)于2020年提出,投稿到ICLR2021上,但最终被拒稿。文章的思路和BERT论文的思路很类似,都是利用数据集进行预训练,然后通过在线交互快速进行微调来学习复杂的行为。Sergey Levine团队在离线强化学习领域成果颇丰,对这个方向感兴趣的可以持续关注。
摘要:在线强化学习方法运用到机器人领域遇到的最大的问题就是探索阶段所需要的成本太高,对于机器人来说,收集数据造价高并且很费时间,收集单个动作训练样本就可能要几分钟的时间。而强化学习中动辄几万、几十万的训练步骤,时间成本太高,而且机器人训练过程中还容易损坏,因此很难将在线RL应用于现实世界中的机器人技术问题,这也是强化学习很难落地应用的一个重大原因。但科研还要继续,遇到问题就要解决问题,借鉴监督学习中的数据集概念,便有了offline Reinforcement Learning,如果我们能够在多个问题或实验之间重用数据,而不是每次都从头开始重复数据收集和学习过程,那么就会减少数据收集的负担。
1、问题及背景
要将RL应用于机器人领域,通常需要设置环境,定义奖励函数,然后与环境交互和探索来解决任务。尽管这最终可能行得通,但是这些在线RL方法非常耗费时间,成本太高,因此很难将在线RL应用于现实世界中的机器人技术问题。
我们可以想象一个专门帮助老人料理家务的机器人:在“上岗”之前,机器人必须先具备大量知识与能力,同时还需要在工作中学习新的知识、不断积累工作经验。后者的学习必须是样本高效的(需要相对较少的训练示例)、可泛化的(适用于特定学习以外的其他情况)、组合性的(能与以往的知识相结合)和增量式的(能够随着时间的推移增加新知识和新能力)。因此很难将其应用到现实世界。
离线RL考虑了从任意非策略数据中学习最佳策略的问题,而无需任何进一步的探索。这样可以消除RL中的数据收集问题,并合并来自其他来源(包括其他机器人或遥控)的数据。但是,先前的数据和要训练的策略通常会出现分布偏移的情况,如果可以借鉴自然语言处理领域中“微调”的概念,先从离线数据集中学习策略,再通过和环境交互来改进策略,使其比单纯从离线数据集中学习到的策略要更好。
2、困难与挑战
2.1 效率
on-policy的方法要比off-policy的方法慢,并且进行微调的时候,不会重用先前的数据,
2.1 Q值过估计问题
在训练阶段,Q估计值不会完全准确,尤其是在推断数据中不存在的动作时。策略更新利用了高估的 Q 值,使估计的 Q 值变得更糟
3、AWAC
3.1 公式
限制两个策略之间的KL散度,计算优势函数的最大期望值
π
k
+
1
=
arg
max
π
∈
Π
E
a
∼
π
(
⋅
∣
s
)
[
A
π
k
(
s
,
a
)
]
s.t.
D
K
L
(
π
(
⋅
∣
s
)
∣
∣
π
β
(
⋅
∣
s
)
)
≤
ϵ
.
\begin{array}{r}\pi_{k+1}=\underset{\pi \in \Pi}{\arg \max } \mathbb{E}_{\mathbf{a} \sim \pi(\cdot \mid \mathbf{s})}\left[A^{\pi_{k}}(\mathbf{s}, \mathbf{a})\right] \\ \text { s.t. } D_{\mathrm{KL}}\left(\pi(\cdot \mid \mathbf{s})|| \pi_{\beta}(\cdot \mid \mathbf{s})\right) \leq \epsilon . \end{array}
πk+1=π∈ΠargmaxEa∼π(⋅∣s)[Aπk(s,a)] s.t. DKL(π(⋅∣s)∣∣πβ(⋅∣s))≤ϵ.
通过拉格朗日乘数法求得多元函数的最值
L
(
π
,
λ
)
=
E
a
∼
π
(
⋅
∣
s
)
[
A
π
k
(
s
,
a
)
]
+
λ
(
ϵ
−
D
K
L
(
π
(
⋅
∣
s
)
∥
π
β
(
⋅
∣
s
)
)
)
\mathcal{L}(\pi, \lambda)=\mathbb{E}_{\mathbf{a} \sim \pi(\cdot \mid \mathbf{s})}\left[A^{\pi_{k}}(\mathbf{s}, \mathbf{a})\right]+\lambda\left(\epsilon-D_{\mathrm{KL}}\left(\pi(\cdot \mid \mathbf{s}) \| \pi_{\beta}(\cdot \mid \mathbf{s})\right)\right)
L(π,λ)=Ea∼π(⋅∣s)[Aπk(s,a)]+λ(ϵ−DKL(π(⋅∣s)∥πβ(⋅∣s)))
最小化当前策略和最佳策略之间的KL散度
arg
min
θ
E
ρ
π
β
(
s
)
[
D
K
L
(
π
∗
(
⋅
∣
s
)
∥
π
θ
(
⋅
∣
s
)
)
]
=
arg
min
θ
E
ρ
π
β
(
s
)
[
E
π
∗
(
⋅
∣
s
)
[
−
log
π
θ
(
⋅
∣
s
)
]
]
\begin{aligned}&\underset{\theta}{\arg \min } \underset{\rho_{\pi_{\beta}}(\mathrm{s})}{\mathbb{E}}\left[D_{\mathrm{KL}}\left(\pi^{*}(\cdot \mid \mathbf{s}) \| \pi_{\theta}(\cdot \mid \mathbf{s})\right)\right]\\ &=\underset{\theta}{\arg \min } \underset{\rho_{\pi_{\beta}}(\mathrm{s})}{\mathbb{E}}\left[\underset{\pi^{*}(\cdot \mid \mathbf{s})}{\mathbb{E}}\left[-\log \pi_{\theta}(\cdot \mid \mathbf{s})\right]\right]\end{aligned}
θargminρπβ(s)E[DKL(π∗(⋅∣s)∥πθ(⋅∣s))]=θargminρπβ(s)E[π∗(⋅∣s)E[−logπθ(⋅∣s)]]
策略更新
θ
k
+
1
=
arg
max
θ
E
s
,
a
∼
β
[
log
π
θ
(
a
∣
s
)
exp
(
1
λ
A
π
k
(
s
,
a
)
)
]
\theta_{k+1}=\underset{\theta}{\arg \max } \underset{\mathbf{s}, \mathbf{a} \sim \beta}{\mathbb{E}}\left[\log \pi_{\theta}(\mathbf{a} \mid \mathbf{s}) \exp \left(\frac{1}{\lambda} A^{\pi_{k}}(\mathbf{s}, \mathbf{a})\right)\right]
θk+1=θargmaxs,a∼βE[logπθ(a∣s)exp(λ1Aπk(s,a))]
公式推导过程和AWR很类似,原作者的回答是openreview
3.2 伪代码
4、实验结果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qs9FD8fQ-1650808799846)(https://bair.berkeley.edu/static/blog/awac/14_fig5.gif)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1OsLTBaD-1650808799847)(https://bair.berkeley.edu/static/blog/awac/15_fig5.gif)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q0jrGuFe-1650808799847)(https://bair.berkeley.edu/static/blog/awac/16_fig5.gif)]
AWAC的训练速度很快,而且精度也很高,
参考文献
[1]. Ashvin Nair, Abhishek Gupta, Murtaza Dalal, Sergey Levine: “AWAC: ACCELERATING ONLINE REINFORCEMENT LEARNING WITH OFFLINE DATASETS”, 2020; arXiv:2006.09359.
[2] AWAC: Accelerating Online Reinforcement Learning with Offline Datasets