离线强化学习(Offline RL)系列3: (算法篇) CQL(Conservative Q-Learning)算法详解与实现

[更新记录]

论文信息:Conservative Q-Learning for Offline Reinforcement Learning]
[Code]

本文由UC Berkeley的Sergey Levine团队(一作是Aviral Kumar)于2020年提出,并发表在NIPS2020会议上。论文的主要思想是在 Q Q Q值基础上增加一个regularizer,学习一个保守的Q函数,作者从理论上证明了CQL可以产生一个当前策略的真实值下界,并且是可以进行策略评估和策略提升的过程。从代码的角度上来说,本文的regularizer只需要20行代码即可实现,大幅提升了实验结果。同时作者也全部opensource了代码,非常推荐研究。

摘要:在CQL算法出来之前,离线强化学习中对于分布偏移问题的解决思路是将待优化策略的动作选择限制在离线数据集的动作分布上,从而避免分布外的动作出现Q值的过估计问题,进而减少了未知的动作在策略训练学习过程中的影响,这种方法被称为策略约束(Policy constraint),比如离线强化学习中的BCQ和BEAR算法。CQL尝试通过修改值函数的back up方式,在 Q Q Q值的基础上添加一个regularizer,得到真实动作值函数的下界估计。实验表明,CQL的表现非常好,特别是在学习复杂和多模态数据分布的时候。

1、预备知识

1.1 sample error

离线数据集 D \mathcal{D} D是通过使用行为策略 π β ( a ∣ s ) \pi_{\beta}(\mathbf{a} \mid \mathbf{s}) πβ(as)采样得到的, d π β ( s ) d^{\pi_{\beta}}(\mathbf{s}) dπβ(s)是折扣的边缘状态分布, D ∼ d π β ( s ) π β ( a ∣ s ) \mathcal{D} \sim d^{\pi_{\beta}}(\mathbf{s})\pi_{\beta}(\mathbf{a} \mid \mathbf{s}) Ddπβ(s)πβ(as),采样的过程会因为状态动作对的采样不充分产生sample error。

1.2 Operator

关于对Bellman算子的理解和策略迭代过程可以参考这篇文章,通过Bellman算子理解动态规划

1.2.1 Bellman operator

B π Q = r + γ P π Q \mathcal{B}^{\pi} Q=r+\gamma P^{\pi} Q BπQ=r+γPπQ
P π Q ( s , a ) = E s ′ ∼ T ( s ′ ∣ s , a ) , a ′ ∼ π ( a ′ ∣ s ′ ) [ Q ( s ′ , a ′ ) ] P^{\pi} Q(\mathbf{s}, \mathbf{a})=\mathbb{E}_{\mathbf{s}^{\prime} \sim T\left(\mathbf{s}^{\prime} \mid \mathbf{s}, \mathbf{a}\right), \mathbf{a}^{\prime} \sim \pi\left(\mathbf{a}^{\prime} \mid \mathbf{s}^{\prime}\right)}\left[Q\left(\mathbf{s}^{\prime}, \mathbf{a}^{\prime}\right)\right] PπQ(s,a)=EsT(ss,a),aπ(as)[Q(s,a)]

1.2.2 Empirical Bellman operator

离线数据集无法包含所有动作的转移数据,因此只能用 D \mathcal{D} D中包含的数据进行back up,用 B ^ π \hat{\mathcal{B}}^{\pi} B^π表示。

1.2.3 Optimal Bellman operator

B ∗ Q ( s , a ) = r ( s , a ) + γ E s ′ ∼ P ( s ′ ∣ s , a ) [ max ⁡ a ′ Q ( s ′ , a ′ ) ] \mathcal{B}^{*} Q(\mathbf{s}, \mathbf{a})=r(\mathbf{s}, \mathbf{a})+\gamma \mathbb{E}_{\mathbf{s}^{\prime} \sim P\left(\mathbf{s}^{\prime} \mid \mathbf{s}, \mathbf{a}\right)}\left[\max _{\mathbf{a}^{\prime}} Q\left(\mathbf{s}^{\prime}, \mathbf{a}^{\prime}\right)\right] BQ(s,a)=r(s,a)+γEsP(ss,a)[amaxQ(s,a)]

1.3 策略迭代

1.3.1 策略评估

