双重DQN(DDQN)可以减少价值高估,而对偶网络架构则能更准确地估计状态价值和动作优势。一个很自然的问题是:这些改进能一起使用吗?幸运的是,答案是肯定的。这些技术处理DQN训练过程的不同方面,并且很大程度上是互补的。将它们结合起来,与单独使用任何一项增强相比,通常能显著提升性能和稳定性。
整合双重DQN和对偶网络
核心思想是同时使用对偶架构用于在线网络(用于动作选择和梯度计算)和目标网络(用于计算目标Q值),同时采用双重DQN的更新规则来计算该目标值。
回顾对偶网络架构计算Q值的方式如下:
Q(s,a;θ,α,β)=V(s;θ,β)+(A(s,a;θ,α)−∣A∣1a′∑A(s,a′;θ,α))
这里,θ 表示价值流 (V) 和优势流 (A) 之间共享的参数,而 β 和 α 分别是价值流和优势流特有的参数。我们用 (θ,α,β) 表示在线网络的参数,用 (θ−,α−,β−) 表示目标网络的参数。
现在,我们来引入双重DQN的原则。DDQN目标 Yt 的计算方式如下:
YtDDQN=Rt+1+γQ目标(St+1,arga′maxQ在线(St+1,a′;θ,α,β);θ−,α−,β−)
将它们结合起来:
-
动作选择:使用带有对偶架构的在线网络来确定下一个状态 St+1 的最佳动作 a∗:
a∗=arga′maxQ在线(St+1,a′;θ,α,β)
具体来说,您会使用在线网络的优势流计算所有动作 a′ 的优势 A(St+1,a′;θ,α),并选择对应最大优势的动作 a∗(因为对于给定状态,V(St+1) 项在所有动作中是恒定的)。
-
动作评估:使用目标网络(同样带有对偶架构)来评估在状态 St+1 中执行动作 a∗ 的Q值:
Q目标(St+1,a∗;θ−,α−,β−)=V目标(St+1;θ−,β−)+(A目标(St+1,a∗;θ−,α−)−∣A∣1a′′∑A目标(St+1,a′′;θ−,α−))
-
目标计算:使用奖励 Rt+1 和从目标网络评估出的Q值来构成最终的目标值 Yt:
Yt=Rt+1+γQ目标(St+1,a∗;θ−,α−,β−)
-
损失计算:计算目标 Yt 与在线网络为原始状态-动作对 (St,At) 预测的Q值之间的损失(例如,均方误差或Huber损失):
损失=L(Yt−Q在线(St,At;θ,α,β))
-
梯度更新:使用从该损失中导出的梯度来更新在线网络的参数 (θ,α,β)。定期通过复制在线网络参数来更新目标网络参数 (θ−,α−,β−)。
这种结合方法,通常被称为对偶DDQN,兼具双重DQN减少高估偏差的优点和对偶网络架构提升的特征学习能力。
该图说明了对偶双重DQN中目标值 (Yt) 的数据流。动作选择使用在线网络,而动作评估使用目标网络,两者都采用了对偶架构。
更多改进:优先经验回放(PER)
正如之前简单提及,优先经验回放(PER)是另一个重要的改进,可以在对偶DDQN之上叠加。PER不是从回放缓冲区中均匀采样转换,而是根据TD误差来采样转换。代理预测高度不准确(TD误差大)的转换被认为是更“令人意外”或更有信息量的,因此会被更频繁地回放。
整合PER包括:
- 存储TD误差:当一个转换 (St,At,Rt+1,St+1) 被添加到回放缓冲区时,计算其初始TD误差并与该转换一起存储。
- 优先采样:采样一个小批量时,根据这些存储的TD误差(或从中导出的排名)分配概率。误差越大意味着被采样的概率越高。
- 重要性采样权重:为了纠正非均匀采样引入的偏差,为小批量中的每个转换计算重要性采样(IS)权重。这些权重会调整梯度更新,降低频繁采样转换的更新权重。
- 更新优先级:在对采样到的转换执行梯度更新后,使用新计算的TD误差更新其在回放缓冲区中的优先级。
将对偶DDQN与PER结合,常能带来许多离散动作空间任务的当前最佳性能,例如在街机学习环境(ALE)中发现的任务。实现复杂度会增加,但在样本效率和最终性能方面的潜在提升可能是可观的。
总结来说,这些DQN改进的模块化特性使得它们能够有效结合。从基础DQN开始,加入双重DQN可以解决高估问题,对偶网络改善了价值函数的表示,优先经验回放则将学习重点放在信息量最大的转换上。实施这些组合提供了一个强大的工具集,用于解决复杂的强化学习问题。