强化学习+diffusion模型
算法 Diffusion-QL (伪代码)
输入:
- 经验池D\mathcal{D}D
- 迭代步数 NiterN_{iter}Niter
- 批量大小BBB
- 折扣因子γ\gammaγ
- 软更新系数τ\tauτ
- 行为克隆/Q-learning 权衡系数 η\etaη
- 其他超参数(βschedule\beta_{schedule}βschedule, ntimestepsn_{timesteps}ntimesteps, grad-norm等)
初始化:
- Actor πθ\pi_\thetaπθ ← 条件扩散模型 Diffusion
- EMA-Actor πθˉ\pi_{\bar{\theta}}πθˉ ← θ\thetaθ 的深拷贝
- Critic Qϕ={Q1,Q2}Q_\phi=\{Q_1,Q_2\}Qϕ={Q1,Q2} ← 双 Q 网络
- Target-Critic QϕˉQ_{\bar{\phi}}Qϕˉ ← ϕ\phiϕ 的深拷贝
- 优化器 & 学习率调度器
──────────────────────────────────────────────────────────────
FOR step=1…Niterstep=1\dots N_{\text{iter}}step=1…Niter DO
-
采样小批量
(s,a,r,s′,d)←D.sample(B)(s,a,r,s',d)←\mathcal{D}.\text{sample}(B)(s,a,r,s′,d)←D.sample(B) -
更新 Critic(值函数)
2.1 目标动作
a^′←πθˉ(s′)\hat{a}'←\pi_{\bar{\theta}}(s')a^′←πθˉ(s′) # 用 EMA-Actor 生成
IF max_q_backupmax\_q\_backupmax_q_backup THEN # 可选:10 次重复取最大 Q
yˉ←minjmaxkQϕˉj(s′,a^k′)\bar{y}←\min\limits_j\max\limits_k Q_{\bar{\phi}_j}(s',\hat{a}'_k)yˉ←jminkmaxQϕˉj(s′,a^k′)
ELSE
yˉ←minjQϕˉj(s′,a^′)\bar{y}←\min\limits_j Q_{\bar{\phi}_j}(s',\hat{a}')yˉ←jminQϕˉj(s′,a^′)
ENDIF
y=r+γ (1−d) yˉy = r + \gamma\,(1-d)\,\bar{y}y=r+γ(1−d)yˉ
2.2 损失与梯度
Lcritic=∑j(Qϕj(s,a)−y)2L_{\text{critic}}=\sum\limits_j\bigl(Q_{\phi_j}(s,a)-y\bigr)^2Lcritic=j∑(Qϕj(s,a)−y)2
gϕ←∇ϕ Lcriticg_\phi←\nabla_\phi\,L_{\text{critic}}gϕ←∇ϕLcritic
ϕ←Adam(ϕ,gϕ,clip=gradnorm)\phi←\text{Adam}(\phi,g_\phi,\text{clip}=grad_{\text{norm}})ϕ←Adam(ϕ,gϕ,clip=gradnorm) -
更新 Actor(策略)
3.1 行为克隆损失(扩散噪声重建)
LBC=∥ϵ−ϵθ(at,t,s)∥2L_{\text{BC}}=\lVert\epsilon-\epsilon_\theta(a_t,t,s)\rVert^2LBC=∥ϵ−ϵθ(at,t,s)∥2
3.2 价值提升项
a~←πθ(s)\tilde{a}←\pi_\theta(s)a~←πθ(s)
随机选择 (i,j)∈{(1,2),(2,1)}(i,j)\in\{(1,2),(2,1)\}(i,j)∈{(1,2),(2,1)}
LQL=−Qϕi(s,a~)∣Qϕj(s,a~)∣L_{\text{QL}}=-\frac{Q_{\phi_i}(s,\tilde{a})}{\bigl|Q_{\phi_j}(s,\tilde{a})\bigr|}LQL=−Qϕj(s,a~)Qϕi(s,a~)
Lactor=LBC+η LQLL_{\text{actor}}=L_{\text{BC}}+\eta\,L_{\text{QL}}Lactor=LBC+ηLQL
gθ←∇θ Lactorg_\theta←\nabla_\theta\,L_{\text{actor}}gθ←∇θLactor
θ←Adam(θ,gθ,clip=gradnorm)\theta←\text{Adam}(\theta,g_\theta,\text{clip}=grad_{\text{norm}})θ←Adam(θ,gθ,clip=gradnorm) -
软更新目标 Critic
ϕˉ←τ ϕ+(1−τ) ϕˉ\bar{\phi}←\tau\,\phi+(1-\tau)\,\bar{\phi}ϕˉ←τϕ+(1−τ)ϕˉ -
EMA 更新 Actor (每 update_ema_everyupdate\_{\text{ema\_every}}update_ema_every 步且 step≥step_start_emastep\ge step\_{\text{start\_ema}}step≥step_start_ema)
θˉ←α θˉ+(1−α) θ\bar{\theta}←\alpha\,\bar{\theta}+(1-\alpha)\,\thetaθˉ←αθˉ+(1−α)θ # α=emadecay\alpha=ema_{\text{decay}}α=emadecay -
学习率调度 (可选)
scheduler.step()
END FOR
──────────────────────────────────────────────────────────────
推断(采样动作):
给定状态 sss
重复 50 次生成候选动作 {ak∼πθ(s)}\{a_k\sim\pi_\theta(s)\}{ak∼πθ(s)}
计算 qk=min(Qϕˉ1,Qϕˉ2)(s,ak)q_k=\min\bigl(Q_{\bar{\phi}_1},Q_{\bar{\phi}_2}\bigr)(s,a_k)qk=min(Qϕˉ1,Qϕˉ2)(s,ak)
按 softmax(qk)\text{softmax}(q_k)softmax(qk) 采样 1 个动作作为输出
1. 代码结构概览
-
Critic
- 两个 Q 网络 Qϕ1,Qϕ2Q_{\phi_1},Q_{\phi_2}Qϕ1,Qϕ2,采用相同的全连接结构(激活函数为 Mish)。
- 前向输入拼接状态 sss 与动作 aaa,输出对应的 Q 值。
- 提供辅助函数
q1、q_min方便单独取 Q1Q_1Q1 或 min(Q1,Q2)\min(Q_1,Q_2)min(Q1,Q2)。
-
Actor
- 调用
agents.diffusion.Diffusion,本质是条件扩散模型:给定状态逐步去噪得到动作。 - 模型骨干是
MLP(见agents.model),输出噪声或直观动作表征。
- 调用
-
EMA-Actor
- 用
agents.helpers.EMA维护 θˉ\bar θθˉ:
θˉ←α θˉ+(1−α) θ \bar θ \leftarrow \alpha\,\bar θ + (1-\alpha)\,θ θˉ←αθˉ+(1−α)θ - 仅在
step ≥ step_start_ema且满足步频update_ema_every时更新。
- 用
-
优化与调度
- Actor、Critic 均用 Adam;可选余弦退火学习率 (
CosineAnnealingLR)。 - 梯度裁剪 ∥g∥2≤grad_norm\lVert g\rVert_2 \le \text{grad\_norm}∥g∥2≤grad_norm。
- Actor、Critic 均用 Adam;可选余弦退火学习率 (
2. 数学推导
2.1 扩散策略
- 正向加噪
q(at∣at−1)=N (1−βt at−1, βtI)q(\mathbf a_t\mid\mathbf a_{t-1})=\mathcal N\!\bigl(\sqrt{1-\beta_t}\,\mathbf a_{t-1},\,\beta_t\mathbf I\bigr)q(at∣at−1)=N(1−βtat−1,βtI) - 反向去噪(策略)
pθ(at−1∣at,s)=N (μθ,σt2I),μθ=11−βt (at−βtϵθ(at,t,s))p_\theta(\mathbf a_{t-1}\mid\mathbf a_t,s)=\mathcal N\!\bigl(\mu_\theta,\sigma_t^2\mathbf I\bigr),\quad \mu_\theta=\tfrac1{\sqrt{1-\beta_t}}\!\bigl(\mathbf a_t-\beta_t\epsilon_\theta(\mathbf a_t,t,s)\bigr)pθ(at−1∣at,s)=N(μθ,σt2I),μθ=1−βt1(at−βtϵθ(at,t,s)) - 行为克隆损失
LBC=E(s,a0)∼D, t∼U[1,T], ε∼N(0,I) ∥ε−ϵθ(at,t,s)∥22 \mathcal L_{\text{BC}} =\mathbb E_{(s,a_0)\sim\mathcal D,\;t\sim\mathcal U[1,T],\;\varepsilon\sim\mathcal N(0,\mathbf I)} \!\bigl\lVert\varepsilon-\epsilon_\theta(\mathbf a_t,t,s)\bigr\rVert_2^2 LBC=E(s,a0)∼D,t∼U[1,T],ε∼N(0,I)ε−ϵθ(at,t,s)22
2.2 双 Q 学习
- 目标动作
a^′=πθˉ(s′)\hat a' = \pi_{\bar θ}(s')a^′=πθˉ(s′)(或 10×重复取最大 Q,取决于max_q_backup)。 - TD 目标
y=r+γ (1−d) mini=1,2 Qϕˉi(s′,a^′) y = r + γ\,(1-d)\,\underset{i=1,2}{\min} \,Q_{\bar ϕ_i}(s',\hat a') y=r+γ(1−d)i=1,2minQϕˉi(s′,a^′) - Critic 损失
Lcritic=∑i=12E(s,a)∼D(Qϕi(s,a)−y)2 \mathcal L_{\text{critic}} =\sum_{i=1}^{2}\mathbb E_{(s,a)\sim\mathcal D}\bigl(Q_{ϕ_i}(s,a)-y\bigr)^2 Lcritic=i=1∑2E(s,a)∼D(Qϕi(s,a)−y)2
2.3 策略改进项
- 生成新动作 a~=πθ(s)\tilde a=\pi_θ(s)a~=πθ(s)
- 随机交换索引 (i,j)∈{(1,2),(2,1)}(i,j)\in\{(1,2),(2,1)\}(i,j)∈{(1,2),(2,1)},计算
LQL=−Qϕi(s,a~)∣ Qϕj(s,a~)∣ \mathcal L_{\text{QL}} = -\frac{Q_{ϕ_i}(s,\tilde a)}{\bigl|\,Q_{ϕ_j}(s,\tilde a)\bigr|} LQL=−Qϕj(s,a~)Qϕi(s,a~) - 总 Actor 损失
Lactor=LBC+η LQL \mathcal L_{\text{actor}} = \mathcal L_{\text{BC}} + η\,\mathcal L_{\text{QL}} Lactor=LBC+ηLQL
2.4 软更新
ϕˉ←τ ϕ+(1−τ) ϕˉ \bar ϕ \leftarrow τ\,ϕ + (1-τ)\,\bar ϕ ϕˉ←τϕ+(1−τ)ϕˉ
3. 训练循环摘要
for each gradient step:
1. 从经验池采样 (s,a,r,s',d)
2. 更新 Critic :最小化 L_critic
3. 更新 Actor :最小化 L_actor
4. 软更新 Critic_target
5. EMA 更新 Actor_bar (按频率与起始步数触发)
6. 可选:学习率调度器步进
加噪过程(Diffusion模型损失函数)
加噪过程由 q_sample 函数实现,数学公式为: xt=αˉtx0+1−αˉtϵ x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}_t} \epsilon xt=αˉtx0+1−αˉtϵ 其中,x0x_0x0 是初始动作,ϵ\epsilonϵ 是高斯噪声,αˉt=∏i=1tαi\bar{\alpha}_t = \prod_{i=1}^{t} \alpha_iαˉt=∏i=1tαi,αi=1−βi\alpha_i = 1 - \beta_iαi=1−βi,βi\beta_iβi 是扩散系数。
损失计算
若 self.predict_epsilon 为 True,模型预测噪声,损失函数为: L=Loss(f(xt,t,s),ϵ)⋅w L = \text{Loss}(f(x_t, t, s), \epsilon) \cdot w L=Loss(f(xt,t,s),ϵ)⋅w 若 self.predict_epsilon 为 False,模型直接预测 x0x_0x0,损失函数为: L=Loss(f(xt,t,s),x0)⋅w L = \text{Loss}(f(x_t, t, s), x_0) \cdot w L=Loss(f(xt,t,s),x0)⋅w 其中,f(xt,t,s)f(x_t, t, s)f(xt,t,s) 是模型的输出,Loss\text{Loss}Loss 是损失函数(如 L2 损失),www 是权重。
loss 函数最终公式
综合以上步骤,loss 函数的数学公式为:
L=1B∑i=1B{Loss(f(xti,ti,si),ϵi)⋅wi,if self.predict_epsilon=TrueLoss(f(xti,ti,si),x0i)⋅wi,if self.predict_epsilon=False
L = \frac{1}{B} \sum_{i=1}^{B} \begin{cases} & \text{Loss}(f(x_{t_i}, t_i, s_i), \epsilon_i) \cdot w_i , \text{if} \ \text{self.predict\_epsilon} = \text{True} \\
& \text{Loss}(f(x_{t_i}, t_i, s_i), x_{0_i}) \cdot w_i, \text{if} \ \text{self.predict\_epsilon} = \text{False} \end{cases}
L=B1i=1∑B{Loss(f(xti,ti,si),ϵi)⋅wi,if self.predict_epsilon=TrueLoss(f(xti,ti,si),x0i)⋅wi,if self.predict_epsilon=False
其中,BBB 是批量大小,xtix_{t_i}xti 是第 iii 个样本在时间步 tit_iti 的加噪动作,sis_isi 是第 iii 个样本的状态,ϵi\epsilon_iϵi 是第 iii 个样本的高斯噪声,x0ix_{0_i}x0i 是第 iii 个样本的初始动作,wiw_iwi 是第 iii 个样本的权重。
参考文献翻译
相关工作:策略正则化(Policy Regularization)
离线强化学习中,大多数基于策略正则化的方法依赖行为克隆 (behavior cloning, BC) 来实现策略正则化:
- BCQ (Fujimoto 等人,2019) 将策略建模为在单独学习得到的条件变分自编码器 (Conditional-VAE,CVAE;Sohn 等人,2015) 行为克隆模型附近、且受到最大 Q 值约束的可训练偏移;
- BEAR (Kumar 等人,2019) 在策略改进步骤中加入加权的行为克隆损失,通过最小化 MMD 来实现;
- TD3+BC (Fujimoto & Gu,2021) 采用与 BEAR 相同的技巧,但使用最大似然估计 (MLE);
- BRAC (Wu 等人,2019) 评估了多种行为克隆正则化方法,如 KL 散度、MMD 以及 Wasserstein 对偶形式;
- IQL (Kostrikov 等人,2021b) 是一种基于优势 (advantage) 加权的行为克隆方法,使用“样本内”学习得到的 Q 值;
- Goo & Niekum (2022) 强调在离线 RL 中显式执行行为克隆的必要性,而 Ajay 等人 (2022) 则肯定了条件生成模型在决策中的威力。
相关工作:扩散模型在强化学习中的应用
- Pearce 等人 (2023) 提出了利用具有强表达能力且稳定的扩散模型更好地模仿人类行为;
- Diffuser (Janner 等人,2022) 将扩散模型用作轨迹生成器,将完整的状态-动作序列视为单个样本,并单独训练一个回报模型来预测每条轨迹的累积奖励,然后在反向采样阶段注入该回报模型的引导。该方法与 Decision Transformer (Chen 等人,2021) 类似,后者也在 GPT-2 (Radford 等人,2019) 上训练轨迹生成器,并借助真实轨迹回报;
- 在在线使用时,序列模型无法再自回归地由状态预测动作(因为状态是环境输出)。因此在评估阶段,需要为每个状态预测整条轨迹,但只执行第一步动作,计算开销较大。
- 我们的方法以完全不同的方式在 RL 中使用扩散模型:
- 我们将扩散模型作用于动作空间,并将其构造成条件扩散模型,以状态作为条件;
- 该方法是无模型 (model-free) 的,扩散模型一次仅采样一个动作;
- Q 值函数的引导在训练期间注入,在我们的实验中带来了良好的性能。
虽然 Diffuser (Janner 等人,2022) 和我们的工作都在离线 RL 中应用扩散模型,但 Diffuser 立足于基于模型的轨迹规划视角,而我们的方法则属于离线、无模型的策略优化视角。
DIFFUSION Q-LEARNING
下面说明我们如何将条件扩散模型用作行为克隆的一种高表达力策略;随后介绍如何在训练阶段把 Q-learning 指导融入扩散模型的学习过程,并把行为克隆项视作策略正则化的一种形式。
3.1 扩散策略(Diffusion Policy)
符号约定: 本文中存在两类时间步——扩散过程的时间步与强化学习 (RL) 的轨迹时间步。我们使用上标 i∈{1,…,N}i\in\{1,\dots,N\}i∈{1,…,N} 表示扩散时间步,下标 t∈{1,…,T}t\in\{1,\dots,T\}t∈{1,…,T} 表示轨迹时间步。
策略表示
我们将 RL 策略表示为条件扩散模型反向过程的终点分布:
πθ(a∣s)=pθ(a0:N∣s)=N(aN; 0,I) ∏i=1Npθ(ai−1∣ai,s), \pi_\theta(a\mid s)=p_\theta(a_{0:N}\mid s) = \mathcal{N}(a_N;\,0,I)\, \prod_{i=1}^{N} p_\theta(a_{i-1}\mid a_i,s), πθ(a∣s)=pθ(a0:N∣s)=N(aN;0,I)i=1∏Npθ(ai−1∣ai,s),
其中反向链的最终样本 a0a_0a0 就是 RL 执行时采用的动作。一般而言,
pθ(ai−1∣ai,s)=N (ai−1; μθ(ai,s,i), Σθ(ai,s,i)). p_\theta(a_{i-1}\mid a_i,s)= \mathcal{N}\!\bigl(a_{i-1};\, \mu_\theta(a_i,s,i),\,\Sigma_\theta(a_i,s,i)\bigr). pθ(ai−1∣ai,s)=N(ai−1;μθ(ai,s,i),Σθ(ai,s,i)).
噪声预测参数化
按照 Ho 等人 (2020) 的做法,固定协方差为 Σθ(ai,s,i)=βiI\Sigma_\theta(a_i,s,i)=\beta_i IΣθ(ai,s,i)=βiI,并将均值写成
μθ(ai,s,i)=1αi (ai−βi1−αˉi ϵθ(ai,s,i)). \mu_\theta(a_i,s,i)= \sqrt{\tfrac{1}{\alpha_i}} \!\left( a_i-\sqrt{\tfrac{\beta_i}{1-\bar{\alpha}_i}}\, \epsilon_\theta(a_i,s,i) \right). μθ(ai,s,i)=αi1(ai−1−αˉiβiϵθ(ai,s,i)).
反向采样
- 先从高斯先验采样 aN∼N(0,I)a_N\sim\mathcal{N}(0,I)aN∼N(0,I);
- 然后按下式逐步去噪,i=N,…,1i=N,\dots,1i=N,…,1:
ai−1 ∣ ai=αi ai−βiαi(1−αˉi) ϵθ(ai,s,i)+βi ϵ,ϵ∼N(0,I).(1) a_{i-1}\,\bigl|\,a_i =\sqrt{\alpha_i}\,a_i -\sqrt{\tfrac{\beta_i}{\alpha_i(1-\bar{\alpha}_i)}}\, \epsilon_\theta(a_i,s,i) +\sqrt{\beta_i}\,\epsilon, \quad \epsilon\sim\mathcal{N}(0,I). \tag{1} ai−1ai=αiai−αi(1−αˉi)βiϵθ(ai,s,i)+βiϵ,ϵ∼N(0,I).(1)
在 i=1i=1i=1 时,遵循 DDPM (Ho 等人,2020) 的做法将 ϵ\epsilonϵ 置零以提升采样质量。
训练目标
借鉴 Ho 等人 (2020) 的简化目标,训练条件 ϵ\epsilonϵ-模型的行为克隆损失为
Ld(θ)=Ei∼U,ϵ∼N(0,I),(s,a)∼D∥ϵ−ϵθ (αˉi a+1−αˉi ϵ, s, i)∥22.(2) L_d(\theta)= \mathbb{E}_{\substack{ i\sim U,\; \epsilon\sim\mathcal{N}(0,I), (s,a)\sim\mathcal{D} }} \bigl\| \epsilon- \epsilon_\theta\!\bigl( \sqrt{\bar{\alpha}_i}\,a+ \sqrt{1-\bar{\alpha}_i}\,\epsilon,\, s,\, i \bigr) \bigr\|_2^2. \tag{2} Ld(θ)=Ei∼U,ϵ∼N(0,I),(s,a)∼Dϵ−ϵθ(αˉia+1−αˉiϵ,s,i)22.(2)
该损失驱动 πθ\pi_\thetaπθ 在行为克隆意义上逼近离线数据分布,同时为后续加入 Q-learning 指导奠定基础。
其中 UUU 表示离散集合 {1,…,N}\{1,\dots,N\}{1,…,N} 上的均匀分布,DDD 表示离线数据集,由行为策略 πb\pi_bπb 收集。该扩散模型损失 Ld(θ)L_d(\theta)Ld(θ) 属于行为克隆损失,其目标是学习行为策略 πb(a∣s)\pi_b(a\mid s)πb(a∣s)(即从与训练数据同分布的动作中进行采样)。需要注意的是,反向扩散链的边缘分布提供了一种隐式而富有表现力的分布,能够捕捉离线数据集中表现出的偏态、 多峰等复杂特性。此外,该正则化是基于采样的,只需从 DDD 和当前策略中随机取样即可(即不必显式获得行为策略;当数据集来源于人类演示时,行为策略往往无法确定)。与常见的“两步式”方法不同,我们的策略为在灵活策略上实施正则化提供了一种简洁且有效的途径。
Ld(θ)L_d(\theta)Ld(θ) 可通过对每个数据点仅采样一次扩散步 iii 来高效优化,但式 (1) 中的反向采样需要迭代计算 ϵθ\epsilon_\thetaϵθ 网络 NNN 次,这可能成为运行时间瓶颈。因此,我们倾向于将 NNN 控制为较小值。为了在较小 NNN 下工作,在 βmin=0.1\beta_{\min}=0.1βmin=0.1、βmax=10.0\beta_{\max}=10.0βmax=10.0 的设置下,我们遵循 Xiao 等人 (2021) 定义
βi = 1−αi = 1−e−βmin(1N) − 0.5(βmax−βmin) 2i−1N2, \beta_i \;=\; 1-\alpha_i \;=\; 1 - e^{-\beta_{\min}\left(\tfrac{1}{N}\right)} \;-\; 0.5(\beta_{\max}-\beta_{\min})\,\frac{2i-1}{N^{2}}, βi=1−αi=1−e−βmin(N1)−0.5(βmax−βmin)N22i−1,
该噪声调度取自 Song 等人 (2021) 的方差保持随机微分方程 (SDE) 框架。
3.2 Q-学习(Q-LEARNING)
行为正则化损失 Ld(θ)L_d(\theta)Ld(θ) 本质上是一个行为克隆项,只能让策略复现生成训练数据的行为策略,而无法超越该行为策略。为了提升策略性能,我们在训练阶段向反向扩散链中注入 Q 值函数 的引导,使模型倾向于采样高价值动作。最终的策略学习目标是策略正则化与策略改进的线性组合:
π = argminπθ L(θ) = Ld(θ)+Lq(θ) = Ld(θ) − α⋅Es∼D, a0∼πθ[ Qϕ(s,a0)].(3) \pi \;=\; \underset{\pi_\theta}{\arg\min}\; L(\theta) \;=\; L_d(\theta) + L_q(\theta) \;=\; L_d(\theta)\;-\;\alpha \cdot \mathbb{E}_{s\sim\mathcal{D},\,a_0\sim\pi_\theta} \bigl[\,Q_\phi(s,a_0)\bigr]. \tag{3} π=πθargminL(θ)=Ld(θ)+Lq(θ)=Ld(θ)−α⋅Es∼D,a0∼πθ[Qϕ(s,a0)].(3)
其中 a0a_0a0 通过公式 (1) 重新参数化,因此 Q 值对动作的梯度能够反向传播穿过整条扩散链。
由于不同离线数据集中的 Q 值量级可能差异较大,为了归一化,我们遵循 Fujimoto & Gu (2021) 的做法,将
α=ηE(s,a)∼D [ ∣Qϕ(s,a)∣ ], \alpha = \frac{\eta}{\mathbb{E}_{(s,a)\sim\mathcal{D}}\!\bigl[\,|Q_\phi(s,a)|\,\bigr]}, α=E(s,a)∼D[∣Qϕ(s,a)∣]η,
其中 η\etaη 为平衡两项损失的超参数;分母中的 Q 仅用于归一化,不参与求导。
Q 值函数本身按照常规方法学习——在双 Q-learning 技巧 (Hasselt, 2010) 下最小化 Bellman 误差 (Lillicrap et al., 2015; Fujimoto et al., 2019)。我们构建了两组 Q 网络 Qϕ1,Qϕ2Q_{\phi_1},Q_{\phi_2}Qϕ1,Qϕ2 以及对应的目标网络 Qϕ1′,Qϕ2′Q_{\phi'_1},Q_{\phi'_2}Qϕ1′,Qϕ2′,同时建立目标策略 πθ′\pi_{\theta'}πθ′。优化 ϕi (i∈{1,2})\phi_i\;(i\in\{1,2\})ϕi(i∈{1,2}) 的目标为
E(st,at,st+1)∼D, at+10∼πθ′[∣∣(r(st,at)+γ mini=1,2Qϕi′(st+1,at+10))−Qϕi(st,at)∣∣2].(4) \mathbb{E}_{(s_t,a_t,s_{t+1})\sim\mathcal{D},\, a_{t+1}^0\sim\pi_{\theta'}} \Bigl[ || \bigl( r(s_t,a_t) + \gamma\,\min_{i=1,2} Q_{\phi'_i}(s_{t+1},a_{t+1}^0)\bigr) - Q_{\phi_i}(s_t,a_t) ||^2 \Bigr]. \tag{4} E(st,at,st+1)∼D,at+10∼πθ′[∣∣(r(st,at)+γi=1,2minQϕi′(st+1,at+10))−Qϕi(st,at)∣∣2].(4)
在第 4 节和第 5 节的大量实验中,我们验证了 LdL_dLd 与 LqL_qLq 的协同作用可获得最佳性能。实现细节见算法 1。
&spm=1001.2101.3001.5002&articleId=149276864&d=1&t=3&u=7c07e7ae6c8847358846b4eb06799683)
1万+

被折叠的 条评论
为什么被折叠?



