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

前面介绍了离散型的贝叶斯滤波公式以及贝叶斯的基本原理,接下来要介绍连续型随机变量的贝叶斯滤波,这个是我们以后更经常用到的

连续型的随机变量的分布常常用概率密度来表示,因此,我们设:

X是预测值,Y是测量值,两者都是随机变量;小写的 x , y 则是对应的具体取值

f_{X}(x) 表示预测值随机变量的概率密度分布,表征其概率分布情况,即先验概率分布

f_{Y}(y) 表示测量值随即变量的概率密度分布——用概率分布描述测量值出现的可能性

f_{Y|X}(y|x) 似然概率的概率密度分布,在随机变量X=x的前提下(即真值X=x,猜测的是真值),预测值随机变量Y<y的概率

f_{X|Y}(x|y)  后验概率密度分布,在测量值随即变量Y=y的前提下,预测值还有多大把握(概率)是X<x

现在直接给出连续型随即变量的贝叶斯滤波公式,具体的推导放到最后,视情况去理解

f_{X|Y}(x|y)=\frac{f_{Y|X}(y|x)f_{X}(x)}{f_{Y}(y)}=\eta f_{Y|X}(y|x)f_{X}(x)

其中,\eta =\frac{1}{f_{Y}(y)}=\frac{1}{\int f(x,y)dx}=\frac{1}{\int f_{Y|X}(y|x)f_{X}(x)dx}   分母是边缘概率密度,一般当做是常数

 补充介绍概率论中的随机变量部分

一维随机变量

分布函数: F(x)=P(X<x)

离散型:分布列与分布函数

分布列:X : \bigl(\begin{smallmatrix} -1 &0 &2 \\ 0.2& 0.5& 0.3 \end{smallmatrix}\bigr)

