博主最近在看卡尔曼滤波算法,个人认为在卡尔曼滤波算法中最核心的部分莫过于高维高斯联合概率分布的性质,因此打算将这些性质整理成博客记录下来方便自己今后的学习,如果有哪里不对,欢迎各位读者指正。

一 引理

​ 这里我引入一个定理,这个定理不在本博客证明,因为它很直观,便于理解。
​ 假设随机变量XXX服从均值为μ\muμ,协方差矩阵为Σ\SigmaΣ的高斯分布(为了更具有一般性,这里的均值是一个向量,协方差是一个矩阵)。随机变量Y=AX+BY=AX+BY=AX+B(这里的矩阵AAA和BBB都是常值矩阵),则结论是YYY也服从于一个高维高斯分布,它的均值是Aμ+BA\mu+BAμ+B,协方差矩阵是AΣATA\Sigma{A^{T}}AΣAT。

二 推导

​ 设ppp维随机变量X=(x1,x2,…,xp)TX=(x_1,x_2,\dots,x_p)^{T}X=(x1​,x2​,…,xp​)T服从均值μ=(μ1,μ2,…,μp)T\mu=(\mu_1,\mu_2,\dots,\mu_p)^{T}μ=(μ1​,μ2​,…,μp​)T,协方差矩阵为式(2-1)的高斯分布,现在我们将随机变量XXX切分为两个随机变量,第一个随机变量取随机变量XXX的前mmm维记为XaX_aXa​,对应的均值为μa\mu_aμa​。第二个随机变量取随机变量XXX的后nnn维记为XbX_bXb​,对应的均值为μb\mu_bμb​,且满足(m+n=pm+n=pm+n=p)。则随机变量XXX可以写成X=(Xa,Xb)TX=(X_a,X_b)^{T}X=(Xa​,Xb​)T,均值可以写成μ=(μa,μb)T\mu=(\mu_a,\mu_b)^{T}μ=(μa​,μb​)T,协方差矩阵可写成式(2-2)。
Σ={σ11σ12…σ1pσ21σ22…σ2p⋮⋮…σ3pσp1σp2…σpp}(2-1)\Sigma= \left\{ \begin{matrix} \sigma_{11} & \sigma_{12} & \dots & \sigma_{1p} \\ \sigma_{21} & \sigma_{22} & \dots & \sigma_{2p} \\ \vdots & \vdots & \dots & \sigma_{3p} \\ \sigma_{p1} & \sigma_{p2} & \dots & \sigma_{pp} \end{matrix} \right\} \tag{2-1} Σ=⎩⎪⎪⎪⎨⎪⎪⎪⎧​σ11​σ21​⋮σp1​​σ12​σ22​⋮σp2​​…………​σ1p​σ2p​σ3p​σpp​​⎭⎪⎪⎪⎬⎪⎪⎪⎫​(2-1)

Σ={ΣaaΣabΣbaΣbb}(2-2)\Sigma= \left\{ \begin{matrix} \Sigma_{aa}&\Sigma_{ab}\\ \Sigma_{ba}&\Sigma_{bb} \end{matrix} \right\} \tag{2-2} Σ={Σaa​Σba​​Σab​Σbb​​}(2-2)

