从贝叶斯滤波到卡尔曼滤波(零)

什么是滤波?

无论是建立的模型方程来推测出的数据,还是用传感器直接测量出的数据,总不是那么理想的拟合曲线,总存在偏差、方差,而滤波就是为了尽可能的减小这些方差,减少噪声的干扰,从而使最终得到的数据更接近真实值——即方差趋于0。所以,滤波就是在减小方差。

如何理解每个时刻都是随机变量?

我们知道,我们需要采样,存在采样间隔,而每个采样点的值实际上我们都是不能确定的,就只能看做是随机变量

贝叶斯滤波的简单原理?

主观概率+外部观测=相对客观的概率

主观概率:人的主观猜测或者说人根据某些知识、经验建立的方程和模型,用来预测接下来的数据值

外部观测:用实际传感器去测量的数据

相对客观的概率:对于主观概率,总是显得不那么确定,方差比较大(毕竟是猜测的),当有了外部观测值的参考后,人会结合这些外部观测修正一下之前的主观概率,从而显得相对客观些

比如:在股市,刚开始,主观认为甲股票行情好,认为它接下来会大涨。这是最初的主观判断,是没有进行外部观测、实验之前的主观判断。但接下来,通过新闻得知,甲股票老板跑了,也就是有了外部观测、实验,那么这时候就要修正一下之前的主观判断了,经过修正,认为甲股票接下来很可能会跌。这个就成了相对客观的判断。上面其实就是把主观判断和外部观测的信息进行了融合,从而得到一个更加全面客观的结果;或者说是用外部观测(额外的信息)来修正你最初的主观判断,从而使模型、判断更接近真实情况。

每个时刻的值都是随机变量,这些随机变量之间是否存在联系?

存在联系,可以进行递推,但具体的递推关系式需要你自己去猜测、去拟合出来,也就是说,基于前面时刻的真值以及建立的递推关系式,很容易就可以推测出当前时刻的值。这种用于描述当前时刻值和前面时刻值之间的递推关系式称为状态方程——顾名思义,反应的是不同时刻/状态之间的关系式,从而实现递推和预测。但显然,递推时肯定会存在误差(方差)的,毕竟没有哪一个方程、模型可以说自己能百分百进行准确预测,因为你很难一下子找到这个恰好完美拟合这些数据的方程,猜的哪可能这么准,除非你事先就知道你要测的信号的方程。

例如,递推关系式(其中Q是噪声信号,一般是正态分布的噪声)

x(k)=f(x(k-1))+Q

真值和用传感器测出来的值之间是否会存在某种关系式?

也可以存在。这样想,如果一个传感器测量精度很高即没有误差,那么每次测量值=真值,这就是他们之间的函数关系式。但是,一般都会有误差,并且你的观测值和测量值的单位还未必相同,因此就需要用关系式来描述之间的关系了——这个用来描述观测值和真值之间关系的方程称为观测方程。显然,这里可以通过观测值和观测方程来反求真值,但是,这个反求的结果肯定存在误差的,毕竟你观测到的数据其实都是有误差的(传感器精度导致)。

例如,观测方程(R是噪声、误差)

y(k)=h(x(k))+R

为什么要介绍状态方程和观测方程呢?

通过状态方程,一旦我们知道初值x0,那么就可以利用状态方程预测出接下来的真值x1, x2, x3......等等

通过观测方程,再加上传感器测出来的数据,我们就可以反求真值了x1, x2, x3......等等

但是,这两者你要相信哪一个呢?答案是,我都要——把两者的数据进行融合,降低方差和不确定度,从而得到更准确的值,更接近真值

这个初值x0是怎么得到的?初值一般需要知道哪些?

初值x0实际上可以任意定,因为即使刚开始初值很离谱,但是因为后面有观测值进行修正,所以很快就会修正到正常水平了

关于初值,我们要明白,每个时刻的值实际上都是随机变量,既然是随机变量,那就会有均值和方差,因此,对于初值的要求:需要知道初值的均值(均值其实就可以看做真值,毕竟均值实际上就是综合考虑各种情况的概率后加权的结果,相当于最优的结果)和方差。同样的,这个方差也是自己定的,如果你觉得对自己定的这个均值比较有把握,那么方差就可以定小一点;反之就大一点。方差小,说明比较可信,那么这个均值在融合结果中所占的比重也就相应的大一些。

为什么初值需要知道方差呢?

这个就要看状态方程(即各个随机变量之间的递推关系式)。还是因为模型不能完全准确预测值。其实,这里我们可以把模型看做是一个“测量仪器”——它通过前面的结果来推测接下来的结果。既然是“测量仪器”,那必然就会存在测量误差,这个测量误差就用方差来描述,知道这个方差了实际上就相当于知道他的概率分布情况了(针对正态分布的,大多数是正态分布)

状态方程中每个时刻下的追加的方差Q是否相同,“测量仪器的精度”应该是保持不变的吧?

其实那是因为Q针对的是存在多个状态值时候的协方差矩阵,描述的是各个状态值对应的噪声方差,并且不同状态值之间的噪声是不相关的即协方差是0,只有自己和自己的协方差(即方差)不为0并且是保持不变的,这样一来,实际上Q是个对角阵。例如,假设我们的状态有两个——位移和速度,那么状态方程怎么写?(系数以及方差是随意选的,只是用来说明)

均值递推:

\binom{x(k)}{v(k)}=\begin{pmatrix} 2 &0 \\ 0& 3 \end{pmatrix}\binom{x(k-1)}{v(k-1)}

方差之间的递推(p表示方差):

\bigl(\begin{smallmatrix} px(k) &0 \\ 0& pv(k) \end{smallmatrix}\bigr)=\bigl(\begin{smallmatrix} 2&0 \\ 0&3 \end{smallmatrix}\bigr)\binom{px(k-1)}{pv(k-1)}\bigl(\begin{smallmatrix} 2 & 0\\ 0& 3 \end{smallmatrix}\bigr)+\bigl(\begin{smallmatrix} 1 &0 \\ 0& 0.01 \end{smallmatrix}\bigr)

其实就是现代控制理论中的状态方程,一般把均值和方差分开处理

观测方程中每个时刻追加的方差R是否相同,“仪器的测量精度”应该是保持不变的吧?

对,和Q矩阵类似,R矩阵也是对角阵,是协方差矩阵,针对某个状态类型值的测量误差是保持不变的

 

先写这些吧,感觉自己还整理的不够清楚,还需要再仔细看看。尤其是贝叶斯推导那些,有点复杂,不过一旦贝叶斯公式搞清楚了,卡尔曼滤波应该很快就搞明白了

 

 

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值