分布函数:F(x)=P(X<x)=\left\{\begin{matrix} 0 &x<-1 \\ 0.2 &-1<=x<0 \\ 0.7 &0<=x<2 \\ 1& x>=2 \end{matrix}\right.

分布函数就是对分布列的积分,离散型随机变量的分布列是点,分布函数是阶梯型的

连续型:概率密度函数与分布函数

分布函数的定义: F(x)=P(X<x)=\int_{-\infty }^{x}f(t)dt

其中,f 表示的是其概率密度函数 —— 是分布函数的导函数

分布函数和概率密度函数一般是怎么得到的?做实验?总结建模?

概率密度: f(x)=\left\{\begin{matrix} \frac{1}{3}x &1<x<2 \\ \frac{1}{2}&2<=x<3 \\ 0&others \end{matrix}\right.

分布函数:F(x)=P(X<x)=\int_{-\infty }^{x}f(t)dt=\left\{\begin{matrix} 0 &x<1 \\ \int_{1}^{x}\frac{1}{3}tdt & 1<=x<2\\ \int_{1}^{2}\frac{1}{3}tdt+\int_{2}^{x}\frac{1}{2}dt &2<=x<3 \\ 1&x>=3 \end{matrix}\right.

概率密度函数积分得到分布函数

一维随机变量函数的分布

例如:

已知 f_{X}(x)=\left\{\begin{matrix} 1+x &-1<=x<0 \\ 1-x &0<=x<=1 \\ 0 &others \end{matrix}\right. , 求 Y=X^{2}+1 的分布函数

P(Y<y)=P(X^{2}+1<y)=\left\{\begin{matrix} y<1: &P=0 \\ y>=2 &P=1 \\ 1<=y<2:&P(-\sqrt{y-1}<=X<=\sqrt{y-1}) \end{matrix}\right.

这时是需要结合图像进行分析的(突然发现这些刚刚复习过的知识又忘记了,看来还是理解的不够深刻啊,用的也不多,才导致忘记的)

 

二维随机变量

F(x,y)=P(X<=x,Y<=y)  其实就相当于两个随机变量(事件)的在某个区域内的交集

二维随机变量的条件概率:

F_{X|Y}(x|y)=P(X<x|Y=y)

(待补充)

贝叶斯推导

在测量值是Y=y的前提下,预测值X<x的概率:

先求后验的分布函数  F_{X|Y}(x|y)

F_{X|Y}(x|y)=P(X<x|Y=y)=\sum_{u=-\infty }^{x}P(X=u|Y=y)=\sum_{u=-\infty }^{x}\frac{P(Y=y|X=u)P(X=u)}{P(Y=y)}

此时再来看这个测温的例子:

1.单点、连续型随机变量

在离散型中,我们猜测的主观概率是分为T=10和T=11这两个仅有的离散点,但是,这个显然很粗糙,而连续段的就显得更精确了,因此,我们可以这样猜测:

我们猜测0时刻温度符合N ~(10,1)这样的正态分布 —— 均值是10(温度在10附近波动),方差是1(波动的范围)。这样显然就能取到10附近的所有数了,而不是像离散型的那样只有孤零零的的两个可取的值。这里的均值和方差包括认为它符合正态分布模型,都属于我们的猜测!其中方差反映出我们对这个均值猜测的信任程度,越小说明我们越相信这个均值。由此我们得到了主观概率的分布函数与概率密度函数:

f_{X}(x)=\frac{1}{\sqrt{2*Pi}}e^{-\frac{(x-10)^{2}}{2}}

温度计测量到的值,此时刻当然就测到了一个数据,比如:y=9

似然概率模型,有等可能型、阶梯型、正态分布型,我们这里可以取作正态分布

似然概率符合 N ~(x,0.2),其中,0.2是温度计的精度,x是当前时刻的预测值

f_{Y|X}(y=9|x)=\frac{1}{\sqrt{2*Pi}*0.2}e^{-\frac{(9-x)^{2}}{2*0.2^{2}}}

然后利用连续型的贝叶斯滤波公式就可以求出后验概率分布了

f_{X|Y}(x|y=9)=\eta f_{Y|X}(y|x)f_{X}(x)=\eta \frac{1}{\sqrt{2*Pi}*0.2}e^{-\frac{(9-x)^{2}}{2*0.2^{2}}} \frac{1}{\sqrt{2*Pi}}e^{-\frac{(x-10)^{2}}{2}}

其中,\eta =\frac{1}{\int_{-\infty }^{+\infty }(\frac{1}{\sqrt{2*Pi}*0.2}e^{-\frac{(9-x)^{2}}{2*0.2^{2}}} \frac{1}{\sqrt{2*Pi}}e^{-\frac{(x-10)^{2}}{2}})dx}  ,也就是说需要求无穷积分

最后结果是: N ~ (9.0385, 0.038^2),即修正后的模型,称之为后验概率分布

小结:我们猜测此时刻温度随机变量X0的分布属于正态分布,似然概率模型也属于正态分布,经过连续型贝叶斯滤波公式就得到了修正后的分布,仍旧是正态分布。但是,有时候猜测的未必一定是正态分布,有可能是其他的

2.多点、连续型随机变量

类似的,对于多个随机变量的,只需要用递推关系式把他们联系起来就行了,和离散型的基本一样,无非就是由分布列变成了概率密度

原料:

1. 各随机变量之间的递推关系式  X_{k}=f(X_{k-1})+Q_{k} ;   预测值和测量值之间的关系式  Y_{k}=h(X_{k})+R_{k}

f 表示的是相邻随机变量之间的函数关系式,和下面的f_{0},f_{1},f_{2},...,f_{k},不是一回事,别混淆了;h 表示的是真值对应的随机变量和测量值对应的随机变量之间的函数关系式

2. 假设X0,Q1,...,Qk, R1,...,Rk相互独立

3. 有观测值y1,y2,...,yk

4. 设初值、分布律:X_{0} ~ f_{0}(x)Q_{k} ~ f_{Q_{k}}(x)R_{k} ~ f_{R_{k}}(x)

5. 重要定理:条件概率里的条件可以做逻辑推导

各时刻的过程噪声随机变量:Q0,Q1,Q2,...,Qk,即表示每次预测时出现的噪声干扰有可能是不同的(在卡尔曼滤波中则直接认为这些噪声是一样的)

表示:根据前面时刻的数据预测当前时刻的值,是存在预测误差的

各时刻的观测噪声随机变量:R0,R1,R2,...,Rk,即表示每次测量时出现的噪声干扰有可能是不同的(在卡尔曼滤波中则直接认为这些噪声是一样的)

表示:其实体现的是传感器的精度,已知真值,然而传感器测出的并不刚好是这个真值,而是有误差的

各时刻的过程噪声随机变量概率密度函数:f_{Q_{0}}(x),f_{Q_{1}}(x),f_{Q_{2}}(x),...,f_{Q_{k}}(x)

各时刻的观测噪声随机变量概率密度函数:f_{R_{0}}(x),f_{R_{1}}(x),f_{R_{2}}(x),...,f_{R_{k}}(x)

滤波:

1.预测步

要求的是概率密度,其中的一个方法是先求分布函数,然后求导就可以得到概率密度函数;(另外一种方法是卷积法)

已知的是X0的概率密度分布,现在需要预测X1的概率密度分布,先求其分布函数:

F_{1}^{-}(x)=P(X_{1}<=x)=\sum_{u=-\infty }^{x}P(X_{1}=u) 

这里是把连续的(积分)拆成了离散的点(求和)进行运算(可参考积分的定义),至于为什么这样搞,估计是因为贝叶斯最最基础的出发点是离散点的公式。

此外,连续型分布上,单个点的概率实际上是测不到的!!!但这里为什么可以算???

 

P(X_{1}=u)=\sum_{v=-\infty }^{+\infty }P(X_{1}=u|X_{0}=v)P(X_{0}=v)

这一步显然是全概率公式,但是为什么可以这样?X1和X0是独立的,为什么X0可以作为X1的条件了呢?

按照时间来说,出现了X0后才出现X1??或者说任意取一个全集都可以使用全概率公式,而不用管两个变量有没有关联??

 

\sum_{v=-\infty }^{+\infty }P(X_{1}=u|X_{0}=v)P(X_{0}=v)=\sum_{v=-\infty }^{+\infty }P(X_{1}-f(X0)=u-f(v)|X_{0}=v)P(X_{0}=v)

这个则是基于条件概率中的条件进行的逻辑推导,因为条件中 X0 = v,因此 f(X0) = f(v),然后前面的等式两边加上同一个数,等式仍旧成立 —— 凑出了状态方程式 X_{1}=f(X_{0})+Q_{1}

 

\sum_{v=-\infty }^{+\infty }P(X_{1}-f(X0)=u-f(v)|X_{0}=v)P(X_{0}=v)=\sum_{v=-\infty }^{+\infty }P(Q_{1}=u-f(v)|X_{0}=v)P(X_{0}=v)

这一步则是变量角色的转换!用随机变量Q1替换了X1

 

\sum_{v=-\infty }^{+\infty }P(Q_{1}=u-f(v)|X_{0}=v)P(X_{0}=v)=\sum_{v=-\infty }^{+\infty }P(Q_{1}=u-f(v))P(X_{0}=v)

这一步的依据是:随机变量Q1和X0是相互独立的,因此互不影响,所以可以直接去掉条件X0即可(那这前面逻辑推导的时候还用到了X0=v作为前提条件呢,到这里了怎么又成可有可无的了?

 

\sum_{v=-\infty }^{+\infty }P(Q_{1}=u-f(v))P(X_{0}=v)=\int_{-\infty }^{+\infty }f_{Q_{1}}(u-f(v))f_{0}(v)dv

这一步同样是要参考积分的定义式子;注意:这里是对v进行积分,v要遍历所有值,积分最后得到的式子是消去了 v 而留下了变量 u ;另外有一个小技巧:f(x)=P(X=x),F(x)=P(X<x) 这里 f 是概率密度函数,F是分布函数,F求导后得到 f ;

 

F_{1}^{-}(x)=P(X_{1}<=x)=\sum_{u=-\infty }^{x}P(X_{1}=u)=\sum_{u=-\infty }^{x}\sum_{v=-\infty }^{+\infty }P(Q_{1}=u-f(v))P(X_{0}=v)=\int_{-\infty }^{x}\int_{-\infty }^{+\infty }f_{Q_{1}}(u-f(v))f_{0}(v)dvdu

这里进行了二重积分,注意:最后得到的式子中只剩下了变量x,而 u 和 v 都因为积分而不存在了;至此,得到了预测步的分布函数,f_{Q_{1}},f_{0} 是我们已知的条件,因此只需做二重积分就能求出结果了(只不过是无穷积分,计算机做着很麻烦)

 

f_{1}^{-}=\frac{d(F_{1}^{-})}{dx}=\int_{-\infty }^{+\infty }f_{Q_{1}}(x-f(v))f_{0}(v)dv

这一步则是对分布函数求导以得到概率密度函数,涉及到:对积分式进行求导时的方法 ——   (\int_{\alpha (x)}^{\beta (x)}f(t)dt)' = \beta (x)'f(\beta (x))-\alpha (x)'f(\alpha (x))

综上,根据已知的f_{Q_{1}},f_{0} 推导出了预测值的概率密度函数 f_{1}^{-}, 只需做积分即可

2.更新步

预测步是直接求F_{1}^{-}(x),f_{1}^{-}(x), 即可,利用的直接是概率的定义和性质,再加上已知的初值X0的概率密度和预测噪声等;而更新步则体现出了贝叶斯滤波的核心——用贝叶斯公式进行的更新求后验

f_{X|Y}(x|y)=\eta f_{Y|X}(y|x)f_{X}(x)

 

首先是求似然概率,似然概率中含有两个变量,其中x是形式上的(可看做常数),而y才是真正的自变量,因此似然概率是关于测量值y的函数;这里y通过测量得到了确定值,那么此时对应的似然概率值也就是定下来的了。这里的似然概率我们并没有选定某个具体的模型来描述(比如用正态分布),而是更一般化的推导(此外,这里的推导和上面的推导略有不同,这里是从导数的定义出发的,上面是从分布函数出发的)

f_{Y|X}(y=y_{1}|x)=\lim_{\xi \rightarrow 0}\frac{F(y_{1}+\xi|x)-F(y_{1}|x)}{\xi}

这一步是基于导数的定义写的。是否会有这样的疑问:不是说传感器的精度是不变的吗,怎么测不同的温度时的似然概率是不一样的?精度主要体现在方差上面。

 

=\lim_{\xi \rightarrow 0}\frac{P(y_{1}<Y_{1}<y_{1}+\xi|X_{1}=x)}{\xi}=\lim_{\xi \rightarrow 0}\frac{P(y_{1}-h(x)<Y_{1}-h(X_{1})<y_{1}+\xi-h(x)|X_{1}=x)}{\xi}

这一步是基于连续型随机变量的性质以及条件概率的逻辑推导实现的

 

=\lim_{\xi \rightarrow 0}\frac{P(y_{1}-h(x)<R_{1}<y_{1}+\xi-h(x)|X_{1}=x)}{\xi}=\lim_{\xi \rightarrow 0}\frac{P(y_{1}-h(x)<R_{1}<y_{1}+\xi-h(x))}{\xi}

这一步是基于观测方程 Y_{1}=h(X_{1})+R_{1} 进行变量的替换;并且R1与X1是相互独立的,因此可以直接去掉条件X1(和前面那个情况类似,前面用过,现在丢弃了)

 

=\lim_{\xi \rightarrow 0}\frac{F_{R_{1}}(y_{1}-h(x)+\xi)-F_{R_{1}}(y_{1}-h(x))}{\xi}=f_{R_{1}}(y_{1}-h(x))

这一步同样是基于导数定义

至此,求出了似然概率密度

接着,把预测值的概率密度和似然概率密度带入贝叶斯公式即可

f_{1}^{+}=f_{X|Y}(x|y)=\eta f_{Y|X}(y|x)f_{X}(x)=f_{X_{1}|Y_{1}}(x|y_{1})=\eta f_{Y_{1}|X_{1}}(y_{1}|x)f_{1}^{-}(x)=\eta f_{R_{1}}(y_{1}-h(x))f_{1}^{-}(x)

再次强调:f_{1}^{-},f_{1}^{+},描述的是X1随即变量的概率密度,而单独的一个 f 表示的是相邻随机变量之间的函数关系式,f_{Y|X}(y|x)则表述的是似然概率的概率密度

这样就成功借助观测值和贝叶斯公式把预测值给修正了,得到了后验概率分布,在对其求均值即可得到随机变量的最优值

3.迭代

这个时刻的后验概率分布作为求下一时刻的先验概率分布的依据,在结合状态方程就能求出下一时刻的先验概率分布,公式体现(推导过程和上面的预测步是一样的):

f_{2}^{-}=\frac{d(F_{2}^{-})}{dx}=\int_{-\infty }^{+\infty }f_{Q_{2}}(x-f(v))f_{1}^{+}(v)dv

这样就可以进行迭代,对每个时刻的随机变量都自动进行滤波了

很多地方还是有点混乱,言语啰嗦,后面再补充和简化

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值