​ 现在的问题是随机变量XaX_aXa​以及在给定XaX_aXa​的条件下XbX_bXb​服从什么样参数的分布?
​ 为了使用引入的定理,这里我们构造出XaX_aXa​与XXX之间的关系,即Xa=(Im,0n)XX_a=(I_m,0_n)XXa​=(Im​,0n​)X。由此可以看出,XaX_aXa​可以由XXX线性表出,则XaX_aXa​服从高斯分布,均值和协方差矩阵求解见式(2-3)。
E[Xa]=(Im,0)μ=μaVar[Xa]=(Im0)(ΣaaΣabΣbaΣbb)(ImT0)=(ΣaaΣab)(Im0)=Σaa(2-3)E[X_a]=(I_m,0)\mu=\mu_a\\ Var[X_a]= \begin{pmatrix} I_m&0 \end{pmatrix} \begin{pmatrix} \Sigma_{aa}&\Sigma_{ab}\\ \Sigma_{ba}&\Sigma_{bb} \end{pmatrix} \begin{pmatrix} I_m^{T}\\ 0\\ \end{pmatrix}= \begin{pmatrix} \Sigma_{aa}&\Sigma_{ab} \end{pmatrix} \begin{pmatrix} I_m\\ 0 \end{pmatrix} =\Sigma_{aa} \tag{2-3} E[Xa​]=(Im​,0)μ=μa​Var[Xa​]=(Im​​0​)(Σaa​Σba​​Σab​Σbb​​)(ImT​0​)=(Σaa​​Σab​​)(Im​0​)=Σaa​(2-3)

所以XaX_aXa​服从于均值为μa\mu_aμa​,协方差为Σaa\Sigma_{aa}Σaa​的高斯分布。
现在做一下变量替换,见式(2-4),这里的替换纯属是为了后面计算方便,读者不必纠结于此。
Xb.a=Xb−ΣbaΣaa−1Xaμb.a=μb−ΣbaΣaa−1μaΣbb.a=Σba−Σaa−1Σab(2-4)X_{b.a}=X_b-\Sigma_{ba}\Sigma_{aa}^{-1}X_{a}\\ \mu_{b.a}=\mu_b-\Sigma_{ba}\Sigma_{aa}^{-1}\mu_a\\ \Sigma_{bb.a}=\Sigma_{ba}-\Sigma_{aa}^{-1}\Sigma_{ab} \tag{2-4} Xb.a​=Xb​−Σba​Σaa−1​Xa​μb.a​=μb​−Σba​Σaa−1​μa​Σbb.a​=Σba​−Σaa−1​Σab​(2-4)
于是Xb.aX_{b.a}Xb.a​可以表示为(−ΣbaΣaa−1,In)X(-\Sigma_{ba}\Sigma_{aa}^{-1},I_n)X(−Σba​Σaa−1​,In​)X。并且可以验证,Xb.aX_{b.a}Xb.a​的期望为μb.a\mu_{b.a}μb.a​,协方差为Σbb.a\Sigma_{bb.a}Σbb.a​。因此Xb=Xb.a+ΣbaΣaa−1XaX_b=X_{b.a}+\Sigma_{ba}\Sigma_{aa}^{-1}X_aXb​=Xb.a​+Σba​Σaa−1​Xa​。所以在给定XaX_aXa​的前提下,E[Xb∣Xa]=μb.a+ΣbaΣaa−1μaE[X_{b}|X_a]=\mu_{b.a}+\Sigma_{ba}\Sigma_{aa}^{-1}\mu_aE[Xb​∣Xa​]=μb.a​+Σba​Σaa−1​μa​,Var[Xb∣Xa]=Var[Xb.a]=Σbb.aVar[X_b|X_a]=Var[X_{b.a}]=\Sigma_{bb.a}Var[Xb​∣Xa​]=Var[Xb.a​]=Σbb.a​。

