从贝叶斯到卡尔曼滤波
1. 说明
本文是来自忠厚老实的老王在B站讲的卡尔曼滤波,经过自己理解写的总结笔记,课讲的非常好,一定要去听
2. 贝叶斯公式和应用
对于事件A和B,设其同时发生的概率为
这是数学本质,A和B同时发生的概率为发生B的概率和在发生B时发生A的概率的乘积,很好理解。
经过变形可以得到,这就贝叶斯公式,
贝叶斯公式本质只是条件概率,如何基于这个公式对其进行应用呢?
比如说测量现实温度,我们预设一个概率空间A对现实进行预测,我们当然可以通过加权积分的方式得到一个最终的预测值,但这个预设的概率空间的准确性很一般,这个时候,找到了一个它的影子A',他们之间相关,而且状态空间A‘在现实中能够直接观测到一个结果a',也就说明在这个现实下A’是朝着a'进行塌缩的,那么相对应的A会朝着相似的方向塌缩成a,所以只需要知道A, A‘, a',还有A与A’之间的联系,就能够确定a了
- 举一个简单例子
有两个温度计A和B,要测量今天的温度,测得如下结果:
而且温度计B在出厂的时候测的和A的相关关系为:
现在,我们想要结合两个测量结果让结果更准确,让B去修正A,根据贝叶斯公式:
当B=10的时候也就是说在一次观测中B这个系统朝着B=10这个方向塌缩了, 此时A也跟着塌缩P(A=10 | B= 10) =0.685, 和最初的
-
如何理解似然
通常为 ,其中
叫做似然概率,表示事件a事件b发生的概率,这个值是一个固定值,只是表示的是A和影子状态B之前的相关性仅此而已,和 大小无关,不会随着猜测 的改变而改变,是一个预设值,表示两个系统的相关性。
3. 连续贝叶斯公式
在连续的概率分布中,只有单点概率密度而没有单点的概率,单点概率为0,但还是要计算概率为此要使用微分的思想化积为加,对于一个连续的贝叶斯概率
最后的形式和离散贝叶斯很像,但是却变成了概率密度的相乘,多了个积分符号的dx, 其实很好理解,从推导的过程中可以知道,使用【概率密度*dx】代替【概率】后,分子分母约掉了一个dx,同时把整个x域的概率加起来
因为
所以连续贝叶斯公式还有另一个形式
4. 贝叶斯滤波
在推导了连续的贝叶斯公式后,接下来就能够推导贝叶斯滤波算法,贝叶斯滤波基于贝叶斯概率的思想,首先对观测的建模得到预测方程,就能够基于前一个状态对下一个状态进行预测,同时对下一个状态进行观测得到预测方程,最终将两者融合后就能够得到一个比较准确的后验,整个过程如下所示:
对于贝叶斯滤波算法的开始需要预测方程和观测方程
**预测方程:
**观测方程:
其中:
并且有观测值:
设
注意,此处的预测方程和观测方程中变量都是
- 如何理解预测方程和观测方程?
预测方程使用
观测方程是在预测方程的基础上,使用
这个时候再回到贝叶斯思想的本身去看这两个方程,为了得到系统状态,利用随机过程对系统进行建模得到预测方程A,由于这个模型是不准的,为此找了与A有联系的影子A’,A‘能在现实中坍缩成a’,所以A也会朝着这个方向塌缩成a;
-
推导过程
: x的后验概率密度也就是 的简略写法 : x的先验概率密度,从观测方程得出y: 观测值y
此处的目标是只需要求出
先验
似然
最后后验概率的值为:
5. 卡尔曼滤波
**预测方程:
**观测方程:
由于贝叶斯滤波的每一步推导都有无穷积分,而无穷积分解析解一般不存在导致贝叶斯滤波难以落地,为此做了两个:
- f和h都假设为线性关系
假设为正态噪声服从 ,这就是卡尔曼滤波
假设
这个积分想要进一步化简并不容易,但仔细观察(1)参考此文可以发现这实质是
对于后验
最后计算得到
令
最终所有公式为
会发现结果已经没有别的概率,只是期望和方差的加加减减,这是因为高斯函数的运算具有封闭性。
6. 矩阵形式的卡尔曼滤波
期望
其中要特别注意,构建协方差矩阵时,不是用
矩阵形式的卡尔曼滤波如下:小写的
7. 应用
用来做系统预测的时候,一定会首先建模
**预测方程:
**观测方程:
其中有一些要点,
1是F会导致预测模型是否能够拟合实际, 建模可以傻瓜式建模
2.是Q和R,观测值yk的出现后会R的大小会决定
3.是预测值
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!