多智能体信用分配怎么计算?用 COMA 反事实基线核对优势

固定其他个体动作,对自身动作按策略加权计算基线。提供自定输入、完整计算和可核对结果,说明适用条件。

团队得到同一奖励时,如何评价某一个体当前动作?COMA 使用集中式 critic 的动作价值,在固定其他个体动作时,将该个体可能动作按自身策略概率平均,作为反事实基线。下面只算一次基线与优势,不训练 critic,不把自造 Q 值当真实因果贡献。

固定其他个体,再比较自身动作

有 A、B 两个个体,各可选 L、R。Q 的行对应 A、列对应 B,矩阵为 [[4,1],[2,3]];这是我们指定的集中价值表。A 策略为 π(L)=0.25、π(R)=0.75。实际 B 固定 L,A 实际选 L,当前 Q 为 4。

多智能体信用分配怎么计算?用 COMA 反事实基线核对优势

基线 b_A=Σ动作 π_A(动作)Q(A候选动作,B固定动作),因此 b_A=0.25×4+0.75×2=2.5,优势为 4−2.5=1.5。COMA 原论文的反事实基线边缘化自身动作并保留其他个体的动作;不能把两个人都换掉再称为该个体的基线。

运行并检查加权优势为零

保存 coma_baseline.py,运行 python coma_baseline.py。函数检查概率和、非负性和矩阵列数。示例仅两行两列,真实算法还需要相应训练数据、critic 和策略更新。

from math import isclose
Q=[[4.0,1.0],[2.0,3.0]]
pi=[0.25,0.75]
def advantages(other_action):
    if len(Q)!=len(pi) or any(len(row)!=2 for row in Q):
        raise ValueError("shape mismatch")
    if any(p<0 for p in pi) or not isclose(sum(pi),1.0):
        raise ValueError("invalid policy")
    if other_action not in (0,1):
        raise ValueError("invalid other action")
    vals=[row[other_action] for row in Q]
    baseline=sum(p*q for p,q in zip(pi,vals))
    adv=[q-baseline for q in vals]
    assert isclose(sum(p*a for p,a in zip(pi,adv)),0.0,abs_tol=1e-12)
    return baseline,adv
baseline,adv=advantages(0)
print("B=L baseline and advantages:",baseline,adv)
assert baseline==2.5 and adv==[1.5,-0.5]
baseline2,adv2=advantages(1)
print("B=R baseline and advantages:",baseline2,adv2)
assert baseline2==2.5 and adv2==[-1.5,0.5]

这组结果说明什么

B 从 L 改为 R 时,A 选 L 的优势从正 1.5 变为负 1.5,说明比较依赖其他个体当前动作。两种场景基线恰巧同为 2.5,是本例数值巧合,不是 COMA 的一般性质。按同一策略概率加权后的优势为零,是因为减去了同一加权均值;这个检查能抓到索引方向、概率或基线算错。

Q 表需要来自符合算法定义的 critic;任意填表只能演示公式,不能证明某人对实际团队产出的贡献。奖励设计定义团队目标,信用分配则在既定目标与价值估计下评估个体动作,二者需要区分。实际动作的正优势也不是确定的下一回合收益承诺。

多于两个动作时沿自身动作维度求和,其他动作保持不变;连续动作需要相应积分或近似方法,不能原样套两列表。验收记录动作索引、策略概率、Q 来源和加权结果。下一步才是验证学习得到的 critic 与训练更新,本文没有复现原论文基准实验。

资料与核对依据

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/33283.html

赞 (0)
AI小管家的头像AI小管家
用ChatGPT做概念图:把概念之间的关系写在连线上
上一篇 9小时前
用DeepSeek生成试卷:先锁定知识材料、题型和分值蓝图
下一篇 9小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部