当前我们在优化这个策略的过程中,会得到对应策略的值函数,根据值函数估计策略的价值。
Q ^ k + 1 ← arg ⁡ min ⁡ Q E s , a , s ′ ∼ D [ ( ( r ( s , a ) + γ E a ′ ∼ π ^ k ( a ′ ∣ s ′ ) [ Q ^ k ( s ′ , a ′ ) ] ) − Q ( s , a ) ) 2 ]  (policy evaluation)  \hat{Q}^{k+1} \leftarrow \arg \min _{Q} \mathbb{E}_{\mathbf{s}, \mathbf{a}, \mathbf{s}^{\prime} \sim \mathcal{D}}\left[\left(\left(r(\mathbf{s}, \mathbf{a})+\gamma \mathbb{E}_{\mathbf{a}^{\prime} \sim \hat{\pi}^{k}\left(\mathbf{a}^{\prime} \mid \mathbf{s}^{\prime}\right)}\left[\hat{Q}^{k}\left(\mathbf{s}^{\prime}, \mathbf{a}^{\prime}\right)\right]\right)-Q(\mathbf{s}, \mathbf{a})\right)^{2}\right] \text { (policy evaluation) } Q^k+1argQminEs,a,sD[((r(s,a)+γEaπ^k(as)[Q^k(s,a)])Q(s,a))2] (policy evaluation) 

1.3.2 策略提升

通过在 Q Q Q函数上取极大化,然后在这个 Q Q Q函数上面做一个贪心的搜索来进一步改进它的策略。
π ^ k + 1 ← arg ⁡ max ⁡ π E s ∼ D , a ∼ π k ( a ∣ s ) [ Q ^ k + 1 ( s , a ) ]  (policy improvement)  \hat{\pi}^{k+1} \leftarrow \arg \max _{\pi} \mathbb{E}_{\mathbf{s} \sim \mathcal{D}, \mathbf{a} \sim \pi^{k}(\mathbf{a} \mid \mathbf{s})}\left[\hat{Q}^{k+1}(\mathbf{s}, \mathbf{a})\right] \quad \text { (policy improvement) } π^k+1argπmaxEsD,aπk(as)[Q^k+1(s,a)] (policy improvement) 

2、算法框架

离线强化学习算法的关键在于避免因为分布偏移导致的 Q Q Q 值过估计问题,CQL算法直接从值函数出发,旨在找到原本 Q \mathrm{Q} Q 值函数的下界估计,进而使用其去优化具有更加保守的policy value的策略。在离线数据集中采样状态 s s s ,并且 μ \mu μ 的分布要能够和 d π β ( s ) d^{\pi \beta}(s) dπβ(s) 匹配: μ ( s , a ) = d π β ( s ) μ ( a ∣ s ) \mu(s, a)=d^{\pi \beta}(s) \mu(a \mid s) μ(s,a)=dπβ(s)μ(as) 。基于这个思路,给Q函数添加正则项使得Q的估计值变的保守。

2.1 Q_1

Q函数的更新公式:
Q ^ k + 1 ← arg ⁡ min ⁡ Q α E s ∼ D , a ∼ μ ( a ∣ s ) [ Q ( s , a ) ] + 1 2 E s , a ∼ D [ ( Q ( s , a ) − B ^ π Q ^ k ( s , a ) ) 2 ] \hat{Q}^{k+1} \leftarrow \arg \min _{Q} \alpha \mathbb{E}_{\mathbf{s} \sim \mathcal{D}, \mathbf{a} \sim \mu(\mathbf{a} \mid \mathbf{s})}[Q(\mathbf{s}, \mathbf{a})]+\frac{1}{2} \mathbb{E}_{\mathbf{s}, \mathbf{a} \sim \mathcal{D}}\left[\left(Q(\mathbf{s}, \mathbf{a})-\hat{\mathcal{B}}^{\pi} \hat{Q}^{k}(\mathbf{s}, \mathbf{a})\right)^{2}\right] Q^k+1argQminαEsD,aμ(as)[Q(s,a)]+21Es,aD[(Q(s,a)B^πQ^k(s,a))2]
对于任意的策略 μ ( a ∣ s ) \mu(a \mid s) μ(as),其中 μ ∈ π ^ β \mu \in \hat{\pi}_{\beta} μπ^β

∀ s ∈ D , a , Q ^ π ( s , a ) ≤ Q π ( s , a ) − α [ ( I − γ P π ) − 1 μ π ^ β ] ( s , a ) + [ ( I − γ P π ) − 1 C r , T , δ R max ⁡ ( 1 − γ ) ∣ D ∣ ] ( s , a ) \forall \mathbf{s} \in \mathcal{D}, \mathbf{a}, \hat{Q}^{\pi}(s, a) \leq Q^{\pi}(\mathbf{s}, \mathbf{a})-\alpha\left[\left(I-\gamma P^{\pi}\right)^{-1} \frac{\mu}{\hat{\pi}_{\beta}}\right](\mathbf{s}, \mathbf{a})+\left[\left(I-\gamma P^{\pi}\right)^{-1} \frac{C_{r, T, \delta} R_{\max }}{(1-\gamma) \sqrt{|\mathcal{D}|}}\right](\mathbf{s}, \mathbf{a}) sD,a,Q^π(s,a)Qπ(s,a)α[(IγPπ)1π^βμ](s,a)+[(IγPπ)1(1γ)D Cr,T,δRmax](s,a)

