条件高斯分布和卡尔曼滤波
这段时间有个卡尔曼滤波的作业,正好在刑波(Eric Xing)的概率图模型课程上也谈到了这一点,所以从这个角度来阐述卡尔曼滤波,同时介绍其中用到的条件高斯分布的推导过程。这一推导过程来自于《模式识别与机器学习》(PRML)。
1. 条件高斯分布
按照的划分方法,可以将均值和协方差矩阵分块如下所示。(其中协方差矩阵是对称的)
多维高斯分布可表示为
计算
该式同时可表示为
也服从高斯分布,所以我们只需计算均值和协方差矩阵即可。由上式可知协方差矩阵对应二次项,而均值对于一次项(协方差矩阵已知),那么对应有
分块矩阵的逆满足下式(左侧少了一个-1)
其中为
故可求条件高斯分布的协方差矩阵和期望分别为
至此可得条件高斯分布的概率密度。
2. 卡尔曼滤波
卡尔曼滤波公式可表现为
从这个式子中可以看出之间的关系,可以通过贝叶斯网络描述。
不考虑初始时刻(这个时刻可以认为只有观测值,没有先验知识,采用ML等准则比较容易估计),中间时刻可以认为通过两个步骤估计状态,其一是先验知识,其二是观测数据。如下图所示
当然,之前的数据也是通过之前的观测量估计出来的,所以先验实际上是该时刻之前的观测量给出的现在时刻的状态估计。卡尔曼滤波中假设噪声服从高斯分布,此处我们计算均值和协方差有
注意:我实在是转不过来了,下面的X是状态,而Y是观测值,和上面的是反的。
上式实际上就构成了通过之前时刻的观测值预测当前时刻状态和观测值的过程,概率满足多维高斯分布。其中代表的是k时刻的预测协方差矩阵。接下来要处理的实际上是观测到此刻的观测值后,计算后验概率。也就是说应用上述的条件高斯分布,求更新值的过程。
这一过程通过上节公式易求,此处不再说明。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?