目录
简介
在前面的学习中,已经对强化学习有了不少了解。无论是在线策略(on-policy
)算法还是离线策略(off-policy
)算法,都有一个共同点:智能体在训练过程中可以不断和环境交互,得到新的反馈数据。二者的区别主要在于在线策略算法会直接使用这些反馈数据,而离线策略算法会先将数据存入经验回放池中,需要时再采样。
然而,在现实生活中的许多场景下,让尚未学习好的智能体和环境交互可能会导致危险发生,或是造成巨大损失。
例如,在训练自动驾驶的规控智能体时,如果让智能体从零开始和真实环境进行交互,那么在训练的最初阶段,它操控的汽车无疑会横冲直撞,造成各种事故。
再例如,在推荐系统中,用户的反馈往往比较滞后,统计智能体策略的回报需要很长时间。而如果策略存在问题,早期的用户体验不佳,就会导致用户流失等后果。
因此,离线强化学习(offline reinforcement learning
)的目标是,在智能体不和环境交互的情况下,仅从已经收集好的确定的数据集中,通过强化学习算法得到比较好的策略。
离线强化学习和在线策略算法、离线策略算法的区别如下图所示。
批量限制Q-Learning算法(BCQ算法)
上图中的离线强化学习和离线策略强化学习很像,都要从经验回放池中采样进行训练,并且离线策略算法的策略评估方式也多种多样。因此,研究者们最开始尝试将离线策略算法直接照搬到离线的环境下,仅仅是去掉算法中和环境交互的部分。然而,这种做法完全失败了。研究者进行如下了 3 个简单的实验。
第一个实验,使用 DDPG 算法训练了一个智能体,并将智能体与环境交互的所有数据都记录下来,再用这些数据训练离线 DDPG 智能体。
第二个实验,在线 DDPG 算法在训练时每次从经验回放池中采样,并用相同的数据同步训练离线 DDPG 智能体,这样两个智能体甚至连训练时用到的数据顺序都完全相同。
第三个实验,在线 DDPG 算法在训练完毕后作为专家,在环境中采集大量数据,供离线 DDPG 智能体学习。这 3 个实验,即完全回放
、同步训练
、模仿训练
的结果依次如下图所示。
让人惊讶的是,3 个实验中,离线 DDPG 智能体的表现都远远差于在线 DDPG 智能体,即便是第二个实验的同步训练都无法提高离线智能体的表现。在第三个模仿训练实验中,离线智能体面对非常优秀的数据样本却什么都没学到!针对这种情况,研究者指出,外推误差(extrapolation error)
是离线策略算法不能直接迁移到离线环境中的原因。
外推误差,是指由于当前策略可能访问到的状态动作对与从数据集中采样得到的状态动作对的分布不匹配而产生的误差。
为什么在线强化学习算法没有受到外推误差的影响呢?因为对于在线强化学习,即使训练是离线策略的,智能体依然有机会通过与环境交互及时采样到新的数据,从而修正这些误差。但是在离线强化学习中,智能体无法和环境交互。因此,一般来说,离线强化学习算法要想办法尽可能地限制外推误差的大小,从而得到较好的策略。
为减少外推误差,当前的策略需要做到只访问与数据集中相似的 ( s , a ) (s, a) (s,a)数据。满足这一要求的策略称为批量限制策略(batch-constrained policy)。具体来说,这样的策略在选择动作时有 3个目标:
- 最小化
选择的动作
与数据集中数据
的距离; - 采取动作后能到达与离线数据集中状态相似的状态;
- 最大化函数 Q Q Q 。
对于标准的表格(tabular)
型环境,状态和动作空间都是离散且有限的。标准的 Q-learning 更新公式可以写为:
Q
(
s
,
a
)
←
(
1
−
α
)
Q
(
s
,
a
)
+
α
(
r
+
γ
Q
(
s
′
,
argmax
a
′
Q
(
s
′
,
a
′
)
)
)
Q(s, a) \leftarrow(1-\alpha) Q(s, a)+\alpha\left(r+\gamma Q\left(s^{\prime}, \operatorname{argmax}_{a^{\prime}} Q\left(s^{\prime}, a^{\prime}\right)\right)\right)
Q(s,a)←(1−α)Q(s,a)+α(r+γQ(s′,argmaxa′Q(s′,a′)))
这时,只需要把策略
π
\pi
π 能选择的动作限制在数据集
D
\mathcal{D}
D 内,就能满足上述 3 个目标的平衡,这样就得到了表格设定下的批量限制 Q-learning(batch-constrained Q-learning,BCQ
)算法:
Q
(
s
,
a
)
←
(
1
−
α
)
Q
(
s
,
a
)
+
α
(
r
+
γ
Q
(
s
′
,
argmax
a
′
s.t.
(
s
′
,
a
′
)
∈
D
Q
(
s
′
,
a
′
)
)
)
Q(s, a) \leftarrow(1-\alpha) Q(s, a)+\alpha\left(r+\gamma Q\left(s^{\prime}, \operatorname{argmax}_{a^{\prime} \text { s.t. }\left(s^{\prime}, a^{\prime}\right) \in \mathcal{D}} Q\left(s^{\prime}, a^{\prime}\right)\right)\right)
Q(s,a)←(1−α)Q(s,a)+α(r+γQ(s′,argmaxa′ s.t. (s′,a′)∈DQ(s′,a′)))
可证明,如果数据中包含了所有可能的 ( s , a ) (s, a) (s,a) 对,按上式进行迭代可收敛到最优价值函数 Q ∗ Q^* Q∗ 。
连续状态和动作的情况要复杂一些,因为批量限制策略的目标需要被更详细地定义。例如,该如何定义两个状态动作对的距离呢?
BCQ
采用了一种巧妙的方法:训练一个生成模型
G
ω
(
s
)
G_\omega(s)
Gω(s) 。对于数据集
D
\mathcal{D}
D 和其中的状态
s
s
s ,生成模型
G
ω
(
s
)
G_\omega(s)
Gω(s) 能给出与
D
\mathcal{D}
D 中数据接近的一系列动作
a
1
,
…
,
a
n
a_1, \ldots, a_n
a1,…,an 用于
Q
Q
Q网络的训练。为增加生成动作的多样性,减少生成次数,BCQ
还引入了扰动模型
ξ
ϕ
(
s
,
a
,
Φ
)
\xi_\phi(s, a, \Phi)
ξϕ(s,a,Φ) 。
输入
(
s
,
a
)
(s, a)
(s,a) 时,模型给出一个绝对值最大为
Φ
\Phi
Φ 的微扰并附加在动作上。这两个模型综合起来相当于给出了一个批量限制策略
π
\pi
π :
π
(
s
)
=
argmax
a
i
+
ξ
ϕ
(
s
,
a
i
,
Φ
)
Q
θ
(
s
,
a
i
+
ξ
ϕ
(
s
,
a
i
,
Φ
)
)
,
{
a
i
∼
G
ω
(
s
)
}
i
=
1
n
\pi(s)=\operatorname{argmax}_{a_i+\xi_\phi\left(s, a_i, \Phi\right)} Q_\theta\left(s, a_i+\xi_\phi\left(s, a_i, \Phi\right)\right), \quad\left\{a_i \sim G_\omega(s)\right\}_{i=1}^n
π(s)=argmaxai+ξϕ(s,ai,Φ)Qθ(s,ai+ξϕ(s,ai,Φ)),{ai∼Gω(s)}i=1n
其中,生成模型
G
ω
(
s
)
G_\omega(s)
Gω(s) 用变分自动编码器(variational auto-encoder,VAE)实现;扰动模型直接通过确定性策略梯度算法训练,目标是使函数
Q
Q
Q 最大化:
ϕ
←
argmax
ϕ
∑
(
s
,
a
)
∈
D
Q
θ
(
s
,
a
+
ξ
ϕ
(
s
,
a
,
Φ
)
)
\phi \leftarrow \operatorname{argmax}_\phi \sum_{(s, a) \in \mathcal{D}} Q_\theta\left(s, a+\xi_\phi(s, a, \Phi)\right)
ϕ←argmaxϕ(s,a)∈D∑Qθ(s,a+ξϕ(s,a,Φ))
总结起来, BCQ 算法的流程如下:
- 随机初始化 Q Q Q 网络 Q θ Q_{\theta} Qθ,扰动网络$\xi_\phi , 生成网络 ,生成网络 ,生成网络G_\omega={E_{\omega_1},D_{\omega_2}}$
- 用 θ \theta θ 初始化目标 Q Q Q 网络 Q θ − Q_{\theta^{-}} Qθ−,用 ϕ \phi ϕ 初始化目标扰动网络 ξ ϕ ′ \xi_{\phi^{\prime}} ξϕ′
- for 训练次数
e
=
1
→
E
e=1 \rightarrow E
e=1→E do
- 从数据集 D \mathcal{D} D 中采样一定数量的 ( s , a , r , s ′ ) \left(s, a, r, s^{\prime}\right) (s,a,r,s′)
- 编码器生成均值和标准差 μ , σ = E ω 1 ( s , a ) \mu, \sigma=E_{\omega_1}(s, a) μ,σ=Eω1(s,a)
- 解码器生成动作 a ~ = D ω 2 ( s , z ) \tilde{a}=D_{\omega_2}(s, z) a~=Dω2(s,z) ,其中 z ∼ N ( μ , σ ) z \sim \mathcal{N}(\mu, \sigma) z∼N(μ,σ)
- 更新生成模型: ω ← argmin ω ∑ ( a − a ~ ) 2 + D K L ( N ( μ , σ ) ∥ N ( 0 , 1 ) ) \omega \leftarrow \operatorname{argmin}_\omega \sum(a-\tilde{a})^2+D_{K L}(\mathcal{N}(\mu, \sigma) \| \mathcal{N}(0,1)) ω←argminω∑(a−a~)2+DKL(N(μ,σ)∥N(0,1))
- 从生成模型中采样 n n n 个动作: { a i ∼ G ω ( s ′ ) } i = 1 n \left\{a_i \sim G_\omega\left(s^{\prime}\right)\right\}_{i=1}^n {ai∼Gω(s′)}i=1n
- 对每个动作施加扰动: { a i ← a i + ξ ϕ ( s ′ , a i , ϕ ) } i = 1 n \left\{a_i \leftarrow a_i+\xi_\phi\left(s^{\prime}, a_i, \phi\right)\right\}_{i=1}^n {ai←ai+ξϕ(s′,ai,ϕ)}i=1n
- 计算 Q Q Q 网络的目标值 y = r + γ max a i Q θ − ( s ′ , a i ) y=r+\gamma \max _{a_i} Q_{\theta^{-}}\left(s^{\prime}, a_i\right) y=r+γmaxaiQθ−(s′,ai)
- 更新 Q Q Q 网络: θ ← argmin θ ∑ ( y − Q θ ( s , a ) ) 2 \theta \leftarrow \operatorname{argmin}_\theta \sum\left(y-Q_\theta(s, a)\right)^2 θ←argminθ∑(y−Qθ(s,a))2
- 更新扰动网络: ϕ ← argmax ϕ ∑ Q θ ( s , a + ξ ϕ ( s , a , Φ ) ) , a ∼ G ω ( s ) \phi \leftarrow \operatorname{argmax}_\phi \sum Q_\theta\left(s, a+\xi_\phi(s, a, \Phi)\right), a \sim G_\omega(s) ϕ←argmaxϕ∑Qθ(s,a+ξϕ(s,a,Φ)),a∼Gω(s)
- 更新目标 Q Q Q 网络: θ − ← τ θ + ( 1 − τ ) θ − \theta^{-} \leftarrow \tau \theta+(1-\tau) \theta^{-} θ−←τθ+(1−τ)θ−
- 更新目标扰动网络: ϕ ′ ← τ ϕ + ( 1 − τ ) ϕ ′ \phi^{\prime} \leftarrow \tau \phi+(1-\tau) \phi^{\prime} ϕ′←τϕ+(1−τ)ϕ′
- end for
除此之外, BCQ 还使用了一些实现上的小技巧。由于不是 BCQ 的重点,此处不再赘述。考虑到 VAE 不属于讨论范围,并且
B
C
Q
B C Q
BCQ 的代码中有较多技巧,有兴趣的读者可以参阅
B
C
Q
B C Q
BCQ 原文,自行实现代码。此处介绍 BCQ 算法,一是因为它对离线强化学习的误差分析和实验很有启发性,二是因为它是无模型离线强化学习中限制策略集合算法中的经典方法。下面我们介绍另一类直接限制函数
Q
Q
Q 的算法的代表:保守 Q-learning(CQL)
。
保守Q-Learning算法(CQL算法)
上面已经讲到,离线强化学习面对的巨大挑战是如何减少外推误差。实验证明,外推误差主要会导致在远离数据集的点上函数 Q Q Q 的过高估计,甚至常常出现 Q Q Q 值向上发散的情况。
因此,如果能用某种方法将算法中偏离数据集的点上的函数
Q
Q
Q 保持在很低的值,或许能消除部分外推误差的影响,这就是保守 Q-learning(conservative Q- learning,CQL
)算法的基本思想。
CQL 核心思想是对 Q 值施加保守约束 ,在标准 Q - learning 目标函数中引入额外正则化项,限制 Q 值在合理范围,防止策略在离线数据未充分覆盖的状态-动作上过度乐观估计,确保学习到的策略更稳健,避免过度依赖稀有样本或未探索区域。
CQL 在普通的贝尔曼方程上引入一些额外的限制项,达到了这一目标。接下来一步步介绍 CQL 算法的思路。在普通的 Q-learning 中,
Q
Q
Q 的更新方程可以写为:
Q
^
k
+
1
←
argmin
Q
E
(
s
,
a
)
∼
D
[
(
Q
(
s
,
a
)
−
B
^
π
Q
^
k
(
s
,
a
)
)
2
]
\hat{Q}^{k+1} \leftarrow \operatorname{argmin}_Q \mathbb{E}_{(s, a) \sim \mathcal{D}}\left[\left(Q(s, a)-\hat{\mathcal{B}}^\pi \hat{Q}^k(s, a)\right)^2\right]
Q^k+1←argminQE(s,a)∼D[(Q(s,a)−B^πQ^k(s,a))2]
其中, B ^ π \hat{\mathcal{B}}^\pi B^π 是实际计算时策略 π \pi π 的贝尔曼算子。为了防止 Q Q Q 值在各个状态上(尤其是不在数据集中的状态上)的过高估计,我们要对某些状态上的高 Q Q Q 值进行惩罚。
考虑一般情况,我们希望
Q
Q
Q 在某个特定分布
μ
(
s
,
a
)
\mu(s, a)
μ(s,a) 上的期望值最小。在上式中,
B
^
π
\hat{\mathcal{B}}^\pi
B^π 的计算需要用到
s
,
a
,
s
′
,
a
′
s, a, s^{\prime}, a^{\prime}
s,a,s′,a′ ,但只有
a
′
a^{\prime}
a′ 是生成的,可能不在数据集中。因此,我们对数据集中的状态
s
s
s 按策略
μ
\mu
μ 得到的动作进行惩罚:
Q
^
k
+
1
←
argmin
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 \operatorname{argmin}_Q \beta \mathbb{E}_{s \sim \mathcal{D}, a \sim \mu(a \mid s)}[Q(s, a)]+\frac{1}{2} \mathbb{E}_{(s, a) \sim \mathcal{D}}\left[\left(Q(s, a)-\hat{\mathcal{B}}^\pi \hat{Q}^k(s, a)\right)^2\right]
Q^k+1←argminQβEs∼D,a∼μ(a∣s)[Q(s,a)]+21E(s,a)∼D[(Q(s,a)−B^πQ^k(s,a))2]
其中, β \beta β 是平衡因子。可以证明,上式迭代收敛给出的函数 Q Q Q 在任何 ( s , a ) (s, a) (s,a) 上的值都比真实值要小。不过,如果我们放宽条件,只追求 Q Q Q 在 π ( a ∣ s ) \pi(a \mid s) π(a∣s) 上的期望值 V π V^\pi Vπ 比真实值小的话,就可以略微放松对上式的约束。
一个自然的想法是,对于符合用于生成数据集的行为策略
π
b
\pi_b
πb 的数据点,我们可以认为
Q
Q
Q 对这些点的估值较为准确,在这些点上不必限制让
Q
Q
Q 值很小。作为对第一项的补偿,将上式改为:
Q
^
k
+
1
←
argmin
Q
β
⋅
(
E
s
∼
D
,
a
∼
μ
(
a
∣
s
)
[
Q
(
s
,
a
)
]
−
E
s
∼
D
,
a
∼
π
^
b
(
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 \operatorname{argmin}_Q \beta \cdot\left(\mathbb{E}_{s \sim \mathcal{D}, a \sim \mu(a \mid s)}[Q(s, a)]-\mathbb{E}_{s \sim \mathcal{D}, a \sim \hat{\pi}_b(a \mid s)}[Q(s, a)]\right)+\frac{1}{2} \mathbb{E}_{(s, a) \sim \mathcal{D}}\left[\left(Q(s, a)-\hat{\mathcal{B}}^\pi \hat{Q}^k(s, a)\right)^2\right]
Q^k+1←argminQβ⋅(Es∼D,a∼μ(a∣s)[Q(s,a)]−Es∼D,a∼π^b(a∣s)[Q(s,a)])+21E(s,a)∼D[(Q(s,a)−B^πQ^k(s,a))2]
将行为策略
π
b
\pi_b
πb 写为
π
^
b
\hat{\pi}_b
π^b 是因为我们无法获知真实的行为策略,只能通过数据集中已有的数据近似得到。可以证明,当
μ
=
π
\mu=\pi
μ=π 时,上式迭代收敛得到的函数
Q
Q
Q 虽然不是在每一点上都小于真实值,但其期望是小于真实值的,即
E
π
(
a
∣
s
)
[
Q
^
π
(
s
,
a
)
]
≤
V
π
(
s
)
\mathbb{E}_{\pi(a \mid s)}\left[\hat{Q}^\pi(s, a)\right] \leq V^\pi(s)
Eπ(a∣s)[Q^π(s,a)]≤Vπ(s) 。
至此,CQL 算法已经有了理论上的保证,但仍有一个缺陷:计算的时间开销太大了。当令
μ
=
π
\mu=\pi
μ=π 时,在
Q
Q
Q 迭代的每一步,算法都要对策略
π
^
k
\hat{\pi}^k
π^k 做完整的离线策略评估来计算上式中的
arg min
\operatorname{arg~min}
arg min ,再进行一次策略迭代,而离线策略评估是非常耗时的。既然
π
\pi
π 并非与
Q
Q
Q 独立,而是通过
Q
Q
Q 值最大的动作衍生出来的,那么我们完全可以用使
Q
Q
Q 取最大值的
μ
\mu
μ 去近似
π
\pi
π ,即:
π
≈
max
μ
E
s
∼
D
,
a
∼
μ
(
a
∣
s
)
[
Q
(
s
,
a
)
]
\pi \approx \max _\mu \mathbb{E}_{s \sim \mathcal{D}, a \sim \mu(a \mid s)}[Q(s, a)]
π≈μmaxEs∼D,a∼μ(a∣s)[Q(s,a)]
为了防止过拟合,再加上正则项
R
(
μ
)
\mathcal{R}(\mu)
R(μ) 。综合起来就得到完整的迭代方程:
Q
^
k
+
1
←
argmin
Q
max
μ
β
⋅
(
E
s
∼
D
,
a
∼
μ
(
a
∣
s
)
[
Q
(
s
,
a
)
]
−
E
s
∼
D
,
a
∼
π
^
b
(
a
∣
s
)
[
Q
(
s
,
a
)
]
)
+
1
2
E
(
s
,
a
)
∼
D
[
(
Q
(
s
,
a
)
−
B
^
π
Q
^
k
(
s
,
a
)
)
2
]
+
R
(
μ
)
\hat{Q}^{k+1} \leftarrow \operatorname{argmin}_Q \max _\mu \beta \cdot\left(\mathbb{E}_{s \sim \mathcal{D}, a \sim \mu(a \mid s)}[Q(s, a)]-\mathbb{E}_{s \sim \mathcal{D}, a \sim \hat{\pi}_b(a \mid s)}[Q(s, a)]\right)+\frac{1}{2} \mathbb{E}_{(s, a) \sim \mathcal{D}}\left[\left(Q(s, a)-\hat{\mathcal{B}}^\pi \hat{Q}^k(s, a)\right)^2\right]+\mathcal{R}(\mu)
Q^k+1←argminQμmaxβ⋅(Es∼D,a∼μ(a∣s)[Q(s,a)]−Es∼D,a∼π^b(a∣s)[Q(s,a)])+21E(s,a)∼D[(Q(s,a)−B^πQ^k(s,a))2]+R(μ)
正则项采用和一个先验策略
ρ
(
a
∣
s
)
\rho(a \mid s)
ρ(a∣s) 的 KL 距离,即:
R
(
μ
)
=
−
D
K
L
(
μ
,
ρ
)
\mathcal{R}(\mu)=-D_{K L}(\mu, \rho)
R(μ)=−DKL(μ,ρ)
一般来说,取
ρ
(
a
∣
s
)
\rho(a \mid s)
ρ(a∣s) 为均匀分布
U
(
a
)
\mathcal{U}(a)
U(a) 即可,这样可以将迭代方程化简为:
Q
^
k
+
1
←
argmin
Q
β
⋅
E
s
∼
D
[
log
∑
a
exp
(
Q
(
s
,
a
)
)
−
E
a
∼
π
^
b
(
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 \operatorname{argmin}_Q \beta \cdot \mathbb{E}_{s \sim \mathcal{D}}\left[\log \sum_a \exp (Q(s, a))-\mathbb{E}_{a \sim \hat{\pi}_b(a \mid s)}[Q(s, a)]\right]+\frac{1}{2} \mathbb{E}_{(s, a) \sim \mathcal{D}}\left[\left(Q(s, a)-\hat{\mathcal{B}}^\pi \hat{Q}^k(s, a)\right)^2\right]
Q^k+1←argminQβ⋅Es∼D[loga∑exp(Q(s,a))−Ea∼π^b(a∣s)[Q(s,a)]]+21E(s,a)∼D[(Q(s,a)−B^πQ^k(s,a))2]
可以注意到,简化后式中已经不含有 μ \mu μ ,为计算提供了很大方便。该化简需要进行一些数学推导感兴趣的读者也可尝试自行推导。
上面给出了函数
Q
Q
Q 的迭代方法。CQL 属于直接在函数
Q
Q
Q 上做限制的一类方法,对策略
π
\pi
π 没有特殊要求,因此分别有基于 DQN
和 SAC
两种框架的 CQL 算法。考虑到后者应用更广泛,且大部分的实验结果都是基于后者得出的,这里只介绍基于 SAC 的版本。
总结起来,CQL 算法流程如下:
-
初始化 Q Q Q 网络 Q θ Q_\theta Qθ 、目标 Q Q Q 网络 Q θ ′ Q_{\theta^{\prime}} Qθ′ 和策略 π ϕ \pi_\phi πϕ 、熵正则系数 α \alpha α
-
for 训练次数 t = 1 → T t=1 \rightarrow T t=1→T do
-
更新熵正则系数:
- α t ← α t − 1 − η α ∇ α E s ∼ D , a ∼ π ϕ ( a ∣ s ) [ − α t − 1 log π ϕ ( a ∣ s ) − α t − 1 H ] \alpha_t \leftarrow \alpha_{t-1}-\eta_\alpha \nabla_\alpha \mathbb{E}_{s \sim \mathcal{D}, a \sim \pi_\phi(a \mid s)}\left[-\alpha_{t-1} \log \pi_\phi(a \mid s)-\alpha_{t-1} \mathcal{H}\right] αt←αt−1−ηα∇αEs∼D,a∼πϕ(a∣s)[−αt−1logπϕ(a∣s)−αt−1H]
-
更新函数 Q Q Q :
- θ t ← θ t − 1 − η Q ∇ θ ( α ⋅ E s ∼ D [ log ∑ a exp ( Q θ ( s , a ) ) − E a ∼ π ^ b ( a ∣ s ) [ Q θ ( s , a ) ] ] + 1 2 E ( s , a ) ∼ D [ ( Q θ ( s , a ) − B π ϕ Q θ ( s , a ) ) 2 ] ) \theta_t \leftarrow \theta_{t-1}-\eta_Q \nabla_\theta\left(\alpha \cdot \mathbb{E}_{s \sim \mathcal{D}}\left[\log \sum_a \exp \left(Q_\theta(s, a)\right)-\mathbb{E}_{a \sim \hat{\pi}_b(a \mid s)}\left[Q_\theta(s, a)\right]\right] +\frac{1}{2} \mathbb{E}_{(s, a) \sim \mathcal{D}}\left[\left(Q_\theta(s, a)-\mathcal{B}^{\pi_\phi} Q_\theta(s, a)\right)^2\right]\right) θt←θt−1−ηQ∇θ(α⋅Es∼D[loga∑exp(Qθ(s,a))−Ea∼π^b(a∣s)[Qθ(s,a)]]+21E(s,a)∼D[(Qθ(s,a)−BπϕQθ(s,a))2])
-
更新策略:
- ϕ t ← ϕ t − 1 − η π ∇ ϕ E s ∼ D , a ∼ π ϕ ( a ∣ s ) [ α log π ϕ ( a ∣ s ) − Q θ ( s , a ) ] \phi_t \leftarrow \phi_{t-1}-\eta_\pi \nabla_\phi \mathbb{E}_{s \sim \mathcal{D}, a \sim \pi_\phi(a \mid s)}\left[\alpha \log \pi_\phi(a \mid s)-Q_\theta(s, a)\right] ϕt←ϕt−1−ηπ∇ϕEs∼D,a∼πϕ(a∣s)[αlogπϕ(a∣s)−Qθ(s,a)]
-
-
end for
参考资料
《动手学强化学习》