Apollo学习笔记(28)贝叶斯滤波

本来是准备计划整粒子滤波的,但是粒子滤波的前提是贝叶斯滤波,所以就找了几篇大佬的贝叶斯拜读了一下,现在做个整理。首先,奉上大佬链接,下面是自己整理的。

1.二维随机变量的条件分布

假设有 ( X , Y ) (X,Y) (X,Y)是二维离散型随机变量,其联合概率密度函数为
p i j = P ( X = x i , Y = y j ) , i , j = 1 , 2 , 3 , … (1) p_{ij}=P(X=x_{i},Y=y_{j}),\enspace i,j=1,2,3,\ldots \tag{1} pij=P(X=xi,Y=yj),i,j=1,2,3,(1)
Y = y Y=y Y=y条件下的随机变量 X X X的条件概率函数为,
p X ∣ Y ( x i ∣ y ) = P ( X = x i ∣ Y = y ) = P ( Y = y , X = x i ) P ( Y = y ) = P ( Y = y ∣ X = x i ) P ( X = x i ) P ( Y = y ) (2) p_{\tiny {X|Y}}(x_{i}|y)=P(X=x_{i}|Y=y)=\frac{P(Y=y,X=x_{i})}{P(Y=y)}=\frac{P(Y=y|X=x_{i})P(X=x_{i})}{P(Y=y)} \tag{2} pXY(xiy)=P(X=xiY=y)=P(Y=y)P(Y=y,X=xi)=P(Y=y)P(Y=yX=xi)P(X=xi)(2)

通过全概率公式将式(2)的分母展开,即可得到离散型随机变量的贝叶斯公式,
p X ∣ Y ( x i ∣ y ) = P ( Y = y ∣ X = x i ) P ( X = x i ) ∑ j = 1 n P ( Y = y ∣ X = x j ) P ( X = x j ) , j = 1 , 2 , 3 , … (3) p_{\tiny {X|Y}}(x_{i}|y)=\frac{P(Y=y|X=x_{i})P(X=x_{i})}{\textstyle\sum_{j=1}^n P(Y=y|X=x_{j})P(X=x_{j})},\enspace j=1,2,3,\ldots \tag{3} pXY(xiy)=j=1nP(Y=yX=xj)P(X=xj)P(Y=yX=xi)P(X=xi),j=1,2,3,(3)

2.二维连续型随机变量的条件分布

连续型随机变量的概率在 Y = y Y=y Y=y时, P ( Y = y ) P(Y=y) P(Y=y)的概率为0,所以通过条件概率的定义无法进行连续型随机变量的条件分布求解。

只能用极限的思路做一点变形进行求解,假设 y < Y < y + Δ y y<Y<y+\Delta y y<Y<y+Δy,将连续型随机变量的条件分布从一点转化为在一个区间的概率分布,当然有 Δ y → 0 \Delta y \rarr 0 Δy0,则对于连续型随机变量的概率分布函数
F X ∣ Y ( x ∣ y ) = lim ⁡ Δ y → 0 P ( X ≤ x ∣ y < Y < y + Δ y ) = lim ⁡ Δ y → 0 P ( X ≤ x , y < Y < y + Δ y ) P ( y < Y < y + Δ y ) = lim ⁡ Δ y → 0 ∫ − ∞ x ∫ y y + Δ y p ( x , y ) d y d x ∫ y y + Δ y p Y ( y ) d y = lim ⁡ Δ y → 0 ∫ − ∞ x p ( x , y + ε 0 Δ y ) Δ y d x p Y ( y + ε 1 Δ y ) Δ y ( 0 < ε 0 < 1 , 0 < ε 1 < 1 ) = lim ⁡ Δ y → 0 ∫ − ∞ x p ( x , y + ε 0 Δ y ) d x p Y ( y + ε 1 Δ y ) (4) \begin{aligned} F_{\tiny {X|Y}}(x|y)&=\lim \limits_{\Delta y \rarr 0} P(X \le x|y \lt Y \lt y+\Delta y) \\ &= \lim \limits_{\Delta y \rarr 0} \frac{P(X \le x,y \lt Y \lt y+\Delta y)}{P(y \lt Y \lt y+\Delta y)} \\ &= \lim \limits_{\Delta y \rarr 0} \frac{\int^{x}_{-\infin}\int^{y+\Delta y}_{y}p(x,y)dydx}{\int^{y+\Delta y}_{y}p_{\tiny{Y}}(y)dy} \\ &= \lim \limits_{\Delta y \rarr 0} \frac{\int^{x}_{-\infin}p(x,y+\varepsilon_{0}\Delta y)\Delta ydx}{p_{\tiny{Y}}(y+\varepsilon_{1}\Delta y)\Delta y} \enspace (0<\varepsilon_{0} < 1,0<\varepsilon_{1} < 1) \\ &=\lim \limits_{\Delta y \rarr 0} \frac{\int^{x}_{-\infin}p(x,y+\varepsilon_{0}\Delta y)dx}{p_{\tiny{Y}}(y+\varepsilon_{1}\Delta y)} \tag{4} \end{aligned} FXY(xy)=Δy0limP(Xxy<Y<y+Δy)=Δy0limP(y<Y<y+Δy)P(Xx,y<Y<y+Δy)=Δy0limyy+ΔypY(y)dyxyy+Δyp(x,y)dydx=Δy0limpY(y+ε1Δy)Δyxp(x,y+ε0Δy)Δydx(0<ε0<1,0<ε1<1)=Δy0limpY(y+ε1Δy)xp(x,y+ε0Δy)dx(4)

