强化学习算法(TD3)
解决 Actor-Critic 方法中的函数近似误差
摘要
在深度 Q 学习等基于价值的强化学习方法中,函数近似误差会导致价值估计过高和策略次优。我们发现该问题在 actor-critic 框架中依然存在,并提出新机制以减少其对 actor 和 critic 的影响。我们的算法基于 Double Q-learning,通过取一对 critic 的最小值来限制过高估计。我们揭示了目标网络与过高估计偏差之间的联系,并建议延迟策略更新以减少每次更新的误差,进一步提升性能。我们在 OpenAI gym 任务集上评估了该方法,在所有测试环境中均优于当前最先进水平。
0 阅读指引与要点
文档目标:本文档详细介绍了 TD3(Twin Delayed Deep Deterministic Policy Gradient)算法,这是 DDPG 的改进版本,通过 Twin Critic、延迟策略更新和目标策略平滑解决了函数近似误差问题。
- 🔑 核心目标:通过 Twin Critic + 延迟策略更新 + 目标策略平滑,解决 Actor-Critic 方法中的函数近似误差问题。
- 🧩 关键组件:
- Twin Critic 网络:两个独立的 Critic 网络,取最小值减少 Q 值高估
- 延迟策略更新:Actor 更新频率低于 Critic,提高稳定性
- 目标策略平滑:在目标动作上添加噪声,防止过拟合
- Clipped Double Q-Learning:使用两个 Critic 的最小值计算 TD 目标
- 🧭 推荐阅读路径:
- 第 1 节(引言):了解问题背景和 TD3 的动机
- 第 4 节(过高估计偏差):重点阅读,理解 Actor-Critic 中的过高估计问题
- 第 5 节(解决方差问题):理解延迟策略更新和目标策略平滑
- 第 6 节(实验):了解 TD3 在不同任务上的性能表现
- 🧪 实践提示:
- Twin Critic 取最小值可以减少 Q 值高估,提高稳定性
- 延迟策略更新(每 2 步更新一次 Actor)可以减少误差累积
- 目标策略平滑噪声标准差通常为 0.2,裁剪范围为 0.5
- 软更新系数 τ\tauτ 通常为 5e-3
与项目代码的对应:
- Actor 网络 →
src/td3.py中的Actor类 - Twin Critic 网络 →
src/td3.py中的Critic类(两个实例) - Clipped Double Q-Learning →
TD3Agent.update方法中的 TD 目标计算 - 延迟策略更新 →
TD3Agent.update方法中的更新频率控制 - 目标策略平滑 →
TD3Agent.update方法中的噪声添加
1. 引言
在离散动作空间的强化学习问题中,函数近似误差导致的价值过高估计问题已得到充分研究。然而,连续控制领域中 actor-critic 方法的类似问题在很大程度上仍未被触及。本文表明,过高估计偏差和时序差分方法中的误差累积在 actor-critic 框架中同样存在。我们提出的方法解决了这些问题,并显著优于当前最先进水平。
过高估计偏差是 Q 学习的一种特性,其中对含噪声价值估计的最大化会导致持续的过高估计(Thrun & Schwartz, 1993)。在函数近似场景中,由于估计器的不精确性,这种噪声不可避免。时序差分学习(Sutton, 1988)的特性进一步放大了这种不准确性,该学习方式利用后续状态的估计来更新价值函数的估计。这意味着每次更新中使用不精确的估计会导致误差累积。由于过高估计偏差,这种累积误差可能使任意差的状态被估计为高价值,从而导致次优的策略更新和发散行为。
本文首先证实,在连续控制场景中,确定性策略梯度(Silver et al., 2014)也存在这种过高估计特性。此外,我们发现离散动作场景中广泛使用的解决方案 Double DQN(Van Hasselt et al., 2016)在 actor-critic 框架中效果不佳。训练期间,Double DQN 使用单独的目标价值函数估计当前策略的价值,从而在评估动作时避免最大化偏差。但遗憾的是,由于 actor-critic 框架中的策略变化缓慢,当前和目标价值估计仍然过于相似,无法避免最大化偏差。这可以通过将较早的变体 Double Q-learning(Van Hasselt, 2010)适配到 actor-critic 形式来解决,即使用一对独立训练的 critic。虽然这能实现偏差较小的价值估计,但即使是高方差的无偏估计,仍可能导致状态空间局部区域的未来过高估计,进而对全局策略产生负面影响。为解决此问题,我们提出一种裁剪 Double Q-learning 变体,其利用了受过高估计偏差影响的价值估计可作为真实价值估计近似上界的概念。这更倾向于过低估计,因为策略会避免选择具有低价值估计的动作,从而不会在学习过程中传播过低估计。
鉴于噪声与过高估计偏差的关联,本文包含多个方差减少组件。首先,我们表明目标网络(深度 Q 学习方法中的常用手段)通过减少误差累积对降低方差至关重要。其次,为解决价值与策略的耦合问题,我们建议延迟策略更新,直到价值估计收敛。最后,我们引入一种新的正则化策略,其中 SARSA 式更新通过引导相似动作估计来进一步降低方差。
我们将这些改进应用于连续控制领域最先进的 actor-critic 方法——深度确定性策略梯度算法(DDPG)(Lillicrap et al., 2015),形成双延迟深度确定性策略梯度算法(TD3)。这是一种 actor-critic 算法,考虑了策略和价值更新中函数近似误差的相互作用。我们在 OpenAI gym(Brockman et al., 2016)的七个连续控制领域评估了该算法,结果大幅优于当前最先进水平。
2. 相关工作
先前的研究已探讨了函数近似误差及其对强化学习算法中偏差和方差的影响(Pendrith et al., 1997; Mannor et al., 2007)。我们的工作聚焦于估计误差导致的两种结果,即过高估计偏差和高方差累积。
已有多种方法可减少Q学习中函数近似和策略优化引起的过高估计偏差影响。双Q学习使用两个独立估计器进行无偏值估计(Van Hasselt, 2010; Van Hasselt et al., 2016)。其他方法则直接致力于降低方差(Anschel et al., 2017)、最小化对早期高方差估计的过拟合(Fox et al., 2016)或通过修正项(Lee et al., 2013)。此外,值估计的方差已被直接用于风险规避(Mannor & Tsitsiklis, 2011)和探索(O’Donoghue et al., 2017),但与过高估计偏差无关。
时间差分学习中误差累积导致的方差问题,主要通过最小化每个时间步的误差大小或混合离策略与蒙特卡洛回报来解决。我们的工作表明,目标网络这一标准技术对减少每次更新误差的重要性,并开发了一种通过平均价值估计来降低方差的正则化技术。同时,Nachum等人(2018)表明平滑价值函数可用于训练方差降低且性能提升的随机策略。多步回报方法在累积估计偏差与策略和环境引起的方差之间进行权衡。通过重要性采样(Precup et al., 2001; Munos et al., 2016)、分布式方法(Mnih et al., 2016; Espeholt et al., 2018)和近似边界(He et al., 2016),这些方法已被证明是有效的。然而,这些方法并未直接解决误差累积问题,而是通过考虑更长的时间范围来规避该问题。另一种方法是减小折扣因子(Petrik & Scherrer, 2009),以降低每个误差的影响。
我们的方法基于确定性策略梯度算法(DPG)(Silver et al., 2014),这是一种使用学习到的价值估计来训练确定性策略的演员-评论家方法。DPG在深度强化学习中的扩展DDPG(Lillicrap et al., 2015)已显示出在高效迭代次数下产生最先进结果的能力。与我们的方法正交,DDPG的近期改进包括分布式方法(Popov et al., 2017)、多步回报与优先经验回放(Schaul et al., 2016; Horgan et al., 2018)以及分布式价值方法(Bellemare et al., 2017; Barth-Maron et al., 2018)。
3. 背景
强化学习研究智能体与环境交互以学习最大化奖励行为的范式。在每个离散时间步ttt,给定状态s∈Ss \in \mathcal{S}s∈S,智能体根据其策略π:S→A\pi : \mathcal{S} \rightarrow \mathcal{A}π:S→A选择动作a∈Aa \in \mathcal{A}a∈A,获得奖励rrr并进入环境的新状态s′{s}^{\prime }s′。回报定义为折扣奖励总和Rt=∑i=tTγi−tr(si,ai){R}_{t} = \mathop{\sum }\limits_{{i = t}}^{T}{\gamma }^{i - t}r\left( {{s}_{i},{a}_{i}}\right)Rt=i=t∑Tγi−tr(si,ai),其中γ\gammaγ是决定短期奖励优先级的折扣因子。
符号说明:
- ttt:时间步索引(离散时间步)
- sss:状态(State),s∈Ss \in \mathcal{S}s∈S,S\mathcal{S}S 为状态空间
- aaa:动作(Action),a∈Aa \in \mathcal{A}a∈A,A\mathcal{A}A 为动作空间(在连续控制中为连续动作空间)
- s′s's′:下一状态(Next State)
- rrr:即时奖励(Reward),标量
- π\piπ:策略(Policy),从状态到动作的映射,π:S→A\pi: \mathcal{S} \rightarrow \mathcal{A}π:S→A
- RtR_tRt:从时刻 ttt 开始的累积回报(Return),Rt=∑i=tTγi−tr(si,ai)R_t = \sum_{i=t}^{T} \gamma^{i-t} r(s_i, a_i)Rt=∑i=tTγi−tr(si,ai)
- TTT:episode 的终止时刻
- γ\gammaγ:折扣因子(Discount Factor),范围 [0,1)[0, 1)[0,1),控制未来奖励的重要性
- r(si,ai)r(s_i, a_i)r(si,ai):时刻 iii 的即时奖励
在强化学习中,目标是找到最优策略πϕ{\pi }_{\phi }πϕ,其参数为ϕ\phiϕ,该策略能最大化期望回报J(ϕ)=Esi∼pπ,ai∼π[R0]J\left( \phi \right) = {\mathbb{E}}_{{s}_{i} \sim {p}_{\pi },{a}_{i} \sim \pi }\left\lbrack {R}_{0}\right\rbrackJ(ϕ)=Esi∼pπ,ai∼π[R0]。对于连续控制,参数化策略πϕ{\pi }_{\phi }πϕ可通过对期望回报∇ϕJ(ϕ){\nabla }_{\phi }J\left( \phi \right)∇ϕJ(ϕ)求梯度来更新。在 Actor-Critic 方法中,被称为 Actor 的策略可通过确定性策略梯度算法进行更新(Silver et al., 2014):
∇ϕJ(ϕ)=Es∼pπ[∇aQπ(s,a)∣a=π(s)∇ϕπϕ(s)].(1) {\nabla }_{\phi }J\left( \phi \right) = {\mathbb{E}}_{s \sim {p}_{\pi }}\left\lbrack {{\left. {\nabla }_{a}{Q}^{\pi }\left( s,a\right) \right| }_{a = \pi \left( s\right) }{\nabla }_{\phi }{\pi }_{\phi }\left( s\right) }\right\rbrack . \tag{1} ∇ϕJ(ϕ)=Es∼pπ[∇aQπ(s,a)∣a=π(s)∇ϕπϕ(s)].(1)
确定性策略梯度公式 (1) 详解:
- 变量含义:
- ∇ϕJ(ϕ)\nabla_{\phi} J(\phi)∇ϕJ(ϕ):期望回报 JJJ 对 Actor 参数 ϕ\phiϕ 的梯度
- J(ϕ)J(\phi)J(ϕ):期望回报,J(ϕ)=Esi∼pπ,ai∼π[R0]J(\phi) = \mathbb{E}_{s_i \sim p_{\pi}, a_i \sim \pi}[R_0]J(ϕ)=Esi∼pπ,ai∼π[R0]
- ϕ\phiϕ:Actor 网络(策略网络)的参数
- Qπ(s,a)Q^{\pi}(s, a)Qπ(s,a):Critic(价值函数),在状态 sss 下执行动作 aaa 并遵循策略 π\piπ 的期望回报
- πϕ(s)\pi_{\phi}(s)πϕ(s):Actor 网络,将状态 sss 映射到动作 aaa(确定性策略)
- ∇aQπ(s,a)\nabla_a Q^{\pi}(s, a)∇aQπ(s,a):Q 函数对动作 aaa 的梯度(指示哪个方向的动作能提高 Q 值)
- ∇ϕπϕ(s)\nabla_{\phi} \pi_{\phi}(s)∇ϕπϕ(s):策略对参数 ϕ\phiϕ 的梯度(指示如何调整参数使输出动作朝提高 Q 值的方向移动)
- s∼pπs \sim p_{\pi}s∼pπ:状态从策略 π\piπ 的状态访问分布中采样
- ∣a=π(s)|_{a = \pi(s)}∣a=π(s):在 a=π(s)a = \pi(s)a=π(s) 处求值
- 链式法则:∂Q∂ϕ=∂Q∂a⋅∂a∂ϕ\frac{\partial Q}{\partial \phi} = \frac{\partial Q}{\partial a} \cdot \frac{\partial a}{\partial \phi}∂ϕ∂Q=∂a∂Q⋅∂ϕ∂a
- 第一部分:Q 函数对动作的梯度(方向指导)
- 第二部分:策略对参数的梯度(参数调整)
- 物理意义:通过调整策略参数,使输出动作朝提高 Q 值的方向移动,从而最大化期望回报
Qπ(s,a)=Esi∼pπ,ai∼π[Rt∣s,a]{Q}^{\pi }\left( {s,a}\right) = {\mathbb{E}}_{{s}_{i} \sim {p}_{\pi },{a}_{i} \sim \pi }\left\lbrack {{R}_{t} \mid s,a}\right\rbrackQπ(s,a)=Esi∼pπ,ai∼π[Rt∣s,a],即在状态sss下执行动作aaa并随后遵循策略π\piπ时的期望回报,被称为 Critic 或价值函数。
在 Q 学习中,价值函数可通过时序差分学习(Sutton, 1988; Watkins, 1989)进行学习,这是一种基于贝尔曼方程(Bellman, 1957)的更新规则。贝尔曼方程是状态-动作对(s,a)\left( {s,a}\right)(s,a)的值与后续状态-动作对(s′,a′)\left( {{s}^{\prime },{a}^{\prime }}\right)(s′,a′)的值之间的基本关系:
Qπ(s,a)=r+γEs′,a′[Qπ(s′,a′)], a′∼π(s′).(2) {Q}^{\pi }\left( {s,a}\right) = r + \gamma {\mathbb{E}}_{{s}^{\prime },{a}^{\prime }}\left\lbrack {{Q}^{\pi }\left( {{s}^{\prime },{a}^{\prime }}\right) }\right\rbrack ,\;{a}^{\prime } \sim \pi \left( {s}^{\prime }\right) . \tag{2} Qπ(s,a)=r+γEs′,a′[Qπ(s′,a′)],a′∼π(s′).(2)
贝尔曼方程 (2) 详解:
- 变量含义:
- Qπ(s,a)Q^{\pi}(s, a)Qπ(s,a):在状态 sss 下执行动作 aaa 的动作价值函数
- rrr:在状态 sss 执行动作 aaa 获得的即时奖励(标量)
- γ\gammaγ:折扣因子,范围 [0,1)[0, 1)[0,1),控制未来奖励的重要性
- s′s's′:执行动作 aaa 后的下一状态
- a′∼π(s′)a' \sim \pi(s')a′∼π(s′):下一时刻的动作从策略 π\piπ 中采样
- Qπ(s′,a′)Q^{\pi}(s', a')Qπ(s′,a′):下一状态-动作对的动作价值
- Es′,a′\mathbb{E}_{s', a'}Es′,a′:对状态转移和动作选择取期望
- 物理意义:当前状态-动作对的价值 = 即时奖励 + 折扣后的未来期望价值
- 递归关系:Q 值可以通过后续状态的 Q 值来定义,形成递归关系
对于大型状态空间,可使用具有参数θ\thetaθ的可微函数逼近器Qθ(s,a){Q}_{\theta }\left( {s,a}\right)Qθ(s,a)来估计值。在深度 Q 学习(Mnih et al., 2015)中,通过使用时序差分学习和一个辅助的冻结目标网络Qθ′(s,a){Q}_{{\theta }^{\prime }}\left( {s,a}\right)Qθ′(s,a)来更新网络,以在多次更新中维持固定的目标yyy:
y=r+γQθ′(s′,a′), a′∼πϕ′(s′),(3) y = r + \gamma {Q}_{{\theta }^{\prime }}\left( {{s}^{\prime },{a}^{\prime }}\right) ,\;{a}^{\prime } \sim {\pi }_{{\phi }^{\prime }}\left( {s}^{\prime }\right) , \tag{3} y=r+γQθ′(s′,a′),a′∼πϕ′(s′),(3)
TD 目标公式 (3) 详解:
- 变量含义:
- yyy:TD(时序差分)目标值,用于训练 Critic 网络
- rrr:即时奖励(标量)
- γ\gammaγ:折扣因子
- s′s's′:下一状态
- a′∼πϕ′(s′)a' \sim \pi_{\phi'}(s')a′∼πϕ′(s′):动作从目标 Actor 网络 πϕ′\pi_{\phi'}πϕ′ 中选取
- Qθ′(s′,a′)Q_{\theta'}(s', a')Qθ′(s′,a′):目标 Critic 网络对下一状态-动作对的 Q 值估计
- θ′\theta'θ′:目标 Critic 网络的参数
- ϕ′\phi'ϕ′:目标 Actor 网络的参数
- 物理意义:TD 目标 = 即时奖励 + 折扣后的未来 Q 值(使用目标网络计算,提供稳定的目标)
- 软更新:目标网络参数通过软更新缓慢跟踪在线网络:θ′←τθ+(1−τ)θ′\theta' \leftarrow \tau \theta + (1-\tau) \theta'θ′←τθ+(1−τ)θ′,其中 τ≪1\tau \ll 1τ≪1(通常 τ=0.005\tau = 0.005τ=0.005)
- 优势:目标网络提供稳定的目标,避免"移动目标"问题,提高训练稳定性
其中动作从目标 Actor 网络πϕ′{\pi }_{{\phi }^{\prime }}πϕ′中选取。目标网络的权重要么定期更新以完全匹配当前网络的权重,要么在每个时间步θ′← τθ+(1−τ)θ′{\theta }^{\prime } \leftarrow \; {\tau \theta } + \left( {1 - \tau }\right) {\theta }^{\prime }θ′←τθ+(1−τ)θ′按一定比例τ\tauτ进行更新。这种更新可以以异策略方式进行,从经验回放缓冲区中随机采样小批量的转移样本(Lin, 1992)。
4. 过高估计偏差
在具有离散动作的 Q 学习中,值估计使用贪婪目标y=r+γmaxa′Q(s′,a′)y = r + \gamma \mathop{\max }\limits_{{a}^{\prime }}Q\left( {{s}^{\prime },{a}^{\prime }}\right)y=r+γa′maxQ(s′,a′)进行更新,然而,如果目标易受误差ϵ\epsilonϵ影响,那么值的最大值及其误差通常会大于真实最大值Eϵ[maxa′(Q(s′,a′)+ϵ)]≥ maxa′Q(s′,a′){\mathbb{E}}_{\epsilon }\left\lbrack {\mathop{\max }\limits_{{a}^{\prime }}\left( {Q\left( {{s}^{\prime },{a}^{\prime }}\right) + \epsilon }\right) }\right\rbrack \geq \; \mathop{\max }\limits_{{a}^{\prime }}Q\left( {{s}^{\prime },{a}^{\prime }}\right)Eϵ[a′max(Q(s′,a′)+ϵ)]≥a′maxQ(s′,a′)(Thrun & Schwartz, 1993)。因此,即使初始零均值误差也会导致值更新产生持续的过高估计偏差,该偏差随后会通过贝尔曼方程传播。由于函数逼近引起的误差不可避免,这一问题颇具挑战性。
虽然在离散动作设置中,过高估计偏差是解析最大化过程中明显的产物,但在通过梯度下降更新策略的 Actor-Critic 设置中,过高估计偏差的存在及其影响尚不明确。我们首先在 4.1 节中证明,在一些基本假设下,确定性策略梯度中的值估计会出现过高估计,然后在 4.2 节中提出一种适用于 Actor-Critic 设置的裁剪版 Double Q-learning,以减少过高估计偏差。
4.1. Actor-Critic 中的过高估计偏差
在演员-评论家方法中,策略会根据近似评论家的价值估计进行更新。本节假设策略使用确定性策略梯度进行更新,并证明该更新会导致价值估计出现过高估计。给定当前策略参数ϕ\phiϕ,令ϕ approx {\phi }_{\text{ approx }}ϕ approx 定义由最大化近似评论家Qθ(s,a){Q}_{\theta }\left( {s,a}\right)Qθ(s,a)所诱导的演员更新参数,ϕ true {\phi }_{\text{ true }}ϕ true 定义关于真实潜在价值函数Qπ(s,a){Q}^{\pi }\left( {s,a}\right)Qπ(s,a)(学习过程中未知)的假设演员更新参数:
ϕ approx =ϕ+αZ1Es∼pπ[∇ϕπϕ(s)∇aQθ(s,a)∣a=πϕ(s)] {\phi }_{\text{ approx }} = \phi + \frac{\alpha }{{Z}_{1}}{\mathbb{E}}_{s \sim {p}_{\pi }}\left\lbrack {\left. {\nabla }_{\phi }{\pi }_{\phi }\left( s\right) {\nabla }_{a}{Q}_{\theta }\left( s,a\right) \right| }_{a = {\pi }_{\phi }\left( s\right) }\right\rbrack ϕ approx =ϕ+Z1αEs∼pπ[∇ϕπϕ(s)∇aQθ(s,a)∣a=πϕ(s)]
ϕ true =ϕ+αZ2Es∼pπ[∇ϕπϕ(s)∇aQπ(s,a)∣a=πϕ(s)], {\phi }_{\text{ true }} = \phi + \frac{\alpha }{{Z}_{2}}{\mathbb{E}}_{s \sim {p}_{\pi }}\left\lbrack {\left. {\nabla }_{\phi }{\pi }_{\phi }\left( s\right) {\nabla }_{a}{Q}^{\pi }\left( s,a\right) \right| }_{a = {\pi }_{\phi }\left( s\right) }\right\rbrack , ϕ true =ϕ+Z2αEs∼pπ[∇ϕπϕ(s)∇aQπ(s,a)∣a=πϕ(s)],
(4)
Actor-Critic 中的过高估计偏差公式 (4) 详解:
- 变量含义:
- ϕapprox\phi_{\text{approx}}ϕapprox:使用近似 Critic Qθ(s,a)Q_{\theta}(s,a)Qθ(s,a) 更新的 Actor 参数
- ϕtrue\phi_{\text{true}}ϕtrue:使用真实价值函数 Qπ(s,a)Q^{\pi}(s,a)Qπ(s,a) 更新的 Actor 参数(理想情况,但未知)
- ϕ\phiϕ:当前 Actor 参数
- α\alphaα:学习率(步长)
- Z1,Z2Z_1, Z_2Z1,Z2:梯度归一化因子,满足 Z−1∥E[⋅]∥=1Z^{-1} \|\mathbb{E}[\cdot]\| = 1Z−1∥E[⋅]∥=1(用于归一化梯度)
- Qθ(s,a)Q_{\theta}(s,a)Qθ(s,a):近似 Critic 网络(带参数 θ\thetaθ),用于实际训练
- Qπ(s,a)Q^{\pi}(s,a)Qπ(s,a):真实价值函数(未知,用于理论分析)
- πϕ(s)\pi_{\phi}(s)πϕ(s):Actor 网络,将状态 sss 映射到动作
- ∇ϕπϕ(s)\nabla_{\phi} \pi_{\phi}(s)∇ϕπϕ(s):策略对参数的梯度
- ∇aQθ(s,a)\nabla_a Q_{\theta}(s,a)∇aQθ(s,a) 或 ∇aQπ(s,a)\nabla_a Q^{\pi}(s,a)∇aQπ(s,a):Q 函数对动作的梯度
- s∼pπs \sim p_{\pi}s∼pπ:状态从策略 π\piπ 的状态访问分布中采样
- ∣a=πϕ(s)|_{a = \pi_{\phi}(s)}∣a=πϕ(s):在 a=πϕ(s)a = \pi_{\phi}(s)a=πϕ(s) 处求值
- 物理意义:
- ϕapprox\phi_{\text{approx}}ϕapprox:实际使用的更新方向(基于近似 Critic)
- ϕtrue\phi_{\text{true}}ϕtrue:理想的更新方向(基于真实价值函数)
- 由于函数近似误差,两者可能不同,导致过高估计
其中我们假设Z1{Z}_{1}Z1和Z2{Z}_{2}Z2被选择用于归一化梯度,即满足Z−1∥E[⋅]∥=1{Z}^{-1}\parallel \mathbb{E}\left\lbrack \cdot \right\rbrack \parallel = 1Z−1∥E[⋅]∥=1。若不进行梯度归一化,在稍严格的条件下仍会保证出现过高估计偏差。我们在补充材料中进一步探讨这种情况。我们将π approx {\pi }_{\text{ approx }}π approx 和π true {\pi }_{\text{ true }}π true 分别表示为具有参数ϕ approx {\phi }_{\text{ approx }}ϕ approx 和ϕ true {\phi }_{\text{ true }}ϕ true 的策略。
由于梯度方向是局部最大化器,存在足够小的ϵ1{\epsilon }_{1}ϵ1,使得若α≤ϵ1\alpha \leq {\epsilon }_{1}α≤ϵ1,则π approx {\pi }_{\text{ approx }}π approx 的近似值将以π true {\pi }_{\text{ true }}π true 的近似值为下界:
E[Qθ(s,π approx (s))]≥E[Qθ(s,π true (s))].(5) \mathbb{E}\left\lbrack {{Q}_{\theta }\left( {s,{\pi }_{\text{ approx }}\left( s\right) }\right) }\right\rbrack \geq \mathbb{E}\left\lbrack {{Q}_{\theta }\left( {s,{\pi }_{\text{ true }}\left( s\right) }\right) }\right\rbrack . \tag{5} E[Qθ(s,π approx (s))]≥E[Qθ(s,π true (s))].(5)
过高估计证明公式 (5) 详解:
- 变量含义:
- E[⋅]\mathbb{E}[\cdot]E[⋅]:期望算子,对状态分布取平均
- Qθ(s,πapprox(s))Q_{\theta}(s, \pi_{\text{approx}}(s))Qθ(s,πapprox(s)):近似 Critic 对策略 πapprox\pi_{\text{approx}}πapprox 的 Q 值估计
- Qθ(s,πtrue(s))Q_{\theta}(s, \pi_{\text{true}}(s))Qθ(s,πtrue(s)):近似 Critic 对策略 πtrue\pi_{\text{true}}πtrue 的 Q 值估计
- πapprox(s)\pi_{\text{approx}}(s)πapprox(s):使用近似 Critic 更新的策略
- πtrue(s)\pi_{\text{true}}(s)πtrue(s):使用真实价值函数更新的策略
- ϵ1\epsilon_1ϵ1:足够小的正数,保证梯度方向是局部最大化器
- α\alphaα:学习率(步长)
- 物理意义:由于 πapprox\pi_{\text{approx}}πapprox 是针对近似 Critic QθQ_{\theta}Qθ 优化的,其近似 Q 值至少与 πtrue\pi_{\text{true}}πtrue 的近似 Q 值一样大
相反,存在足够小的ϵ2{\epsilon }_{2}ϵ2,使得若α≤ϵ2\alpha \leq {\epsilon }_{2}α≤ϵ2,则π approx {\pi }_{\text{ approx }}π approx 的真实值将以π true {\pi }_{\text{ true }}π true 的真实值为上界:
E[Qπ(s,π true (s))]≥E[Qπ(s,π approx (s))].(6) \mathbb{E}\left\lbrack {{Q}^{\pi }\left( {s,{\pi }_{\text{ true }}\left( s\right) }\right) }\right\rbrack \geq \mathbb{E}\left\lbrack {{Q}^{\pi }\left( {s,{\pi }_{\text{ approx }}\left( s\right) }\right) }\right\rbrack . \tag{6} E[Qπ(s,π true (s))]≥E[Qπ(s,π approx (s))].(6)
过高估计证明公式 (6) 详解:
- 变量含义:
- Qπ(s,πtrue(s))Q^{\pi}(s, \pi_{\text{true}}(s))Qπ(s,πtrue(s)):真实价值函数对策略 πtrue\pi_{\text{true}}πtrue 的 Q 值
- Qπ(s,πapprox(s))Q^{\pi}(s, \pi_{\text{approx}}(s))Qπ(s,πapprox(s)):真实价值函数对策略 πapprox\pi_{\text{approx}}πapprox 的 Q 值
- ϵ2\epsilon_2ϵ2:足够小的正数
- 物理意义:由于 πtrue\pi_{\text{true}}πtrue 是针对真实价值函数 QπQ^{\pi}Qπ 优化的,其真实 Q 值至少与 πapprox\pi_{\text{approx}}πapprox 的真实 Q 值一样大
如果期望的价值估计至少与关于ϕ true ,E[Qθ(s,π true (s))]≥ E[Qπ(s,π true (s))]{\phi }_{\text{ true }},\mathbb{E}\left\lbrack {{Q}_{\theta }\left( {s,{\pi }_{\text{ true }}\left( s\right) }\right) }\right\rbrack \geq \; \mathbb{E}\left\lbrack {{Q}^{\pi }\left( {s,{\pi }_{\text{ true }}\left( s\right) }\right) }\right\rbrackϕ true ,E[Qθ(s,π true (s))]≥E[Qπ(s,π true (s))]的真实值一样大,那么式(5)和式(6)意味着,若α<min(ϵ1,ϵ2)\alpha < \min \left( {{\epsilon }_{1},{\epsilon }_{2}}\right)α<min(ϵ1,ϵ2),则价值估计将被过高估计:
E[Qθ(s,π approx (s))]≥E[Qπ(s,π approx (s))].(7) \mathbb{E}\left\lbrack {{Q}_{\theta }\left( {s,{\pi }_{\text{ approx }}\left( s\right) }\right) }\right\rbrack \geq \mathbb{E}\left\lbrack {{Q}^{\pi }\left( {s,{\pi }_{\text{ approx }}\left( s\right) }\right) }\right\rbrack . \tag{7} E[Qθ(s,π approx (s))]≥E[Qπ(s,π approx (s))].(7)
过高估计结论公式 (7) 详解:
- 变量含义:
- Qθ(s,πapprox(s))Q_{\theta}(s, \pi_{\text{approx}}(s))Qθ(s,πapprox(s)):近似 Critic 对策略 πapprox\pi_{\text{approx}}πapprox 的 Q 值估计
- Qπ(s,πapprox(s))Q^{\pi}(s, \pi_{\text{approx}}(s))Qπ(s,πapprox(s)):真实价值函数对策略 πapprox\pi_{\text{approx}}πapprox 的 Q 值
- 物理意义:近似 Critic 的 Q 值估计被过高估计(大于真实 Q 值)
- 问题:这种过高估计会导致策略更新不稳定,形成不良反馈循环
尽管每次更新的过高估计可能很小,但误差的存在引发两个问题。首先,若不加以控制,过高估计可能在多次更新后发展为更显著的偏差。其次,不准确的价值估计可能导致不良的策略更新。这尤其成问题,因为会形成反馈循环:次优动作可能被次优评论家给予高分,从而在下一次策略更新中强化该次优动作。
这种理论上的过高估计在最先进的方法中是否实际发生?我们通过绘制DDPG(Lillicrap等人,2015)在OpenAI gym环境Hopper-v1和Walker2d-v1(Brockman等人,2016)上学习时的价值估计随时间变化来回答此问题。在图1中,我们绘制了10000个状态的平均价值估计,并将其与真实价值的估计进行比较。真实价值通过从回放缓冲区采样的状态开始,遵循当前策略的1000个 episodes 的平均折扣回报来估计。学习过程中出现了非常明显的过高估计偏差,这与我们在下一节描述的新方法——裁剪双Q学习形成对比,后者极大地减少了评论家的过高估计。
4.2. 用于Actor-Critic的裁剪双Q学习
虽然已提出多种减少过高估计偏差的方法,但我们发现它们在actor-critic框架中效果不佳。本节介绍一种新颖的裁剪版双Q学习(Van Hasselt, 2010),可替代任何actor-critic方法中的评论家。
在双Q学习中,通过维持两个独立的价值估计,将贪婪更新与价值函数解耦,每个估计用于更新另一个。若价值估计相互独立,则可利用它们对基于相反价值估计选择的动作进行无偏估计。在双DQN(Van Hasselt et al., 2016)中,作者提出将目标网络作为其中一个价值估计,并通过当前价值网络而非目标网络的贪婪最大化来获取策略。在actor-critic框架中,类似的更新在学习目标中使用当前策略而非目标策略:
y=r+γQθ′(s′,πϕ(s′)).(8) y = r + \gamma {Q}_{{\theta }^{\prime }}\left( {{s}^{\prime },{\pi }_{\phi }\left( {s}^{\prime }\right) }\right) . \tag{8} y=r+γQθ′(s′,πϕ(s′)).(8)
Double DQN 的 Actor-Critic 变体公式 (8) 详解:
- 变量含义:
- yyy:TD 目标值
- rrr:即时奖励
- γ\gammaγ:折扣因子
- s′s's′:下一状态
- πϕ(s′)\pi_{\phi}(s')πϕ(s′):当前 Actor 网络在下一状态输出的动作(而非目标 Actor)
- Qθ′(s′,πϕ(s′))Q_{\theta'}(s', \pi_{\phi}(s'))Qθ′(s′,πϕ(s′)):目标 Critic 网络对当前策略动作的 Q 值估计
- θ′\theta'θ′:目标 Critic 网络的参数
- ϕ\phiϕ:当前 Actor 网络的参数(而非目标 Actor ϕ′\phi'ϕ′)
- 物理意义:使用当前策略选择动作,目标 Critic 评估该动作,减少最大化偏差
- 问题:在 Actor-Critic 中,由于策略变化缓慢,当前网络与目标网络过于相似,效果不佳
然而在实践中,我们发现由于actor-critic中策略变化缓慢,当前网络与目标网络过于相似,无法进行独立估计,改进效果甚微。相反,可采用原始双Q学习公式,使用一对演员(πϕ1,πϕ2)\left( {{\pi }_{{\phi }_{1}},{\pi }_{{\phi }_{2}}}\right)(πϕ1,πϕ2)和评论家(Qθ1,Qθ2)\left( {{Q}_{{\theta }_{1}},{Q}_{{\theta }_{2}}}\right)(Qθ1,Qθ2),其中πϕ1{\pi }_{{\phi }_{1}}πϕ1针对Qθ1{Q}_{{\theta }_{1}}Qθ1优化,πϕ2{\pi }_{{\phi }_{2}}πϕ2针对Qθ2{Q}_{{\theta }_{2}}Qθ2优化:
(9)
y1=r+γQθ2′(s′,πϕ1(s′)) {y}_{1} = r + \gamma {Q}_{{\theta }_{2}^{\prime }}\left( {{s}^{\prime },{\pi }_{{\phi }_{1}}\left( {s}^{\prime }\right) }\right) y1=r+γQθ2′(s′,πϕ1(s′))
y2=r+γQθ1′(s′,πϕ2(s′)). {y}_{2} = r + \gamma {Q}_{{\theta }_{1}^{\prime }}\left( {{s}^{\prime },{\pi }_{{\phi }_{2}}\left( {s}^{\prime }\right) }\right) . y2=r+γQθ1′(s′,πϕ2(s′)).
双 Q 学习公式 (9) 详解:
- 变量含义:
- y1y_1y1:第一个 Critic 网络的 TD 目标值
- y2y_2y2:第二个 Critic 网络的 TD 目标值
- rrr:即时奖励
- γ\gammaγ:折扣因子
- s′s's′:下一状态
- πϕ1(s′)\pi_{\phi_1}(s')πϕ1(s′):第一个 Actor 网络在下一状态输出的动作
- πϕ2(s′)\pi_{\phi_2}(s')πϕ2(s′):第二个 Actor 网络在下一状态输出的动作
- Qθ2′(s′,πϕ1(s′))Q_{\theta_2'}(s', \pi_{\phi_1}(s'))Qθ2′(s′,πϕ1(s′)):第二个目标 Critic 网络对第一个 Actor 动作的 Q 值估计
- Qθ1′(s′,πϕ2(s′))Q_{\theta_1'}(s', \pi_{\phi_2}(s'))Qθ1′(s′,πϕ2(s′)):第一个目标 Critic 网络对第二个 Actor 动作的 Q 值估计
- θ1′,θ2′\theta_1', \theta_2'θ1′,θ2′:两个目标 Critic 网络的参数
- ϕ1,ϕ2\phi_1, \phi_2ϕ1,ϕ2:两个 Actor 网络的参数
- 物理意义:
- 第一个 Critic 使用第二个 Critic 评估第一个 Actor 的动作(解耦)
- 第二个 Critic 使用第一个 Critic 评估第二个 Actor 的动作(解耦)
- 通过使用相反的 Critic 评估,减少最大化偏差
- 问题:由于共享经验回放,两个 Critic 并非完全独立,仍可能存在过高估计
我们在图2中测量过高估计偏差,结果表明actor-critic双DQN与DDPG存在类似的过高估计(如图1所示)。尽管双Q学习更有效,但并未完全消除过高估计。我们在6.1节通过实验进一步表明,这种减少是不够的。
由于πϕ1{\pi }_{{\phi }_{1}}πϕ1针对Qθ1{Q}_{{\theta }_{1}}Qθ1优化,在Qθ1{Q}_{{\theta }_{1}}Qθ1的目标更新中使用独立估计可避免策略更新引入的偏差。然而,由于在学习目标中使用相反的评论家以及共享经验回放缓冲区,评论家并非完全独立。因此,对于某些状态sss,我们会得到Qθ2(s,πϕ1(s))>Qθ1(s,πϕ1(s)){Q}_{{\theta }_{2}}\left( {s,{\pi }_{{\phi }_{1}}\left( s\right) }\right) > {Q}_{{\theta }_{1}}\left( {s,{\pi }_{{\phi }_{1}}\left( s\right) }\right)Qθ2(s,πϕ1(s))>Qθ1(s,πϕ1(s))。这一问题在于Qθ1(s,πϕ1(s)){Q}_{{\theta }_{1}}\left( {s,{\pi }_{{\phi }_{1}}\left( s\right) }\right)Qθ1(s,πϕ1(s))通常会过高估计真实价值,且在状态空间的某些区域,过高估计会进一步放大。为解决此问题,我们建议简单地将偏差较小的价值估计Qθ2{Q}_{{\theta }_{2}}Qθ2以上界限制为偏差较大的估计Qθ1{Q}_{{\theta }_{1}}Qθ1。这相当于取两个估计的最小值,从而得到裁剪双Q学习算法的目标更新:
y1=r+γmini=1,2Qθi′(s′,πϕ1(s′)).(10) {y}_{1} = r + \gamma \mathop{\min }\limits_{{i = 1,2}}{Q}_{{\theta }_{i}^{\prime }}\left( {{s}^{\prime },{\pi }_{{\phi }_{1}}\left( {s}^{\prime }\right) }\right) . \tag{10} y1=r+γi=1,2minQθi′(s′,πϕ1(s′)).(10)
裁剪双 Q 学习公式 (10) 详解:
- 变量含义:
- y1y_1y1:第一个 Critic 网络的 TD 目标值
- rrr:即时奖励
- γ\gammaγ:折扣因子
- s′s's′:下一状态
- πϕ1(s′)\pi_{\phi_1}(s')πϕ1(s′):第一个 Actor 网络在下一状态输出的动作
- Qθ1′(s′,πϕ1(s′))Q_{\theta_1'}(s', \pi_{\phi_1}(s'))Qθ1′(s′,πϕ1(s′)):第一个目标 Critic 网络对动作的 Q 值估计
- Qθ2′(s′,πϕ1(s′))Q_{\theta_2'}(s', \pi_{\phi_1}(s'))Qθ2′(s′,πϕ1(s′)):第二个目标 Critic 网络对动作的 Q 值估计
- mini=1,2\min_{i=1,2}mini=1,2:取两个 Critic 网络的最小值
- θ1′,θ2′\theta_1', \theta_2'θ1′,θ2′:两个目标 Critic 网络的参数
- 物理意义:
- 使用两个 Critic 网络的最小值计算 TD 目标,减少 Q 值高估
- 即使一个 Critic 高估,另一个 Critic 可以提供更准确的估计
- 取最小值倾向于低估,但低估比高估更安全(不会通过策略更新传播)
- 关键优势:这是 TD3 的核心创新之一,有效解决了 Actor-Critic 中的 Q 值高估问题
使用裁剪双Q学习,价值目标不会比标准Q学习目标引入更多过高估计。尽管此更新规则可能导致过低估计偏差,但这远优于过高估计偏差,因为与过高估计的动作不同,过低估计动作的价值不会通过策略更新明确传播。
裁剪双 Q 学习详解:
- 问题:Actor-Critic 方法中,Q 值过高估计导致策略学习不稳定
- DDPG 使用单个 Critic 网络,容易产生 Q 值高估
- 双 Q 学习在 Actor-Critic 中效果不佳,因为策略变化缓慢,两个网络过于相似
- 高估的 Q 值会误导策略更新,形成不良反馈循环:次优动作被高估 → 策略选择次优动作 → Critic 进一步高估
- 解决方案:使用两个独立的 Critic 网络,取最小值减少高估
- 双 Critic 网络:维护两个独立的 Q 网络 Qθ1Q_{\theta_1}Qθ1 和 Qθ2Q_{\theta_2}Qθ2,以及对应的目标网络
- 裁剪机制:使用两个网络的最小值计算 TD 目标
- 目标公式:y=r+γmini=1,2Qθi′(s′,πϕ1(s′))y = r + \gamma \min_{i=1,2} Q_{\theta_i'}(s', \pi_{\phi_1}(s'))y=r+γmini=1,2Qθi′(s′,πϕ1(s′))
- 实现细节:两个网络共享经验回放,但通过不同的随机初始化保持独立性
- 为什么取最小值有效:
- 取最小值可避免高估,因为只有两个网络都高估时才会高估
- 如果只有一个网络高估,最小值会选择较低(更准确)的估计
- 可能导致轻微低估,但低估比高估更安全(不会通过策略更新传播)
- 与 DDPG 的对比:
- DDPG:单个 Critic,容易高估,训练不稳定
- TD3:双 Critic + 最小值,减少高估,训练更稳定
- TD3 的计算成本略高(两个 Critic 网络),但稳定性显著提升
- 与 Double DQN 的对比:
- Double DQN:使用在线网络选择动作,目标网络评估,适用于离散动作
- TD3:使用双 Critic 的最小值,适用于连续动作的 Actor-Critic
- 项目对应:
src/td3.py中的TD3Agent.update()方法使用裁剪双 Q 学习计算 TD 目标,维护critic1、critic2及其目标网络
在实现中,通过使用针对Qθ1{Q}_{{\theta }_{1}}Qθ1优化的单个智能体可以降低计算成本。然后,我们将相同的目标y2=y1{y}_{2} = {y}_{1}y2=y1用于Qθ2{Q}_{{\theta }_{2}}Qθ2。如果Qθ2>Qθ1{Q}_{{\theta }_{2}} > {Q}_{{\theta }_{1}}Qθ2>Qθ1,则更新与标准更新完全相同,不会引入额外偏差。如果Qθ2<Qθ1{Q}_{{\theta }_{2}} < {Q}_{{\theta }_{1}}Qθ2<Qθ1,这表明发生了过高估计,此时值会像Double Q-learning一样被降低。有限MDP设置下的收敛性证明可由此直觉得出。我们在补充材料中提供了正式的细节和证明。
另一个好处是,通过将函数近似误差视为随机变量,我们可以发现最小化算子应该为具有较低方差估计误差的状态提供更高的值,因为一组随机变量的期望最小值会随着随机变量方差的增加而减小。这种效应意味着式(10)中的最小化将导致倾向于选择具有低方差值估计的状态,从而实现更安全的策略更新和稳定的学习目标。
5. 解决方差问题
虽然第4节讨论了方差对过高估计偏差的影响,但我们也认为方差本身应被直接处理。除了对过高估计偏差的影响外,高方差估计会为策略更新提供有噪声的梯度。众所周知,这会降低学习速度(Sutton & Barto, 1998),并在实践中损害性能。在本节中,我们强调每次更新时最小化误差的重要性,建立目标网络与估计误差之间的联系,并提出对 Actor-Critic 学习过程的修改以减少方差。
5.1. 误差累积
由于时序差分更新是基于后续状态的估计来构建价值函数的估计,因此会产生误差累积。虽然单个更新的误差可能较小,但这些估计误差会累积,可能导致较大的过高估计偏差和次优的策略更新。在函数近似设置中,贝尔曼方程永远无法完全满足,每次更新都会留下一定量的残余TD误差δ(s,a)\delta \left( {s,a}\right)δ(s,a),这进一步加剧了误差累积:
Qθ(s,a)=r+γE[Qθ(s′,a′)]−δ(s,a).(11) {Q}_{\theta }\left( {s,a}\right) = r + \gamma \mathbb{E}\left\lbrack {{Q}_{\theta }\left( {{s}^{\prime },{a}^{\prime }}\right) }\right\rbrack - \delta \left( {s,a}\right) . \tag{11} Qθ(s,a)=r+γE[Qθ(s′,a′)]−δ(s,a).(11)
误差累积公式 (11) 详解:
- 变量含义:
- Qθ(s,a)Q_{\theta}(s, a)Qθ(s,a):Critic 网络对状态-动作对的 Q 值估计
- rrr:即时奖励
- γ\gammaγ:折扣因子
- s′s's′:下一状态
- a′a'a′:下一动作
- E[Qθ(s′,a′)]\mathbb{E}[Q_{\theta}(s', a')]E[Qθ(s′,a′)]:对下一状态-动作对的 Q 值取期望
- δ(s,a)\delta(s, a)δ(s,a):残余 TD 误差(Temporal Difference Error),表示函数近似无法完全满足贝尔曼方程的误差
- 物理意义:由于函数近似误差,Q 值估计 = 理想值(贝尔曼方程) - 残余误差
- 问题:残余误差会累积,导致价值估计不准确
可以证明,价值估计并非学习期望回报的估计,而是近似于期望回报减去未来TD误差的期望折扣和:
Qθ(st,at)=rt+γE[Qθ(st+1,at+1)]−δt {Q}_{\theta }\left( {{s}_{t},{a}_{t}}\right) = {r}_{t} + \gamma \mathbb{E}\left\lbrack {{Q}_{\theta }\left( {{s}_{t + 1},{a}_{t + 1}}\right) }\right\rbrack - {\delta }_{t} Qθ(st,at)=rt+γE[Qθ(st+1,at+1)]−δt
=rt+γE[rt+1+γE[Qθ(st+2,at+2)−δt+1]]−δt = {r}_{t} + \gamma \mathbb{E}\left\lbrack {{r}_{t + 1} + \gamma \mathbb{E}\left\lbrack {{Q}_{\theta }\left( {{s}_{t + 2},{a}_{t + 2}}\right) - {\delta }_{t + 1}}\right\rbrack }\right\rbrack - {\delta }_{t} =rt+γE[rt+1+γE[Qθ(st+2,at+2)−δt+1]]−δt
=Esi∼pπ,ai∼π[∑i=tTγi−t(ri−δi)].(12) = {\mathbb{E}}_{{s}_{i} \sim {p}_{\pi },{a}_{i} \sim \pi }\left\lbrack {\mathop{\sum }\limits_{{i = t}}^{T}{\gamma }^{i - t}\left( {{r}_{i} - {\delta }_{i}}\right) }\right\rbrack . \tag{12} =Esi∼pπ,ai∼π[i=t∑Tγi−t(ri−δi)].(12)
误差累积展开公式 (12) 详解:
- 变量含义:
- Qθ(st,at)Q_{\theta}(s_t, a_t)Qθ(st,at):时刻 ttt 的 Q 值估计
- rt,rt+1,…r_t, r_{t+1}, \ldotsrt,rt+1,…:各时刻的即时奖励
- δt,δt+1,…\delta_t, \delta_{t+1}, \ldotsδt,δt+1,…:各时刻的残余 TD 误差
- γ\gammaγ:折扣因子
- si∼pπs_i \sim p_{\pi}si∼pπ:状态从策略 π\piπ 的状态访问分布中采样
- ai∼πa_i \sim \piai∼π:动作从策略 π\piπ 中采样
- TTT:episode 的终止时刻
- 物理意义:
- Q 值估计 = 期望回报 - 未来 TD 误差的期望折扣和
- 每次更新都会留下残余误差,这些误差会累积并影响价值估计
- 如果折扣因子 γ\gammaγ 较大,误差累积会更严重
- 问题:误差累积会导致价值估计不准确,进而影响策略更新
如果价值估计是未来奖励和估计误差的函数,那么估计的方差将与未来奖励和估计误差的方差成比例。给定较大的折扣因子γ\gammaγ,如果不控制每次更新的误差,方差会随着每次更新迅速增长。此外,每个梯度更新仅针对小批量数据减少误差,无法保证批量外价值估计的误差大小。
5.2. 目标网络与延迟策略更新
在本节中,我们研究目标网络与函数近似误差之间的关系,并说明使用稳定目标可以减少误差的增长。这一见解使我们在设计强化学习算法时,能够考虑高方差估计与策略性能之间的相互作用。
目标网络是深度强化学习中实现稳定性的常用工具。由于深度函数近似器需要多次梯度更新才能收敛,目标网络在学习过程中提供了稳定的目标,并允许更大范围地覆盖训练数据。如果没有固定目标,每次更新可能会留下残余误差,这些误差将开始累积。误差累积本身可能有害,当与最大化价值估计的策略结合时,可能导致价值出现剧烈发散。
为了提供一些直观认识,我们在图3中考察了有无目标网络时 critic 和 actor 的学习行为,其中我们以与图1类似的方式在 Hopper-v1 环境中绘制价值。在(a)中,我们比较了固定策略下的行为;在(b)中,我们考察了使用当前价值估计训练的持续学习策略的价值估计。目标网络使用慢移动更新率,由τ\tauτ参数化。
虽然在没有目标网络的情况下更新价值估计会增加波动性(τ=1)\left( {\tau = 1}\right)(τ=1),但当考虑固定策略时,所有更新率都会导致相似的收敛行为。然而,当使用当前价值估计训练策略时,快速更新目标网络会导致高度发散的行为。
演员-评论家方法何时无法学习?这些结果表明,没有目标网络时发生的发散是高方差价值估计导致策略更新的结果。图3以及第4节表明,失败可能源于演员和评论家更新之间的相互作用。当策略较差时,价值估计会因过高估计而发散;而如果价值估计本身不准确,策略也会变得糟糕。
如果目标网络可用于减少多次更新的误差,且高误差状态下的策略更新会导致发散行为,那么策略网络的更新频率应低于价值网络,以便在引入策略更新前先最小化误差。我们建议延迟策略更新,直到价值误差尽可能小。修改方法是:仅在评论家经过固定次数的更新后ddd,才更新策略和目标网络。为确保TD误差保持较小,我们缓慢更新目标网络θ′←τθ+(1−τ)θ′{\theta }^{\prime } \leftarrow {\tau \theta } + \left( {1 - \tau }\right) {\theta }^{\prime }θ′←τθ+(1−τ)θ′。
通过充分延迟策略更新,我们限制了针对未变评论家重复更新的可能性。不频繁的策略更新将使用方差更低的价值估计,原则上应产生更高质量的策略更新。这形成了双时间尺度算法,正如线性设置中收敛通常所需的那样(Konda & Tsitsiklis, 2003)。第6.1节的实证结果体现了该策略的有效性,表明在使用更少策略更新的同时性能有所提升。
5.3. 目标策略平滑正则化
确定性策略的一个问题是它们可能过拟合价值估计中的窄峰。更新评论家时,使用确定性策略的学习目标极易受函数近似误差引起的不准确性影响,从而增加目标的方差。这种诱导方差可通过正则化降低。我们为深度价值学习引入一种正则化策略——目标策略平滑,它模仿SARSA的学习更新(Sutton & Barto, 1998)。我们的方法强化了相似动作应具有相似价值的概念。虽然函数近似会隐式地实现这一点,但通过修改训练过程可显式地强制相似动作之间的关系。我们建议拟合目标动作周围小区域的价值
y=r+Eϵ[Qθ′(s′,πϕ′(s′)+ϵ)],(13) y = r + {\mathbb{E}}_{\epsilon }\left\lbrack {{Q}_{{\theta }^{\prime }}\left( {{s}^{\prime },{\pi }_{{\phi }^{\prime }}\left( {s}^{\prime }\right) + \epsilon }\right) }\right\rbrack , \tag{13} y=r+Eϵ[Qθ′(s′,πϕ′(s′)+ϵ)],(13)
目标策略平滑公式 (13) 详解:
- 变量含义:
- yyy:TD 目标值
- rrr:即时奖励
- γ\gammaγ:折扣因子(在公式中隐含,实际使用时需要)
- s′s's′:下一状态
- πϕ′(s′)\pi_{\phi'}(s')πϕ′(s′):目标 Actor 网络在下一状态输出的动作
- ϵ\epsilonϵ:添加到目标动作的随机噪声
- Qθ′(s′,πϕ′(s′)+ϵ)Q_{\theta'}(s', \pi_{\phi'}(s') + \epsilon)Qθ′(s′,πϕ′(s′)+ϵ):目标 Critic 网络对带噪声动作的 Q 值估计
- Eϵ[⋅]\mathbb{E}_{\epsilon}[\cdot]Eϵ[⋅]:对噪声 ϵ\epsilonϵ 取期望
- θ′\theta'θ′:目标 Critic 网络的参数
- ϕ′\phi'ϕ′:目标 Actor 网络的参数
- 物理意义:通过拟合目标动作周围小区域的价值,使 Q 函数更平滑,防止过拟合窄峰
- 优势:强化相似动作应具有相似价值的概念,减少方差
通过利用相似状态-动作价值估计进行自举,有利于平滑价值估计。在实践中,我们可通过向目标策略添加少量随机噪声并在小批量上取平均,来近似对动作的期望。这使得我们修改后的目标更新为:
y=r+γQθ′(s′,πϕ′(s′)+ϵ),(14) y = r + \gamma {Q}_{{\theta }^{\prime }}\left( {{s}^{\prime },{\pi }_{{\phi }^{\prime }}\left( {s}^{\prime }\right) + \epsilon }\right) , \tag{14} y=r+γQθ′(s′,πϕ′(s′)+ϵ),(14)
ϵ∼clip(N(0,σ),−c,c), \epsilon \sim \operatorname{clip}\left( {\mathcal{N}\left( {0,\sigma }\right) , - c,c}\right) , ϵ∼clip(N(0,σ),−c,c),
目标策略平滑实现公式 (14) 详解:
- 变量含义:
- yyy:TD 目标值
- rrr:即时奖励
- γ\gammaγ:折扣因子
- s′s's′:下一状态
- πϕ′(s′)\pi_{\phi'}(s')πϕ′(s′):目标 Actor 网络在下一状态输出的动作
- ϵ\epsilonϵ:裁剪后的随机噪声
- Qθ′(s′,πϕ′(s′)+ϵ)Q_{\theta'}(s', \pi_{\phi'}(s') + \epsilon)Qθ′(s′,πϕ′(s′)+ϵ):目标 Critic 网络对带噪声动作的 Q 值估计
- N(0,σ)\mathcal{N}(0, \sigma)N(0,σ):均值为 0、标准差为 σ\sigmaσ 的高斯分布(通常 σ=0.2\sigma = 0.2σ=0.2)
- clip(⋅,−c,c)\text{clip}(\cdot, -c, c)clip(⋅,−c,c):将噪声裁剪到范围 [−c,c][-c, c][−c,c](通常 c=0.5c = 0.5c=0.5)
- 物理意义:
- 在目标动作上添加裁剪噪声,使 Q 函数更平滑
- 噪声被裁剪到小范围,保持目标接近原始动作
- 类似于 SARSA 的学习更新,但价值估计是离策略学习的
- 实现细节:在实践中,通过在小批量上取平均来近似对噪声的期望
其中添加的噪声被裁剪以保持目标接近原始动作。结果是一种类似于期望SARSA的算法(Van Seijen et al., 2009),但价值估计是异策略学习的,且添加到目标策略的噪声独立于探索策略选择。所学习的价值估计是针对由参数σ\sigmaσ定义的噪声策略。
直观上,已知从SARSA价值估计导出的策略往往更安全,因为它们为抵抗扰动的动作提供更高价值。因此,这种更新方式还可在具有失败情况的随机领域中带来改进。Nachum等人(2018)同时提出了类似思想,不过是对Qθ{Q}_{\theta }Qθ进行平滑,而非Qθ′{Q}_{{\theta }^{\prime }}Qθ′。
算法1 TD3(Twin Delayed Deep Deterministic Policy Gradient)
算法流程详解:
-
初始化
- 初始化评论家网络 Qθ1Q_{\theta_1}Qθ1、Qθ2Q_{\theta_2}Qθ2 和演员网络 πϕ\pi_\phiπϕ
- 使用随机参数 θ1\theta_1θ1、θ2\theta_2θ2、ϕ\phiϕ
- 初始化目标网络:θ1′←θ1\theta_1' \leftarrow \theta_1θ1′←θ1,θ2′←θ2\theta_2' \leftarrow \theta_2θ2′←θ2,ϕ′←ϕ\phi' \leftarrow \phiϕ′←ϕ
- 初始化回放缓冲区 B\mathcal{B}B
-
主循环(for t=1t = 1t=1 to TTT):
步骤 1:选择动作并执行
- 选择带有探索噪声的动作:
a∼πϕ(s)+ϵ,ϵ∼N(0,σ) a \sim \pi_\phi(s) + \epsilon, \quad \epsilon \sim \mathcal{N}(0, \sigma) a∼πϕ(s)+ϵ,ϵ∼N(0,σ) - 执行动作,观察奖励 rrr 和新状态 s′s's′
步骤 2:存储经验
- 将转移元组 (s,a,r,s′)(s, a, r, s')(s,a,r,s′) 存储在回放缓冲区 B\mathcal{B}B 中
步骤 3:从回放缓冲区采样
- 从 B\mathcal{B}B 中采样 NNN 个转移样本的小批量 (s,a,r,s′)(s, a, r, s')(s,a,r,s′)
步骤 4:计算 TD 目标(带目标策略平滑)
- 对目标动作添加裁剪噪声:
a~←πϕ′(s′)+ϵ,ϵ∼clip(N(0,σ~),−c,c) \tilde{a} \leftarrow \pi_{\phi'}(s') + \epsilon, \quad \epsilon \sim \text{clip}(\mathcal{N}(0, \tilde{\sigma}), -c, c) a~←πϕ′(s′)+ϵ,ϵ∼clip(N(0,σ~),−c,c) - 使用双 Q 网络的最小值计算目标值:
y←r+γmini=1,2Qθi′(s′,a~) y \leftarrow r + \gamma \min_{i=1,2} Q_{\theta_i'}(s', \tilde{a}) y←r+γi=1,2minQθi′(s′,a~)
步骤 5:更新评论家网络
- 更新两个评论家网络:
θi←argminθi1N∑(y−Qθi(s,a))2,i=1,2 \theta_i \leftarrow \arg\min_{\theta_i} \frac{1}{N} \sum (y - Q_{\theta_i}(s, a))^2, \quad i = 1, 2 θi←argθiminN1∑(y−Qθi(s,a))2,i=1,2
步骤 6:延迟策略更新(每 ddd 步)
- 如果 t mod d=0t \bmod d = 0tmodd=0:
- 更新演员网络:通过确定性策略梯度更新 ϕ\phiϕ:
∇ϕJ(ϕ)=1N∑∇aQθ1(s,a)∣a=πϕ(s)∇ϕπϕ(s) \nabla_\phi J(\phi) = \frac{1}{N} \sum \nabla_a Q_{\theta_1}(s, a) \Big|_{a = \pi_\phi(s)} \nabla_\phi \pi_\phi(s) ∇ϕJ(ϕ)=N1∑∇aQθ1(s,a) a=πϕ(s)∇ϕπϕ(s) - 软更新目标网络:
θi′←τθi+(1−τ)θi′,i=1,2 \theta_i' \leftarrow \tau \theta_i + (1 - \tau) \theta_i', \quad i = 1, 2 θi′←τθi+(1−τ)θi′,i=1,2
ϕ′←τϕ+(1−τ)ϕ′ \phi' \leftarrow \tau \phi + (1 - \tau) \phi' ϕ′←τϕ+(1−τ)ϕ′
- 更新演员网络:通过确定性策略梯度更新 ϕ\phiϕ:
- 选择带有探索噪声的动作:
-
循环结束
关键要点:
- 双评论家网络:使用两个独立的 Q 网络,取最小值以减少过估计
- 延迟策略更新:每 ddd 步更新一次策略,减少策略更新的频率
- 目标策略平滑:对目标动作添加裁剪噪声,使价值估计更平滑
- 软更新:使用软更新(τ\tauτ)而非硬更新,使目标网络变化更平滑
6. 实验
我们提出双延迟深度确定性策略梯度算法(TD3),该算法基于深度确定性策略梯度算法(DDPG)(Lillicrap et al., 2015),通过应用 4.2、5.2 和 5.3 节中描述的修改,在考虑函数近似误差的情况下提高稳定性和性能。TD3 维护一对评论家以及一个单独的行动者。在每个时间步,我们将这对评论家朝着目标策略选择的动作的最小目标值更新:
y=r+γmini=1,2Qθi′(s′,πϕ′(s′)+ϵ),(15) y = r + \gamma \mathop{\min }\limits_{{i = 1,2}}{Q}_{{\theta }_{i}^{\prime }}\left( {{s}^{\prime },{\pi }_{{\phi }^{\prime }}\left( {s}^{\prime }\right) + \epsilon }\right) , \tag{15} y=r+γi=1,2minQθi′(s′,πϕ′(s′)+ϵ),(15)
ϵ∼clip(N(0,σ),−c,c). \epsilon \sim \operatorname{clip}\left( {\mathcal{N}\left( {0,\sigma }\right) , - c,c}\right) . ϵ∼clip(N(0,σ),−c,c).
TD3 的 TD 目标公式 (15) 详解:
- 变量含义:
- yyy:TD 目标值(用于训练两个 Critic 网络)
- rrr:即时奖励
- γ\gammaγ:折扣因子(通常 0.99)
- s′s's′:下一状态
- πϕ′(s′)\pi_{\phi'}(s')πϕ′(s′):目标 Actor 网络在下一状态输出的动作
- ϵ\epsilonϵ:添加到目标动作的裁剪噪声
- Qθ1′(s′,πϕ′(s′)+ϵ)Q_{\theta_1'}(s', \pi_{\phi'}(s') + \epsilon)Qθ1′(s′,πϕ′(s′)+ϵ):第一个目标 Critic 网络对带噪声动作的 Q 值估计
- Qθ2′(s′,πϕ′(s′)+ϵ)Q_{\theta_2'}(s', \pi_{\phi'}(s') + \epsilon)Qθ2′(s′,πϕ′(s′)+ϵ):第二个目标 Critic 网络对带噪声动作的 Q 值估计
- mini=1,2\min_{i=1,2}mini=1,2:取两个 Critic 网络的最小值(Clipped Double Q-Learning)
- θ1′,θ2′\theta_1', \theta_2'θ1′,θ2′:两个目标 Critic 网络的参数
- ϕ′\phi'ϕ′:目标 Actor 网络的参数
- N(0,σ)\mathcal{N}(0, \sigma)N(0,σ):均值为 0、标准差为 σ\sigmaσ 的高斯分布(通常 σ=0.2\sigma = 0.2σ=0.2)
- clip(⋅,−c,c)\text{clip}(\cdot, -c, c)clip(⋅,−c,c):将噪声裁剪到范围 [−c,c][-c, c][−c,c](通常 c=0.5c = 0.5c=0.5)
- 物理意义:
- 结合了三个关键改进:Twin Critic(双 Critic)、目标策略平滑(添加噪声)、Clipped Double Q-Learning(取最小值)
- 使用两个 Critic 的最小值减少 Q 值高估
- 在目标动作上添加噪声使 Q 函数更平滑,防止过拟合
- 这是 TD3 的核心公式:综合了所有改进,是 TD3 算法的核心创新
每 $d$ 次迭代,根据确定性策略梯度算法(Silver et al., 2014),针对 ${Q}_{{\theta }_{1}}$ 更新策略。TD3 总结于算法 1。
7. 结论
过高估计已被确定为基于价值方法中的关键问题。本文证明过高估计偏差在演员-评论家方法中同样具有问题。我们发现,在具有离散动作的深度Q学习中用于减少过高估计偏差的常用解决方案在演员-评论家框架中无效,并提出了一种新型双Q学习变体,以限制可能的过高估计。我们的结果表明,缓解过高估计可显著提升现代算法的性能。
鉴于噪声与过高估计之间的关联,我们研究了时序差分学习中的误差累积。本文探讨了深度强化学习中标准技术(目标网络)的重要性,并分析了其在限制不精确函数近似和随机优化所产生误差方面的作用。最后,我们引入了一种SARSA风格的正则化技术,通过修改时序差分目标,基于相似的状态-动作对进行自举。
综合这些改进,我们提出了双延迟深度确定性策略梯度算法(TD3),该算法在连续控制环境中的多项挑战性任务中显著提升了DDPG的学习速度和性能。我们的算法性能超过了众多最先进算法。由于我们的修改易于实现,因此可以轻松添加到任何其他演员-评论家算法中。
8 总结与理解要点
8.1 TD3 核心思想总结
TD3 的核心创新:
- Twin Critic 网络:使用两个独立的 Critic 网络,取最小值减少 Q 值高估
- 延迟策略更新:Actor 更新频率低于 Critic,减少误差累积
- 目标策略平滑:在目标动作上添加噪声,防止过拟合
- Clipped Double Q-Learning:使用两个 Critic 的最小值计算 TD 目标
- 简单实现:易于实现,可以轻松添加到其他 Actor-Critic 算法
为什么 TD3 能工作:
- Twin Critic:两个独立的 Critic 网络,取最小值可以减少 Q 值高估
- 延迟策略更新:Actor 更新频率低于 Critic,让 Critic 先收敛,减少误差累积
- 目标策略平滑:在目标动作上添加噪声,使 Q 函数更平滑,防止过拟合
- Clipped Double Q-Learning:使用两个 Critic 的最小值,进一步减少高估
- 简单优化:使用标准优化器,实现简单,易于调试
8.2 与项目实现的对应关系
算法组件对应:
- Actor 网络 →
src/td3.py中的Actor类 - Twin Critic 网络 →
src/td3.py中的Critic类(两个实例:critic1和critic2) - Clipped Double Q-Learning →
TD3Agent.update方法中的 TD 目标计算 - 延迟策略更新 →
TD3Agent.update方法中的更新频率控制(TD3_POLICY_UPDATE_FREQ) - 目标策略平滑 →
TD3Agent.update方法中的噪声添加和裁剪
超参数对应:
- Actor 学习率 →
config.py中的TD3_ACTOR_LR(默认 1e-4) - Critic 学习率 →
config.py中的TD3_CRITIC_LR(默认 1e-3) - 软更新系数 →
config.py中的TD3_TAU(默认 5e-3) - 策略更新频率 →
config.py中的TD3_POLICY_UPDATE_FREQ(默认 2) - 目标策略平滑噪声标准差 →
config.py中的TD3_TARGET_NOISE_STD(默认 0.2) - 目标策略平滑噪声裁剪范围 →
config.py中的TD3_TARGET_NOISE_CLIP(默认 0.5)
8.3 关键设计决策的理解
为什么需要 Twin Critic?
- 单个 Critic 网络容易高估 Q 值,导致策略更新不稳定
- Twin Critic 使用两个独立的网络,取最小值可以减少高估
- 即使一个 Critic 高估,另一个 Critic 可以提供更准确的估计
- 取最小值倾向于低估,但低估比高估更安全(不会传播错误)
为什么需要延迟策略更新?
- Actor 和 Critic 的更新相互影响,可能导致误差累积
- 延迟策略更新让 Critic 先收敛,减少误差累积
- 每 ddd 次 Critic 更新才更新一次 Actor,提高稳定性
- 通常 d=2d = 2d=2,在稳定性和学习速度之间平衡
为什么需要目标策略平滑?
- 确定性策略可能过拟合价值估计中的窄峰
- 在目标动作上添加噪声,使 Q 函数更平滑
- 类似于 SARSA 的学习更新,强化相似动作应具有相似价值的概念
- 噪声被裁剪到小范围,保持目标接近原始动作
为什么 Clipped Double Q-Learning 有效?
- 标准 Double Q-Learning 在 Actor-Critic 中效果不佳(策略变化慢)
- Clipped Double Q-Learning 使用两个 Critic 的最小值,进一步减少高估
- 即使两个 Critic 都高估,取最小值也能减少高估程度
- 倾向于低估,但低估不会通过策略更新传播
8.4 TD3 vs DDPG vs SAC vs PPO 综合对比
| 特性 | TD3 | DDPG | SAC | PPO |
|---|---|---|---|---|
| 策略类型 | 确定性策略 + 噪声 | 确定性策略 + 噪声 | 随机策略(高斯) | 随机策略(离散) |
| 动作空间 | 连续 | 连续 | 连续 | 离散 |
| Critic 数量 | 2(Twin) | 1 | 2(Twin) | 1(价值网络) |
| 更新方式 | 延迟策略更新 | 同步更新 | 同步更新 | 多轮更新 |
| 稳定性保证 | 无(但经验上稳定) | 无 | 无(但经验上稳定) | 无(但裁剪机制) |
| 计算复杂度 | 中(两个 Critic) | 低 | 中(两个 Critic) | 中(多轮更新) |
| 实现复杂度 | 中等 | 简单 | 中等 | 简单 |
| 样本效率 | 高(经验回放) | 高(经验回放) | 高(经验回放) | 中(在策略) |
| 适用场景 | 连续控制任务 | 连续控制任务 | 连续控制任务 | 通用 RL 任务 |
8.5 常见问题与解答
Q1: TD3 与 DDPG 的主要区别是什么?
- DDPG:单个 Critic 网络,同步更新 Actor 和 Critic
- TD3:Twin Critic 网络,延迟策略更新,目标策略平滑
- TD3 优势:减少 Q 值高估,提高稳定性,性能通常优于 DDPG
Q2: 为什么 Twin Critic 取最小值而不是平均值?
- 取最小值可以减少 Q 值高估,提高稳定性
- 取平均值可能仍然高估,因为两个 Critic 可能都高估
- 取最小值倾向于低估,但低估比高估更安全
Q3: 延迟策略更新的频率如何选择?
- 通常设置为 2(每 2 次 Critic 更新才更新一次 Actor)
- 太频繁:误差累积,训练不稳定
- 太慢:学习速度慢,可能无法充分利用数据
- 建议从默认值开始,根据任务特点调整
Q4: 目标策略平滑的噪声参数如何选择?
- 噪声标准差通常为 0.2,裁剪范围为 0.5
- 太大会导致目标不稳定,太小效果不明显
- 建议从默认值开始,根据任务特点调整
Q5: TD3 与 SAC 的关系是什么?
- TD3:确定性策略,使用 Twin Critic 和延迟策略更新
- SAC:随机策略,使用 Twin Critic 和最大熵目标
- SAC 优势:更好的探索能力,更高的鲁棒性
- TD3 优势:实现更简单,训练更快
Q6: TD3 训练时 Q 值总是很小怎么办?
- 原因:
- Twin Critic 取最小值可能导致低估
- 目标策略平滑可能降低目标值
- 学习率可能过小
- 解决方案:
- 检查奖励函数,确保奖励范围合理
- 适当增大学习率
- 检查网络初始化
- 如果 Q 值持续很小但性能正常,可能是正常的低估
8.6 实践建议
训练技巧:
- 从简单开始:先在简单环境上验证实现
- 监控训练:观察训练曲线、Q 值估计、策略更新频率等
- 调整超参数:根据任务特点调整学习率、更新频率等
- 保存检查点:定期保存模型,避免训练中断丢失
调参建议:
- 学习率:Actor 通常 1e-4,Critic 通常 1e-3
- 策略更新频率:通常 2,如果训练不稳定可以增大
- 目标策略平滑:噪声标准差 0.2,裁剪范围 0.5
- 软更新系数:通常 5e-3,如果训练不稳定可以减小
常见问题:
- 训练不稳定:减小学习率、增加延迟更新频率、检查网络初始化
- 不收敛:检查奖励函数、增加探索、调整网络结构
- 性能不佳:检查超参数、增加训练时间、尝试不同网络结构
- Q 值高估:确保使用 Twin Critic 和 Clipped Double Q-Learning
8.7 进一步阅读
相关论文:
- Fujimoto et al. (2018): “Addressing Function Approximation Error in Actor-Critic Methods”(TD3 原始论文)
- Lillicrap et al. (2015): “Continuous Control with Deep Reinforcement Learning”(DDPG,TD3 的基础)
- Haarnoja et al. (2018): “Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning”(SAC,TD3 的随机策略版本)
扩展算法:
- SAC:随机策略版本,更好的探索能力
- D4PG:分布式深度确定性策略梯度
- MPO:最大后验策略优化
应用领域:
- 机器人控制:连续控制任务
- 游戏 AI:连续动作游戏
- 自动驾驶:车辆控制任务
8.8 算法选择指南
何时选择 TD3?
- ✅ 适用场景:
- 连续动作空间任务
- 需要稳定训练的场景
- 需要快速训练的场景
- 不需要随机策略的场景
- ❌ 不适用场景:
- 离散动作空间任务(使用 DQN/DDQN)
- 需要更好探索的场景(SAC 更合适)
- 需要理论保证的场景(TRPO 更合适)
- 项目对应:车辆路径跟踪任务可以使用 TD3
- 动作空间:连续转向角(范围 [-30°, 30°])
- 状态空间:横向误差、航向误差(低维)
- 优势:训练稳定,性能通常优于 DDPG
- 劣势:实现比 DDPG 复杂,需要两个 Critic 网络
- 建议:如果需要连续动作空间,优先使用 TD3 或 SAC
与其他算法的选择建议:
- TD3 vs DDPG:需要更稳定训练用 TD3,简单任务用 DDPG
- TD3 vs SAC:需要确定性策略用 TD3,需要更好探索用 SAC
- TD3 vs PPO:连续动作空间用 TD3,离散动作空间用 PPO
8.9 性能优化技巧
提高训练速度:
- 减少延迟更新频率:减少 ddd 值,但可能降低稳定性
- 使用更小的网络:减少计算量,但可能降低表达能力
- 减少经验回放大小:减少内存占用,但可能降低样本多样性
提高样本效率:
- Twin Critic:减少 Q 值高估,提高样本效率
- 延迟策略更新:减少误差累积,提高样本效率
- 目标策略平滑:提高稳定性,减少样本浪费
提高稳定性:
- Twin Critic:减少 Q 值高估,提高稳定性
- 延迟策略更新:减少误差累积,提高稳定性
- 目标策略平滑:防止过拟合,提高稳定性
- 软更新:使用较小的 τ\tauτ 值,提高稳定性
更多推荐

所有评论(0)