α \alpha α足够大时, Q ^ π ( s , a ) ≤ Q π ( s , a ) \hat{Q}^{\pi}(\mathbf{s}, \mathbf{a}) \leq Q^{\pi}(\mathbf{s}, \mathbf{a}) Q^π(s,a)Qπ(s,a),如果 B ^ π = B π \hat{\mathcal{B}}^{\pi}=\mathcal{B}^{\pi} B^π=Bπ, 也就没有sample error, α ≥ 0 \alpha \geq 0 α0 Q ^ π \hat{Q}^{\pi} Q^π Q π Q^{\pi} Qπ 的逐点下界。

2.2 Q_2

Q函数的更新公式:
Q ^ k + 1 ← arg ⁡ min ⁡ Q α ⋅ ( E s ∼ D , a ∼ μ ( a ∣ s ) [ Q ( s , a ) ] − E s ∼ D , a ∼ π ^ β ( a ∣ s ) [ Q ( s , a ) ] ) + 1 2 E s , a , s ′ ∼ D [ ( Q ( s , a ) − B ^ π Q ^ k ( s , a ) ) 2 ] \begin{aligned} \hat{Q}^{k+1} \leftarrow \arg \min _{Q} \alpha \cdot\left(\mathbb{E}_{\mathbf{s} \sim \mathcal{D}, \mathbf{a} \sim \mu(\mathbf{a} \mid \mathbf{s})}[Q(\mathbf{s}, \mathbf{a})]\right.&\left.-\mathbb{E}_{\mathbf{s} \sim \mathcal{D}, \mathbf{a} \sim \hat{\pi}_{\beta}(\mathbf{a} \mid \mathbf{s})}[Q(\mathbf{s}, \mathbf{a})]\right) \\ &+\frac{1}{2} \mathbb{E}_{\mathbf{s}, \mathbf{a}, \mathbf{s}^{\prime} \sim \mathcal{D}}\left[\left(Q(\mathbf{s}, \mathbf{a})-\hat{\mathcal{B}}^{\pi} \hat{Q}^{k}(\mathbf{s}, \mathbf{a})\right)^{2}\right] \end{aligned} Q^k+1argQminα(EsD,aμ(as)[Q(s,a)]EsD,aπ^β(as)[Q(s,a)])+21Es,a,sD[(Q(s,a)B^πQ^k(s,a))2]
μ ( a ∣ s ) = π ( a ∣ s ) \mu(a \mid s)=\pi(a \mid s) μ(as)=π(as)
∀ s ∈ D , V ^ π ( s ) ≤ V π ( s ) − α [ ( I − γ P π ) − 1 E π [ π π ^ β − 1 ] ] ( s ) + [ ( I − γ P π ) − 1 C r , T , δ R max ⁡ ( 1 − γ ) ∣ D ∣ ] ) \forall \mathbf{s} \in \mathcal{D}, \hat{V}^{\pi}(\mathbf{s}) \leq V^{\pi}(\mathbf{s})-\alpha\left[\left(I-\gamma P^{\pi}\right)^{-1} \mathbb{E}_{\pi}\left[\frac{\pi}{\hat{\pi}_{\beta}}-1\right]\right](\mathbf{s})+\left[\left(I-\gamma P^{\pi}\right)^{-1} \frac{C_{r, T, \delta} R_{\max }}{(1-\gamma) \sqrt{|\mathcal{D}|}}\right]) sD,V^π(s)Vπ(s)α[(IγPπ)1Eπ[π^βπ1]](s)+[(IγPπ)1(1γ)D Cr,T,δRmax])
此时得到的估计 Q ^ π \hat{Q}^{\pi} Q^π 不一定是真实Q值的下界,但是此时策略 π \pi π 的值是真实值函数的下界 E π ( a ∣ s ) [ Q ^ ( s , a ) ] ≤ V π ( s ) \mathbb{E}_{\pi(a \mid s)}[\hat{Q}(s, a)] \leq V^{\pi}(s) Eπ(as)[Q^(s,a)]Vπ(s)

2.3 CQL