由于有 lim ⁡ Δ y → 0 \lim \limits_{\Delta y \rarr 0} Δy0lim,且 Y Y Y是连续随机变量,所以把 ε 0 Δ y = 0 , ε 1 Δ y = 0 \varepsilon_{0}\Delta y=0,\varepsilon_{1}\Delta y=0 ε0Δy=0,ε1Δy=0代入式(4)有
F X ∣ Y ( x ∣ y ) = ∫ − ∞ x p ( x , y ) d x p Y ( y ) (5) F_{\tiny {X|Y}}(x|y)=\frac{\int^{x}_{-\infin}p(x,y)dx}{p_{\tiny{Y}}(y)} \tag{5} FXY(xy)=pY(y)xp(x,y)dx(5)

对式(5)右侧进行求导,可以得到 Y = y Y=y Y=y条件下 X X X的条件概率密度函数
p X ∣ Y ( x ∣ y ) = p ( x , y ) p Y ( y ) = p ( y ∣ x ) p X ( x ) p Y ( y ) = p ( y ∣ x ) p X ( x ) ∫ − ∞ + ∞ p ( y ∣ x ) p ( x ) d x (6) p_{\tiny {X|Y}}(x|y)=\frac{p(x,y)}{p_{\tiny{Y}}(y)}=\frac{p(y|x)p_{\tiny{X}}(x)}{p_{\tiny{Y}}(y)}=\frac{p(y|x)p_{\tiny{X}}(x)}{\int^{+\infin}_{-\infin}p(y|x)p(x)dx} \tag{6} pXY(xy)=pY(y)p(x,y)=pY(y)p(yx)pX(x)=+p(yx)p(x)dxp(yx)pX(x)(6)
可以看出式(3)和式(6)很相似,其实仔细琢磨下会发现思路都是一样的。

另外可以看出, p Y ( y ) p_{\tiny{Y}}(y) pY(y) x x x的取值无关,因此经常会出现使用 η \eta η来表示 p Y ( y ) − 1 p_{\tiny{Y}}(y)^{-1} pY(y)1的情况,如下
p X ∣ Y ( x ∣ y ) = p ( y ∣ x ) p X ( x ) p Y ( y ) = η p ( y ∣ x ) p X ( x ) (7) p_{\tiny {X|Y}}(x|y)=\frac{p(y|x)p_{\tiny{X}}(x)}{p_{\tiny{Y}}(y)}=\eta p(y|x)p_{\tiny{X}}(x) \tag{7} pXY(xy)=pY(y)p(yx)pX(x)=ηp(yx)pX(x)(7)

3.状态估计

状态估计就是根据获取到的测量数据以及系统之前的状态方程来估算当前系统状态的方法。

传感器测量的数据一般都是离散的,即 t = 0 , 1 , 2 , 3 , 4... t=0,1,2,3,4... t=0,1,2,3,4...,相应的,设定对应的观测值为 y 1 , y 2 , y 3 , y 4 . . . y_{1},y_{2},y_{3},y_{4}... y1,y2,y3,y4...,控制输入为 u 1 , u 2 , u 3 , y 4 . . . u_{1},u_{2},u_{3},y_{4}... u1,u2,u3,y4...,状态为 x 0 , x 1 , x 2 , x 3 , x 4 . . . x_{0},x_{1},x_{2},x_{3},x_{4}... x0,x1,x2,x3,x4...(x_0为初始状态)。

4.马尔可夫假设

隐马尔可夫模型(Hidden Markov Model)有两个基本假设:

  1. 齐次马尔可夫假设
  2. 观测独立假设

齐次马尔可夫假设

马尔可夫假设,简单来说,就是根据上一时刻的状态和控制输入可以预测当前的系统状态。(这里是不是感觉和MPC的思想很相似)

