Double Q-Learning
用两套估计分离动作选择与动作评价,缓解 max 过估计。
学习目标
- 分离动作选择与价值评价,缓解最大化带来的过估计偏差。
- 独立复核“提名动作与评价动作分开”的输入、计算和解释。
- Double Q 是选择与评价分离,不是最大值平均。
为什么重要
分离动作选择与价值评价,缓解最大化带来的过估计偏差。
学习前需要掌握
背景与问题
两个真实价值相近的动作,各有带噪声的估计。选择最大估计会更容易挑中被噪声抬高的那个,因此平均噪声为零也不保证最大值估计无偏。Double Q 通过两个估计器减少这种选择与评价的耦合。
概念定义
表格 Double Q-learning 维护 QA 和 QB,随机选择其中一个更新。更新 QA 时用 QA 选择下一动作,再由 QB 评价;更新 QB 时反过来。行为可以基于两表的和或平均进行 ε-greedy 探索。
直观理解
一位评委提名,另一位评委评分,避免同一个人的偶然高估既决定候选又决定最终分数。不过两位评委若犯相似错误,仍可能保留偏差。
核心原理
核心是交叉评价,不是简单把两个最大值平均。先确定本次更新哪一张表,用该表的 argmax 选动作,然后查询另一张表同一动作的价值。
分离估计可以缓解正向最大化偏差,但不保证任何时候都比单表更准确。两个估计的相关性、数据覆盖和有限采样会影响效果,某些情形还可能出现低估。
两张表在开始时可相同,但后续更新路径不同。终止标记、学习率和探索仍需正确;Double Q 不会自动解决没有成功样本、非马尔可夫状态或错误奖励的问题。
数学表达
更新 QA 的交叉评价目标
终止转移没有 bootstrap;更新 QB 时交换两张表。
变量含义
Q_A、Q_B两个独立更新的动作价值表y_A更新 QA 时的 TD 目标
计算步骤
- 1QA 选出动作 0。
- 2用 QB 评价动作 0,得到 1;目标为 0.9。
- 3若误用 max QA,目标为 4.5;若用 max QB,目标为 2.7,都不是本次 Double Q 目标。
代码对应位置
示例 1提名动作与评价动作分开:选择动作 0,交叉评价后的目标为 0.900。
变量解释
| 变量 | 含义 |
|---|---|
Q_A、Q_B | 两个独立更新的动作价值表 |
y_A | 更新 QA 时的 TD 目标 |
完整数值示例
提名动作与评价动作分开
已知条件
- 下一状态 QA=[5,4],QB=[1,3]。
- 本次更新 QA,奖励 0,折扣 0.9。
计算步骤
- QA 选出动作 0。
- 用 QB 评价动作 0,得到 1;目标为 0.9。
- 若误用 max QA,目标为 4.5;若用 max QB,目标为 2.7,都不是本次 Double Q 目标。
计算结果
选择动作 0,交叉评价后的目标为 0.900。
处理前后对比
- Double Q 是选择与评价分离,不是最大值平均。
- Double DQN 用在线网络与延迟目标网络实现相似思想,但更新结构不同。
计算与实现步骤
- 随机选择更新表
- 一表 argmax
- 另一表评价
- 更新选中表
代码实现
示例 1
提名动作与评价动作分开
example_01.py用途:选择动作 0,交叉评价后的目标为 0.900。
qa, qb = [5.0, 4.0], [1.0, 3.0]
selected = max(range(len(qa)), key=qa.__getitem__)
target = 0.9 * qb[selected]
print(f"selected={selected}, cross_target={target:.3f}")代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
选择动作 0,交叉评价后的目标为 0.900。
Step 1 · 1–4 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
qa, qb = [5.0, 4.0], [1.0, 3.0]
selected = max(range(len(qa)), key=qa.__getitem__)
target = 0.9 * qb[selected]
print(f"selected={selected}, cross_target={target:.3f}")预期输出或运行结果
selected=0, cross_target=0.900
常见错误 · 3 条
- 对 QA 和 QB 各取最大值再平均,误称交叉评价。
- 用 QB 选择动作后又用 QB 评价本应更新 QA 的目标。
- 把缓解过估计说成完全消除所有价值偏差。
实际应用
- 序贯决策
- 控制与资源分配
常见错误
- 对 QA 和 QB 各取最大值再平均,误称交叉评价。
- 用 QB 选择动作后又用 QB 评价本应更新 QA 的目标。
- 把缓解过估计说成完全消除所有价值偏差。
扩展内容说明
本页数值均为解释机制的构造案例,不能解读为真实训练或基准性能。定义和适用条件参见 van Hasselt:Double Q-learning。
算法属性与数据边界
失败模式、风险与性能
失败模式
- 对 QA 和 QB 各取最大值再平均,误称交叉评价。
- 用 QB 选择动作后又用 QB 评价本应更新 QA 的目标。
- 把缓解过估计说成完全消除所有价值偏差。
风险
- 奖励函数与真实目标不一致会诱发奖励黑客。
- 部署策略的行动权限必须由环境和应用层约束。
性能考虑
- 样本效率、墙钟时间和显存占用需要分别报告。
- 应使用多个随机种子、置信区间和固定评测策略。
常见问题
Double Q 和两个 critic 取最小值一样吗?
不是。Double Q 强调选动作与评价分离;TD3 等方法用双 critic 的最小值构造保守目标,目的相关但具体算子不同。
网页是否会训练模型?
不会。所有图表使用固定种子或解析公式在浏览器本地计算,不执行页面中的示例代码。
推荐学习资料
参考库不会生成虚假资源或无效外部链接。