概率统计中的点数分配问题,通常讨论一场没有完成的比赛:比赛已经中止,但奖金需要现在分配。问题是,应该按照当前比分分,还是按照双方继续比赛后获胜的概率分?
这个问题和人工智能中的 credit assignment 有相似之处。本文将这个概念统一称为“点数分配”:一个系统得到总奖励、总得分或总损失之后,我们需要判断,这个结果应该分配给哪些动作、时间步、智能体、特征或参数?
本文将 credit assignment 统一译为“点数分配”,后文不再使用其他中文译名。
一个简单的点数分配问题
甲乙比赛,规则是先赢 5 局的人获得 100 分。比赛中止时,甲赢了 4 局,乙赢了 3 局。假设每一局双方获胜的概率都是 ,现在应该怎样分配这 100 分?
甲还需要赢 1 局,乙还需要赢 2 局。甲最终获胜有两种路径:
- 甲下一局获胜,概率是 ;
- 乙先赢一局,甲再赢一局,概率是 。
因此,甲最终获胜的概率为:
乙最终获胜的概率为 。如果按照继续比赛后的期望结果分配,甲得到 75 分,乙得到 25 分。
这和按照当前比分 分配得到的结果不同。当前比分只描述已经发生的事实,而概率分配还考虑了双方距离获胜还差几局,以及比赛继续后可能出现的路径。
更一般地,设甲还需要赢 局,乙还需要赢 局,甲每局获胜的概率为 。令 表示甲最终获胜的概率,则有:
边界条件为:
这个递推式可以用递归、记忆化搜索或动态规划实现。它把比赛看成一个状态空间:每赢一局,状态就向一个方向移动;到达边界时,比赛结束。
点数分配问题的关键不在于“把 100 分拆成几个数字”,而在于先定义“公平”是什么意思。按照当前比分分配,是一种规则;按照最终胜率分配,则是另一种规则。
人工智能中的同类问题
人工智能里经常出现下面这种结构:
一个整体结果 → 多个局部因素 → 估计各自贡献 → 更新奖励、参数或解释整体结果可能是:
- 一局游戏结束时得到的奖励;
- 多个智能体共同完成任务后的总得分;
- 模型对一个样本的预测损失;
- 一个数据集训练出的模型性能;
- 多个专家共同处理输入后的输出质量。
局部因素则可能是:
- 某个时间步采取的动作;
- 多智能体系统中的一个智能体;
- 输入中的一个特征;
- 神经网络中的一层或一个参数;
- 训练集中的一条数据。
这些问题都属于点数分配问题,但它们的目标不完全相同。有些方法是为了让模型学得更快,有些是为了给团队成员分奖励,还有些是为了让人理解模型的决策。
1. 强化学习:把延迟奖励分给过去的动作
强化学习中的时间点数分配,是最直接的一类例子。
一个智能体可能要连续行动很多步,直到任务结束才得到奖励:
s₀ → a₀ → s₁ → a₁ → s₂ → ... → s₂₀ → +100如果只把 100 分交给最后一个动作,前面的动作就没有得到直接学习信号;如果把 100 分平均分给所有动作,又会把奖励分给一些可能无关的动作。
这就是 temporal credit assignment problem:时间点数分配问题。
最基本的处理方式是折扣回报:
其中 是折扣因子。如果最终奖励为 100,距离奖励一步的状态对应的信号大致为 ,距离奖励十步则对应 。
折扣并不表示早期动作一定不重要。它只是提供了一种随时间传播奖励的规则。 越接近 1,学习算法保留的长期信息越多; 较小时,算法更重视近期结果。
蒙特卡洛方法和时间差分方法
蒙特卡洛方法要等一局结束,使用完整回报更新之前访问过的状态。它使用了真实结果,但更新较慢,必须等待回合结束。
时间差分方法不必等待完整回合,而是用下一状态的价值估计更新当前状态:
这里的 是时间差分误差。它衡量当前观察到的结果与原有价值估计之间的差异。
如果某一步之后的状态比预期更好, 会变大;如果结果比预期差, 会变小。算法通过不断修正价值估计,让奖励信号逐渐传到更早的状态。
Eligibility Trace 则为最近访问过的状态保留一段资格,使时间差分误差可以同时影响多个时间步。它是另一种处理延迟奖励的办法:不必把所有责任都交给最后一个动作,也不必简单平均。
强化学习中,点数分配的对象是时间序列里的动作或状态,目标是改善策略更新。它不一定要给出一份满足“公平”要求的最终账单,只需要提供有用的学习信号。
2. 多智能体:团队奖励如何分给个体
在多智能体系统中,系统通常只得到一个团队奖励:
A₁ + A₂ + A₃ + A₄ → 总奖励 100最简单的方法是平均分配,每个智能体得到 25 分。这个基线很容易实现,但它不能区分每个智能体的作用。
如果 A₁ 负责规划路线,A₂ 负责避开障碍,A₃ 负责搬运,A₄ 只是跟随,那么四个智能体得到相同奖励后,A₁、A₂ 和 A₃ 收到的反馈可能不够准确,A₄ 也可能因为没有成本而继续维持无效行为。
这会影响学习。智能体需要知道自己的动作是否改变了团队结果,否则它只能根据一个与自己行为关系很弱的总奖励更新策略。这种现象通常称为 多智能体点数分配问题。
Difference Reward
一种常见方法是 Difference Reward:
其中 是所有智能体共同参与时的系统表现, 是把第 个智能体的影响移除后,系统表现的估计值。
例如,所有智能体参与时得分为 100,移除 A₁ 后得分变为 60,那么 A₁ 的差分奖励可以设为 40。
这个方法实际比较的是“有 A₁”和“没有 A₁”两种情况。它比平均分配更接近个体对结果的增量影响,但计算时需要构造一个移除智能体后的结果。对于相互依赖的智能体,移除一个智能体可能还会改变其他智能体的行为,因此这个分数仍然依赖于环境模型或估计方法。
3. 反事实分配:实际没有发生的结果怎样估计
点数分配经常需要比较一个没有真实发生的结果。
我们实际观察到的是:
A₁、A₂、A₃ 一起行动 → 得到 100 分但同一时刻不可能再观察一次“只有 A₂、A₃ 行动”的结果。这个缺失的比较结果就是反事实。
反事实方法通常会固定其他因素,只改变一个因素。例如,保持 A₂、A₃ 的动作不变,只替换 A₁ 的动作,再比较价值估计的变化。COMA(Counterfactual Multi-Agent Policy Gradients)使用了类似的反事实基线,目的是减少共享奖励对个体策略梯度的干扰。
这个想法和控制变量很接近:尽量保持其他条件不变,只考察一个因素的变化。
但是,反事实结果通常不是直接观测到的,而是由价值函数、环境模型或其他估计器计算出来的。如果这些估计不准确,点数分配也会受到影响。因此,反事实方法回答的不是“真实世界中这个智能体绝对贡献了多少”,而是:
在当前模型和比较规则下,改变这个因素,预测结果会怎样变化?
这个限定很重要。模型给出的反事实贡献,不应自动解释成现实世界中的因果效应。
4. Shapley Value:把合作中的边际贡献平均起来
如果参与者之间存在协作,只做一次“移除 A₁”的比较仍然不够。
假设有三个参与者 A、B、C。A 单独加入时贡献不大,但在 B 已经加入后,A 的作用可能明显增加。此时,A 的贡献取决于它加入时的合作背景。
Shapley Value 考虑所有可能的加入顺序。例如:
A → B → CA → C → BB → A → CB → C → AC → A → BC → B → A在每一种顺序中,记录某个参与者加入时带来的边际贡献,再对这些边际贡献取平均。对参与者 ,Shapley Value 定义为:
其中 表示参与者集合 带来的价值。
公式的核心是边际贡献:
它表示把 加入已有集合 后,价值增加了多少。Shapley Value 再把不同合作顺序下的结果平均起来。
它适合回答公平分配问题,但计算成本很高。参与者数量增加时,需要考虑的子集数量快速增长。实际系统通常使用采样、近似算法,或者利用问题本身的结构减少计算量。
Shapley Value 的另一个限制是价值函数 必须先定义。对于多智能体系统, 可以是任务得分;对于数据价值评估, 可以是模型在验证集上的性能;不同的价值函数会产生不同的分配结果。
5. SHAP:把边际贡献用于模型解释
在可解释人工智能中,参与者可以是输入特征。
假设模型根据收入、年龄、历史还款记录和负债率预测风险。模型给出一个分数之后,我们还想知道:哪些特征使分数变高,哪些特征使分数变低?
SHAP(SHapley Additive exPlanations)将 Shapley Value 的边际贡献思想用于单个预测的解释。它试图把模型输出表示成:
这和点数分配问题的结构相似:模型输出是总分,特征是参与者,SHAP 值是特征在给定规则下得到的贡献。
但 SHAP 值不等于因果效应。它依赖于背景数据、特征缺失方式和价值函数的定义。
例如,一个模型可能使用邮编来预测风险。SHAP 可以说明“邮编这个特征在模型预测中贡献了多少”,但不能直接说明“改变一个人的邮编会使现实风险改变多少”。前者是模型归因,后者需要因果分析。
因此,在解释模型时至少要区分三件事:
- 模型使用了哪些信息;
- 哪些信息对模型输出有较大的边际影响;
- 在现实世界中改变哪些因素会导致结果变化。
SHAP 主要处理前两件事,不能自动完成第三件事。
6. 反向传播:把损失分给参数
神经网络训练也可以从点数分配的角度理解。
模型经过多层计算得到预测结果,损失函数得到 。训练过程要计算每个参数对损失的影响:
然后使用梯度下降更新参数:
反向传播沿着计算图使用链式法则,把最终损失传回各层参数。从抽象角度看,它确实完成了“把误差信号分到不同参数”这件事。
但梯度和 Shapley Value 的目标不同。
- 梯度描述损失对参数的局部敏感度,主要服务于优化;
- Shapley Value 描述参与者在不同合作背景下的平均边际贡献,主要服务于分配或解释。
神经网络的参数数量可能达到数百万甚至更多。对每个参数枚举所有合作组合几乎不可行,因此训练过程使用梯度,而不是精确的 Shapley 分解。
这也是工程上常见的取舍:一个信用信号可以很适合训练,但不一定适合作为最终解释;一个理论上更完整的归因方法,也可能无法满足实时计算的要求。
7. 路由中的硬分配与软分配
一些模型需要决定当前输入应该交给哪些模块处理。假设三个专家的打分经过 Softmax 后得到:
这表示第二个专家获得更高的路由权重,但其他专家仍然保留一定权重。这是软分配。
如果系统只选择得分最高的专家,则得到:
这属于硬分配。Mixture-of-Experts、注意力机制、概率分类和竞争学习中,都可以看到类似的分配方式。
路由权重和点数分配有关,但不能直接等同。路由权重回答的是“信息或计算应该交给谁”,点数分配回答的是“结果或误差应该归给谁”。一个专家被选中,并不意味着最终结果完全由它负责;结果还可能受到其他层、其他专家和训练目标的影响。
8. 数据价值和系统模块的归因
点数分配的对象还可以从动作、智能体和特征扩大到数据与系统模块。
例如,一个模型在验证集上取得了较高准确率,我们可以继续问:
- 哪些训练样本帮助最大?
- 哪个数据提供方贡献了更多有效数据?
- 联邦学习中,各参与方应该如何分配收益?
- 一个预处理模块对最终性能的提升有多大?
这时可以把问题写成:
最终模型性能 → 数据、计算资源或模块 → 边际价值Shapley Value 可以提供一套理论框架,但实际应用会受到训练成本、数据分布、重复样本、隐私和评估噪声的影响。一个样本的价值也不是固定的:在训练数据不足时它可能很有用,当数据集已经包含大量相似样本后,它的边际价值可能降低。
因此,贡献不是参与者自身的永久属性,而是相对于任务、系统和其他参与者定义的。
方法之间的区别
把前面的内容放在一起,可以得到下面的对应关系:
| 方法 | 主要回答的问题 | 典型场景 |
|---|---|---|
| 平均分配 | 在没有更多信息时,怎样给出一个基线? | 团队奖励、简单多智能体系统 |
| 预设权重 | 如何把已有领域知识写进分配规则? | 专家系统、加权评分 |
| 硬分配 | 当前应该让谁承担主要任务? | Winner-Take-All、稀疏路由 |
| 软分配 | 多个对象应该分别获得多大权重? | Softmax、Attention、MoE |
| 时间点数分配 | 哪些动作影响了最终结果? | 强化学习、TD、Eligibility Trace |
| 反事实分配 | 如果改变一个因素,结果会怎样? | Difference Reward、COMA |
| 边际贡献分配 | 一个因素加入后平均增加了多少价值? | 多智能体、数据价值、特征归因 |
| 梯度分配 | 哪些参数的变化会减少损失? | 神经网络训练、反向传播 |
这些方法不能互相替代。
如果目标是让模型尽快学习,梯度和时间差分误差通常更实用;如果目标是解释单次预测,SHAP 可能更合适;如果目标是评估协作成员的边际价值,反事实方法或 Shapley Value 更直接;如果只是需要一个稳定的初始规则,平均分配也可以作为基线。
选择方法之前,需要先回答两个问题:分配的对象是谁,分配的目的是什么。
“公平”取决于分配目标
只要所有人的分数加起来等于 100,并不意味着分配就合理。我们还需要说明“贡献”具体指什么:
- 让结果变好的直接动作;
- 没有它就无法完成的必要条件;
- 加入系统后带来的平均增量;
- 对模型损失最敏感的参数;
- 在不同合作顺序下都具有稳定作用的因素。
这些定义会产生不同的结果。
在人工智能里,点数分配通常服务于三个目标:
- 帮助学习:让奖励信号更准确,减少无效探索;
- 促进协作:让智能体知道自己的行为是否改变了团队结果;
- 提供解释:帮助人理解模型为什么产生某个输出。
同一种方法不一定能同时满足三个目标。用于训练的梯度信号可能不适合直接向用户解释;理论上公平的 Shapley 分解,也可能因为计算成本过高而无法用于实时训练。
回到最初的比赛
比赛中止时,100 分可以按照当前比分分,也可以按照继续比赛后的胜率分。两种结果都能计算,差别在于它们采用了不同的公平标准。
人工智能中的问题更加复杂,但结构相近:
- 强化学习把延迟奖励分配给时间序列中的动作;
- 多智能体方法把团队奖励分配给不同的行动者;
- 反事实方法比较改变某个因素后的结果;
- Shapley Value 计算不同合作背景下的平均边际贡献;
- SHAP 把这种思想用于特征归因;
- 反向传播把损失沿计算图传给不同参数;
- 路由机制决定计算应该交给哪些模块。
它们使用的公式不同,优化目标也不同,但都需要先回答同一个问题:
一个整体结果出现之后,我们要把它归因给谁,以及按照什么标准归因?
所以,点数分配问题对计算机和人工智能的价值,不是提供一个可以直接套用的算法,而是帮助我们识别分配规则背后的假设。我们是在奖励结果、奖励过程,还是估计某个因素对结果的增量影响?在明确这个问题之后,才知道应该使用平均分配、时间差分、反事实比较、Shapley Value,还是梯度方法。
延伸阅读
- Counterfactual Multi-Agent Policy Gradients↗:讨论多智能体共享奖励与反事实基线的 COMA 方法。
- A Unified Approach to Interpreting Model Predictions↗:Lundberg 与 Lee 提出的 SHAP 统一解释框架。
- Learning representations by back-propagating errors↗:Rumelhart、Hinton 与 Williams 关于反向传播的经典论文。
