admin管理员组文章数量:1657046
本文内容为《Conservative Q-Learning(CQL)保守Q学习(一)-CQL1(下界Q值估计)》的续写,限于篇幅,笔者无法将他们写在一起,必须分开来写,请各位读者见谅,本文将介绍CQL2的算法及其变种算法,并给出理论证明。
最后在2.4部分笔者给出了
C
Q
L
(
R
)
CQL(R)
CQL(R)与
C
Q
L
(
H
)
CQL(H)
CQL(H)两种CQL在实际应用中的算法形式。那一部分理论部分很少,但是原理是基于CQL1和CQL2搭建。
本文的读者若想了解CQL2原理详情,请一定先阅读CQL1的前置内容,否则很难看懂本文的原理东西!
而若本文的读者如想直接应用,请直接看2.4部分 C Q L ( R ) CQL(R) CQL(R)与 C Q L ( H ) CQL(H) CQL(H)应用即可,无需看CQL2的理论部分。
2.2、CQL-version2
CQL定理2:对于特定给好的分布
μ
(
a
∣
s
)
=
π
(
a
∣
s
)
\mu(a|s)=\pi(a|s)
μ(a∣s)=π(a∣s),因子
α
>
0
\alpha>0
α>0。满足:
s
u
p
p
(
μ
)
⊂
s
u
p
p
(
π
β
)
supp(\mu)\subset supp(\pi_\beta)
supp(μ)⊂supp(πβ)(即
π
β
=
0
\pi_\beta=0
πβ=0
→
\rightarrow
→
μ
=
0
\mu=0
μ=0)时,满足在高概率条件成立中的引理1条件。在因子
α
\alpha
α足够大条件下,下列CQL2估计出的Q值满足:
V
^
π
(
s
,
a
)
≤
V
π
(
s
,
a
)
∀
(
s
,
a
)
\hat{V}^\pi(s,a) \leq V^\pi(s,a) \forall(s,a)
V^π(s,a)≤Vπ(s,a)∀(s,a)。额外的,若
B
^
π
=
B
π
\hat{B}^\pi=B^\pi
B^π=Bπ即无采样误差存在,此时无需满足引理1的任何条件。对于任意
α
>
0
\alpha>0
α>0,均有
V
^
π
(
s
,
a
)
≤
V
π
(
s
,
a
)
∀
(
s
,
a
)
\hat{V}^\pi(s,a) \leq V^\pi(s,a) \forall(s,a)
V^π(s,a)≤Vπ(s,a)∀(s,a)
CQL2更新方式为:
Q
k
+
1
(
s
,
a
)
←
a
r
g
m
i
n
Q
[
1
2
E
s
,
a
[
(
B
^
π
Q
k
(
s
,
a
)
−
Q
(
s
,
a
)
)
2
]
+
α
(
E
s
~
D
,
a
~
μ
(
a
∣
s
)
[
Q
(
s
,
a
)
]
−
E
s
~
D
,
a
~
π
β
(
a
∣
s
)
[
Q
(
s
,
a
)
]
)
]
Q^{k+1}(s,a)\leftarrow argmin_Q[\frac{1}{2}E_{s,a}[(\hat{B}^{{\pi}}Q^k(s,a)-Q(s,a))^2]+\alpha (E_{s~D,a~\mu(a|s)}[Q(s,a)]-E_{s~D,a~\pi_\beta(a|s)}[Q(s,a)])]
Qk+1(s,a)←argminQ[21Es,a[(B^πQk(s,a)−Q(s,a))2]+α(Es~D,a~μ(a∣s)[Q(s,a)]−Es~D,a~πβ(a∣s)[Q(s,a)])]
证明:
使用和CQL1同样的证明方法,即令
L
(
Q
)
=
[
1
2
E
s
,
a
[
(
B
^
π
Q
k
(
s
,
a
)
−
Q
(
s
,
a
)
)
2
]
+
α
(
E
s
~
D
,
a
~
μ
(
a
∣
s
)
[
Q
(
s
,
a
)
]
−
E
s
~
D
,
a
~
π
β
(
a
∣
s
)
[
Q
(
s
,
a
)
]
)
]
L(Q)=[\frac{1}{2}E_{s,a}[(\hat{B}^{{\pi}}Q^k(s,a)-Q(s,a))^2]+\alpha (E_{s~D,a~\mu(a|s)}[Q(s,a)]-E_{s~D,a~\pi_\beta(a|s)}[Q(s,a)])]
L(Q)=[21Es,a[(B^πQk(s,a)−Q(s,a))2]+α(Es~D,a~μ(a∣s)[Q(s,a)]−Es~D,a~πβ(a∣s)[Q(s,a)])],并令
∇
Q
L
(
Q
)
=
0
\nabla_QL(Q)=0
∇QL(Q)=0求解
Q
Q
Q即可。
∇
Q
L
(
Q
)
=
−
∑
s
′
T
^
(
s
′
∣
s
,
a
)
P
(
s
,
a
)
[
r
^
(
s
,
a
)
+
γ
∑
a
′
π
(
a
′
∣
s
′
)
Q
k
(
s
′
,
a
′
)
−
Q
(
s
,
a
)
]
+
α
d
π
β
(
s
)
(
μ
(
a
∣
s
)
−
π
β
(
a
s
)
)
\nabla_QL(Q)=-\sum_{s'}\hat{T}(s'|s,a)P(s,a)[\hat{r}(s,a)+\gamma \sum_{a'}{\pi}(a'|s')Q^k(s',a')-Q(s,a)]+\alpha d^{\pi_\beta}(s)(\mu(a|s)-\pi_\beta(a_s))
∇QL(Q)=−s′∑T^(s′∣s,a)P(s,a)[r^(s,a)+γa′∑π(a′∣s′)Qk(s′,a′)−Q(s,a)]+αdπβ(s)(μ(a∣s)−πβ(as))令上式=0会得到
α
d
π
β
(
s
)
(
μ
(
a
∣
s
)
−
π
β
(
a
∣
s
)
)
P
(
s
,
a
)
=
r
^
(
s
,
a
)
+
γ
E
s
′
~
T
^
,
a
′
~
π
[
Q
k
(
s
′
,
a
′
)
]
−
Q
(
s
,
a
)
\frac{\alpha d^{\pi_\beta}(s)(\mu(a|s)-\pi_{\beta}(a|s))}{P(s,a)}=\hat{r}(s,a)+\gamma E_{s'~\hat{T},a'~{\pi}}[Q^k(s',a')]-Q(s,a)
P(s,a)αdπβ(s)(μ(a∣s)−πβ(a∣s))=r^(s,a)+γEs′~T^,a′~π[Qk(s′,a′)]−Q(s,a)和CQL1相同办法整理得到:
(
C
Q
L
2
)
Q
k
+
1
(
s
,
a
)
=
B
^
π
Q
k
(
s
,
a
)
−
α
[
μ
(
a
∣
s
)
π
β
(
a
∣
s
)
−
1
]
(CQL2)Q^{k+1}(s,a)=\hat{B}^{{\pi}}Q^k(s,a)-\alpha[\frac{\mu(a|s)}{\pi_\beta(a|s)}-1]
(CQL2)Qk+1(s,a)=B^πQk(s,a)−α[πβ(a∣s)μ(a∣s)−1]同理完全和CQL1相同的办法得到:
Q
^
π
(
s
t
,
a
t
)
≤
Q
π
(
s
t
,
a
t
)
+
(
I
−
P
π
)
−
1
[
∣
C
r
,
δ
∣
+
∣
γ
C
T
,
δ
R
1
−
γ
∣
∑
s
,
a
∈
D
1
s
=
s
t
,
a
=
a
t
−
α
[
μ
(
a
t
∣
s
t
)
π
β
(
a
t
∣
s
t
)
−
1
]
]
\hat{Q}^{\pi}(s_t,a_t)\leq Q^\pi(s_t,a_t)+(I-P^\pi)^{-1}[\frac{|C_{r,\delta}|+|\frac{\gamma C_{T,\delta}R}{1-\gamma}|}{\sqrt{\sum_{s,a \in D}1_{s=s_t,a=a_t}}}-\alpha[\frac{ \mu(a_t|s_t)}{\pi_\beta(a_t|s_t)}-1]]
Q^π(st,at)≤Qπ(st,at)+(I−Pπ)−1[∑s,a∈D1s=st,a=at
但是此时并没有办法去保证Q值的点态下界性,因为注意到
[
μ
(
a
t
∣
s
t
)
π
β
(
a
t
∣
s
t
)
−
1
]
[\frac{ \mu(a_t|s_t)}{\pi_\beta(a_t|s_t)}-1]
[πβ(at∣st)μ(at∣st)−1]这一项取决于
μ
\mu
μ的选取而不一定向CQL1一样是恒正的,虽然不能使得Q保证每一点都是点态下界估计,但是它却可以保证V值是下界估计。
对CQL2两边分别先令
k
→
∞
k\rightarrow \infty
k→∞再对
a
t
a_t
at取期望即可得到
V
V
V值,会有:
V
^
π
(
s
)
=
B
^
π
V
^
π
(
s
)
−
E
a
~
π
[
α
[
μ
(
a
∣
s
)
π
β
(
a
∣
s
)
−
1
]
]
\hat{V}^{\pi}(s)=\hat{B}^{\pi}\hat{V}^{\pi}(s)-E_{a~\pi}[\alpha[\frac{\mu(a|s)}{\pi_\beta(a|s)}-1]]
V^π(s)=B^πV^π(s)−Ea~π[α[πβ(a∣s)μ(a∣s)−1]]
下面说明虽然保证不了
[
μ
(
a
t
∣
s
t
)
π
β
(
a
t
∣
s
t
)
−
1
]
[\frac{ \mu(a_t|s_t)}{\pi_\beta(a_t|s_t)}-1]
[πβ(at∣st)μ(at∣st)−1]恒正,但是却能保证选取某个特定的
μ
=
π
\mu=\pi
μ=π下,
E
a
~
π
[
[
μ
(
a
∣
s
)
π
β
(
a
∣
s
)
−
1
]
]
E_{a~\pi}[[\frac{\mu(a|s)}{\pi_\beta(a|s)}-1]]
Ea~π[[πβ(a∣s)μ(a∣s)−1]]恒正。
事实上:
E
a
~
π
[
[
π
(
a
∣
s
)
π
β
(
a
∣
s
)
−
1
]
]
=
∑
a
π
(
a
∣
s
)
[
π
(
a
∣
s
)
−
π
β
(
a
∣
s
)
π
β
(
a
∣
s
)
]
E_{a~\pi}[[\frac{\pi(a|s)}{\pi_\beta(a|s)}-1]]=\sum_a\pi(a|s)[\frac{\pi(a|s)-\pi_\beta(a|s)}{\pi_\beta(a|s)}]
Ea~π[[πβ(a∣s)π(a∣s)−1]]=a∑π(a∣s)[πβ(a∣s)π(a∣s)−πβ(a∣s)]
∑
a
π
(
a
∣
s
)
[
π
(
a
∣
s
)
−
π
β
(
a
∣
s
)
π
β
(
a
∣
s
)
]
=
∑
a
[
π
(
a
∣
s
)
−
π
β
(
a
∣
s
)
+
π
β
(
a
∣
s
)
]
[
π
(
a
∣
s
)
−
π
β
(
a
∣
s
)
π
β
(
a
∣
s
)
]
\sum_a\pi(a|s)[\frac{\pi(a|s)-\pi_\beta(a|s)}{\pi_\beta(a|s)}]=\sum_a[\pi(a|s)-\pi_\beta(a|s)+\pi_\beta(a|s)][\frac{\pi(a|s)-\pi_\beta(a|s)}{\pi_\beta(a|s)}]
a∑π(a∣s)[πβ(a∣s)π(a∣s)−πβ(a∣s)]=a∑[π(a∣s)−πβ(a∣s)+πβ(a∣s)][πβ(a∣s)π(a∣s)−πβ(a∣s)]
E
a
~
π
[
[
π
(
a
∣
s
)
π
β
(
a
∣
s
)
−
1
]
]
=
∑
a
[
(
π
(
a
∣
s
)
−
π
β
(
a
∣
s
)
)
2
π
β
(
a
∣
s
)
]
+
0
≥
0
E_{a~\pi}[[\frac{\pi(a|s)}{\pi_\beta(a|s)}-1]]=\sum_a[\frac{(\pi(a|s)-\pi_\beta(a|s))^2}{\pi_\beta(a|s)}]+0\ge0
Ea~π[[πβ(a∣s)π(a∣s)−1]]=a∑[πβ(a∣s)(π(a∣s)−πβ(a∣s))2]+0≥0故和上述分析方式一样,我们会有:
V
^
π
(
s
t
)
≤
V
π
(
s
t
)
+
(
I
−
P
π
)
−
1
[
E
a
~
π
[
∣
C
r
,
δ
∣
+
∣
γ
C
T
,
δ
R
1
−
γ
∣
∑
s
,
a
∈
D
1
s
=
s
t
,
a
=
a
t
]
−
α
E
a
~
π
[
μ
(
a
t
∣
s
t
)
π
β
(
a
t
∣
s
t
)
−
1
]
]
\hat{V}^{\pi}(s_t)\leq V^\pi(s_t)+(I-P^\pi)^{-1}[E_{a~\pi}[\frac{|C_{r,\delta}|+|\frac{\gamma C_{T,\delta}R}{1-\gamma}|}{\sqrt{\sum_{s,a \in D}1_{s=s_t,a=a_t}}}]-\alpha E_{a~\pi}[\frac{ \mu(a_t|s_t)}{\pi_\beta(a_t|s_t)}-1]]
V^π(st)≤Vπ(st)+(I−Pπ)−1[Ea~π[∑s,a∈D1s=st,a=at
V
^
π
(
s
t
)
≤
V
π
(
s
t
)
+
(
I
−
P
π
)
−
1
α
E
a
~
π
[
−
μ
(
a
t
∣
s
t
)
π
β
(
a
t
∣
s
t
)
]
\hat{V}^{\pi}(s_t)\leq V^\pi(s_t)+(I-P^\pi)^{-1}\alpha E_{a~\pi}[-\frac{ \mu(a_t|s_t)}{\pi_\beta(a_t|s_t)}]
V^π(st)≤Vπ(st)+(I−Pπ)−1αEa~π[−πβ(at∣st)μ(at∣st)]
1.当存在采样误差时,并且
α
\alpha
α足够大时候可以保证第二项为负的,这时有
V
^
π
(
s
t
)
≤
V
π
(
s
t
)
\hat{V}^{\pi}(s_t)\leq V^\pi(s_t)
V^π(st)≤Vπ(st)恒成立。
有趣的是,这个足够大的
α
\alpha
α和之前计算Q一样,是可以计算的。事实上读者们会发现当:
E
a
t
~
π
[
∣
C
r
,
δ
∣
+
∣
γ
C
T
,
δ
R
1
−
γ
∣
∑
s
,
a
∈
D
1
s
=
s
t
,
a
=
a
t
]
−
α
E
a
t
~
π
[
μ
(
a
t
∣
s
t
)
π
β
(
a
t
∣
s
t
)
]
<
0
E_{a_t~\pi}[\frac{|C_{r,\delta}|+|\frac{\gamma C_{T,\delta}R}{1-\gamma}|}{\sqrt{\sum_{s,a \in D}1_{s=s_t,a=a_t}}}]-\alpha E_{a_t~\pi}[\frac{ \mu(a_t|s_t)}{\pi_\beta(a_t|s_t)}]<0
Eat~π[∑s,a∈D1s=st,a=at
α
≥
m
a
x
s
t
,
a
t
∣
C
r
,
δ
∣
+
∣
γ
C
T
,
δ
R
1
−
γ
∣
∑
s
,
a
∈
D
1
s
=
s
t
,
a
=
a
t
m
a
x
s
t
∑
a
t
π
(
a
t
∣
s
t
)
π
β
(
a
t
∣
s
t
)
μ
(
a
t
∣
s
t
)
\alpha \geq max_{s_t,a_t}\frac{|C_{r,\delta}|+|\frac{\gamma C_{T,\delta}R}{1-\gamma}|}{\sqrt{\sum_{s,a \in D}1_{s=s_t,a=a_t}}}max_{s_t}\sum_{a_t}\pi(a_t|s_t)\frac{\pi_\beta(a_t|s_t)}{\mu(a_t|s_t)}
α≥maxst,at∑s,a∈D1s=st,a=at
V
^
π
(
s
t
)
≤
V
π
(
s
t
)
\hat{V}^{\pi}(s_t)\leq V^\pi(s_t)
V^π(st)≤Vπ(st)恒成立。
证毕
笔者本部分证对应于下图所示原文的Theorem 3.2,笔者在原文基础上进行了修正和更改,符号用的不一样,原文中符号存在错误的情况。
2.3、CQL应用算法(算法应用的原理内容)
2.1和2.2笔者分别介绍了CQL1(Q值下界估计)和CQL2(V值下界估计)这两个改进方法,在这里先进行一下总结,带领读者进行一下回顾。
首先是Q值下界估计算法:
Q
k
+
1
(
s
,
a
)
←
a
r
g
m
i
n
Q
[
1
2
E
s
,
a
[
(
B
^
π
Q
k
(
s
,
a
)
−
Q
(
s
,
a
)
)
2
]
+
α
E
s
~
D
,
a
~
μ
(
a
∣
s
)
[
Q
(
s
,
a
)
]
]
Q^{k+1}(s,a)\leftarrow argmin_Q[\frac{1}{2}E_{s,a}[(\hat{B}^{{\pi}}Q^k(s,a)-Q(s,a))^2]+\alpha E_{s~D,a~\mu(a|s)}[Q(s,a)]]
Qk+1(s,a)←argminQ[21Es,a[(B^πQk(s,a)−Q(s,a))2]+αEs~D,a~μ(a∣s)[Q(s,a)]]
其次是V值下界估计算法
Q
k
+
1
(
s
,
a
)
←
a
r
g
m
i
n
Q
[
1
2
E
s
,
a
[
(
B
^
π
Q
k
(
s
,
a
)
−
Q
(
s
,
a
)
)
2
]
+
α
(
E
s
~
D
,
a
~
μ
(
a
∣
s
)
[
Q
(
s
,
a
)
]
−
E
s
~
D
,
a
~
π
β
(
a
∣
s
)
[
Q
(
s
,
a
)
]
)
]
Q^{k+1}(s,a)\leftarrow argmin_Q[\frac{1}{2}E_{s,a}[(\hat{B}^{{\pi}}Q^k(s,a)-Q(s,a))^2]+\alpha (E_{s~D,a~\mu(a|s)}[Q(s,a)]-E_{s~D,a~\pi_\beta(a|s)}[Q(s,a)])]
Qk+1(s,a)←argminQ[21Es,a[(B^πQk(s,a)−Q(s,a))2]+α(Es~D,a~μ(a∣s)[Q(s,a)]−Es~D,a~πβ(a∣s)[Q(s,a)])]
笔者已经分别证明了二者的逐点下界性,说明这种Q估计结果为估计一个Q值/V值的下界,从而避免了过估计的问题,但是在实际应用中,存在另一个问题,如何去选择合适的
μ
(
a
∣
s
)
\mu(a|s)
μ(a∣s)才能进行应用?并且注意到这两个公式中的
π
{\pi}
π是不可知的。而且还注意到在V值下界估计的时候,我们将
μ
\mu
μ取成了
π
\pi
π,而这显然不可取的,因为我们根本不知道最终策略收敛后的
π
\pi
π,为了解决这个问题,Kumar想到可否将
μ
(
a
∣
s
)
\mu(a|s)
μ(a∣s)用于近似
π
^
k
(
a
∣
s
)
\hat{\pi}^k(a|s)
π^k(a∣s),但是这样就需要保证仍旧可以估计V的下界,Kumar证明了这一点。
CQL定理3:若策略梯度更新的非常缓慢(足够小的速度更新),不考虑采样误差,即
B
^
π
=
B
π
\hat{B}^\pi=B^\pi
B^π=Bπ,那么选取
μ
=
π
^
k
\mu=\hat{\pi}^k
μ=π^k,可以保证在迭代更新中的每一步时,都有
V
^
k
+
1
(
s
)
≤
V
k
+
1
(
s
)
\hat{V}^{k+1}(s)\leq V^{k+1}(s)
V^k+1(s)≤Vk+1(s)
证明:先重申
V
^
k
(
s
)
=
E
a
~
π
Q
k
(
s
,
a
)
\hat{V}^k(s)=E_{a~\pi}Q^k(s,a)
V^k(s)=Ea~πQk(s,a)
由于
Q
^
k
+
1
(
s
,
a
)
=
B
π
Q
^
k
(
s
,
a
)
−
α
[
π
^
k
(
a
∣
s
)
π
β
(
a
∣
s
)
−
1
]
\hat{Q}^{k+1}(s,a)=B^{{\pi}}\hat{Q}^k(s,a)-\alpha[\frac{\hat{\pi}^k(a|s)}{\pi_\beta(a|s)}-1]
Q^k+1(s,a)=BπQ^k(s,a)−α[πβ(a∣s)π^k(a∣s)−1]两边分别对
a
~
π
^
k
+
1
a~{\hat{\pi}^{k+1}}
a~π^k+1进行积分会得到:
E
a
~
π
^
k
+
1
[
Q
k
+
1
(
s
,
a
)
]
=
E
a
~
π
^
k
+
1
[
B
π
Q
k
(
s
,
a
)
]
−
E
a
~
π
^
k
+
1
[
α
[
π
^
k
(
a
∣
s
)
π
β
(
a
∣
s
)
−
1
]
]
E_{a~{\hat{\pi}^{k+1}}}[Q^{k+1}(s,a)]=E_{a~{\hat{\pi}^{k+1}}}[B^{{\pi}}Q^k(s,a)]-E_{a~{\hat{\pi}^{k+1}}}[\alpha[\frac{\hat{\pi}^k(a|s)}{\pi_\beta(a|s)}-1]]
Ea~π^k+1[Qk+1(s,a)]=Ea~π^k+1[BπQk(s,a)]−Ea~π^k+1[α[πβ(a∣s)π^k(a∣s)−1]]而注意这一项即可:
E
a
~
π
^
k
+
1
[
π
^
k
(
a
∣
s
)
π
β
(
a
∣
s
)
−
1
]
=
E
a
~
π
^
k
[
π
^
k
(
a
∣
s
)
π
β
(
a
∣
s
)
−
1
]
+
∑
a
(
π
^
k
+
1
(
a
∣
s
)
−
π
^
k
(
a
∣
s
)
)
[
π
^
k
(
a
∣
s
)
π
β
(
a
∣
s
)
−
1
]
E_{a~{\hat{\pi}^{k+1}}}[\frac{\hat{\pi}^k(a|s)}{\pi_\beta(a|s)}-1]= E_{a~{\hat{\pi}^{k}}}[\frac{\hat{\pi}^k(a|s)}{\pi_\beta(a|s)}-1]+\sum_a(\hat{\pi}^{k+1}(a|s)-{\hat{\pi}^{k}}(a|s))[\frac{\hat{\pi}^k(a|s)}{\pi_\beta(a|s)}-1]
Ea~π^k+1[πβ(a∣s)π^k(a∣s)−1]=Ea~π^k[πβ(a∣s)π^k(a∣s)−1]+a∑(π^k+1(a∣s)−π^k(a∣s))[πβ(a∣s)π^k(a∣s)−1]
这里的第一项恒正,在2.2中已经证明过,第二项为:
∑
a
(
π
^
k
+
1
(
a
∣
s
)
−
π
^
k
(
a
∣
s
)
)
[
π
^
k
(
a
∣
s
)
π
β
(
a
∣
s
)
−
1
]
\sum_a(\hat{\pi}^{k+1}(a|s)-{\hat{\pi}^{k}}(a|s))[\frac{\hat{\pi}^k(a|s)}{\pi_\beta(a|s)}-1]
a∑(π^k+1(a∣s)−π^k(a∣s))[πβ(a∣s)π^k(a∣s)−1]这即当策略梯度更新的非常缓慢(
π
^
k
+
1
\hat{\pi}^{k+1}
π^k+1与
π
^
k
\hat{\pi}^{k}
π^k变化差异没有那么大时候),可以保证:
E
a
~
π
^
k
+
1
[
Q
^
k
+
1
(
s
,
a
)
]
≤
E
a
~
π
^
k
+
1
[
B
π
Q
^
k
(
s
,
a
)
]
E_{a~{\hat{\pi}^{k+1}}}[\hat{Q}^{k+1}(s,a)]\leq E_{a~{\hat{\pi}^{k+1}}}[B^{{\pi}}\hat{Q}^k(s,a)]
Ea~π^k+1[Q^k+1(s,a)]≤Ea~π^k+1[BπQ^k(s,a)]即这保证了每一步估计的
V
V
V都是变小的即
V
^
k
+
1
(
s
)
≤
V
k
+
1
(
s
)
\hat{V}^{k+1}(s)\leq V^{k+1}(s)
V^k+1(s)≤Vk+1(s)
而且不难可以推出下式:
V
^
π
(
s
)
≤
V
π
(
s
)
\hat{V}^\pi(s)\leq V^\pi(s)
V^π(s)≤Vπ(s)
2.4 、CQL应用算法
根据上述结论,Kumar给出了一种优化的办法来获得
μ
\mu
μ而无需人为寻求,这需要有一个先验分布
ρ
\rho
ρ来正则化,而为了方便简化式子,Kumar等人将
ρ
\rho
ρ取成了均匀分布(不知道为什么可以这样取,以及为什么增添的KL散度),下面是实际应用时候CQL式:
CQL应用式,作者称下式为
C
Q
L
(
R
)
CQL(R)
CQL(R)
m
i
n
Q
(
m
a
x
μ
[
1
2
E
s
,
a
[
(
B
^
π
^
k
Q
k
(
s
,
a
)
−
Q
(
s
,
a
)
)
2
]
+
α
(
E
s
~
D
,
a
~
μ
(
a
∣
s
)
[
Q
(
s
,
a
)
]
−
E
s
~
D
,
a
~
π
β
(
a
∣
s
)
[
Q
(
s
,
a
)
]
)
−
K
L
(
μ
∣
∣
ρ
)
]
)
min_Q(max_\mu[\frac{1}{2}E_{s,a}[(\hat{B}^{\hat{\pi}^k}Q^k(s,a)-Q(s,a))^2]+\alpha (E_{s~D,a~\mu(a|s)}[Q(s,a)]-E_{s~D,a~\pi_\beta(a|s)}[Q(s,a)])-KL(\mu||\rho)])
minQ(maxμ[21Es,a[(B^π^kQk(s,a)−Q(s,a))2]+α(Es~D,a~μ(a∣s)[Q(s,a)]−Es~D,a~πβ(a∣s)[Q(s,a)])−KL(μ∣∣ρ)])
注意到上述项目中要先对
μ
\mu
μ取最大,后对
Q
Q
Q取最小,具有先后顺序,注意到内部关于
μ
\mu
μ只有两项,那么首先即计算:
m
a
x
μ
[
E
s
~
D
,
a
~
μ
(
a
∣
s
)
[
Q
(
s
,
a
)
]
−
K
L
(
μ
∣
∣
ρ
)
]
max_\mu[E_{s~D,a~\mu(a|s)}[Q(s,a)]-KL(\mu|| \rho)]
maxμ[Es~D,a~μ(a∣s)[Q(s,a)]−KL(μ∣∣ρ)]但是注意到是有等式限制条件即
∑
a
μ
(
a
∣
s
)
=
1
\sum_a\mu(a|s)=1
∑aμ(a∣s)=1
这可以用我们熟知的Lagrange乘子法求解。设
L
1
^
\hat{L_1}
L1^为乘子
令
L
(
μ
)
=
E
s
~
D
,
a
~
μ
(
a
∣
s
)
[
Q
(
s
,
a
)
]
−
K
L
(
μ
∣
∣
ρ
)
+
L
1
^
(
∑
a
μ
(
a
∣
s
)
−
1
)
L(\mu)=E_{s~D,a~\mu(a|s)}[Q(s,a)]-KL(\mu|| \rho)+\hat{L_1}(\sum_a\mu(a|s)-1)
L(μ)=Es~D,a~μ(a∣s)[Q(s,a)]−KL(μ∣∣ρ)+L1^(∑aμ(a∣s)−1)
L
(
μ
)
=
∑
s
d
β
(
s
)
μ
(
a
∣
s
)
Q
(
s
,
a
)
−
∑
a
μ
(
a
∣
s
)
l
o
g
[
μ
(
a
∣
s
)
ρ
(
a
∣
s
)
]
+
L
1
^
(
∑
a
μ
(
a
∣
s
)
−
1
)
L(\mu)=\sum_s d_\beta(s)\mu(a|s)Q(s,a)-\sum_a \mu(a|s)log[\frac{\mu(a|s)}{\rho(a|s)}]+\hat{L_1}(\sum_a\mu(a|s)-1)
L(μ)=s∑dβ(s)μ(a∣s)Q(s,a)−a∑μ(a∣s)log[ρ(a∣s)μ(a∣s)]+L1^(a∑μ(a∣s)−1)
∇
μ
L
(
μ
)
=
Q
(
s
,
a
)
−
l
o
g
[
μ
(
a
∣
s
)
ρ
(
a
∣
s
)
]
+
L
1
^
−
1
=
0
\nabla_\mu L(\mu)=Q(s,a)-log[\frac{\mu(a|s)}{\rho(a|s)}]+\hat{L_1}-1=0
∇μL(μ)=Q(s,a)−log[ρ(a∣s)μ(a∣s)]+L1^−1=0
∇
L
^
1
L
(
μ
)
=
(
∑
a
μ
(
a
∣
s
)
−
1
)
=
0
\nabla_{\hat{L}_1} L(\mu)=(\sum_a\mu(a|s)-1)=0
∇L^1L(μ)=(a∑μ(a∣s)−1)=0从第一个梯度可知下式,并代入到第二个梯度中:
ρ
(
a
∣
s
)
e
Q
(
s
,
a
)
+
L
1
^
−
1
=
μ
(
s
∣
a
)
\rho(a|s) e^{Q(s,a)+\hat{L_1}-1}=\mu(s|a)
ρ(a∣s)eQ(s,a)+L1^−1=μ(s∣a)
l
o
g
(
e
L
1
−
1
^
∑
a
ρ
(
a
∣
s
)
e
Q
(
s
,
a
)
)
=
l
o
g
(
1
)
=
0
→
L
1
^
=
1
−
l
o
g
∑
a
ρ
(
a
∣
s
)
e
Q
(
s
,
a
)
log(e^{\hat{L_1-1}}\sum_a\rho(a|s) e^{Q(s,a)})=log(1)=0\rightarrow \hat{L_1}=1-log\sum_a\rho(a|s) e^{Q(s,a)}
log(eL1−1^a∑ρ(a∣s)eQ(s,a))=log(1)=0→L1^=1−loga∑ρ(a∣s)eQ(s,a)代入
L
1
^
\hat{L_1}
L1^可得求解的分布为:
μ
(
a
∣
s
)
=
ρ
(
a
∣
s
)
e
Q
(
s
,
a
)
∑
a
ρ
(
a
∣
s
)
e
Q
(
s
,
a
)
\mu(a|s)=\frac{\rho(a|s) e^{Q(s,a)}}{\sum_a\rho(a|s) e^{Q(s,a)}}
μ(a∣s)=∑aρ(a∣s)eQ(s,a)ρ(a∣s)eQ(s,a)Kumar等人注意到,在当先验分布
ρ
(
a
∣
s
)
=
1
∣
a
∣
\rho(a|s)=\frac{1}{|a|}
ρ(a∣s)=∣a∣1为均匀分布, 其中,
∣
a
∣
|a|
∣a∣代表抽样动作的总个数,这时会发现
μ
(
a
∣
s
)
=
e
Q
(
s
,
a
)
∑
a
e
Q
(
s
,
a
)
\mu(a|s)=\frac{e^{Q(s,a)}}{\sum_a e^{Q(s,a)}}
μ(a∣s)=∑aeQ(s,a)eQ(s,a)此时,待最大化的原式变化为:
E
s
~
D
,
a
~
μ
(
a
∣
s
)
[
Q
(
s
,
a
)
]
−
K
L
(
μ
∣
∣
ρ
)
=
∑
s
d
β
(
s
)
∑
a
~
μ
[
Q
(
s
,
a
)
−
l
o
g
μ
(
a
∣
s
)
ρ
(
a
∣
s
)
]
E_{s~D,a~\mu(a|s)}[Q(s,a)]-KL(\mu|| \rho)=\sum_sd_\beta(s)\sum_{a~\mu}[Q(s,a)-log\frac{\mu(a|s)}{\rho(a|s)}]
Es~D,a~μ(a∣s)[Q(s,a)]−KL(μ∣∣ρ)=s∑dβ(s)a~μ∑[Q(s,a)−logρ(a∣s)μ(a∣s)]注意到这一项
∑
a
~
μ
[
Q
(
s
,
a
)
−
l
o
g
μ
(
a
∣
s
)
ρ
(
a
∣
s
)
]
=
∑
a
~
μ
[
Q
(
s
,
a
)
−
l
o
g
μ
(
a
∣
s
)
+
l
o
g
ρ
(
a
∣
s
)
]
\sum_{a~\mu}[Q(s,a)-log\frac{\mu(a|s)}{\rho(a|s)}]=\sum_{a~\mu}[Q(s,a)-log\mu(a|s)+log{\rho(a|s)}]
a~μ∑[Q(s,a)−logρ(a∣s)μ(a∣s)]=a~μ∑[Q(s,a)−logμ(a∣s)+logρ(a∣s)]代入
μ
(
a
∣
s
)
=
ρ
(
a
∣
s
)
e
Q
(
s
,
a
)
∑
a
ρ
(
a
∣
s
)
e
Q
(
s
,
a
)
\mu(a|s)=\frac{\rho(a|s) e^{Q(s,a)}}{\sum_a\rho(a|s) e^{Q(s,a)}}
μ(a∣s)=∑aρ(a∣s)eQ(s,a)ρ(a∣s)eQ(s,a)上式可被化简为
∑
a
~
μ
[
Q
(
s
,
a
)
−
l
o
g
ρ
(
a
∣
s
)
−
Q
(
s
,
a
)
+
l
o
g
ρ
(
a
∣
s
)
+
l
o
g
∑
a
ρ
(
a
∣
s
)
e
Q
(
s
,
a
)
]
\sum_{a~\mu}[Q(s,a)-log\rho(a|s)-Q(s,a)+log\rho(a|s)+log\sum_a\rho(a|s) e^{Q(s,a)}]
a~μ∑[Q(s,a)−logρ(a∣s)−Q(s,a)+logρ(a∣s)+loga∑ρ(a∣s)eQ(s,a)]进一步简化发现,当
μ
\mu
μ满足正态分布假设时,这即
∑
a
~
μ
[
l
o
g
∑
a
′
1
∣
a
′
∣
e
Q
(
s
,
a
′
)
]
=
l
o
g
∑
a
′
1
∣
a
′
∣
e
Q
(
s
,
a
′
)
=
l
o
g
∑
a
′
e
Q
(
s
,
a
′
)
−
l
o
g
∣
a
′
∣
\sum_{a~\mu}[log\sum_{a'}\frac{1}{|a'|} e^{Q(s,a')}]=log\sum_{a'}\frac{1}{|a'|} e^{Q(s,a')}=log\sum_{a'}e^{Q(s,a')}-log|a'|
a~μ∑[loga′∑∣a′∣1eQ(s,a′)]=loga′∑∣a′∣1eQ(s,a′)=loga′∑eQ(s,a′)−log∣a′∣此时,我们注意到CQL应用式变为了
m
i
n
Q
(
[
1
2
E
s
,
a
[
(
B
^
π
^
k
Q
k
(
s
,
a
)
−
Q
(
s
,
a
)
)
2
]
+
α
E
s
~
D
(
l
o
g
∑
a
′
1
∣
a
′
∣
e
Q
(
s
,
a
′
)
−
E
a
~
π
β
(
a
∣
s
)
[
Q
(
s
,
a
)
]
)
min_Q([\frac{1}{2}E_{s,a}[(\hat{B}^{\hat{\pi}^k}Q^k(s,a)-Q(s,a))^2]+\alpha E_{s~D}(log\sum_{a'}\frac{1}{|a'|} e^{Q(s,a')}-E_{a~\pi_\beta(a|s)}[Q(s,a)])
minQ([21Es,a[(B^π^kQk(s,a)−Q(s,a))2]+αEs~D(loga′∑∣a′∣1eQ(s,a′)−Ea~πβ(a∣s)[Q(s,a)])注意到,
∣
a
′
∣
|a'|
∣a′∣与带优化项目无关。因此最终应用在实际的CQL变为
应用到实际中的CQL,作者称下式为
C
Q
L
(
H
)
CQL(H)
CQL(H):
m
i
n
Q
(
[
1
2
E
s
,
a
[
(
B
^
π
^
k
Q
k
(
s
,
a
)
−
Q
(
s
,
a
)
)
2
]
+
α
E
s
~
D
(
l
o
g
∑
a
′
e
Q
(
s
,
a
′
)
−
E
a
~
π
β
(
a
∣
s
)
[
Q
(
s
,
a
)
]
)
min_Q([\frac{1}{2}E_{s,a}[(\hat{B}^{\hat{\pi}^k}Q^k(s,a)-Q(s,a))^2]+\alpha E_{s~D}(log\sum_{a'} e^{Q(s,a')}-E_{a~\pi_\beta(a|s)}[Q(s,a)])
minQ([21Es,a[(B^π^kQk(s,a)−Q(s,a))2]+αEs~D(loga′∑eQ(s,a′)−Ea~πβ(a∣s)[Q(s,a)])
笔者先描述原文作者给的CQL修正部分,笔者认为是有问题的,欢迎各位能够为笔者解答!
#随机选取一些random动作
random_actions_tensor = torch.FloatTensor(q2_pred.shape[0] * self.num_random, actions.shape[-1]).uniform_(-1, 1)#.cuda()
#从Policy-Network根据当前状态s选取一些动作a
curr_actions_tensor, curr_log_pis = self._get_policy_actions(obs, num_actions=self.num_random, network=self.policy)
#从Policy-Network根据下一个状态s+1选取一些动作a+1
new_curr_actions_tensor, new_log_pis = self._get_policy_actions(next_obs, num_actions=self.num_random, network=self.policy)
#计算Q(s,random),Q(s,predict_a),Q(s,predict_a+1)[笔者这里对代码存在疑问1]
q1_rand = self._get_tensor_values(obs, random_actions_tensor, network=self.qf1)
q1_curr_actions = self._get_tensor_values(obs, curr_actions_tensor, network=self.qf1)
q1_next_actions = self._get_tensor_values(obs, new_curr_actions_tensor, network=self.qf1)
#合并这四个Q变为[Q(s,random),Q(s,a),Q(s,predict_a),Q(s,predict_a+1)]
cat_q1 = torch.cat([q1_rand, q1_pred.unsqueeze(1), q1_next_actions,q1_curr_actions], dim=1)
下面开始计算的是 α E s ~ D ( l o g ∑ a ′ e Q ( s , a ′ ) − E a ~ π β ( a ∣ s ) [ Q ( s , a ) ] ) \alpha E_{s~D}(log\sum_{a'} e^{Q(s,a')}-E_{a~\pi_\beta(a|s)}[Q(s,a)]) αEs~D(log∑a′eQ(s,a′)−Ea~πβ(a∣s)[Q(s,a)])
##计算CQL(H)中的logsumexp
min_qf1_loss=torch.logsumexp(cat_q1 / self.temp, dim=1,).mean() * self.min_q_weight * self.temp
##计算CQL(H)中的logsumexp-E_a~\pi_beta[Q(s,a)]
min_qf1_loss = min_qf1_loss - q1_pred.mean() * self.min_q_weight
最后求和 α E s ~ D ( l o g ∑ a ′ e Q ( s , a ′ ) − E a ~ π β ( a ∣ s ) [ Q ( s , a ) ] ) + [ 1 2 E s , a [ ( B ^ π ^ k Q k ( s , a ) − Q ( s , a ) ) 2 ] \alpha E_{s~D}(log\sum_{a'} e^{Q(s,a')}-E_{a~\pi_\beta(a|s)}[Q(s,a)])+[\frac{1}{2}E_{s,a}[(\hat{B}^{\hat{\pi}^k}Q^k(s,a)-Q(s,a))^2] αEs~D(log∑a′eQ(s,a′)−Ea~πβ(a∣s)[Q(s,a)])+[21Es,a[(B^π^kQk(s,a)−Q(s,a))2]并执行梯度更新。
qf1_loss = qf1_loss + min_qf1_loss
笔者对此代码有如下疑问:
1.作者在源代码中使用了如下loss来代替,而没有乘0.5,这样会不会影响最小值,笔者认为有可能的。
[
1
2
E
s
,
a
[
(
B
^
π
^
k
Q
k
(
s
,
a
)
−
Q
(
s
,
a
)
)
2
]
→
E
s
,
a
[
(
B
^
π
^
k
Q
k
(
s
,
a
)
−
Q
(
s
,
a
)
)
2
]
[\frac{1}{2}E_{s,a}[(\hat{B}^{\hat{\pi}^k}Q^k(s,a)-Q(s,a))^2]\rightarrow E_{s,a}[(\hat{B}^{\hat{\pi}^k}Q^k(s,a)-Q(s,a))^2]
[21Es,a[(B^π^kQk(s,a)−Q(s,a))2]→Es,a[(B^π^kQk(s,a)−Q(s,a))2]
2.作者在源代码中使用了这样一个值:在q1_next_actions = self._get_tensor_values(obs, new_curr_actions_tensor, network=self.qf1)这一部分,它实际上代表着如下公式,但是笔者认为,这是没有实际意义的,可能作者想表达采样的意思,但是这样很容易让人费解:
Q
(
s
t
,
a
t
+
1
)
Q(s_{t},a_{t+1})
Q(st,at+1)笔者若收到Kumar的回复会第一时间更新内容,并解决疑惑,也非常欢迎广大同行和学者可以为笔者解决这个疑惑。笔者后续会更新CQL的实现代码,欢迎各位持续关注
本文标签: 下界保守LearningConservativecql
版权声明:本文标题:Conservative Q-Learning(CQL)保守Q学习(二)-CQL2(下界V值估计),CQL(R)与CQL(H) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1729755657a1212099.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论