离线强化学习 (reinforcement learning)中的主要难题是分布偏移。标准离策略算法(如DQN或DDPG)在固定数据集上训练时可能会大幅失效,因为它们可能评估或选择在数据收集阶段从未见过(或很少见过)的动作。这会导致外推误差,即价值函数(例如Q函数)为这些超出分布的动作产生不可靠、通常过于乐观的估计。
策略约束方法通过强制学习策略 π 选择与生成数据集 D 的行为策略 πb 所选动作“接近”或“相似”的动作,直接处理了这个问题。思路很简单:如果我们只选择行为策略在给定状态下可能选择的动作,我们就能停留在状态-动作空间中数据提供可靠信息的区域,从而减轻分布偏移的风险。
批处理约束深度Q学习 (BCQ) 是体现此策略约束理念的重要算法,专门针对连续动作空间设计(尽管也存在离散版本)。它修改了标准的深度Q学习方法,以确保学习策略仅选择位于离线数据分布支持范围内的动作。
BCQ方法
在计算目标值时,BCQ不再是简单地选择使学习Q函数(argmaxa′Q(s′,a′))最大化的动作,而是约束 a′ 的选择。它通过明确建模行为策略的动作分布 pb(a∣s),并且在最大化步骤中只考虑与此模型一致的动作来实现这一点。
BCQ使用三个主要组成部分:
- Q网络 (Qθ):与DQN或DDPG类似,BCQ使用神经网络 (neural network)来近似动作-价值函数Q(s,a)。通常使用两个Q网络(Qθ1,Qθ2)以及对应的目标网络(Qθ1′,Qθ2′)(遵循双DQN原则),以减少过高估计偏差。目标值使用两个目标Q网络中的最小值。
- 生成模型 (Gω):此组件学习模拟行为策略。给定状态 s,它生成在 πb 下可能出现的动作 a。条件变分自编码器 (CVAE) 常用于此目的。CVAE使用离线数据集 D 中的状态-动作对 (s,a) 进行训练,以便在给定状态 s 的情况下重构动作 a。其目标是获取分布 pb(a∣s)。
- 扰动网络 (ξϕ):简单地从生成模型 Gω 中采样动作可能限制性过强。为了在保持接近数据分布的同时允许对行为策略进行轻微改进,BCQ引入了一个小的扰动网络 ξϕ(s,a,Φ)。该网络接收一个状态 s 和一个生成的动作 a,并输出一个小的调整量 Δa,通常被约束在一个小范围(例如 [−Φ,Φ])内。最终考虑的动作是 a+Δa。此网络被训练以最大化扰动动作的Q值。
目标计算中的动作选择
BCQ的核心修改在于如何选择动作 a′ 以计算贝尔曼目标 y=r+γ(1−d)Qtarget(s′,a′)。BCQ不使用简单的 argmax,而是执行以下步骤:
- 采样动作:给定下一个状态 s′,从生成模型中采样 N 个候选动作 {ai}i=1N:ai∼Gω(s′)。
- 扰动动作:对于每个采样的动作 ai,使用扰动网络计算扰动量:Δai=ξϕ(s′,ai,Φ)。扰动后的动作是 ai′=ai+Δai。这些动作被裁剪到有效动作范围内。
- 评估动作:使用目标Q网络评估所有扰动的候选动作 ai′。为减轻过高估计,通常使用两个目标网络中的最小值:Qtarget(s′,ai′)=minj=1,2Qθj′(s′,ai′)。
- 选择最佳动作:选择产生最高目标Q值的动作 a′:
a′=argai′maxj=1,2minQθj′(s′,ai′)
- 计算目标:最终的目标值为:
y=r+γ(1−d)j=1,2minQθj′(s′,a′)
训练过程
训练涉及使用从离线数据集 D 中采样的批次来更新参数 (parameter) θ (Q网络)、ω (生成器) 和 ϕ (扰动网络):
- 采样批次:从 D 中抽取一批次的转移 (s,a,r,s′,d)。
- 更新生成器 (Gω):使用批次中的 (s,a) 对训练CVAE。这通常涉及最小化重构损失加上KL散度项,这是变分自编码器(VAE)的常见做法。
- 更新Q网络 (Qθ):使用上述步骤(采样、扰动、评估、选择最大值)计算目标值 y。计算TD误差,并使用梯度下降 (gradient descent)法更新均方误差损失上的Q网络参数 θ1,θ2:
LQ=E(s,a,r,s′,d)∼D[j=1,2∑(Qθj(s,a)−y)2]
- 更新扰动网络 (ξϕ):通过最大化扰动动作的Q值来更新扰动网络参数 ϕ。这通常通过对批次中状态 s 采样动作 agen∼Gω(s),并对以下项执行梯度上升来完成:
Lξ=Es∼D,agen∼Gω(s)[Qθ1(s,agen+ξϕ(s,agen,Φ))]
(通常只使用一个Q网络,Qθ1,进行此更新)。
- 更新目标网络:定期将目标网络参数 θ1′,θ2′ 向主网络参数靠拢(例如,使用Polyak平均)。
优点与局限
BCQ提供了一种实用的方法,通过明确约束策略搜索空间,在离线设置中应用Q学习。
优点:
- 直接处理分布偏移:从设计上,它避免选择远离数据支持的动作,从而减少外推误差。
- 稳定性提升:通常比直接应用于离线数据的朴素离策略算法更稳定。
- 思路清晰:基于学习到的行为模型来约束动作的思路直观易懂。
局限:
- 潜在的保守性:通过保持接近行为策略,如果最佳动作位于行为策略在数据集中支持的直接邻近范围之外,BCQ可能未能找到显著更好的策略。
- 依赖数据质量:性能高度依赖于离线数据集的覆盖范围和质量。如果数据集未能充分覆盖状态-动作空间的相关部分,BCQ的性能将受到限制。
- 算法复杂性:需要训练和管理三个独立的网络组件(Q网络、生成器、扰动网络),增加了实现复杂性和需要调整的超参数 (parameter) (hyperparameter)数量。
- 超参数敏感性:性能可能对超参数敏感,例如采样的动作数量 (N) 和扰动尺度 (Φ)。
BCQ是使Q学习在离线场景中变得可行的一个重要步骤。它通过将智能体的选择限制在类似于批处理数据中找到的动作,直接处理了分布偏移问题,在无法与环境交互时提供了一个有价值的工具。它与保守Q学习(CQL)等方法形成对比,我们将在后面讨论这些方法使用价值正则化 (regularization)而非明确的动作约束。