贝叶斯滤波的数学推导

引言

贝叶斯滤波的应用无处不在,著名的卡尔曼滤波就是在这么一个背景下应用的。下面开始公式的推导。

1.贝叶斯公式推导

对于 p ( x ∣ y ) = p ( y ∣ x ) p ( x ) p ( y ) p(x|y)=\frac{p(y|x)p(x)}{p(y)} p(xy)=p(y)p(yx)p(x),每个人都可以简单地推导,但是如果应用多一个场景,比如在 Z = z Z=z Z=z时的 p ( x ∣ y , z ) p(x|y,z) p(xy,z),那么这个推导就会麻烦一点。
下面给出 p ( x ∣ y , z ) 的 推 导 p(x|y,z)的推导 p(xy,z)
p ( x ∣ y , z ) = p ( y , z ∣ x ) p ( x ) p ( y , z ) = p ( x , y , z ) p ( y , z ) = p ( x , y , z ) p ( y ∣ z ) p ( z ) = p ( x , y , z ) p ( x , z ) p ( y ∣ z ) p ( z ) p ( x , z ) ∵ p ( x , y , z ) p ( x , z ) = p ( y ∣ x , z ) , p ( x , z ) p ( z ) = p ( x ∣ z ) ∴ p ( x ∣ y , z ) = p ( y ∣ x , z ) p ( x ∣ z ) p ( y ∣ z ) p(x|y,z)=\frac{p(y,z|x)p(x)}{p(y,z)}\\=\frac{p(x,y,z)}{p(y,z)}\\=\frac{p(x,y,z)}{p(y|z)p(z)}\\=\frac{p(x,y,z)p(x,z)}{p(y|z)p(z)p(x,z)}\\\because \frac{p(x,y,z)}{p(x,z)}=p(y|x,z),\frac{p(x,z)}{p(z)}=p(x|z)\\\therefore p(x|y,z)=\frac{p(y|x,z)p(x|z)}{p(y|z)} p(xy,z)=p(y,z)p(y,zx)p(x)=p(y,z)p(x,y,z)=p(yz)p(z)p(x,y,z)=p(yz)p(z)p(x,z)p(x,y,z)p(x,z)p(x,z)p(x,y,z)=p(yx,z),p(z)p(x,z)=p(xz)p(xy,z)=p(yz)p(yx,z)p(xz)

这是一个多加了一个条件的推导,如果扩展到很多个条件也是一样的。好了有了这个贝叶斯的数学基础我们就可以知道对于一个条件后验概率来说,它是有相对独立性的,即对于上面式子中的 p ( y , z ∣ x ) p(y,z|x) p(y,zx)表示的是在 x x x的条件下, ( y , z ) (y,z) (y,z)的概率,但是一般地对于我们现实生活或者其他应用来说,这是相对独立的,即条件独立,有 p ( y , z ∣ x ) = p ( y ∣ x ) p ( z ∣ x ) p(y,z|x)=p(y|x)p(z|x) p(y,zx)=p(yx)p(zx),这和 x , y x,y x,y相互独立不是一个概念。

2.贝叶斯滤波

