p ( x ∣ y , z ) = p ( x , y , z ) p ( y , z ) = p ( y ∣ x , z ) p ( x , z ) p ( y , 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 ) \begin{aligned} p\left( \boldsymbol{x}| \boldsymbol{y},\boldsymbol{z}\right) &=\dfrac{p\left( \boldsymbol{x},\boldsymbol{y},\boldsymbol{z}\right) }{p\left( \boldsymbol{y},\boldsymbol{z}\right) }\\ &=\dfrac{p\left( \boldsymbol{y}| \boldsymbol{x},\boldsymbol{z}\right) p\left( \boldsymbol{x},\boldsymbol{z}\right) }{p\left( \boldsymbol{y},\boldsymbol{z}\right) }\\ &=\dfrac{p\left( \boldsymbol{y}| \boldsymbol{x},\boldsymbol{z}\right) p\left( \boldsymbol{x}| \boldsymbol{z}\right) p\left( \boldsymbol{z}\right) }{p\left( \boldsymbol{y}|\boldsymbol{z}\right) p\left( \boldsymbol{z}\right) }\\ &=\dfrac{p\left( \boldsymbol{y}| \boldsymbol{x},\boldsymbol{z}\right) p\left( \boldsymbol{x}| \boldsymbol{z}\right) }{p\left( \boldsymbol{y}| \boldsymbol{z}\right) } \end{aligned} p(x∣y,z)=p(y,z)p(x,y,z)=p(y,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(y∣x,z)p(x∣z)
把 z k \boldsymbol{z}_k zk看作 y \boldsymbol{y} y,把 z 1 : k \boldsymbol{z}_{1:k} z1:k看作 z \boldsymbol{z} z代入上式,假设所有观测是独立的
p ( x ∣ z 1 : k ) = p ( z k ∣ x , z 1 : k − 1 ) p ( x ∣ z 1 : k − 1 ) p ( z k ∣ z 1 : k − 1 ) = η k p ( z k ∣ x ) p ( x ∣ z 1 : k − 1 ) = η k p ( z k ∣ x ) η k − 1 p ( z k − 1 ∣ x ) p ( x ∣ z 1 : k − 2 ) = [ ∏ i k η i p ( z i ∣ x ) ] p ( x ) \begin{aligned} p\left( \boldsymbol{x}| \boldsymbol{z}_{1:k}\right) &=\dfrac{p\left( \boldsymbol{z}_{k}| \boldsymbol{x},\boldsymbol{z}_{1:k-1}\right) p\left( \boldsymbol{x}| \boldsymbol{z}_{1:k-1}\right) }{p\left( \boldsymbol{z}_{k}| \boldsymbol{z}_{1:k-1}\right) }\\ &=\eta_{k}p\left( \boldsymbol{z}_{k}| \boldsymbol{x}\right) p\left( \boldsymbol{x}| \boldsymbol{z}_{1:k-1}\right) \\ &=\eta _{k}p\left( \boldsymbol{z}_{k}| \boldsymbol{x}\right) \eta _{k-1}p\left( \boldsymbol{z}_{k-1}| \boldsymbol{x}\right) p\left( \boldsymbol{x}| \boldsymbol{z}_{1:k-2}\right) \\ &=\left[\prod\limits_i^{k} \eta _{i} p\left( \boldsymbol{z}_{i}| \boldsymbol{x}\right)\right] p\left( \boldsymbol{x}\right) \end{aligned} p(x∣z1:k)=p(zk∣z1:k−1)p(zk∣x,z1:k−1)p(x∣z1:k−1)=ηkp(zk∣x)p(x∣z1:k−1)=ηkp(zk∣x)ηk−1p(zk−1∣x)p(x∣z1:k−2)=[i∏kηip(zi∣x)]p(x)
z 1 : k \boldsymbol{z}_{1:k} z1:k是已知观测量,与变量 x \boldsymbol{x} x无关, η k = 1 p ( z k ∣ z 1 : k − 1 ) \eta_k=\frac{1}{p\left( \boldsymbol{z}_k| \boldsymbol{z}_{1:k-1}\right)} ηk=p(zk∣z1:k−1)1为归一化常数。
定义如下运动和观测模型:
运 动 方 程 : x k = f ( x k − 1 , u k , w k ) , k = 1 , ⋯ , K 观 测 方 程 : y k = h ( x k , n k ) , k = 0 , ⋯ , K \begin{aligned} 运动方程:&\boldsymbol{x}_k=\boldsymbol{f}(\boldsymbol{x}_{k-1},\boldsymbol{u}_k,\boldsymbol{w}_k),\quad k=1,\cdots,K \\ 观测方程:&\boldsymbol{y}_k=\boldsymbol{h}(\boldsymbol{x}_k,\boldsymbol{n}_k),\quad k=0,\cdots ,K \end{aligned} 运动方程:观测方程:xk=f(xk−1,uk,wk),k=1,⋯,Kyk=h(xk,nk),k=0,⋯,K
其中 k k k为时间下标,最大值为 K K K。函数 f ( ⋅ ) \boldsymbol{f}(\cdot) f(⋅)为非线性的运动模型,函数 h ( ⋅ ) \boldsymbol{h}(\cdot) h(⋅)为非线性的观测模型。我们并没有假设任何随机变量是高斯的,但是假设系统具有马尔可夫性。
当一个随机过程在给定现在状态及所有过去状态的情况下,其未来状态的条件概率仅依赖于当前状态;换句话说,未来状态与到达当前状态的历史路径是条件独立的。那么此随机过程成为马尔科夫过程,或者说它具有马尔可夫性。
贝叶斯滤波使用过去及当前的测量,构造一个完成的PDF来刻画当前状态。
假设所有观测是独立的,将最新的观测分解出来
p ( x k ∣ x ˇ 0 , u 1 : k , y 0 : k ) ⏟ k 时 刻 状 态 估 计 后 验 概 率 = p ( y k ∣ x k , x ˇ 0 , u 1 : k , y 0 : k − 1 ) p ( x k ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) p ( y k ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) = η p ( y k ∣ x k ) ⏟ k 时 刻 观 测 模 型 p ( x k ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) ⏟ k 时 刻 状 态 估 计 先 验 概 率 \begin{aligned} \underbrace{p\left( \boldsymbol{x}_{k}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k}\right)}_{k时刻状态估计后验概率} &=\dfrac{p\left( \boldsymbol{y}_{k}| \boldsymbol{x}_{k},\check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right) p\left( \boldsymbol{x}_{k}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right)}{p\left( \boldsymbol{y}_{k}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right)} \\ &=\eta \underbrace{p\left( \boldsymbol{y}_{k}| \boldsymbol{x}_{k}\right)}_{k时刻观测模型} \underbrace{p\left( \boldsymbol{x}_{k}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right)}_{k时刻状态估计先验概率} \end{aligned} k时刻状态估计后验概率 p(xk∣xˇ0,u1:k,y0:k)=p(yk∣xˇ0,u1:k,y0:k−1)p(yk∣xk,xˇ0,u1:k,y0:k−1)p(xk∣xˇ0,u1:k,y0:k−1)=ηk时刻观测模型 p(yk∣xk)k时刻状态估计先验概率 p(xk∣xˇ0,u1:k,y0:k−1)
将注意力集中在第二个因子,引入隐藏状态 x k − 1 \boldsymbol{x}_{k-1} xk−1,并对其进行积分:
p ( x k ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) = ∫ p ( x k , x k − 1 ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) d x k − 1 = ∫ p ( x k ∣ x k − 1 , x ˇ 0 , u 1 : k , y 0 : k − 1 ) p ( x k − 1 ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) d x k − 1 \begin{aligned} p\left( \boldsymbol{x}_{k}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right) &=\int p\left( \boldsymbol{x}_{k},\boldsymbol{x}_{k-1}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right) {\rm d}\boldsymbol{x}_{k-1}\\ &=\int p\left(\boldsymbol{x}_{k}\right| \boldsymbol{x}_{k-1},\check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}) p\left( \boldsymbol{x}_{k-1}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right) {\rm d}\boldsymbol{x}_{k-1} \end{aligned} p(xk∣xˇ0,u1:k,y0:k−1)=∫p(xk,xk−1∣xˇ0,u1:k,y0:k−1)dxk−1=∫p(xk∣xk−1,xˇ0,u1:k,y0:k−1)p(xk−1∣xˇ0,u1:k,y0:k−1)dxk−1
隐藏状态的引入可以看作是边缘化的反向操作,目前为止,没有引入任何近似。
由于我们的系统具有马尔可夫性,可以写出:
p ( x k ∣ x k − 1 , x ˇ 0 , u 1 : k , y 0 : k − 1 ) = p ( x k ∣ x k − 1 , u k ) p ( x k − 1 ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) = p ( x k − 1 ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) \begin{aligned} p\left( \boldsymbol{x}_{k}| \boldsymbol{x}_{k-1},\check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right) &=p\left( \boldsymbol{x}_{k}| \boldsymbol{x}_{k-1},\boldsymbol{u}_{k}\right) \\ p\left( \boldsymbol{x}_{k-1}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right) &=p\left( \boldsymbol{x}_{k-1}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right) \end{aligned} p(xk∣xk−1,xˇ0,u1:k,y0:k−1)p(xk−1∣xˇ0,u1:k,y0:k−1)=p(xk∣xk−1,uk)=p(xk−1∣xˇ0,u1:k,y0:k−1)
将上式代入原始的式子得
p ( x k ∣ x ˇ 0 , u 1 : k , y 0 : k ) = η p ( y k ∣ x k ) ⏟ 用 g ( ⋅ ) 进 行 更 新 ∫ p ( x k ∣ x k − 1 , u k ) ⏟ 用 f ( ⋅ ) 进 行 预 测 p ( x k − 1 ∣ x ˇ 0 , u 1 : k − 1 , y 0 : k − 1 ) ⏟ 先 验 置 信 度 d x k − 1 \begin{aligned} p\left( \boldsymbol{x}_{k}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k} \right) =\eta \underbrace{p\left( \boldsymbol{y}_{k}| \boldsymbol{x}_{k}\right)}_{用g(\cdot)进行更新} \int \underbrace{p\left( \boldsymbol{x}_{k}| \boldsymbol{x}_{k-1},\boldsymbol{u}_{k}\right)}_{用f(\cdot)进行预测} \underbrace{p\left( \boldsymbol{x}_{k-1}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k-1},\boldsymbol{y}_{0:k-1}\right)}_{先验置信度} {\rm d}\boldsymbol{x}_{k-1} \end{aligned} p(xk∣xˇ0,u1:k,y0:k)=η用g(⋅)进行更新 p(yk∣xk)∫用f(⋅)进行预测 p(xk∣xk−1,uk)先验置信度 p(xk−1∣xˇ0,u1:k−1,y0:k−1)dxk−1
可以看到该式具有预测-校正的形式。在预测阶段,先验置信度 p ( y k ∣ x k ) p\left( \boldsymbol{y}_{k}| \boldsymbol{x}_{k}\right) p(yk∣xk)通过输入 u k \boldsymbol{u}_k uk和运动模型 f ( ⋅ ) \boldsymbol{f}(\cdot) f(⋅)在时间上进行前向传播。在校正阶段,则通过观测模型 g ( ⋅ ) \boldsymbol{g}(\cdot) g(⋅)来更新预测估计状态,并得到后验置信度 p ( x k ∣ x ˇ 0 , u 1 : k , y 0 : k ) p\left( \boldsymbol{x}_{k}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k} \right) p(xk∣xˇ0,u1:k,y0:k)
贝叶斯滤波器虽然精确,但也仅仅是一个精美的数学产物;除了线性高斯的情况外,在实际中它基本不可能实现。主要原因有两个,为此我们需要适当地作一些近似:
递归式状态估计的大部分研究集中在如何用更好的近似来处理这两个问题。这些方面已经有了相当大的进展,值得我们更加详细地去研究。因此,在接下来的几节中,我们将介绍一些经典和现代的方法来近似贝叶斯滤波。但是,我们必须牢记贝叶斯滤波的假设:马尔科夫性。我们必须不断审视:如果对贝叶斯滤波器做这些近似,马尔科夫性会发生什么改变?