Q _ 2 Q\_2 Q_2中, μ = π \mu=\pi μ=π,也就是说 μ \mu μ需要与当前待提升策略相同,此时策略 π \pi π 的值是真实值函数的下界,相仿online中策略迭代的过程,直接将 μ \mu μ定义为能够最大化Q值的策略。
min ⁡ Q max ⁡ μ α ( E s ∼ D , a ∼ μ ( a ∣ s ) [ Q ( s , a ) ] − E s ∼ D , a ∼ π ^ β ( a ∣ s ) [ Q ( s , a ) ] ) + 1 2 E s , a , s ′ ∼ D [ ( Q ( s , a ) − B ^ π k Q ^ k ( s , a ) ) 2 ] + R ( μ ) ( CQL ⁡ ( R ) ) . \begin{aligned} \min _{Q} \max _{\mu} \alpha\left(\mathbb{E}_{\mathbf{s} \sim \mathcal{D}, \mathbf{a} \sim \mu(\mathbf{a} \mid \mathbf{s})}\right.& {\left.[Q(\mathbf{s}, \mathbf{a})]-\mathbb{E}_{\mathbf{s} \sim \mathcal{D}, \mathbf{a} \sim \hat{\pi}_{\beta}(\mathbf{a} \mid \mathbf{s})}[Q(\mathbf{s}, \mathbf{a})]\right) } \\ +& \frac{1}{2} \mathbb{E}_{\mathbf{s}, \mathbf{a}, \mathbf{s}^{\prime} \sim \mathcal{D}}\left[\left(Q(\mathbf{s}, \mathbf{a})-\hat{\mathcal{B}}^{\pi_{k}} \hat{Q}^{k}(\mathbf{s}, \mathbf{a})\right)^{2}\right]+\mathcal{R}(\mu) \quad(\operatorname{CQL}(\mathcal{R})) . \end{aligned} Qminμmaxα(EsD,aμ(as)+[Q(s,a)]EsD,aπ^β(as)[Q(s,a)])21Es,a,sD[(Q(s,a)B^πkQ^k(s,a))2]+R(μ)(CQL(R)).
添加了正则化项 R ( μ ) \mathcal{R}(\mu) R(μ),如果选择 R ( μ ) \mathcal{R}(\mu) R(μ)是当前策略和先验策略的KL散度,那么原式就是:
max ⁡ μ E x ∼ μ ( x ) [ f ( x ) ] + D K L ( μ ∥ ρ )  s.t.  ∑ x μ ( x ) = 1 , μ ( x ) ≥ 0 ∀ x . \max _{\mu} \mathbb{E}_{\mathbf{x} \sim \mu(\mathbf{x})}[f(\mathbf{x})]+D_{\mathrm{KL}}(\mu \| \rho) \text { s.t. } \quad \sum_{\mathbf{x}} \mu(\mathbf{x})=1, \mu(\mathbf{x}) \geq 0 \forall \mathbf{x} . μmaxExμ(x)[f(x)]+DKL(μρ) s.t. xμ(x)=1,μ(x)0x.
最优解决方法就是 μ ∗ ( x ) = 1 Z ρ ( x ) exp ⁡ ( f ( x ) ) \mu^{*}(\mathbf{x})=\frac{1}{Z} \rho(\mathbf{x}) \exp (f(\mathbf{x})) μ(x)=Z1ρ(x)exp(f(x)),其中 Z Z Z是正则化因子,将 μ ∗ \mu^{*} μ带回原式就得到:
min ⁡ Q α E s ∼ d π β ( s ) [ E a ∼ ρ ( a ∣ s ) [ Q ( s , a ) exp ⁡ ( Q ( s , a ) ) Z ] − E a ∼ π β ( a ∣ s ) [ Q ( s , a ) ] ] + 1 2 E s , a , s ′ ∼ D [ ( Q − B π k Q ^ k ) 2 ] \min _{Q} \alpha \mathbb{E}_{\mathbf{s} \sim d^{\pi_{\beta}}(\mathbf{s})}\left[\mathbb{E}_{\mathbf{a} \sim \rho(\mathbf{a} \mid \mathbf{s})}\left[Q(\mathbf{s}, \mathbf{a}) \frac{\exp (Q(\mathbf{s}, \mathbf{a}))}{Z}\right]-\mathbb{E}_{\mathbf{a} \sim \pi_{\beta}(\mathbf{a} \mid \mathbf{s})}[Q(\mathbf{s}, \mathbf{a})]\right]+\frac{1}{2} \mathbb{E}_{\mathbf{s}, \mathbf{a}, \mathbf{s}^{\prime} \sim \mathcal{D}}\left[\left(Q-\mathcal{B}^{\pi_{k}} \hat{Q}^{k}\right)^{2}\right] QminαEsdπβ(s)[Eaρ(as)[Q(s,a)Zexp(Q(s,a))]Eaπβ(as)[Q(s,a)]]+21Es,a,sD[(QBπkQ^k)2]
ρ = U n i f ( a ) \rho=Unif(a) ρ=Unif(a),就得到了 C Q L ( H ) CQL(H) CQL(H)
min ⁡ Q α E s ∼ D [ log ⁡ ∑ a exp ⁡ ( Q ( s , a ) ) − E a ∼ π ^ β ( a ∣ s ) [ Q ( s , a ) ] ] + 1 2 E s , a , s ′ ∼ D [ ( Q − B ^ π k Q ^ k ) 2 ] \min _{Q} \alpha \mathbb{E}_{\mathbf{s} \sim \mathcal{D}}\left[\log \sum_{\mathbf{a}} \exp (Q(\mathbf{s}, \mathbf{a}))-\mathbb{E}_{\mathbf{a} \sim \hat{\pi}_{\beta}(\mathbf{a} \mid \mathbf{s})}[Q(\mathbf{s}, \mathbf{a})]\right]+\frac{1}{2} \mathbb{E}_{\mathbf{s}, \mathbf{a}, \mathbf{s}^{\prime} \sim \mathcal{D}}\left[\left(Q-\hat{\mathcal{B}}^{\pi_{k}} \hat{Q}^{k}\right)^{2}\right] QminαEsD[logaexp(Q(s,a))Eaπ^β(as)[Q(s,a)]]+21Es,a,sD[(QB^πkQ^k)2]