对于一个事件 x x x,我们把它的发生概率 p ( x ) p(x) p(x)称为先验概率,但是当 x x x y y y条件下发生时,就会有 p ( x ∣ y ) p(x|y) p(xy),这个就成为在 y y y条件下的后验概率。而贝叶斯滤波就是这么一个先验和后验的计算,听起来是不是很简单呢。只不过这个先验我们把它称为预测,后验称为更新罢了。
下面举个例子来说明一下这个滤波的推导:
假设有一辆小车,我们不知道它的初始状态,但是我们可以有它在0时刻到t时刻,给予它的加速度 u 1 : t − 1 u_{1:t-1} u1:t1即控制量,还有在 每个时刻的速度和位置 z 1 : t − 1 z_{1:t-1} z1:t1即观测量。对于我们当前小车所处的位置x,我们就可以通过一个基于1:t时刻控制量和观测量来预测它当前的位置。
这就是贝叶斯滤波的第一个阶段-----预测。它可以表示为在第t-1时刻的状态下施加一个加速度给它,即 u i u_i ui,那小车的状态(速度和位置)表示为:
p ( x t ∣ u 1 : t , z 1 : t − 1 ) p(x_t|u_{1:t},z_{1:t-1}) p(xtu1:t,z1:t1)
在此,我们引入一个我们已经知道的变量 x t − 1 x_{t-1} xt1,这样我们的式子就可以表示为(根据1.贝叶斯公式推导)
p ( x t ∣ u 1 : t , z 1 : t − 1 ) = ∫ p ( x t ∣ x t − 1 , z 1 : t − 1 , u 1 : t ) p ( x t − 1 ∣ z 1 : t − 1 , u 1 : t ) d ( x t − 1 ) ∵ u t 对 于 x t − 1 是 没 有 用 的 。 = ∫ p ( x t ∣ x t − 1 , z 1 : t − 1 , u 1 : t ) p ( x t − 1 ∣ z 1 : t − 1 , u 1 : t − 1 ) d ( x t − 1 ) ∵ z ( 1 : t − 1 ) 在 存 在 x t − 1 的 情 况 下 对 于 x t 是 没 有 用 的 。 = ∫ p ( x t ∣ x t − 1 , u 1 : t ) p ( x t − 1 ∣ z 1 : t − 1 , u 1 : t − 1 ) d ( x t − 1 ) p(x_t|u_{1:t},z_{1:t-1})\\= \int p(x_t|x_{t-1},z_{1:t-1},u_{1:t})p(x_{t-1}|z_{1:t-1},u_{1:t})d(x_{t-1})\\\because u_t对于x_{t-1}是没有用的。\\=\int p(x_t|x_{t-1},z_{1:t-1},u_{1:t})p(x_{t-1}|z_{1:t-1},u_{1:t-1})d(x_{t-1})\\\because z_(1:t-1)在存在x_{t-1}的情况下对于x_{t}是没有用的。\\=\int p(x_t|x_{t-1},u_{1:t})p(x_{t-1}|z_{1:t-1},u_{1:t-1})d(x_{t-1}) p(xtu1:t,z1:t1)=p(xtxt1,z1:t1,u1:t)p(xt1z1:t1,u1:t)d(xt1)utxt1=p(xtxt1,z1:t1,u1:t)p(xt1z1:t1,u1:t1)d(xt1)z(1:t1)xt1xt=p(xtxt1,u1:t)p(xt1z1:t1,u1:t1)d(xt1)
我们把这个式子得到的标记为在t时刻的预测值 b e l ( x t ) bel(x_t) bel(xt)

