资讯动态

执行噪声下的意图推断:如何区分偶然不确定性与认知不确定性

发布时间:2026/8/30 4:11:32 来源:尧图企业网站定制
两辆无人搬运机器人在同一个巷道里协作搬运。前方那辆突然减速偏航后方那辆必须在几百毫秒内判断对方是不想配合还是轮子打滑、定位漂移了如果把执行噪声直接当成恶意后车选择绕道甚至抢占路径协作立刻崩掉如果明明遇到不配合的对手还继续信任整条产线都会被拖住。这个场景放进社交困境里会更尖锐——一次偶然的“违约”动作可能被解读成背叛然后引发互相惩罚最终双方都拿不到收益。围绕“Intention Inference Under Execution Noise”这类问题真正难的不是“从动作反推意图”而是把两类不确定性分开一部分来自执行噪声是环境固有、观测再多也消不掉的另一部分来自我们对对方意图的无知是可以通过增加互动、修正模型逐渐降低的。前者叫偶然不确定性Aleatoric Uncertainty后者叫认知不确定性Epistemic Uncertainty。分不开信任策略和防御策略只能凭直觉拍脑袋分得开它们就是同一个概率系统里可计算的东西。1. 为什么执行噪声会让意图推断变成一个不对称问题1.1 意图、动作与观测中间隔着一整条噪声链路很多人在设计多智能体系统时默认了一条过于乐观的链路对方想做什么就会做什么然后我就能看到什么。实际上意图到观测之间至少隔着三个环节意图层对方到底选择合作还是背叛这是一个内部状态。动作层意图被翻译成具体动作比如把资源分给对方或者选择沉默不配合。执行层动作在真实环境中被执行时会被机械误差、环境扰动、传感器延迟、通信丢包等因素扭曲。在社交困境里这层噪声尤其麻烦。因为合作与背叛在观测上往往只有一步之差。比如在囚徒困境中一方本来想合作但执行动作时出错发出了一条看起来像背叛的信号。观察者如果不考虑执行噪声就会拿着这个被污染的观测结果做判断把“没做到”当成“不想做”。这类问题在机器人协作中非常常见。轮子打滑、关节卡顿、定位漂移、视觉识别延迟都会让一个本来善意的动作看起来像不配合。甚至在一些带探索机制的强化学习系统里策略本身的随机采样也会产生类似噪声。也就是说执行噪声不是数学建模时的边角料而是从单机系统走向多机协作时一定会遇到的基础问题。1.2 把噪声误判成恶意代价往往更高在社交困境中误判的代价并不是对称的。假设场景是重复博弈双方本来都有合作意愿。如果你把噪声误判成恶意选择背叛来“惩罚”对方对方的策略可能是针锋相对——你背叛我也背叛。结果就是合作瓦解双方进入长期的互相惩罚状态。这种代价不是一次性的而是持续性的甚至可能无法挽回。反过来如果你把真实的背叛误判成噪声继续选择合作代价是单轮收益的损失。在重复互动中这个损失通常是可以被约束住的每轮最多损失一份收益后续还有机会通过试探、沟通或调整策略来修正。所以从工程角度看在不确定性较高的时候系统应该对“虚假指控”更保守对“虚假信任”相对宽容。这听起来像是一个伦理判断但它其实是可以被写进损失函数里的技术决策。如果应用场景里误判代价不对称那么决策阈值就必须跟着不对称而不是机械地选择后验概率更高的那个假设。2. 两类不确定性数学上都要估计语义上完全不是一件事2.1 偶然不确定性执行噪声本身的固有随机性偶然不确定性描述的是“这个系统在执行动作时本身会带多少随机性”。它来自物理环境、机械结构、传感链路等客观因素。例如一个机器人试图执行“把物料递给对方”的动作成功率只有 90%。无论你观测多少次这个 90% 都不会因为你观察得更仔细而变成 95%。它只能通过改进执行系统本身来改变比如换传感器、修机械结构、加阻尼、做校准。在概率模型里这部分不确定性通常体现在似然函数上给定一个意图观测到各种动作的概率分布里包含一个固定噪声项。它不会随着样本量增加而收敛到零因为它在逻辑上就不是“数据不够”造成的而是“世界本身就随机”造成的。2.2 认知不确定性对对方意图模型的无知认知不确定性描述的是“我对对方的意图类型有多不确定”。它来自模型知识不足、样本太少、数据覆盖不全面。假设你观察了另一个智能体五轮行为其中四轮合作、一轮表现出背叛迹象。你没法确定对方到底是坚定的合作者、还是偶尔试探的利己者。这种不确定性的来源是你“不知道”而不是环境“随机”。随着互动次数增加后验概率会逐渐集中认知不确定性会下降。更复杂一点如果对方的意图空间不是两个离散选项而是包含多种策略类型——无条件合作、有条件合作、随机试探、刻意背叛——那认知不确定性还会包含“我连对方属于哪一类都没搞清楚”的部分。这部分往往需要用更丰富的模型来表达比如混合策略或层级贝叶斯模型。2.3 为什么要分开控制策略完全不同两类不确定性在处理方式上是完全相反的维度偶然不确定性认知不确定性来源执行系统的固有随机性对意图模型的无知能否通过更多观测降低不能能典型处理方式校准、冗余、防护、改进执行系统增加观测、主动试探、沟通确认在决策中的角色决定“观察信号有多可信”决定“当前判断有多可信”典型例子机器人执行动作成功率只有 90%只观察了三次互动不确定对方是哪类策略如果不区分这两类不确定性就会出现两种典型错误。第一种把认知不确定性当成偶然不确定性。比如只观察了几次互动就断言“对方有 10% 的概率会随机犯错”然后停止继续收集信息用一个低置信度的估计去做长期决策。结果是本来可以通过更多观测降低的风险被白白保留了下来。第二种把偶然不确定性当成认知不确定性。比如对方执行系统本来就很有噪声你却以为是自己观察得太少于是疯狂增加采样、反复试探浪费大量交互成本最后发现噪声一点都没有降低。所以分离两类不确定性不仅仅是一个学术上的概念区分它直接决定了你应该把预算花在“改进执行系统”还是“增加意图观测”上。3. 一个可落地的意图推断与不确定性分离框架如果要从头搭建一个能处理执行噪声的意图推断系统我会建议按下面这个四步框架走。它不要求你一定用复杂的深度学习模型反而从最朴素的概率图模型开始会更可靠。3.1 第一步把意图建模成隐变量首先明确你要推断什么。在社交困境场景里最简单的意图变量可以是一个离散值合作者或背叛者。更细一点还可以加入“有条件合作者”“随机试探者”等类型。设意图为 \theta观测序列为 y_1, y_2, ... y_t。我们的目标是计算后验概率P(\theta | y_1:t) \propto P(y_1:t | \theta) P(\theta)这里 P(\theta) 是先验分布代表在你还没有任何观测之前对这个智能体意图类型的初始判断。3.2 第二步显式把执行噪声写进似然函数很多实现会把观测直接当成真实动作这是最容易被攻击的地方。正确做法是让似然函数显式包含噪声项。一个常见的离散例子如果对方意图是合作那么它执行合作动作时有 1 - \epsilon 的概率被正确观测为“合作”有 \epsilon 的概率因为执行噪声被观测成“背叛”。如果对方意图是背叛那么它执行背叛动作时通常会被观测成“背叛”同样也可能因为噪声被观测成“合作”只是概率不同。这里的 \epsilon 就是偶然不确定性它需要从系统日志、校准实验或历史数据中估计出来。如果没有条件做精确标定至少也要设定一个保守的估计值而不是默认它为 0。如果动作是连续量比如机器人接近目标的距离、协作力的方向那么可以用高斯噪声模型观测值等于真实动作加上一个零均值高斯扰动。这个扰动的方差就是偶然不确定性的表示。3.3 第三步用后验分布同时读出两类不确定性贝叶斯更新之后后验分布本身就包含了你想分离的两类信息认知不确定性可以用后验分布的熵或方差来衡量。熵越大说明你对对方意图的类型越不确定。偶然不确定性对应似然函数里的噪声参数。即使你对意图类型已经非常确定执行噪声依然存在它就是这个场景里“不可消除”的那部分随机性。在一些更复杂的场景里可以用集成模型来近似计算这两类不确定性。多个模型对同一观测给出的预测如果彼此差异很大说明认知不确定性高如果所有模型都给出同样的分布但分布本身很宽说明偶然不确定性占主导。关键点在于不要只保留后验分布的均值或最大后验估计。那会把不确定性信息丢光让你误以为系统已经“知道”了对方想干什么。3.4 第四步用置信阈值做决策而不是用点估计做决策有了不确定性信息之后决策逻辑可以做成这样初始化先验 P(intent) for 每一轮互动: 观测对方动作 y_t 用带噪声项的似然 P(y_t | intent) 更新后验 计算后验的认知不确定性如熵 如果认知不确定性 阈值_信息收集 执行低成本试探 / 发起通信 / 继续观察 否则 根据后验概率和损失函数选择合作或背叛这个流程的核心判断是不确定的时候不要硬下注。如果你的后验还远没有收敛这时候做任何高代价决策都是赌不如先用低成本手段把信息补上。具体阈值怎么定取决于你的损失函数。如果误判代价不对称阈值就不能对称。这在下一个部分展开。4. 社交困境里的特殊难点损失函数、先验和动态策略4.1 误判代价不对称要显式设定损失函数在社交困境里“要不要信任对方”本质上是一个带损失的下注。你需要定义四类代价真合作而选择合作获得协作收益。真合作而选择背叛短期收益可能更高但破坏了协作关系。真背叛而选择合作被利用损失单轮收益。真背叛而选择背叛防御正确但放弃了协作收益。工程上把这些代价写进一个损失矩阵然后选择期望损失最小的动作。这个矩阵里的数字不一定要非常精确但它们的相对大小会直接决定行为倾向。如果系统要被长期使用我建议把“破坏合作关系”的代价设得比“被利用一次”更高。这样在认知不确定性较高的时候系统会自然倾向观察和沟通而不是急着反击。4.2 先验不是细节它决定早期互动怎么起步贝叶斯推断里先验 P(\theta) 在样本量很少时影响巨大。如果你的先验默认“对方大概率是背叛者”那么哪怕连续几次合作信号系统也可能迟迟不愿形成合作判断。反过来如果先验过度乐观系统又容易被真实背叛者反复利用。在工程落地时我更建议使用信息量较低的先验或者在系统启动阶段主动设置一段“探索期”。探索期的长短由损失函数决定如果被利用的代价低就先释放合作信号如果被利用的代价高就用低成本试探代替无条件合作。4.3 对方策略可能变化非平稳环境下的重估另一个容易被忽略的问题是对方的意图类型不是一成不变的。它可能在学习你的策略可能因为外部压力改变行为甚至可能因为上一轮的误判而真的从不合作转向合作。这时候如果一直用全量历史数据做贝叶斯更新早期信息会拖累当前的判断。常见做法是引入滑动窗口只使用最近 N 轮的观测做更新或者配置一个变化检测机制当观测数据分布与当前模型显著不符时主动重置后验。这里要说明一下滑动窗口和变化检测是工程上常用的近似手段具体窗口多大、检测阈值多高都要根据你的场景重新标定。没有适用于所有环境的默认值。4.4 概率不够时不要硬下注沟通、试探和承诺机制当认知不确定性很高而损失函数又不允许冒险时最合理的动作往往不是“选合作”或“选背叛”而是“先别选”。可行的手段包括低成本试探在一个低风险子任务上观察对方是否配合。显式通信直接询问或发出合作信号观察对方是否回应。承诺机制先做一个小范围的、可撤回的合作承诺并观察对方是否履行。环境设计把博弈改成可验证的形式让对方的执行结果更容易被监督。主动试探本质上是一种信息采集策略。它值得被设计成系统的一部分而不是每次不确定性高的时候就临时打断流程。5. 从实验到落地新手最容易踩的坑和排查链路5.1 坑一样本量不足就直接定性最常见的错误是只观察三四轮就断定“对方背叛概率很高”。在样本量不足时后验分布的认知不确定性非常大任何靠近边界的结论都不可靠。正确做法是先计算一下认知不确定性如果它超过了阈值就老老实实去收集更多信息。5.2 坑二把执行噪声设为 0这是最危险的一个假设。只要系统里有机械执行、传感器、通信链路噪声就不可能为零。如果你把噪声参数设为 0那么一次执行失败就会直接更新成一次“背叛证据”系统会迅速变得过度警惕。我一般建议在系统上线前做一个最小标定实验故意让执行动作出错记录被观测到的动作分布估算出 \epsilon 的范围。如果无法标定就宁可把噪声设得偏大一些也不要设为 0。5.3 坑三只保留后验均值丢掉不确定性信息一些团队在工程化时为了简化逻辑会把后验分布压缩成一个点估计比如“合作概率 0.7所以合作”。这么做的问题在于0.7 这个数字没有告诉你它背后是“观测了 100 轮的稳定 0.7”还是“只观测了两次的 0.7”。两种情况的决策风险完全不同。5.4 排查链路从现象倒查模型和参数当系统的行为不符合预期时建议按下面的顺序排查先看观测输入动作是否对齐、时间戳是否同步、是否把传感器识别错误算进了观测。再看噪声模型执行噪声参数是否标定过是否被错误地设成了 0。再看先验先验是否过度乐观或悲观启动阶段行为是否过度偏离。再看损失函数误判代价矩阵是否与业务目标一致。再看决策阈值信息收集阈值是否设置得太高导致系统在没有把握的时候仍然硬下注。最后看日志记录每一轮的后验熵、噪声估计和最终决策看系统是在哪一步开始偏离预期的。这条链路每次都能帮我定位问题。大多数失控不是模型算法崩了而是输入、噪声参数或损失函数里的一个细节被忽略了。6. 适用边界这个框架解决什么不解决什么6.1 适合什么人、什么场景这个框架适合以下场景多机器人协作任务中需要根据对方行为判断协作意图。人机共融环境里系统需要判断人类操作者是不熟练、故意不配合还是环境干扰导致误操作。多智能体博弈系统里需要设计能够容忍噪声的信任和防御策略。任何需要长期重复互动、可以持续收集行为数据的系统。它特别适合那些“误判代价高、信息收集成本低、互动次数多”的场景。因为只有在重复互动中贝叶斯更新和不确定性分离才能发挥出复利式的好处。6.2 不适合什么场景如果只有一两次互动机会贝叶斯更新的空间非常有限噪声参数估计也缺乏数据支撑这套框架能提供的优势不大。这时候更应该依赖规则或外部验证机制而不是纯粹的概率推断。如果对方行为完全无法被观测或者观测信号极其稀薄那么任何意图推断都是徒劳的。框架不能解决“看不见信号”的问题。还要注意这套方法只解决“不确定性下如何做判断”不解决“应该原谅还是惩罚”的伦理问题。它能把代价输入损失函数但代价本身的设定必须由人去判断。6.3 长期价值把信任从一个词变成一套可计算的系统从长期来看分离偶然不确定性和认知不确定性真正的价值不在于某一次判断更准确而在于它把“信任”从一个模糊的词变成了一套可计算、可迭代、可复用的系统。当系统面对对方一次偶然的失误时它能说“这个观测结果不足以证明对方是背叛者因为当前噪声参数范围内这种事发生的概率不低。” 当系统面对持续异常时它也能说“越来越多的数据正在降低认知不确定性对方的背叛假设已经比合作假设更可信。”这种能力在简单的博弈模拟里可能看不出优势但在真实世界里是关键。真实系统的噪声永远不会消失如果我们把所有偏离期望的行为都解释成恶意合作根本无法建立如果全都解释成噪声又会被系统性地利用。能在这两者之间做定量区分才是意图推断真正落地的开始。如果你准备在自己的系统里尝试类似方案我的建议很直接先不要急着上复杂模型先找一个最小场景把意图变量、执行噪声、损失函数和决策阈值这四块写清楚跑通一个小样本实验。等这个流程能稳定反映“噪声导致的误判”和“真实意图导致的异常”之间的区别再考虑放大到更复杂的多智能体场景。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价