平滑跟踪数值时,新观测未必总是同样可靠。可以显式记录当前估计的不确定程度,并让新观测的误差参数决定这一次更新应更相信旧估计还是测量。
本例是一个自定义的一维随机游走估计模型。每步先把旧方差P加过程量Q,得到预测方差;增益K为预测方差除以预测方差加观测方差R。新估计为旧估计加K乘观测与旧估计之差,新方差为(一减K)乘预测方差。
初估计6,初方差5,每步过程量1。观测记录由数值和方差R组成。
观测、R | 旧估计 | 预测方差 | 增益 | 创新 | 新估计 | 新方差 [3, 6] | 6.000000 | 6.000000 | 0.500000 | -3.000000 | 4.500000 | 3.000000 [16, 4] | 4.500000 | 4.000000 | 0.500000 | 11.500000 | 10.250000 | 2.000000 [9, 4] | 10.250000 | 3.000000 | 0.428571 | -1.250000 | 9.714286 | 1.714286 [19, 25] | 9.714286 | 2.714286 | 0.097938 | 9.285714 | 10.623711 | 2.448454 [9, 7] | 10.623711 | 3.448454 | 0.330044 | -1.623711 | 10.087815 | 2.310311 [15, 5] | 10.087815 | 3.310311 | 0.398338 | 4.912185 | 12.044524 | 1.991689
记录中的编号只用来区分本例对象,不应与大小排名或另一组记录的身份混淆。先核对单位和边界,再跟随中间值检查结果。空结果、零值与尚未确定是不同状态;分数保留精确含义,显示小数只为方便阅读。
P、Q、R在例中为正,增益应严格位于零与一之间,新估计位于旧估计和观测之间。R变大时其他条件不变,观测权重会减小;预测不确定性增大则会提高观测权重。
逐步记录创新量、增益和新方差,再与固定权重平均区分。虽然输出看起来都平滑,权重来源并不相同。示例显示小数用于阅读,保存的分数可以精确复核,避免把显示舍入当成内部计算规则。
这是在明确模型与误差参数下的数值练习,没有保证真实游戏测量满足相应假设。R不是用来随意掩盖异常的开关;若运动模型与实际变化差很多,滤波可能延迟或偏离,需要检查输入和模型而不是只调一个参数。
练习时可以一次只改变一个条件,比较差异从哪个步骤开始。若自己的结果不同,先核对是否采用同样的规则,再定位第一个不一致的中间状态,不要只修改最终答案。输入与运算过程需要一起保存,才能判断结论究竟适用于哪一个具体场景。