什么是 Rauch-Tung-Striebel 平滑器(RTS Smoother)?
Rauch-Tung-Striebel 平滑器(RTS Smoother)是一种固定区间贝叶斯算法,它先运行前向 Kalman Filter,再递归利用未来观测修正每个历史状态估计。
快速了解
| 规范文档 | 官方规范 |
|---|
工作原理
保存完整前向 Kalman Pass
从第一条观测运行 Kalman Filter 到最后一条,并保留 m_k|k、P_k|k,以及下一步预测 m_(k+1)|k、P_(k+1)|k。只保存最终滤波状态并不足够,因为每次后向修正都需要局部滤波协方差及其对应预测。
Rauch、Tung 与 Striebel 1965 年论文推导了加性高斯噪声线性动态系统的滤波与平滑方程。只有声明固定区间和模型参数后,才能把递推解释为特定后验。
让未来信息沿时间反向传播
先令最终平滑状态等于最终滤波状态。对 k = T-1 ... 0,计算 Smoother Gain G_k = P_k|k F_k^T (P_(k+1)|k)^-1,再以 G_k(m_(k+1)|T - m_(k+1)|k) 修正均值,并以 G_k(P_(k+1)|T - P_(k+1)|k)G_k^T 修正协方差。
这不是把观测倒序后运行 Kalman Filter:Backward Gain 依赖前向条件协方差和状态转移模型。实现应使用线性方程求解而非显式求逆,并严格对齐 Filtered、Predicted 与 Smoothed 数组的时间索引。
防止评测中的未来信息泄漏
Berkeley 状态空间课程笔记按照可用观测范围区分 Filtering、Forecasting 与 Smoothing。RTS 能改进历史轨迹重建、缺失值估计和参数学习所需的充分统计量,却无法在未来量测尚未到达的实时系统中产生同样结果。
应报告区间边界、边界初始化、保存精度、模拟真值或延迟真值上的滤波与平滑 RMSE、协方差覆盖、缺失数据策略和延迟。生产评估应将完整 Fixed-interval Smoothing 与明确窗口的 Fixed-lag 方案分开,不能把整个测试未来泄漏给在线指标。
主要特点
- 先执行前向 Kalman Pass,再执行后向递推
- 让每个状态以固定区间内全部观测为条件
- 使用保存的滤波矩与单步预测矩
- 对指定线性高斯状态空间模型给出精确结果
- 回顾性协方差通常不高于滤波协方差
- 需要未来数据和额外轨迹存储
常见用途
- 从含噪观测离线重建轨迹
- 传感器数据回顾性去噪与缺口填补
- 已完成科学实验的状态估计
- Expectation-Maximization 充分统计量计算
- Gaussian Process 状态空间模型的参考平滑
示例
Loading code...常见问题
Kalman Filtering 与 RTS Smoothing 有什么区别?
Kalman Filter 用截至 `k` 时刻的观测估计状态 `k`。RTS Smoother 在完整区间观测到达后,利用前向滤波输出执行后向修正,重新估计同一个历史状态。
RTS 平滑器只是倒序运行 Kalman Filter 吗?
不是。Smoother Gain 使用前向滤波协方差、状态转移矩阵与下一时刻预测协方差。没有推导对应反向时间模型时,简单颠倒观测不会得到 RTS 条件分布。
RTS Smoothing 必须保存哪些数据?
至少需要每个时刻的滤波均值与协方差,以及下一步 Backward Gain 所需的单步预测均值与协方差。时变转移矩阵和稳定求解所需的分解也必须按索引对齐。
RTS 平滑可以用于实时基准吗?
只有基准明确允许未来观测或固定延迟时才可以。完整 Fixed-interval RTS 使用整个序列,若不披露这种信息优势就与在线滤波比较,会构成未来信息泄漏。
RTS Smoother 总会降低实际状态误差吗?
在模型正确的线性高斯条件下,其后验协方差不会增加,但单条实现轨迹的实际误差仍会波动。模型失配、数值错误和错误区间边界也会产生误导性的置信度。