已知高维高斯联合概率分布求边缘概率分布以及条件概率分布相关推荐

  1. 转 已知两点坐标和半径求圆心坐标程序C++

    数学思想:利用圆方程和直线方程 已知两点坐标和半径求圆心坐标程序 #include <iostream> #include <fstream> #include <cma ...

  2. python求平行四边形面积_python 已知平行四边形三个点,求第四个点的案例

    我就废话不多说了,大家还是直接看代码吧! import numpy as np #已知平行四边形三个点,求第四个点 #计算两点之间的距离 def CalcEuclideanDistance(point ...

  3. 天文观测理论——已知像素大小、焦距,求像素分辨率

    一.已知像素大小.焦距,求像素分辨率 1. 计算 像素分辨率为 Pix, 单位:角秒/像素 像素大小为 d2d^2d2, 单位:平方毫米 焦距为 fff, 单位:毫米 总像素为 rerere, 单位: ...

  4. 【目标检测】已知top, left, bottom, right 求 xmin,ymin,xmax,ymax

    前段时间在项目实践过程中遇到xmin,ymin,width,height 和 xmin,ymin,xmax,ymax相互转换的问题,请看https://blog.csdn.net/AugustMe/a ...

  5. JAVA已知圆心经纬度和半径求圆周点的经纬度

    JAVA已知圆心经纬度和半径求圆周点的经纬度 项目中遇到一个需求,需要根据传入的圆心经纬度和半径参数获得圆周点的经纬度,在网上查询了很多没有找到能用的算法,从GPT中获取到了一个简洁的用java实现的 ...

  6. 已知随机变量X的协方差矩阵求去X的特征值 特征向量 PCA投影矩阵

    已知随机变量X的协方差矩阵求去X的特征值 特征向量 PCA投影矩阵 相关的知识都忘记了,去查的时候没有耐心看别人长篇大论讲解,就只简单记录了一下如果从协方差矩阵来计算特征值和特征向量. 定义:1.特征 ...

  7. 已知三角形三边长求面积java_已知三角形三点坐标求三角形面积.java

    已知三角形三点坐标求三角形面积 主程序代码如下: import java.util.*; public class Tringle { public static void main(String[] ...

  8. js 已知角度和斜边,求直角边

    //已知角度和斜边,求直角边 function hypotenuse(long,angle){//获得弧度var radian = 2*Math.PI/360*angle;return {a:Math ...

  9. python写的平行四边形_python 已知平行四边形三个点,求第四个点的案例

    我就废话不多说了,大家还是直接看代码吧! import numpy as np #已知平行四边形三个点,求第四个点 #计算两点之间的距离 def CalcEuclideanDistance(point ...

  10. 二叉树已知两种遍历结果求另一个遍历结果

    二叉树的遍历分为 前序遍历: 根-------左---------右 中序遍历: 左-------根---------右 后序遍历:左--------右---------根 现问题为:已知其两种遍历, ...

最新文章

  1. SAP MM ME56不能为审批后的PR分配供应源?
  2. gSOAP 在windows下的安装与使用(mingw32)
  3. bower解决js的依赖管理
  4. mysql 回滚 前滚_Oracle 实例恢复时 前滚 后滚说明
  5. python3.5安装-linux安装python3.5.1
  6. 重写equals就必须重写hashCode的原理分析
  7. Batch Normalization的细致理解
  8. 《计算机网络教程 自顶向下方法》 第一章
  9. 基于ArcGIS JS API 4.11实现对FeatureLayer的多变量渲染
  10. 这周,我们作前端,实现统一的过滤搜索
  11. SpringBoot : BeanFactory
  12. 2.GitLab 项目管理
  13. Django-----模板嵌套
  14. CodeForces 780B ——The Meeting Place Cannot Be Changed(二分法)
  15. 前端网页设计必逛的六个宝藏网站(非常值得收藏)
  16. 拟合数据和原始数据误差计算
  17. strpos使用不当引发漏洞
  18. 前端开发公众号的调试
  19. 仿照京东导航条html+css
  20. angularJs 页面筛选标签小功能

热门文章

  1. Android 12中系统Wallpaper详解1--锁屏透看壁纸和桌面透看壁纸的切换
  2. csgo删除服务器地图在哪个文件夹,CSGO de_cache地图
  3. Elasticsearch海量搜索引擎
  4. OL6.5操作系统安装Mysql5.6
  5. StretchDIBits函数
  6. 7-77 打印学生选课清单 (25分)
  7. 有线异步通信原理_【对讲机的那点事】揭秘对讲机系统集群网关的应用原理
  8. java毕业设计鸿鹄教育培训mybatis+源码+调试部署+系统+数据库+lw
  9. 罗技 连点 脚本_拳头与罗技G展开合作 将推出《英雄联盟》主题外设--新闻中心...
  10. Android模拟器 使用 Fiddler抓包