MVE
接下来我们介绍MVE这个方法,这篇文章的作者通过一种很巧妙的方式把环境模型引入到Model-free RL算法中(TD-k技巧)。传统方法对于Q值的预估(比如DDPG/DQN)是通过bootstrapped的方式来更新参数的,在这篇文章中,作者把环境模型先rollout一定步数之后再进行Q值预估。也就是说,在传统的更新方式中,target Q值是使用的是下一步Q值的预估,而在这里,target Q值是先通过环境模型进行模拟一段路径之后,再进行Q值预估。这样Q值的预估就融合了基于环境模型的短期预估以及基于target_Q网络的长期预估。
文章中给出的MB和MF方法主要基于Dyna框架,MF方法主要是由DDPG导出的,首先我们回顾一下这两个部分。
Dyna算法,同时包含了学习过程和规划过程。在整个框架的更新价值函数的过程中,不仅使用环境模型生成的模拟经验数据:同时也会使用与环境交互过程中获得的真实经验数据。
这里我们只简单概述一下ddpg,我会重点介绍和MVE相关的部分。算法继承了DQN和Actor-Critic的思想,算法中包含四个神经网络,actor和critic分别包含了两个结构相同但是参数更新频率不同的两个网络。每采样一个新的状态,agent利用之前的policy输出一个确定的动作,并和环境交互得到下一步的状态,将这个轨迹序列储存到缓冲区,从缓冲区中随机采样N个轨迹,来更新策略网络和Q值估计网络。
在DDPG中,我们用参数
θ
\theta
θ和
ω
\omega
ω分别控制策略和值函数估计,上面加个撇区分目标网络和当前网络。通过以下式子得到Q网络的新参数:
ω
=
a
r
g
m
i
n
ω
L
=
1
N
∑
i
=
1
N
(
(
r
i
+
γ
Q
ω
−
(
s
i
+
1
,
μ
θ
−
(
s
i
+
1
)
)
−
Q
ω
(
s
i
,
a
i
)
)
2
\omega = argmin_{\omega} \quad L=\frac{1}{N} \sum_{i=1}^N\left((r_i+\gamma Q_{\omega-}\left(s_{i+1}, \mu_{\theta-}\left(s_{i+1}\right)\right)-Q_\omega\left(s_i, a_i\right)\right)^2
ω=argminωL=N1i=1∑N((ri+γQω−(si+1,μθ−(si+1))−Qω(si,ai))2
这表示的是一个TD误差,前一项的Q值的估计是通过目标网络得到的,目标Q网络的输入是目标策略网络输出的下一步的确定性策略,也就是下一步的动作,而后一项Q值的估计是当前网络给出的。
然后利用当前Q网络更新的Q值的新估计,运用策略梯度算法更新策略。
当前网络和目标网络隔一段时间会软更新同步一下。
这篇文章的MVE方法给出了一种新的状态价值函数的估计,通过在这种估计中融入了基于环境模型的估计,环境模型的引入不仅提升了样本效率,还减少了Actor-Critic网络中Q网络的估计误差。
环境模型中需要学习以下三个函数:
- 转换函数 T ^ ξ ( s , a ) , \hat{\mathrm{T}}_{\xi}(\mathrm{s}, \mathrm{a}) , T^ξ(s,a), 返回后继状态 s ′ \mathrm{s}^{\prime} s′ ;
- 终值函数 d ^ ξ ( s ) , \hat{\mathrm{d}}_{\xi}(\mathrm{s}) , d^ξ(s), 返回 s s s 是中止状态的概率;(为了简化文章中的推导,我们后面的模型暂时不加入这一项)
- 奖励函数
r
^
ψ
(
s
,
a
,
s
′
)
\hat{r}_\psi\left(\mathrm{s}, \mathrm{a}, \mathrm{s}^{\prime}\right)
r^ψ(s,a,s′) ,返回标量奖励。
这个环境模型被训练为最小化:
其中期望是整个收集的转换 ( s , a , r , s ′ ) , H \left(\mathrm{s}, \mathrm{a}, \mathrm{r}, \mathrm{s}^{\prime}\right) , \mathbb{H} (s,a,r,s′),H 是交叉熵。在这项工作中,我们考虑了连续环境。(对于离散环境, 第一项可以用交叉熵损失改进代替。)将以上环境模型简化成一个动力学函数 f ^ : S × A → S \hat{\mathrm{f}}: \mathrm{S} \times \mathrm{A} \rightarrow \mathrm{S} f^:S×A→S 和真实的reward function r \mathrm{r} r 。
文章中最核心的就是以下给出的状态价值函数估计,这个估计利用环境模型模拟短期的价值,利用Q网络估计长期价值。文章中还假设环境模型对于深度H的预估是准确的,也就是说,对于固定策略 π \pi π,当根据环境模型选择动作时,环境模型中给出的向下H步的状态都是准确的。
给定随机动力学的生成模型和策略,通过将上式与蒙特卡罗方法相结合,这种方法可以扩展到随机策略。
前一项表示环境模型中习得的奖励,该奖励由环境模型中估计的当前状态、下一个状态以及动作决定,reward已经给定了,不需要用重要性采样来平衡return的差异(当然如果后续的模型是确定性策略的,那么它本身就是不需要重要性采样的)
后一项表示利用无模型方法给出的向后H步的值函数的估计。
这个新的值估计是否更好呢,一下粗略地证明了一种新的值估计更好的思路,比较MVE的MSE相对于原本Critic值估计的MVE是否提升:
中间我们会用到 M S E ( f π ) T β ( V ^ ) MSE_{\left(f^\pi\right)^T \beta}(\hat{V}) MSE(fπ)Tβ(V^)这样一个变量,文章中的定理3.1证明了上面粗略的证明在模型正确的情况下是有效的
Theorem 3.1 (Model-Based Value Expansion Error).
定义
s
t
,
a
t
,
r
t
s_t, a_t, r_t
st,at,rt 是从
s
0
∼
v
s_0 \sim v
s0∼v 开始,真实环境
f
f
f 下,在策略
π
\pi
π 下获得的状态、动作和奖励。类似的,
s
^
t
,
a
^
t
,
r
^
t
\hat{s}_t, \hat{a}_t, \hat{r}_t
s^t,a^t,r^t 使用的是习得的动力学模型
f
^
\hat{\mathrm{f}}
f^,奖励是Lr,值函数为
V
π
V^{\pi}
Vπ,
ϵ
\epsilon
ϵ为H-step rollout模型风险的上界,也就是
max
t
∈
[
H
]
E
[
∥
s
^
t
−
s
t
∥
2
]
≤
ϵ
2
\max _{t \in[H]} \mathbb{E}\left[\left\|\hat{s}_t-s_t\right\|^2\right] \leq \epsilon^2
t∈[H]maxE[∥s^t−st∥2]≤ϵ2
则有:
MSE
ν
(
V
^
H
)
≤
c
1
2
ϵ
2
+
(
1
+
c
2
ϵ
)
γ
2
H
MSE
(
f
^
π
)
H
ν
(
V
^
)
\underset{\nu}{\operatorname{MSE}}\left(\hat{V}_H\right) \leq c_1^2 \epsilon^2+\left(1+c_2 \epsilon\right) \gamma^{2 H} \underset{\left(\hat{f}^\pi\right)^H \nu}{\operatorname{MSE}}(\hat{V})
νMSE(V^H)≤c12ϵ2+(1+c2ϵ)γ2H(f^π)HνMSE(V^)
其中
c
1
、
c
2
\mathrm{c}_1 、 \mathrm{c}_2
c1、c2 在
L
r
、
L
V
\mathrm{L}_{\mathrm{r}} 、 \mathrm{~L}_{\mathrm{V}}
Lr、 LV 中最多呈线性增长,且在
γ
<
1
\gamma<1
γ<1 时与
H
\mathrm{H}
H 无关。为了表示简单,我们假定
MSE
(
f
^
π
)
H
ν
(
V
^
)
≥
ϵ
2
\underset{\left(\hat{f}^\pi\right)^H \nu}{\operatorname{MSE}}(\hat{V}) \geq \epsilon^2
(f^π)HνMSE(V^)≥ϵ2
因此,改进原始critic
MSE
v
(
V
^
)
\operatorname{MSE}_v(\hat{V})
MSEv(V^) 的充分条件是小的
ϵ
\epsilon
ϵ以及
γ
<
1
\gamma<1
γ<1 ,并且critic在想象状态上至少与从
v
v
v 中采样的那些状态一样准确:
MSE
ν
(
V
^
)
≥
MSE
(
f
^
π
)
H
ν
(
V
^
)
\underset{\nu}{\operatorname{MSE}}(\hat{V}) \geq \underset{\left(\hat{f}^\pi\right)^H \nu}{\operatorname{MSE}}(\hat{V})
νMSE(V^)≥(f^π)HνMSE(V^)
也就是说,改进原始的Crtic值估计的充分条件是以上的不等式必须成立
当上式成立时值展开给出的MSE存在一个** γ 2 H \gamma^{2H} γ2H的优势**,在模型正确的情况下,展开得越多,优势越大。
但是如果仍旧使用以前的方式那种随机采样的方式来更新Q网络的参数,就会存在分布不匹配的问题。这个问题甚至可能抵消 γ 2 H \gamma^{2H} γ2H的优势。原因是在随机采样的情况下,不等式不一定会成立。
(定理3.1的证明,有兴趣的话可以可以和我一起研究下,感觉最后一步没推过去)
文章提出了一种TD-K的方案来解决这个问题。
在马氏链中,由马氏链的遍历性,我们可以假设存在一些这样的“不动点” ( f π ) H ν = ν \left(f^\pi\right)^H \nu=\nu (fπ)Hν=ν,也就是满足在环境模型中,在策略 π \pi π下运行H步仍能回到原状态的一些状态,那么如果集中地对这些状态采样,就可以破解这个分布不匹配的问题。因为向前H步采样相当于还是在原状态下采样。
那么如何找到这样的不动点呢?
文章中给出了不动点集合的估计: ν = E [ ( f π ) T β ] \nu=\mathbb{E}\left[\left(f^\pi\right)^T \beta\right] ν=E[(fπ)Tβ], T ∼ Uniform { 0 , ⋯ , H − 1 } T \sim \operatorname{Uniform}\{0, \cdots, H-1\} T∼Uniform{0,⋯,H−1},这个是对T求期望。
对每个 s ^ T ∣ T ∼ ( f π ) T β \hat{s}_T \mid T \sim\left(f^\pi\right)^T \beta s^T∣T∼(fπ)Tβ,根据H accuracy,其对之后H个状态的估计都是准确的,也就是说其对应的 V ^ H − T ( s ^ T ) \hat{V}_{H-T}\left(\hat{s}_T\right) V^H−T(s^T) 也是准确的,那么其对应的 M S E β ( V ^ H − T ( s ^ T ) ) = M S E ( f π ) T β ( V ^ ) MSE_{\beta}(\hat{V}_{H-T}\left(\hat{s}_T\right))=MSE_{\left(f^\pi\right)^T \beta}(\hat{V}) MSEβ(V^H−T(s^T))=MSE(fπ)Tβ(V^)也是准确的。
那么其对其不动点集合采样得到的值估计就相当于根据不同的想象长度求其所对应的MSE,将两个期望展开再转换顺序,即可得到TD-Ktrick中值展开下的MSE,
V
^
H
−
T
(
s
^
T
)
−
V
π
(
s
^
T
)
\hat{V}_{H-T}(\hat{s}_T)-V^{\pi}(\hat{s}_T)
V^H−T(s^T)−Vπ(s^T)在Critic的训练中由Bellman Error表示
MSE
ν
(
V
^
H
)
=
E
T
(
M
S
E
β
(
V
^
H
−
T
(
s
^
T
)
)
)
=
E
β
(
E
T
(
V
^
H
−
T
(
s
^
T
)
−
V
π
(
s
^
T
)
)
2
)
\underset{\nu}{\operatorname{MSE}}\left(\hat{V}_H\right)=E_T(MSE_{\beta}(\hat{V}_{H-T}\left(\hat{s}_T\right)))=E_{\beta}(E_T(\hat{V}_{H-T}(\hat{s}_T)-V^{\pi}(\hat{s}_T))^2)
νMSE(V^H)=ET(MSEβ(V^H−T(s^T)))=Eβ(ET(V^H−T(s^T)−Vπ(s^T))2)
下面以DDPG为例讲解MVE在Deep强化学习中的应用:
在DDPG中,我们用参数 θ \theta θ和 ω \omega ω分别控制策略和值函数估计,上面加个撇区分目标网络和当前网络。
MVE方法在DDPG的框架下加入了环境模型和新的值估计。我们仍旧在以下的图下讲解:
每采样一个新状态,就根据真实环境交互给出下一步的状态,并更新环境模型:
f
^
←
argmin
f
E
β
[
∥
f
(
S
,
A
)
−
S
′
∥
2
]
\hat{f} \leftarrow \underset{f}{\operatorname{argmin}} \underset{\beta}{\mathbb{E}}\left[\left\|f(S, A)-S^{\prime}\right\|^2\right]
f^←fargminβE[∥f(S,A)−S′∥2]
将这样的状态动作序列放入缓存区,从缓存区中采样N*H个状态,对每H个状态,都随机地向后估计H-t步(t=0,…,H-1),并计算其对应的
Q
φ
(
s
^
t
,
a
^
t
)
−
(
∑
k
=
t
H
−
1
γ
k
−
t
r
^
k
+
γ
H
Q
φ
′
(
s
^
H
,
a
^
H
)
)
Q_{\varphi}\left(\hat{s}_t, \hat{a}_t\right)-\left(\sum_{k=t}^{H-1} \gamma^{k-t} \hat{r}_k+\gamma^H Q_{\varphi^{\prime}}\left(\hat{s}_H, \hat{a}_H\right)\right)
Qφ(s^t,a^t)−(∑k=tH−1γk−tr^k+γHQφ′(s^H,a^H))(Td-k技巧下的贝尔曼误差)。在这个式子中,
a
^
t
\hat{a}_t
a^t由当前策略网络导出(文章内给出的是根据目标策略网络导出,但是我对比了STEVE和DDPG的原始想法,觉得是文章的笔误)
a
^
H
\hat{a}_H
a^H则是由目标策略网络导出,
s
^
t
\hat{s}_t
s^t
r
^
k
\hat{r}_k
r^k均由环境模型给出。
通过以下式子得到Q网络的新参数:(t=-1表示的是初始状态)
ω
=
a
r
g
m
i
n
ω
L
=
1
N
∑
i
=
1
N
1
H
∑
t
=
−
1
H
−
1
(
(
Q
ω
(
s
^
t
,
a
^
t
)
−
(
∑
k
=
t
H
−
1
γ
k
−
t
r
^
k
+
γ
H
Q
ω
′
(
s
^
H
,
a
^
H
)
)
)
)
2
\omega = argmin_{\omega} \quad L=\frac{1}{N} \sum_{i=1}^N\frac{1}{H} \sum_{t=-1}^{H-1}\left(\left(Q_{\omega}\left(\hat{s}_t, \hat{a}_t\right)-\left(\sum_{k=t}^{H-1} \gamma^{k-t} \hat{r}_k+\gamma^H Q_{\omega^{\prime}}\left(\hat{s}_H, \hat{a}_H\right)\right)\right)\right)^2
ω=argminωL=N1i=1∑NH1t=−1∑H−1((Qω(s^t,a^t)−(k=t∑H−1γk−tr^k+γHQω′(s^H,a^H))))2
这表示的是一个TDk误差,通过对模型向前想象H步来估计Q值。需要注意的是,由于每次的想象的步骤中,环境模型都会改变,所以其对应的想象的轨迹不会放到buffer中,用完就直接扔掉。
下面是MVE的模型表现:
- 从学习模型中引入合成样本可以显著提高无模型RL的性能,大大减少获得良好性能所需的样本数量。但是与IB方法进行比较可以发现,只有和TD-k技巧仔细结合这种合成经验,才能获得这种改进。这部分下一节讨论,这里的具体设计决策对于良好的结果比较重要。
- IB失败的原因(将真实数据和想象的数据结合):因为策略在训练期间发生了变化,所以从真实数据和伪数据的混合分布中得到的数据相对于ν来说,在表示策略将采取的行动方面是过时的。(在我们的MA-DDPG实现中,我们没有以这种方式重用想象的状态,但MVE-DDPG仍然优于MA-DDPG。我们怀疑这是由于两个因素造成的:(1)IB方法中假想状态的陈旧,以及(2)使用更多假想数据和过度训练之间的微妙联系。)
基线就是最基本的DDPG,加入值展开能有效提升模型性能,并且展开得越多,提升得也越多。
MVE提供了更接近真实的Q值的估计(这里是真值与估计值的比较)
TD-k与H的组合并不是单调的,如果不使用TD-k来调整分布不匹配的问题,那么当H超过某个点将损害性能,但是即使是调整了分配的问题,这样的改进也并不是单调的。可能的原因是TD-k技巧的使用要求能捕捉正确的新分布。
从上述的介绍中我们发现MVE方法没有给出一个较好的超参数H的选择方法,比较复杂的环境中展开过长的步数 H H H的话,会引入很多误差,而在简单的环境中,展开过短的步数 H H H的话,则会降低预估的精度,由于H而产生的模型的误差甚至会抵消 γ 2 H \gamma^{2H} γ2H的优势,另一个问题就是分布不匹配问题,TD-k只能在完美的环境模型下较好地解决这个问题,一旦环境模型中存在一些噪声,不佳的Q值估计反而会影响模型的收敛性。