2.4 策略提升

使用推导出的保守Q进行策略评估,能够使得提升后的策略值依然是保守的。 Q ^ ( s , a ) \hat{Q}(s, a) Q^(s,a) 保证了 E π ( a ∣ s ) [ Q ^ ( s , a ) ] ≤ V π ( s ) \mathbb{E}_{\pi(a \mid s)}[\hat{Q}(s, a)] \leq V^{\pi}(s) Eπ(as)[Q^(s,a)]Vπ(s),修改 Q ^ \hat{Q} Q^使得 π k \pi_k πk π k + 1 \pi_{k+1} πk+1变化尽可能小,这样引起的策略批偏移也就更小。
学习到的Q值下界是:
E π Q ^ k ( a ∣ s ) [ π Q ^ k ( a ∣ s ) π ^ β ( a ∣ s ) − 1 ] ≥ max ⁡ a  s.t.  π ^ β ( a ∣ s ) > 0 ( π Q ^ k ( a ∣ s ) π ^ β ( a ∣ s ) ) ⋅ ε \mathbb{E}_{\pi_{\hat{Q}^{k}}(\mathbf{a} \mid \mathbf{s})}\left[\frac{\pi_{\hat{Q}^{k}}(\mathbf{a} \mid \mathbf{s})}{\hat{\pi}_{\beta}(\mathbf{a} \mid \mathbf{s})}-1\right] \geq \max _{\mathbf{a} \text { s.t. } \hat{\pi}_{\beta}(\mathbf{a} \mid \mathbf{s})>0}\left(\frac{\pi_{\hat{Q}^{k}}(\mathbf{a} \mid \mathbf{s})}{\hat{\pi}_{\beta}(\mathbf{a} \mid \mathbf{s})}\right) \cdot \varepsilon EπQ^k(as)[π^β(as)πQ^k(as)1]a s.t. π^β(as)>0max(π^β(as)πQ^k(as))ε
增加了Q估计值和真实值之间的距离,使得Q更加保守。

2.5 伪代码

  • 如果是Q-learning模式: μ \mu μ可以作为最终的策略
  • 如果是Actor-Critic模式:需要使用SAC的训练方式额外训练actor

3、结果

Gym结果

D4RL结果

Atari结果

4、代码实现

Github Github

参考文献

[1]. Aviral Kumar, Aurick Zhou, George Tucker, Sergey Levine:“Conservative Q-Learning for Offline Reinforcement Learning”,2020;arXiv:2006.04779.
[2]. Conservative Q-Learning


OfflineRL推荐阅读

离线强化学习(Offline RL)系列3: (算法篇) TD3+BC 算法详解与实现(经验篇)
离线强化学习(Offline RL)系列3: (算法篇) REM(Random Ensemble Mixture)算法详解与实现
离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BRAC算法原理详解与实现(经验篇)
离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BEAR算法原理详解与实现
离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BCQ算法详解与实现
离线强化学习(Offline RL)系列2: (环境篇)D4RL数据集简介、安装及错误解决
离线强化学习(Offline RL)系列1:离线强化学习原理入门

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@RichardWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值