admin管理员组文章数量:1658761
[更新记录]
论文信息: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
- 1.2 Operator
- 1.2.1 Bellman operator
- 1.2.2 Empirical Bellman operator
- 1.2.3 Optimal Bellman operator
- 1.3 策略迭代
- 1.3.1 策略评估
- 1.3.2 策略提升
- 2、算法框架
- 2.1 Q_1
- 2.2 Q_2
- 2.3 CQL
- 2.4 策略提升
- 2.5 伪代码
- 3、结果
- Gym结果
- D4RL结果
- Atari结果
- 4、代码实现
- 参考文献
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
)
]
(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+1←argπmaxEs∼D,a∼πk(a∣s)[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)μ(a∣s) 。基于这个思路,给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+1←argQminαEs∼D,a∼μ(a∣s)[Q(s,a)]+21Es,a∼D[(Q(s,a)−B^πQ^k(s,a))2]
对于任意的策略
μ
(
a
∣
s
)
\mu(a \mid s)
μ(a∣s),其中
μ
∈
π
^
β
\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})
∀s∈D,a,Q^π(s,a)≤Qπ(s,a)−α[(I−γPπ)−1π^βμ](s,a)+[(I−γPπ)−1(1−γ)∣D∣
当 α \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+1←argQminα⋅(Es∼D,a∼μ(a∣s)[Q(s,a)]−Es∼D,a∼π^β(a∣s)[Q(s,a)])+21Es,a,s′∼D[(Q(s,a)−B^πQ^k(s,a))2]
令
μ
(
a
∣
s
)
=
π
(
a
∣
s
)
\mu(a \mid s)=\pi(a \mid s)
μ(a∣s)=π(a∣s)
∀
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])
∀s∈D,V^π(s)≤Vπ(s)−α[(I−γPπ)−1Eπ[π^βπ−1]](s)+[(I−γPπ)−1(1−γ)∣D∣
此时得到的估计
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π(a∣s)[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α(Es∼D,a∼μ(a∣s)+[Q(s,a)]−Es∼D,a∼π^β(a∣s)[Q(s,a)])21Es,a,s′∼D[(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)≥0∀x.
最优解决方法就是
μ
∗
(
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αEs∼dπβ(s)[Ea∼ρ(a∣s)[Q(s,a)Zexp(Q(s,a))]−Ea∼πβ(a∣s)[Q(s,a)]]+21Es,a,s′∼D[(Q−Bπ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αEs∼D[loga∑exp(Q(s,a))−Ea∼π^β(a∣s)[Q(s,a)]]+21Es,a,s′∼D[(Q−B^π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π(a∣s)[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(a∣s)[π^β(a∣s)πQ^k(a∣s)−1]≥a s.t. π^β(a∣s)>0max(π^β(a∣s)πQ^k(a∣s))⋅ε
增加了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
版权声明:本文标题:离线强化学习系列3(算法篇): 值函数约束-CQL算法详解与实现 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729814919a1213766.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论