为什么使用滤波器结果而不是更平滑的结果来计算卡尔曼滤波器中的似然性?


11

我以非常标准的方式使用卡尔曼滤波器。该系统由状态方程和观察方程。XŤ+1个=FXŤ+vŤ+1个ÿŤ=HXŤ+一种žŤ+wŤ

教科书教导,在应用卡尔曼滤波器并获得“一步一步的预测”(或“滤波后的估计”)之后,我们应该使用它们来计算似然函数:X^Ť|Ť-1个

FÿŤ|一世Ť-1个žŤÿŤ|一世Ť-1个žŤ=t[2πHPŤ|Ť-1个H+[R]-1个2经验值{-1个2ÿŤ-HX^Ť|Ť-1个-一种žŤHPŤ|Ť-1个H+[R-1个ÿŤ-HX^Ť|Ť-1个-一种žŤ}

我的问题是:为什么似然函数是使用“过滤的估计” X^Ť|Ť-1个而不是“平滑的估计” X^Ť|Ť?是不是X^Ť|Ť状态向量的更好的估计?


我对标题进行了编辑,使其内容更多。
Juho Kokkala

Answers:


5

要回答您的问题:您可以使用平滑密度。但是您不必。Jarle Tufto的答案包含您正在使用的分解。但是还有其他。

使用卡尔曼递归

在这里,您将可能性评估为

f(y1,,yn)=f(y1)i=2nf(yi|y1,,yi1).

但是,一般而言,均值和方差并不总是完全定义概率分布。以下是从过滤分布到条件似然:f y i | y 1... y i 1f(xi1|y1,,yi1)f(yi|y1,,yi1)

(1)f(yi|y1,,yi1)=f(yi|xi)f(xi|xi1)f(xi1|y1,,yi1)dxidxi1.

这里, 是模型的状态迁移密度...部分,而再次是模型的观测密度...部分。在您的问题中,将它们分别写为和。这是同一件事。˚F Ý | X X + 1 = ˚F X + v + 1 Ŷ = ħ X + ž + 瓦特f(xi|xi1)f(yi|xi)xt+1=Fxt+vt+1yt=Hxt+Azt+wt

当您提前一个状态预测分布时,即计算。当您再次积分时,您将完全获得(1)。您在问题中完全写下了密度,这是同一回事。f(xi|xi1)f(xi1|y1,,yi1)dxi1个

在这里,您仅使用概率分布的分解以及关于模型的假设。该似然性计算是精确的计算。您可以使用任何自由裁量权来改善或降低此效果。

使用EM算法

据我所知,在这种状态空间模型中没有其他方法可以直接评估可能性。但是,您仍然可以通过评估其他函数来进行最大似然估计:可以使用EM算法。在Expectation步骤(E-Step)中,您将计算 在这里f y 1y nx 1x n

FX1个Xñ|ÿ1个ÿñ日志Fÿ1个ÿñX1个XñdX1个ñ=ËsØØŤH[日志Fÿ1个ÿñX1个Xñ]
Fÿ1个ÿñX1个Xñ是“完整数据”的可能性,而您正在期望关于联合平滑密度的对数的对数。经常发生的情况是,因为您要获取此完整数据似然的对数,将项分解为总和,并且由于期望运算符的线性,所以您要针对边际平滑分布(即您在问题中提到)。

其他事情

我读过一些地方,EM是使可能性最大化的“更稳定”的方法,但是我从来没有真正看到过这一点能很好地论证,也从未见过“稳定”这个词的定义,但是我也没有真的没有进一步检查。这些算法都无法绕过本地/全局最大折磨。我个人倾向于出于习惯而经常使用Kalman。

的确,状态的平滑估计通常比过滤具有较小的方差,因此我想您对此有一定的直觉是正确的,但您实际上并没有使用状态。您试图最大化的可能性不是状态的函数。


KF和EM有何不同?他们最终以相似的方式做同样的事情。
米奇

1
@Mitch可能更值得一提。这将取决于您与KF一起使用的通用优化程序以及所使用的EM类型。如果不调查的话,我不会太确定。
泰勒

7

通常,根据乘积规则,可以将确切的可能性写为 从状态空间模型的假设出发,可以得出以过去的观察为条件的每个的期望向量和方差矩阵可以表示为 和 Ÿ é Ÿ | Ÿ 1... ÿ - 1

Fÿ1个ÿñ=Fÿ1个一世=2ñFÿ一世|ÿ1个ÿ一世-1个
ÿ一世
Ëÿ一世|ÿ1个ÿ一世-1个=ËHXŤ+一种žŤ+wŤ|ÿ1个ÿ一世-1个=HËXŤ|ÿ1个ÿ一世-1个+一种žŤ+ËwŤ=HX^Ť|Ť-1个+一种žŤ
V一种[Rÿ一世|ÿ1个ÿ一世-1个=V一种[RHXŤ+一种žŤ+wŤ|ÿ1个ÿ一世-1个=HV一种[RXŤ|ÿ1个ÿ一世-1个H+V一种[RwŤ=HPŤ|Ť-1个H+[R
因此,这为您提供了确切的可能性,而无需计算任何平滑的估计。

虽然您当然可以使用平滑的估计,但实际上这是对未知状态的更好估计,但这不会给您似然函数。实际上,您将使用的观测值来估计其自身的期望值,因此这似乎会导致结果估计中的某些偏差。 ÿ一世


0

我认为关于“为什么”不使用平滑分布(通常)的一个更好的答案是效率。原则上,按照如下所述,在一触即发的意义上计算(平滑的)边际可能性很简单。删除观测值j,对其余数据运行Kalman平滑器。然后评估看不见的y(j)的可能性。对所有j重复此操作。总结对数可能性。更快的版本可以处理(随机)保留的样本块(例如k倍CV)。注意,该方案需要更通用的卡尔曼滤波器/平滑器实现,可以在需要时任意跳过测量更新。向后/平滑通过不访问测量值(无论如何都是RTS算法),并且保持不变。

如果时间序列“足够长”,那么这样做的好处可能很小,因为过滤的可能性“烧掉了”其初始瞬态。但是,如果数据集较短,则更值得的平滑可能性是值得的。固定滞后平滑器可能是介于两者之间的解决方案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.