取三个时刻:上一时刻(t-1),当前时刻(t),下一时刻(t+1)。

根据马尔可夫假设,现在的状态 x t x_t xt是由上一时刻的状态 x t − 1 x_{t-1} xt1和当前时刻的控制输入 u t u_t ut决定,下一时刻的状态 x t + 1 x_{t+1} xt+1也类似。

观测独立假设

具体是指,任一时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测无关。

这两个假设非常重要,根据马尔可夫假设,才能推导出递归贝叶斯的更新公式。

5.贝叶斯滤波的推导

贝叶斯公式

单条件贝叶斯公式
p ( x ∣ y ) = p ( y ∣ x ) p ( x ) ∫ − ∞ + ∞ p ( y ∣ x ) p ( x ) d x = η p ( y ∣ x ) p X ( x ) (8) p(x|y)=\frac{p(y|x)p(x)}{\int_{-\infin}^{+\infin}p(y|x)p(x)dx}=\eta p(y|x)p_{\tiny{X}}(x) \tag{8} p(xy)=+p(yx)p(x)dxp(yx)p(x)=ηp(yx)pX(x)(8)

多条件贝叶斯公式

p ( x ∣ y , z ) = p ( y , z ∣ x ) p ( x ) p ( y , z ) = p ( x , y , z ) p ( x ) p ( x ) p ( y ∣ z ) p ( z ) = p ( x , y , z ) p ( x , z ) p ( x , z ) p ( x ) p ( x ) p ( y ∣ z ) p ( z ) = p ( y ∣ x , z ) p ( z ∣ x ) p ( x ) p ( y ∣ z ) p ( z ) = p ( y ∣ x , z ) p ( x , z ) p ( y ∣ z ) p ( z ) = p ( y ∣ x , z ) p ( x ∣ z ) p ( z ) p ( y ∣ z ) p ( z ) = p ( y ∣ x , z ) p ( x ∣ z ) p ( y ∣ z ) = η p ( y ∣ x , z ) p ( x ∣ z ) (9) \begin{aligned} p(x|y,z)&=\frac{p(y,z|x)p(x)}{p(y,z)} \\ &=\frac{\frac{p(x,y,z)}{p(x)}p(x)}{p(y|z)p(z)} \\ &=\frac{\frac{p(x,y,z)}{p(x,z)}\frac{p(x,z)}{p(x)}p(x)}{p(y|z)p(z)} \\ &=\frac{p(y|x,z)p(z|x)p(x)}{p(y|z)p(z)} \\ &=\frac{p(y|x,z)p(x,z)}{p(y|z)p(z)} \\ &=\frac{p(y|x,z)p(x|z)p(z)}{p(y|z)p(z)} \\ &=\frac{p(y|x,z)p(x|z)}{p(y|z)} \\ &=\eta p(y|x,z)p(x|z) \\ \end{aligned} \tag{9} p(xy,z)=p(y,z)p(y,zx)p(x)=p(yz)p(z)p(x)p(x,y,z)p(x)=p(yz)p(z)p(x,z)p(x,y,z)p(x)p(x,z)p(x)=p(yz)p(z)p(yx,z)p(zx)p(x)=p(yz)p(z)p(yx,z)p(x,z)=p(yz)p(z)p(yx,z)p(xz)p(z)=p(yz)p(yx,z)p(xz)=ηp(yx,z)p(xz)(9)

由贝叶斯公式推导贝叶斯滤波

在推导公式之前,先说下先验概率、后验概率、似然概率还有边缘概率。

  • 先验概率:在结果发生之前,根据历史规律确定原因的概率分布;
  • 似然概率:根据原因来估计结果的概率分布,就是似然估计;
  • 后验概率:根据结果来估计原因的概率分布,就是后验概率;
  • 边缘概率:结果发生的概率,叫做边缘概率。

光这么说,是不是有点晕,可以看看大佬的博客,会理解的更详细点。

对于做定位的来说,

  • p ( 位姿 ) p\tiny{(位姿)} p(位姿),就是先验概率,根据经验推测产生位姿的概率,记做 P ( A ) P(A) P(A)
  • p ( 位姿 ∣ 传感器和运动信息 ) p\tiny{(位姿|传感器和运动信息)} p(位姿传感器和运动信息),后验概率,在知道传感器和运动信息的条件下,产生某个位姿的概率,记为 P ( A ∣ B ) P(A|B) P(AB)
  • p ( 传感器和运动信息 ∣ 位姿 ) p\tiny{(传感器和运动信息|位姿)} p(传感器和运动信息位姿),似然概率,在知道确定的位姿的条件下,曾经发生某些传感器信息或者运动的概率,记为 P ( B ∣ A ) P(B|A) P(BA)
  • p ( 传感器和运动信息 ) p\tiny{(传感器和运动信息)} p(传感器和运动信息),边缘密度,传感器发出某些信息或者发生某些运动的概率,记为 P ( B ) P(B) P(B)

