Dueling DQN
网络分解状态价值 V 与动作优势 A 后再聚合 Q。
学习目标
- 在价值网络结构中区分状态基线与动作相对优势。
- 独立复核“优势中心化和共同平移不变性”的输入、计算和解释。
- Dueling 改变表示结构,不是新的探索策略。
为什么重要
在价值网络结构中区分状态基线与动作相对优势。
学习前需要掌握
背景与问题
驾驶游戏中,道路前方是否有障碍会影响所有动作的总体价值,左右轻微转向的差异可能很小。每个动作都单独学习这份共同信息效率不高,dueling 架构尝试共享状态层面的价值表示。
概念定义
Dueling 网络在共享表示后分成状态价值 V 分支与动作优势 A 分支,再聚合得到各动作 Q。常见聚合为 V 加 A 减去动作优势均值。它改变网络参数化,不改变“采样转移、构造 TD 目标、拟合动作 Q”的基本训练任务。
直观理解
先判断“当前位置整体处境好不好”,再判断“各动作相对平均动作好多少”。减去均值让共同偏移不在两个分支之间任意搬动。
核心原理
如果仅写 Q=V+A,给 V 加常数并给所有 A 减同样常数,Q 完全不变,分解不可辨识。均值中心化把动作分支限制为零均值优势,使聚合有明确约定。
均值聚合下 V 等于各动作 Q 的算术平均,不必等于某个目标策略的 Vπ。网络优势分支是结构上的相对量,不能不加条件地称为已经准确估计的真实 Aπ。
Dueling 可以与 Double DQN、PER 等组合,但并不自动缓解离线分布外高估。动作差异很重要或表示本身不足时,结构改动也未必带来收益,应通过等预算消融判断。
数学表达
Dueling 聚合
均值中心化优势。
变量含义
G_t从时刻 t 开始的折扣累计回报。R_{t+1}执行动作后收到的下一步奖励。γ折扣因子,通常位于 [0,1)。
计算步骤
- 1Q0=2+1−2=1,Q1=2+3−2=3。
- 2把两项优势各加 10,均值也加 10,Q 仍是 1、3。
- 3该结构只取优势间差异,不取共同偏移。
代码对应位置
示例 1优势中心化和共同平移不变性:原优势与平移后优势均聚合成 Q=[1.000,3.000]。
变量解释
| 变量 | 含义 |
|---|---|
G_t | 从时刻 t 开始的折扣累计回报。 |
R_{t+1} | 执行动作后收到的下一步奖励。 |
γ | 折扣因子,通常位于 [0,1)。 |
完整数值示例
优势中心化和共同平移不变性
已知条件
- 状态分支 V=2,优势向量为 1、3。
- 聚合时减去优势均值 2。
计算步骤
- Q0=2+1−2=1,Q1=2+3−2=3。
- 把两项优势各加 10,均值也加 10,Q 仍是 1、3。
- 该结构只取优势间差异,不取共同偏移。
计算结果
原优势与平移后优势均聚合成 Q=[1.000,3.000]。
处理前后对比
- Dueling 改变表示结构,不是新的探索策略。
- Double DQN 改变目标中动作选择与评价的分工。
计算与实现步骤
- 共享编码
- V head
- A head
- 中心化 A
- 组合 Q
代码实现
示例 1
优势中心化和共同平移不变性
example_01.py用途:原优势与平移后优势均聚合成 Q=[1.000,3.000]。
value = 2.0
for advantage in [[1.0, 3.0], [11.0, 13.0]]:
average = sum(advantage) / len(advantage)
q = [value + a - average for a in advantage]
print("Q=" + ",".join(f"{x:.3f}" for x in q))代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
原优势与平移后优势均聚合成 Q=[1.000,3.000]。
Step 1 · 1–5 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
value = 2.0
for advantage in [[1.0, 3.0], [11.0, 13.0]]:
average = sum(advantage) / len(advantage)
q = [value + a - average for a in advantage]
print("Q=" + ",".join(f"{x:.3f}" for x in q))预期输出或运行结果
Q=1.000,3.000 Q=1.000,3.000
常见错误 · 3 条
- 忘记减均值,使 V 与 A 的共同偏移任意。
- 把聚合的 V 分支一律解释为真实 Vπ。
- 将 dueling 架构与 Double DQN 的目标改动混为一谈。
实际应用
- 序贯决策
- 控制与资源分配
常见错误
- 忘记减均值,使 V 与 A 的共同偏移任意。
- 把聚合的 V 分支一律解释为真实 Vπ。
- 将 dueling 架构与 Double DQN 的目标改动混为一谈。
扩展内容说明
本页数值均为解释机制的构造案例,不能解读为真实训练或基准性能。定义和适用条件参见 Wang 等:Dueling Network Architectures for Deep Reinforcement Learning。
算法属性与数据边界
失败模式、风险与性能
失败模式
- 忘记减均值,使 V 与 A 的共同偏移任意。
- 把聚合的 V 分支一律解释为真实 Vπ。
- 将 dueling 架构与 Double DQN 的目标改动混为一谈。
风险
- 奖励函数与真实目标不一致会诱发奖励黑客。
- 部署策略的行动权限必须由环境和应用层约束。
性能考虑
- 样本效率、墙钟时间和显存占用需要分别报告。
- 应使用多个随机种子、置信区间和固定评测策略。
常见问题
Dueling 就是 Double DQN 吗?
不是。Dueling 拆分网络表示,Double DQN 分离目标中的选择与评价;二者可以同时用于同一个 DQN 系统。
网页是否会训练模型?
不会。所有图表使用固定种子或解析公式在浏览器本地计算,不执行页面中的示例代码。
推荐学习资料
参考库不会生成虚假资源或无效外部链接。