[更新记录]
论文信息: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}) πβ(a∣s)采样得到的, 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}) D∼dπβ(s)πβ(a∣s),采样的过程会因为状态动作对的采样不充分产生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)=Es′∼T(s′∣s,a),a′∼π(a′∣s′)[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] B∗Q(s,a)=r(s,a)+γEs′∼P(s′∣s,a)[a′maxQ(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+1←argQminEs,a,s′∼D[((r(s,a)+γEa′∼π^k(a′∣s′)[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 )