7.随机过程的贝叶斯滤波

在机器人定位或者无人驾驶的定位中,对车辆或者机器人的运动估计就是一个随机过程。轨迹过程彼此之间并不是独立的,其符合马尔科夫链,如下所示:

X0
X1
X2
...
Xk
Y1
Y1
Y1

其中 X 0 X0 X0为初始值,一般由经验确定(先验)。那么如何从初始状态 X 0 X0 X0,加上观测信息,从而估计到 k k k时刻的状态 X k Xk Xk,同时又保证估计值的精度呢?

方法1:所有的 X 0 X0 X0 ~ X k Xk Xk的先验概率都靠观测值,完全忽略了根据系统模型的预测值。这样做的缺点也很明显,完全依赖观测值,放弃使用预测信息,使得估计值的误差就是传感器的误差。

方法2:其中 X 0 X0 X0是靠先验猜测,其余的 X 1 X1 X ~ X k Xk Xk均靠系统模型的递推,此时,随着递推的次数增加,估计值的误差会一直增加,假设有系统状态方程 X k = 2 X k − 1 X_k=2X_{k-1} Xk=2Xk1,则有
X 1 = 2 X 0 ∽ N ( 0 , 2 2 ) X 2 = 2 X 1 ∽ N ( 0 , 2 4 ) ⋯ X k = 2 X k − 1 ∽ N ( 0 , 2 k ) \begin{aligned} X_{1}&=2X_{0} \backsim N(0,2^{2}) \\ X_{2}&=2X_{1} \backsim N(0,2^{4}) \\ \cdots \\ X_{k}&=2X_{k-1} \backsim N(0,2^{k}) \\ \end{aligned} X1X2Xk=2X0N(0,22)=2X1N(0,24)=2Xk1N(0,2k)

可以发现,如果只通过系统状态方程进行预测,误差会在不断的迭代过程中,导致方差会越来越大,这样明显是不想见到的结果。

这两种方式都各有各的问题,下面来看一下一种把系统状态方程和观测方程的提高准确度的方法。

在这里插入图片描述
预测:上一时刻的后验概率,结合系统状态方程,计算出这一时刻的先验概率
更新:这一时刻的先验概率,结合观测方程,计算出这一时刻的后验概率(下一时刻的先验概率)

这种思路和卡尔曼滤波是一样的,下面进行详细的推导:

