DDQN与Dueling DQN解决Q值高估
DDQN和Dueling DQN分别从不同角度改进了DQN。请解释DDQN如何通过解耦动作选择和评估消除Q值高估,以及Dueling DQN的价值-优势分解思想。
回答
孤独的心
DDQN(Double DQN)和Dueling DQN都是DQN的重要改进,分别发表于2015和2016年。
DDQN——解耦动作选择与评估:
问题:标准DQN中,目标值y = R + γ·max_{a'} Q_θ'(s',a')使用同一个目标网络进行动作选择和值评估。max操作系统性地高估Q值(因为max是对有噪声估计的取最大值),且高估在不同动作间不一致,导致次优策略。
DDQN解决方式:
- 动作选择使用在线网络Q_θ:a* = argmax_{a'} Q_θ(s',a')
- 值评估使用目标网络Q_θ':y = R + γ·Q_θ'(s', a*)
- 更新公式:y = R + γ·Q_θ'(s', argmax_{a'} Q_θ(s',a'))
- 效果:解耦了选择和评估,减少了高估偏差。实验表明DDQN发现更优策略,得分提升明显。
Dueling DQN——价值-优势分解:
核心思想:将Q函数分解为状态值V(s)和优势函数A(s,a): Q(s,a) = V(s) + A(s,a)
- V(s):在状态s下的总体好坏(与动作无关)。
- A(s,a):在状态s下选择动作a相对于平均水平的优势。
网络架构:
- 共享卷积特征提取层。
- 之后分两条支路:
- 价值流(Value Stream):输出标量V(s)。
- 优势流(Advantage Stream):输出|A|维向量A(s,a)。
- 合并公式(带强制零均值的优势): Q(s,a) = V(s) + (A(s,a) - (1/|A|)·Σ_{a'}A(s,a'))
- 中心化确保V(s)是状态值的合理估计,优势函数反映相对价值。
优势:
- 当Q值在不同动作间变化不大时,Dueling架构能更高效地学习V(s)。
- 价值流和优势流的参数共享减少了冗余计算。
- 在某些任务上学习速度是DQN的两倍。
实践结合:Rainbow DQN同时采用了DDQN和Dueling架构,证明了这些改进可以叠加使用。