初学者级别:帮助学习卡尔曼平滑器(第 1 部分)

机器算法验证 时间序列 自习 平滑 卡尔曼滤波器 筛选
2022-03-15 01:18:04

线性动力系统的参数估计是一个解释卡尔曼滤波器、平滑和期望最大化的教程。我遵循了卡尔曼滤波器的推导。但无法理解平滑。我已经阅读了教科书和许多其他资源,包括本文档中引用的参考资料,但无法理解平滑方程是如何得出的。特别是在本案例文档中,第 6 节提到了 Smoother。在 E 步骤中,计算平滑器并将平滑的结果包含在最大化步骤中获得的估计中。对于模型,

h(t)=ATh(t1)+ηh(t)

v(t)=BTh(t)+ηv(t)

ηh(t)=N(0,Q),ηv(t)=N(0,R)

对数似然是Q=t=1(12[v(t)Bh(t))R1[v(t)Bh(t)])T2log|R|t=2T(12[h(t)Ah(t1)]Q1[h(t)Ah(t1)])T22log|Q|12[h1π1]V11[h1π1]12log|V1|T(p+2)log2π2

其中初始条件的均值和方差。π1,Vh

第 6 节:我无法理解 Pg7 中的表达式 2--6 是如何出现的,以及将其包含在 M 步骤中的技术是什么。如果说明任何一个表达式的推导以及将平滑估计插入到 M 步骤中,这将是非常有帮助的。

1个回答

让我退后几步。如果设计矩阵(A、B、Q、R 等)已知,则卡尔曼滤波器中不需要 EM 算法。仅当您从一开始就知道要建模的物理系统时,它们才知道。如果不是,那么您将不得不估计这些矩阵。假设这些矩阵是已知的,则执行过滤和平滑操作。

EM 通过从设计矩阵的一些随机初始值开始,然后运行过滤方程(期望步骤),然后降低预测误差(最大化步骤)来利用过滤或平滑方程。在上述过程中,可以用平滑方程代替滤波方程。您可以选择过滤或平滑(准确地说,过滤是平滑的第一步。因此平滑就像一个附加组件)。不同之处在于过滤仅使用过去的值,另一方面,平滑也考虑了未来的值。

Kalman Filter 的EM Derivation可能是 Kalman Filter/Smoother 的 EM 程序最完整的推导。

总而言之,当设计矩阵已知时,您可以运行过滤或平滑方程来执行过滤。如果矩阵未知,您可以通过过滤或平滑方程来执行过滤器,然后修改矩阵,以便改进先前操作的结果。您重复此过程,直到矩阵变化不大。这被称为 EM 程序。好消息是 Kalman EM 对最大化过程中的导数有很好的解决方案,因此您不需要数值技术来最大化。