已知,系统的状态方程和观测方程为
{ X k = f ( X k − 1 ) + Q k Y k = h ( X k ) + R k (10) \begin{cases} X_{k}=f(X_{k-1})+Q_{k} \\ Y_{k}=h(X_{k})+R_{k} \\ \end{cases} \tag{10} {Xk=f(Xk1)+QkYk=h(Xk)+Rk(10)

上式中, X 0 , Q 1 … Q k , R 1 … R k X_{0},Q_{1}\ldots Q_{k},R_{1}\ldots R_{k} X0,Q1Qk,R1Rk相互独立,观测值 y 1 , y 2 … y k y_{1},y_{2}\ldots y_{k} y1,y2yk已知,初始状态量 X 0 X_{0} X0,预测方差 Q k Q_{k} Qk,和观测方差 R k R_{k} Rk都是已知。

下面给出一个重要定理:条件概率的条件可以做逻辑推导,比如:
P ( X = 1 ∣ Y = 2 , Z = 3 ) = P ( X + Y = 3 ∣ Y = 2 , Z = 3 ) = P ( X + Y = 3 ∣ Y = 2 , Z − Y = 1 ) P(X=1|Y=2,Z=3)=P(X+Y=3|Y=2,Z=3)=P(X+Y=3|Y=2,Z-Y=1) P(X=1∣Y=2,Z=3)=P(X+Y=3∣Y=2,Z=3)=P(X+Y=3∣Y=2,ZY=1)

预测步推导

首先,要通过前一时刻 k − 1 k-1 k1的系统状态来预测当前 k k k时刻的系统状态,得到 f k − ( x ) f^{-}_{k}(x) fk(x),也就是求先验值
f k − ( x ) = d P ( X k < x ) d x (11) f^{-}_{k}(x)=\frac{dP(X_{k}<x)}{dx} \tag{11} fk(x)=dxdP(Xk<x)(11)

要求解 f k ( x ) f_{k}(x) fk(x),必须要先求解出 P ( X k < x ) P(X_{k}<x) P(Xk<x),求解方式与第一部分讲的随机变量的条件分布类似,如下
P ( X k < x ) = ∑ u = − ∞ x P ( X k = u ) (12) P(X_{k}<x)=\displaystyle\sum_{u=-\infin}^{x}P(X_{k}=u) \tag{12} P(Xk<x)=u=xP(Xk=u)(12)
式中, u u u为连续取值。
P ( X k = u ) = ∑ v = − ∞ + ∞ P ( X k = u ∣ X k − 1 = v ) P ( X k − 1 = v ) = ∑ v = − ∞ + ∞ P [ X k − f ( X k − 1 ) = u − f ( v ) ∣ X k − 1 = v ] P ( X k − 1 = v ) = ∑ v = − ∞ + ∞ P [ Q K = u − f ( v ) ∣ X k − 1 = v ] P ( X k − 1 = v ) = ∑ v = − ∞ + ∞ P [ Q K = u − f ( v ) ] P ( X k − 1 = v ) = lim ⁡ ε → 0 ∑ v = − ∞ + ∞ f Q k [ u − f ( v ) ] ε f k − 1 ( v ) ε = lim ⁡ ε → 0 ∫ − ∞ + ∞ f Q k [ u − f ( v ) ] f k − 1 ( v ) ε 2 (13) \begin{aligned} P(X_{k}=u)&=\displaystyle\sum_{v=-\infin}^{+\infin}P(X_{k}=u|X_{k-1}=v)P(X_{k-1}=v) \\ &=\displaystyle\sum_{v=-\infin}^{+\infin}P[X_{k}-f(X_{k-1})=u-f(v)|X_{k-1}=v]P(X_{k-1}=v) \\ &=\displaystyle\sum_{v=-\infin}^{+\infin}P[Q_{K}=u-f(v)|X_{k-1}=v]P(X_{k-1}=v) \\ &=\displaystyle\sum_{v=-\infin}^{+\infin}P[Q_{K}=u-f(v)]P(X_{k-1}=v) \\ &=\lim\limits_{\varepsilon \to 0}\displaystyle\sum_{v=-\infin}^{+\infin} f_{Q_{k}}[u-f(v)] \varepsilon f_{k-1}(v)\varepsilon \\ &=\lim\limits_{\varepsilon \to 0}\displaystyle\int_{-\infin}^{+\infin} f_{Q_{k}}[u-f(v)] f_{k-1}(v) \varepsilon^{2} \end{aligned} \tag{13} P(Xk=u)=v=+P(Xk=uXk1=v)P(Xk1=v)=v=+P[Xkf(Xk1)=uf(v)Xk1=v]P(Xk1=v)=v=+P[QK=uf(v)Xk1=v]P(Xk1=v)=v=+P[QK=uf(v)]P(Xk1=v)=ε0limv=+fQk[uf(v)]εfk1(v)ε=ε0lim+fQk[uf(v)]fk1(v)ε2(13)

到此,对上式进行下解释,不然不太好理解。

第二步,是因为条件概率的逻辑条件可以做逻辑推导,所以可以这么写。

第三步,参考公式(10)。

第四步,因为 Q K Q_{K} QK X k − 1 X_{k-1} Xk1相互独立,所以可以将第一项的条件去掉。

第五步,这里把连续型贝叶斯公式推导下,
P ( X < x ∣ Y = y ) = ∑ u = − ∞ x P ( X = u ∣ Y = y ) = ∑ u = − ∞ x P ( Y = y ∣ X = u ) P ( X = u ) P ( Y = y ) = lim ⁡ ε → 0 ∑ u = − ∞ x P ( y < Y < y + ε ∣ X = u ) P ( u < X < u + ε ) P ( y < Y < y + ε ) = lim ⁡ ε → 0 ∑ u = − ∞ x f Y ∣ X ( η 1 ∣ u ) ⋅ ε ⋅ f X ( η 2 ) ⋅ ε f Y ( η 3 ) ⋅ ε = lim ⁡ ε → 0 ∑ u = − ∞ x f Y ∣ X ( y ∣ u ) ⋅ f X ( u ) ⋅ ε f Y ( y ) = ∫ − ∞ x f Y ∣ X ( y ∣ u ) ⋅ f X ( u ) f Y ( y ) d u = ∫ − ∞ x f Y ∣ X ( y ∣ x ) ⋅ f X ( x ) f Y ( y ) d x (14) \begin{aligned} P(X<x|Y=y)&=\displaystyle\sum_{u=-\infin}^{x}P(X=u|Y=y)=\displaystyle\sum_{u=-\infin}^{x} \frac{P(Y=y|X=u)P(X=u)}{P(Y=y)} \\ &=\lim \limits_{\varepsilon \to 0} \displaystyle\sum_{u=-\infin}^{x} \frac{P(y<Y<y+\varepsilon|X=u)P(u<X<u+\varepsilon)}{P(y<Y<y+\varepsilon)} \\ &=\lim \limits_{\varepsilon \to 0} \displaystyle\sum_{u=-\infin}^{x} \frac{f_{Y|X}(\eta_{1}|u)\cdot \varepsilon \cdot f_{X}(\eta_{2}) \cdot \varepsilon}{f_{Y}(\eta_{3}) \cdot \varepsilon} \\ &=\lim \limits_{\varepsilon \to 0} \displaystyle\sum_{u=-\infin}^{x} \frac{f_{Y|X}(y|u) \cdot f_{X}(u) \cdot \varepsilon}{f_{Y}(y)} \\ &=\int^{x}_{-\infin}\frac{f_{Y|X}(y|u) \cdot f_{X}(u)}{f_{Y}(y)}du \\ &=\int^{x}_{-\infin}\frac{f_{Y|X}(y|x) \cdot f_{X}(x)}{f_{Y}(y)}dx \\ \end{aligned} \tag{14} P(X<xY=y)=u=xP(X=uY=y)=u=xP(Y=y)P(Y=yX=u)P(X=u)=ε0limu=xP(y<Y<y+ε)P(y<Y<y+εX=u)P(u<X<u+ε)=ε0limu=xfY(η3)εfYX(η1u)εfX(η2)ε=ε0limu=xfY(y)fYX(yu)fX(u)ε=xfY(y)fYX(yu)fX(u)du=xfY(y)fYX(yx)fX(x)dx(14)

又因为,
P ( X < x ∣ Y = y ) = ∫ − ∞ x f X ∣ Y ( x ∣ y ) d x P(X<x|Y=y) = \int^{x}_{-\infin}f_{X|Y}(x|y)dx P(X<xY=y)=xfXY(xy)dx

因此,式(14)可以化为,
∫ − ∞ x f X ∣ Y ( x ∣ y ) d x = ∫ − ∞ x f Y ∣ X ( y ∣ x ) ⋅ f X ( x ) f Y ( y ) d x (15) \int^{x}_{-\infin}f_{X|Y}(x|y)dx=\int^{x}_{-\infin}\frac{f_{Y|X}(y|x) \cdot f_{X}(x)}{f_{Y}(y)}dx \tag{15} xfXY(xy)dx=xfY(y)fYX(yx)fX(x)dx(15)

所以,对于连续型随机变量,贝叶斯公式同样适用,
f X ∣ Y ( x ∣ y ) d x = f Y ∣ X ( y ∣ x ) ⋅ f X ( x ) f Y ( y ) d x (16) f_{X|Y}(x|y)dx=\frac{f_{Y|X}(y|x) \cdot f_{X}(x)}{f_{Y}(y)}dx \tag{16} fXY(xy)dx=fY(y)fYX(yx)fX(x)dx(16)

好,这里继续式(13)后,继续推,

P ( X k < x ) = ∑ u = − ∞ x P ( X k = u ) = ∑ u = − ∞ x lim ⁡ ε → 0 ∫ − ∞ + ∞ f Q k [ u − f ( v ) ] f k − 1 ( v ) ⋅ ε 2 = ∫ − ∞ x ∫ − ∞ + ∞ f Q k [ u − f ( v ) ] f k − 1 ( v ) d v d u (17) \begin{aligned} P(X_{k}<x)&=\displaystyle \sum_{u=-\infin }^{x}P(X_{k}=u)=\displaystyle\sum_{u=-\infin}^{x} \lim \limits_{\varepsilon \to 0} \int^{+\infin}_{-\infin}f_{Q_{k}}[u-f(v)]f_{k-1}(v) \cdot \varepsilon ^{2} \\ &=\int^{x}_{-\infin}\int^{+\infin}_{-\infin} f_{Q_{k}}[u-f(v)]f_{k-1}(v)dvdu \end{aligned} \tag{17} P(Xk<x)=u=xP(Xk=u)=u=xε0lim+fQk[uf(v)]fk1(v)ε2=x+fQk[uf(v)]fk1(v)dvdu(17)

所以,有
f k − ( x ) = d P ( X k < x ) d x = ∫ − ∞ + ∞ f Q k [ x − f ( v ) ] ⋅ f k − 1 ( v ) d v (18) f^{-}_{k}(x)=\frac{dP(X_{k}<x)}{dx}=\int^{+\infin}_{-\infin}f_{Q_{k}}[x-f(v)]\cdot f_{k-1}(v)dv \tag{18} fk(x)=dxdP(Xk<x)=+fQk[xf(v)]fk1(v)dv(18)

更新步推导

根据传感器在 k k k时刻的观测值 Y k = y k Y_{k}=y_{k} Yk=yk,更新先验概率 f k − ( x ) f^{-}_{k}(x) fk(x)到后验概率 f k + ( x ) f^{+}_{k}(x) fk+(x),也可以写为 f k ( x ∣ y k ) f_{k}(x|y_{k}) fk(xyk),下面进行更新步的推导,

f Y k ∣ X k ( y k ∣ x ) = lim ⁡ ε → 0 P ( y k < Y k < y k + ε ∣ X k = x k ) ε = lim ⁡ ε → 0 P ( y k − h ( x k ) < Y k − h ( x k ) < y k − h ( x k ) + ε ∣ X k = x k ) ε = lim ⁡ ε → 0 P ( y k − h ( x k ) < R k < y k − h ( x k ) + ε ∣ X k = x k ) ε = lim ⁡ ε → 0 P ( y k − h ( x k ) < R k < y k − h ( x k ) + ε ) ε = f R k [ y k − h ( x ) ] (19) \begin{aligned} f_{Y_{k}|X_{k}}(y_{k}|x)&=\lim \limits_{\varepsilon \to 0}\frac{P(y_{k}<Y_{k}<y_{k}+\varepsilon|X_{k}=x_{k})}{\varepsilon} \\ &=\lim \limits_{\varepsilon \to 0}\frac{P(y_{k}-h(x_k)<Y_{k}-h(x_k)<y_{k}-h(x_k)+\varepsilon|X_{k}=x_{k})}{\varepsilon} \\ &=\lim \limits_{\varepsilon \to 0}\frac{P(y_{k}-h(x_k)<R_{k}<y_{k}-h(x_k)+\varepsilon|X_{k}=x_{k})}{\varepsilon} \\ &=\lim \limits_{\varepsilon \to 0}\frac{P(y_{k}-h(x_k)<R_{k}<y_{k}-h(x_k)+\varepsilon)}{\varepsilon} \\ &=f_{R_k}[y_k-h(x)] \end{aligned} \tag{19} fYkXk(ykx)=ε0limεP(yk<Yk<yk+εXk=xk)=ε0limεP(ykh(xk)<Ykh(xk)<ykh(xk)+εXk=xk)=ε0limεP(ykh(xk)<Rk<ykh(xk)+εXk=xk)=ε0limεP(ykh(xk)<Rk<ykh(xk)+ε)=fRk[ykh(x)](19)

上式中,第三步到第四步是因为 R k R_k Rk X k X_k Xk相互独立,因此,有

f k + ( x ) = f k ( x ∣ y k ) = f Y k ∣ X k ( y k ∣ x k ) ⋅ f k − ( x ) f Y k ( y k ) = f R k [ y k − h ( x ) ] ⋅ f k − ( x ) f Y k ( y k ) = η ⋅ f R k [ y k − h ( x ) ] ⋅ f k − ( x ) (20) \begin{aligned} f^{+}_{k}(x)&=f_{k}(x|y_k)=\frac{f_{Y_k|X_k}(y_k|x_k)\cdot f^{-}_{k}(x)}{f_{Y_k}(y_k)} \\ &=\frac{f_{R_k}[y_k-h(x)]\cdot f^{-}_{k}(x)}{f_{Y_k}(y_k)} \\ &=\eta \cdot f_{R_k}[y_k-h(x)]\cdot f^{-}_{k}(x) \end{aligned} \tag{20} fk+(x)=fk(xyk)=fYk(yk)fYkXk(ykxk)fk(x)=fYk(yk)fRk[ykh(x)]fk(x)=ηfRk[ykh(x)]fk(x)(20)

式中,
η = { ∫ − ∞ + ∞ f R k [ y k − h ( x ) ] ⋅ f k − 1 − ( x ) d x } − 1 \eta= \begin{Bmatrix} \int^{+\infin}_{-\infin}f_{R_{k}}[y_{k}-h(x)]\cdot f^{-}_{k-1}(x)dx \end{Bmatrix} ^{-1} η={+fRk[ykh(x)]fk1(x)dx}1

经过更新步后,状态量的方差降低了很多,提高了状态估计的准确度。

8.贝叶斯滤波递推过程

f 0 ( x ) ⇒ 预测 f 1 − ( x ) = ∫ − ∞ + ∞ f Q 1 [ x − f ( v ) ] ⋅ f 0 ( v ) d v ⇒ 观测 f 1 + ( x ) = η 1 ⋅ f R 1 [ y 1 − h ( x ) ] ⋅ f 1 − ( x ) ⇒ 预测 f 2 − ( x ) = ∫ − ∞ + ∞ f Q 2 [ x − f ( v ) ] ⋅ f 1 + ( v ) d v ⇒ 观测 f 2 + ( x ) = η 2 ⋅ f R 2 [ y 2 − h ( x ) ] ⋅ f 2 − ( x ) … ⇒ 预测 f k − ( x ) = ∫ − ∞ + ∞ f Q k [ x − f ( v ) ] ⋅ f k − 1 + ( v ) d v ⇒ 观测 f k + ( x ) = η k ⋅ f R k [ y k − h ( x ) ] ⋅ f k − ( x ) \begin{aligned} f_0(x)&\xRightarrow{预测}f^{-}_{1}(x)=\int^{+\infin}_{-\infin}f_{Q_{1}}[x-f(v)]\cdot f_{0}(v)dv\xRightarrow{观测}f^{+}_{1}(x)=\eta_{1} \cdot f_{R_1}[y_1-h(x)]\cdot f^{-}_{1}(x) \\ &\xRightarrow{预测}f^{-}_{2}(x)=\int^{+\infin}_{-\infin}f_{Q_{2}}[x-f(v)]\cdot f^{+}_{1}(v)dv\xRightarrow{观测}f^{+}_{2}(x)=\eta_{2} \cdot f_{R_2}[y_2-h(x)]\cdot f^{-}_{2}(x) \\ &\ldots \\ &\xRightarrow{预测}f^{-}_{k}(x)=\int^{+\infin}_{-\infin}f_{Q_{k}}[x-f(v)]\cdot f^{+}_{k-1}(v)dv\xRightarrow{观测}f^{+}_{k}(x)=\eta_{k} \cdot f_{R_k}[y_k-h(x)]\cdot f^{-}_{k }(x) \end{aligned} f0(x)预测 f1(x)=+fQ1[xf(v)]f0(v)dv观测 f1+(x)=η1fR1[y1h(x)]f1(x)预测 f2(x)=+fQ2[xf(v)]f1+(v)dv观测 f2+(x)=η2fR2[y2h(x)]f2(x)预测 fk(x)=+fQk[xf(v)]fk1+(v)dv观测 fk+(x)=ηkfRk[ykh(x)]fk(x)

其中,
η k = { ∫ − ∞ + ∞ f R k [ y k − h ( x ) ] ⋅ f k − 1 − ( x ) d x } − 1 \eta_{k}= \begin{Bmatrix} \int^{+\infin}_{-\infin}f_{R_{k}}[y_{k}-h(x)]\cdot f^{-}_{k-1}(x)dx \end{Bmatrix} ^{-1} ηk={+fRk[ykh(x)]fk1(x)dx}1

公式中,除了初值 f 0 ( x ) f_0(x) f0(x)可以认为是先验,也可以认为是后验,其实的每个值 f k ( x ) f_k(x) fk(x)都需要经过先验和后验两个步骤。

这里递推的都是概率密度函数,想求各个时刻的状态估计,只需要求均值即可。
x ^ k = ∫ − ∞ + ∞ x ⋅ f k + ( x ) d x (21) \hat{x}_{k}=\int_{-\infin}^{+\infin}x \cdot f_{k}^{+}(x)dx \tag{21} x^k=+xfk+(x)dx(21)

这里总结下,贝叶斯滤波算法的流程:

  1. 设定初始状态 x 0 x_0 x0和其概率密度 f 0 ( x ) f_0(x) f0(x)
  2. 计算下一时刻的先验值: f k − ( x ) = ∫ − ∞ + ∞ f Q k [ x − f ( v ) ] ⋅ f k − 1 + ( v ) d v f^{-}_{k}(x)=\int^{+\infin}_{-\infin}f_{Q_{k}}[x-f(v)]\cdot f_{k-1}^{+}(v)dv fk(x)=+fQk[xf(v)]fk1+(v)dv
  3. 计算后验值: f k + ( x ) = η k ⋅ f R k [ y k − h ( x ) ] ⋅ f k − ( x ) f^{+}_{k}(x)=\eta_{k} \cdot f_{R_k}[y_k-h(x)]\cdot f^{-}_{k}(x) fk+(x)=ηkfRk[ykh(x)]fk(x)
  4. 求当前的状态量: x ^ k = ∫ − ∞ + ∞ x ⋅ f k + ( x ) d x \hat{x}_{k}=\int_{-\infin}^{+\infin}x \cdot f_{k}^{+}(x)dx x^k=+xfk+(x)dx

贝叶斯滤波可以有效的去除噪声,计算出比较准确的状态估计值,但是缺点也很明显,从先验计算后验,以及计算 η \eta η时,都需要进行无穷积分计算,必须一点点加,没有一个解析解。

最后,在这里向拜读过的各个大神致敬,链接有点多,就不一一列举了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值