然后就是通过观测它的值来指导更新我们前面的预测,如下所示。
p ( x t ∣ u 1 : t , z 1 : t − 1 , z t ) = p ( z t ∣ x t , z 1 : t − 1 , u 1 : t ) p ( x t , z 1 : t − 1 , u 1 : t ) p ( u 1 : t , z 1 : t − 1 , z t ) = p ( z t ∣ x t , z 1 : t − 1 , u 1 : t ) p ( x t ∣ z 1 : t − 1 , u 1 : t ) p ( z 1 : t − 1 , u 1 : t ) p ( z t ∣ u 1 : t , z 1 : t − 1 ) p ( u 1 : t , z 1 : t − 1 ) = p ( z t ∣ x t , z 1 : t − 1 , u 1 : t ) p ( x t ∣ z 1 : t − 1 , u 1 : t ) p ( z t ∣ u 1 : t , z 1 : t − 1 ) ∵ 在 马 尔 科 夫 假 设 下 ( 世 界 是 完 整 的 ) , p ( z t ∣ x t , z 1 : t − 1 , u 1 : t ) 中 , z t 只 与 x t 是 相 关 的 , 简 化 为 p ( z t ∣ x t ) 。 同 样 的 分 母 的 p ( z t ∣ u 1 : t , z 1 : t − 1 ) 也 可 以 简 化 为 p ( z t ) , 即 为 一 个 常 数 , 我 们 用 一 个 归 一 化 因 子 η 表 示 p(x_t|u_{1:t},z_{1:t-1},z_t)\\=\frac{p(z_t|x_t,z_{1:t-1},u_{1:t})p(x_t,z_{1:t-1},u_{1:t})}{p(u_{1:t},z_{1:t-1},z_t)}\\=\frac{p(z_t|x_t,z_{1:t-1},u_{1:t})p(x_t|z_{1:t-1},u_{1:t})p(z_{1:t-1},u_{1:t})}{p(z_t|u_{1:t},z_{1:t-1})p(u_{1:t},z_{1:t-1})}\\=\frac{p(z_t|x_t,z_{1:t-1},u_{1:t})p(x_t|z_{1:t-1},u_{1:t})}{p(z_t|u_{1:t},z_{1:t-1})}\\\because 在马尔科夫假设下(世界是完整的),p(z_t|x_t,z_{1:t-1},u_{1:t})中,\\ z_t只与x_t是相关的,简化为p(z_t|x_t)。\\ 同样的分母的p(z_t|u_{1:t},z_{1:t-1})也可以简化为p(z_t),\\即为一个常数,我们用一个归一化因子\eta 表示 p(xtu1:t,z1:t1zt)=p(u1:t,z1:t1zt)p(ztxt,z1:t1,u1:t)p(xt,z1:t1,u1:t)=p(ztu1:t,z1:t1)p(u1:t,z1:t1)p(ztxt,z1:t1,u1:t)p(xtz1:t1,u1:t)p(z1:t1,u1:t)=p(ztu1:t,z1:t1)p(ztxt,z1:t1,u1:t)p(xtz1:t1,u1:t),p(ztxt,z1:t1,u1:t)ztxtp(ztxt)p(ztu1:t,z1:t1)p(zt)η
p ( x t ∣ u 1 : t , z 1 : t − 1 , z t ) = p ( z t ∣ x t ) p ( x t ∣ z 1 : t − 1 , u 1 : t ) p ( z t ) = η p ( z t ∣ x t ) b e l ( x t ) p(x_t|u_{1:t},z_{1:t-1},z_t)\\=\frac{p(z_t|x_t)p(x_t|z_{1:t-1},u_{1:t})}{p(z_t)}\\=\eta{p(z_t|x_t)bel(x_t)} p(xtu1:t,z1:t1zt)=p(zt)p(ztxt)p(xtz1:t1,u1:t)=ηp(ztxt)bel(xt)
最终我们的预测和更新就关联起来了。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
卡尔曼滤波(Kalman Filter)是一种用于估计动态系统状态的最优线性算法,广泛应用于信号处理、控制系统和导航等领域。它是基于贝叶斯定理的一种数学模型,尤其适用于处理存在噪声和不确定性的情况,如传感器数据、机器学习中的预测等。 卡尔曼滤波的核心思想是利用前一时刻的状态估计和观测数据来更新当前时刻的估计。它包括两个主要步骤:预测(Prediction)和更新(Update)。预测阶段使用系统的动力学模型,而更新阶段则结合观测数据进行状态估计的调整。 以下是卡尔曼滤波的一般公式: 1. **预测阶段(Predict)**: - 预测状态:\( \hat{x}_k^- = A_k \hat{x}_{k-1} + B_k u_k + w_k \) (状态转移模型) - 预测协方差:\( P_k^- = A_k P_{k-1} A_k^T + Q_k \) (过程噪声协方差) 2. **更新阶段(Update)**: - 测量残差:\( z_k - H_k \hat{x}_k^- \) (观测模型,其中\( H_k \)是观测矩阵) - 更新增益:\( K_k = P_k^- H_k^T (H_k P_k^- H_k^T + R_k)^{-1} \) (卡尔曼增益,\( R_k \)是测量噪声协方差) - 更新状态估计:\( \hat{x}_k = \hat{x}_k^- + K_k (z_k - H_k \hat{x}_k^-) \) - 更新协方差:\( P_k = (I - K_k H_k) P_k^- \) (新的状态估计误差协方差) 其中,\( \hat{x}_k \) 表示状态估计,\( x_k \) 是真实状态,\( A_k \) 是状态转移矩阵,\( B_k \) 是控制输入矩阵,\( u_k \) 是控制输入,\( w_k \) 是过程噪声,\( z_k \) 是观测值,\( H_k \) 是观测函数矩阵,\( Q_k \) 和 \( R_k \) 分别是过程噪声和测量噪声的协方差矩阵。 卡尔曼滤波公式涉及矩阵运算,如果要深入理解,需要对线性代数和概率论有基本的了解。如果你对某个具体的步骤或概念不清楚,可以告诉我,我会进一步解释。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值