Double Q如何拆开选择与估值:挑中的最高数,不能再给自己打分

46分钟前 2阅读

在强化学习里,下一状态的最高动作价值经常被拿来构造学习目标。如果每个动作的估计都有噪声,“选择最高估计”会偏向碰巧偏高的那一项。Double Q的关键动作是让一份估计选择动作,再让另一份估计评价这个已选动作。两份数组同时存在还不够,索引怎样流动才决定算法是否真的变了。

Double Q如何拆开选择与估值:挑中的最高数,不能再给自己打分

AI生成的概念示意图:选择器把候选身份交给另一套测量装置;不是实际产品、模型界面或实验结果。

每个数都无偏,取最大以后却不再无偏

设甲乙两个动作的真实价值都为0。一份估计A给每个动作独立加入+1或−1噪声,四种等概率结果是(1,1)、(1,−1)、(−1,1)、(−1,−1)。每个坐标单独平均都是0,但每行最大值依次为1、1、1、−1,平均为0.5。

因此E[max A]不等于max E[A]。这里没有神秘的模型误差:只是先按带噪数值选赢家,再把赢家同一个带噪数值当作答案。把采样次数增加到无限,只会让这种最大值估计的实验均值更稳定地接近0.5;不会自动把定义错位改回0。

现在再独立生成一份B,其两个坐标也各取±1。用A决定动作,平局固定选甲,然后只读取B中对应的坐标。给定A以后,选中的动作已经确定,而那个B坐标的条件期望仍为0。所以把A与B全部16种组合枚举后,读数均值为0。单次读数依然可能是1或−1,消除这个小例中的均值偏差没有消除随机误差。

一笔更新里,argmax和取值分别来自谁

假设下一状态的A值为(3,2),B值为(1,4)。更新A时,A选择甲,因为3大于2;估值必须读取B的甲坐标1,不能临时改选B最喜欢的乙。若奖励r=1、折扣γ=0.9,目标为1+0.9×1=1.9。

令当前A(s,a)=0、学习率α=0.5,则更新后的当前值为0+0.5×(1.9−0)=0.95。若错误地使用max B,目标会成为4.6,更新值2.3;若使用max A,又退回单估计目标3.7,更新值1.85。这三个数为实现检查提供了不易混淆的测试样本。

更新B时角色交换,由B选择下一动作、A评价。在这个例子中B选择乙,A的乙值是2。行为策略怎样探索、下一步更新哪张表、目标怎样构成是不同决策,日志中最好分别保存,避免一个叫best_action的变量在几处被悄悄复用。

真实价值不同,独立估值也可能低估最佳值

把甲的真值改为1,乙仍为0,A的两个坐标仍独立加入±1噪声。四种A结果为(2,1)、(2,−1)、(0,1)、(0,−1),只有第三种会选错乙,概率为1/4。若B是与A独立、分别无偏的评价器,那么选中甲时B的期望为1,选中乙时为0。

于是Double估计的均值为(3/4)×1+(1/4)×0=0.75,低于真正最佳价值1。选择与评估分离阻止了同一份噪声给赢家抬价,却不能阻止选择器挑错动作。这也是为什么不能把Double Q宣传成“无偏求最大值”的通用办法。

再看相关性边界。若B完全复制A,在第一组真值都为0的例子里,B对已选动作的读数就是max A,高估0.5重新出现。现实中两套网络共享数据和训练历史,通常不能直接宣称统计独立。表格Double Q的理论条件、Double DQN的在线/目标网络安排与本例的独立噪声实验,应各自说明。

把可复算的小例变成回归测试

可以让AI写一个不调用强化学习框架的枚举器:先列A的四种结果,再列B的四种结果,保留选中动作、A该动作值、B该动作值和最终目标。测试必须断言取值索引来自A的选择,而不是断言目标总比普通Q-learning更小。

还应加入A=B的退化对照、只有一个合法动作的对照,以及γ=0时目标退回即时奖励的对照。非法动作掩码必须在选择器中生效,且两份数组的动作编号要一致。如果两张表的索引语义错位,数值再稳定也不是在评价同一动作。

在线训练时,应把性能提升与估值偏差分别测量。任务回报变好不直接证明偏差消失;估值更低也不自动代表更准确。一个已知真值的小环境、独立重复运行的均值,以及实际策略回报,能回答三个不同问题。本文的枚举只验证最大值选择机制,没有声称复现任何论文中的游戏成绩。

资料核对日期:2026年10月3日。数值均为原创教学设定,使用本地独立程序复算;未进行真实模型训练或生产性能测试。

参考资料

van Hasselt:Double Q-learning,NIPS 2010


文章版权声明:除非注明,否则均为云鹊BLOG原创文章,转载或复制请以超链接形式并注明出处。