运动、观测概念
什么是运动:考虑从k-1时刻到k时刻,位置x如何变化 什么是观测:在k时刻
x
k
x_k
xk?处探测一个路标
y
j
y_j
yj?
运动方程:
x
k
=
f
(
x
k
?
1
,
u
k
,
w
k
)
x_k=f(x_{k-1},u_k,w_k)
xk?=f(xk?1?,uk?,wk?)
u
k
u_k
uk?表示传感器的读数,
w
k
w_k
wk?表示噪声
观测方程:在
x
k
x_k
xk?处看到某个路标点
y
j
y_j
yj?,产生一个观测数据
z
k
,
j
z_{k,j}
zk,j?
z
k
,
j
=
h
(
y
j
,
x
k
,
v
k
,
j
)
z_{k,j}=h(y_j,x_k,v_{k,j})
zk,j?=h(yj?,xk?,vk,j?)
v
k
,
j
v_{k,j}
vk,j?是观测 的噪声
多元高斯分布
高斯分布有两种表达方式:
协方差矩阵+均值的方式比较常见,如下
左边常数项记为
η
η
η,
p
(
x
)
p(x)
p(x)可以记为:
其中对称正定矩阵
Σ
Σ
Σ为随机变量x的协方差矩阵,μ为x的均值,简记为
信息矩阵+信息矢量的形式可以由上式推导而来
现在定义信息矩阵
Ω
=
Σ
?
1
Ω=Σ^{?1}
Ω=Σ?1 ,信息矢量
ξ
=
Σ
?
1
μ
=
Ω
μ
ξ=Σ^{?1}μ=Ωμ
ξ=Σ?1μ=Ωμ,则
卡尔曼滤波推导过程
卡尔曼滤波中的条件独立:
- 当给定某个时刻的状态变量
x
n
x_n
xn?,该时刻的观测变量
z
n
z_n
zn?与之前的任意观测变量条件独立
p
(
z
k
∣
x
k
,
z
k
?
1
,
.
.
.
,
z
1
)
=
p
(
z
k
∣
x
k
)
(1)
{\color{Red} p(z_k|x_k,z_{k-1},...,z_1)=p(z_k|x_k) } \tag{1}
p(zk?∣xk?,zk?1?,...,z1?)=p(zk?∣xk?)(1)
根据卡尔曼滤波模型的假设,当我们知道了状态变量的取值时,那么对应的观测变量的分布就确定了,它与更早之前的观测无关(事实上与更早之前的任意状态变量也无关),状态变量的取值就是所需的全部信息。
- 当给定某一时刻的状态变量
x
k
?
1
x_{k-1}
xk?1?,下一时刻的状态变量
x
k
x_k
xk?与之前的任意观测变量条件独立
p
(
x
k
∣
x
k
?
1
,
z
k
?
1
,
.
.
.
,
z
1
)
=
p
(
x
k
∣
x
k
?
1
)
(2)
{\color{Red} p(x_k|x_{k-1},z_{k-1},...,z_1) = p(x_k|x_{k-1})} \tag{2}
p(xk?∣xk?1?,zk?1?,...,z1?)=p(xk?∣xk?1?)(2)
根据卡尔曼滤波模型的假设,当我们知道了上一时刻状态变量t的取值时,那么下一时刻状态变量的分布就确定了,它与更早之前的观测无关(事实上与更早之前的任意状态变量也无关),前一时刻状态变量的取值就是所需的全部信息。
在推到卡尔曼滤波过程中,都是为了“凑出”运动变量、观测变量的条件概率
p
(
x
k
∣
x
k
?
1
)
p(x_k|x_{k-1})
p(xk?∣xk?1?)和
p
(
z
k
∣
x
k
)
p(z_k|x_k)
p(zk?∣xk?),基于以上两点,应用贝叶斯定理:
p
(
x
k
∣
z
k
,
z
k
?
1
,
.
.
.
,
z
1
)
=
p
(
z
k
∣
x
k
,
z
k
?
1
,
.
.
.
,
z
1
)
p
(
x
k
∣
z
k
?
1
,
.
.
.
,
z
1
)
p
(
z
k
∣
z
k
?
1
,
.
.
.
,
z
1
)
=
p
(
z
k
∣
x
k
)
p
(
x
k
∣
z
k
?
1
,
.
.
.
,
z
1
)
p
(
z
k
∣
z
k
?
1
,
.
.
.
,
z
1
)
(3)
{\color{Red} \begin{aligned} p(x_k|z_k,z_{k-1},...,z_1)&= \frac{p(z_k|x_k,z_{k-1},...,z_1)p(x_k|z_{k-1},...,z_1)}{p(z_k|z_{k-1},...,z_1)} \\ &= \frac{p(z_k|x_k)p(x_k|z_{k-1},...,z_1)}{p(z_k|z_{k-1},...,z_1)} \tag{3} \end{aligned}}
p(xk?∣zk?,zk?1?,...,z1?)?=p(zk?∣zk?1?,...,z1?)p(zk?∣xk?,zk?1?,...,z1?)p(xk?∣zk?1?,...,z1?)?=p(zk?∣zk?1?,...,z1?)p(zk?∣xk?)p(xk?∣zk?1?,...,z1?)??(3) 上式用到式(1)的条件独立性,已经凑出观测变量的条件概率:
p
(
z
k
∣
x
k
)
p(z_k|x_k)
p(zk?∣xk?),为了推到出目标表达式,分子的第二项着手,引入
x
k
?
1
x_{k-1}
xk?1?,对其积分得:
p
(
x
k
∣
z
k
?
1
,
.
.
.
,
z
1
)
=
∫
x
k
?
1
p
(
x
k
∣
x
k
?
1
,
z
k
?
1
,
.
.
.
,
x
1
)
p
(
x
k
?
1
∣
z
k
?
1
,
.
.
.
,
z
1
)
d
x
k
?
1
=
∫
x
k
?
1
p
(
x
k
∣
x
k
?
1
)
α
^
(
x
k
?
1
)
d
x
k
?
1
(4)
{\color{Red} \begin{aligned} p(x_k|z_{k-1},...,z_1) &= \int_{x_{k-1}}^{}p(x_k|x_{k-1},z_{k-1},...,x_1)p(x_{k-1}|z_{k-1},...,z_1) dx_{k-1}\\ & = \int_{x_{k-1}}^{}p(x_k|x_{k-1})\hat {\alpha }(x_{k-1})dx_{k-1} \tag{4} \end{aligned}}
p(xk?∣zk?1?,...,z1?)?=∫xk?1??p(xk?∣xk?1?,zk?1?,...,x1?)p(xk?1?∣zk?1?,...,z1?)dxk?1?=∫xk?1??p(xk?∣xk?1?)α^(xk?1?)dxk?1??(4) 上式用到式(2)的条件独立性,又凑出
p
(
x
k
∣
x
k
?
1
)
p(x_k|x_{k-1})
p(xk?∣xk?1?),将式(4)带入式(3)得:
α
^
(
x
k
)
=
p
(
z
k
∣
x
k
)
∫
x
k
?
1
p
(
x
k
∣
x
k
?
1
)
α
^
(
x
k
?
1
)
d
x
k
?
1
p
(
z
k
∣
z
k
?
1
,
.
.
.
,
z
1
)
(5)
{\color{Red} \begin{aligned} \hat {\alpha }(x_{k})=\frac{p(z_k|x_k)\int_{x_{k-1}}^{}p(x_k|x_{k-1})\hat {\alpha }(x_{k-1})dx_{k-1}}{p(z_k|z_{k-1},...,z_1)} \tag{5} \end{aligned}}
α^(xk?)=p(zk?∣zk?1?,...,z1?)p(zk?∣xk?)∫xk?1??p(xk?∣xk?1?)α^(xk?1?)dxk?1???(5)
因为在卡尔曼滤波模型中,观测模型和状态转移概率模型都是线型高斯分布,因此基于此推导出的所有概率分布也是高斯分布。高斯分布由均值向量和协方差矩阵表示,接下来就是要把(5)式关于概率分布的递推式转换为关于均值向量和协方差矩阵的递推式,这样才能用计算机实现。 为此,需要引入另一个预备知识:
高斯分布的贝叶斯定理 已知一个多维高斯分布:
p
(
x
)
~
N
(
x
∣
μ
,
Λ
?
1
)
p(x) \sim N(x| \mu, \Lambda ^{-1})
p(x)~N(x∣μ,Λ?1) 另一个多维随机变量[公式]在已知[公式]的条件下也服从高斯分布,且其均值为[公式]的线性变换,即
p
(
x
)
~
N
(
y
∣
A
x
+
b
,
L
?
1
)
p(x) \sim N(y| Ax+b,L ^{-1})
p(x)~N(y∣Ax+b,L?1) 其中,
A
A
A和
b
b
b是线性变换参数,
L
L
L和
Λ
\Lambda
Λ是信息矩阵(协方差的逆矩阵)
p
(
y
∣
x
)
p(y|x)
p(y∣x)定义了一个线性高斯模型,则
p
(
y
)
p(y)
p(y)和
p
(
x
∣
y
)
p(x|y)
p(x∣y)也服从高斯分布,均值和方差分别为:
E
(
y
)
=
A
μ
+
b
c
o
v
(
y
)
=
L
?
1
+
A
Λ
?
1
A
T
(6)
E(y)=A\mu +b \\ cov(y)=L^{-1}+A \Lambda ^{-1}A^T \tag{6}
E(y)=Aμ+bcov(y)=L?1+AΛ?1AT(6)
E
(
x
∣
y
)
=
(
Λ
+
A
T
L
A
)
?
1
(
A
T
L
(
y
?
b
)
+
Λ
μ
)
c
o
v
(
x
∣
y
)
=
(
Λ
+
A
T
L
A
)
?
1
(7)
E(x|y)= (\Lambda +A^T LA)^{-1}(A^TL(y-b)+\Lambda \mu) \\ cov(x|y)= (\Lambda +A^TLA)^{-1} \tag{7}
E(x∣y)=(Λ+ATLA)?1(ATL(y?b)+Λμ)cov(x∣y)=(Λ+ATLA)?1(7) 结论:已知一个随机变量的高斯分布及其条件高斯分布,求另一个随机变量的高斯分布及其条件高斯分布。
记
α
^
\hat {\alpha }
α^的均值和方差为
μ
k
\mu_k
μk?和
V
k
V_k
Vk?,有:
α
^
(
x
k
)
=
N
(
x
k
∣
μ
k
,
V
k
)
(8)
\color{Red} \hat {\alpha } (x_k)= N(x_k|\mu_k,V_k) \tag{8}
α^(xk?)=N(xk?∣μk?,Vk?)(8)
转化为问题:已知一个随机变量的高斯分布及其条件高斯分布,求另一个随机变量的高斯分布
∫
x
k
?
1
p
(
x
k
∣
x
k
?
1
)
α
^
(
x
k
?
1
)
d
x
k
?
1
=
N
(
x
k
∣
A
μ
k
?
1
,
P
k
?
1
)
(9)
\color{Red} \int_{x_{k-1}}^{}p(x_k|x_{k-1})\hat \alpha (x_{k-1})dx_{k-1}=N(x_k|A\mu_{k-1},P_{k-1}) \tag{9}
∫xk?1??p(xk?∣xk?1?)α^(xk?1?)dxk?1?=N(xk?∣Aμk?1?,Pk?1?)(9) 其中:
P
k
?
1
=
L
?
1
+
A
V
k
?
1
A
T
(10)
\color{Red} P_{k-1}= L^{-1} +AV_{k-1}A^T \tag{10}
Pk?1?=L?1+AVk?1?AT(10)
贝叶斯公式:
p
(
x
k
∣
z
k
)
=
p
(
z
k
∣
x
k
)
p
(
x
k
)
p
(
z
k
)
(11)
p(x_k|z_k)=\frac{p(z_k|x_k)p(x_k)}{p(z_k)} \tag{11}
p(xk?∣zk?)=p(zk?)p(zk?∣xk?)p(xk?)?(11)
p
(
x
k
∣
z
k
,
z
k
?
1
,
.
.
.
,
z
1
)
=
α
^
(
x
k
)
=
p
(
z
k
∣
x
k
)
.
N
(
x
k
∣
A
μ
k
?
1
,
P
k
?
1
)
p
(
z
k
∣
z
k
?
1
,
.
.
.
,
z
1
)
(12)
{\color{Red} \begin{aligned} p(x_k|z_k,z_{k-1},...,z_1) &=\hat {\alpha }(x_{k})=\frac{p(z_k|x_k).N(x_k|A\mu_{k-1},P_{k-1})}{p(z_k|z_{k-1},...,z_1)} \tag{12} \end{aligned}}
p(xk?∣zk?,zk?1?,...,z1?)?=α^(xk?)=p(zk?∣zk?1?,...,z1?)p(zk?∣xk?).N(xk?∣Aμk?1?,Pk?1?)??(12) 对比贝叶斯公式(11)和式(12),(9)~(10)式的结果相当于我们已经求出了其中的
p
(
x
k
)
p(x_k)
p(xk?)。通过观察,这又是“已知一个随机变量的高斯分布及其条件高斯分布,求另一个随机变量的高斯分布”的问题,只不过此时变量的对应关系变为:
x
…
…
x
k
y
…
…
z
k
μ
…
…
A
μ
k
?
1
Λ
?
1
…
…
P
k
?
1
A
…
…
C
b
…
…
0
L
?
1
…
…
∑
x……x_k\\ y……z_k\\ \mu……A\mu_{k-1}\\ \Lambda^{-1}……P_{k-1}\\ A……C\\ b……0\\ L^{-1}……\sum
x……xk?y……zk?μ……Aμk?1?Λ?1……Pk?1?A……Cb……0L?1……∑ 根据(7)式可以直接写出:
μ
k
=
(
P
k
?
1
?
1
+
C
T
∑
?
1
C
)
?
1
z
k
+
P
k
?
1
?
1
A
μ
k
?
1
V
k
?
1
=
(
P
k
?
1
?
1
+
C
T
∑
?
1
C
)
?
1
(13)
\color{Red} \mu_k =(P^{-1}_{k-1} + C^T\sum{}{}^{-1} C)^{-1}z_k+P_{k-1}^{-1}A\mu_{k-1} \\ V_{k-1}=(P_{k-1}^{-1}+C^T\sum{}{}^{-1}C)^{-1} \tag{13}
μk?=(Pk?1?1?+CT∑?1C)?1zk?+Pk?1?1?Aμk?1?Vk?1?=(Pk?1?1?+CT∑?1C)?1(13)
上式为卡尔曼滤波公式的原始形式,对该式继续变形:
Woodbury等式
(
A
+
B
D
?
1
C
)
?
1
=
A
?
1
?
A
?
1
B
(
D
+
C
A
?
1
B
)
?
1
C
A
?
1
(14)
(A+BD^{-1}C)^{-1} = A^{-1}-A^{-1}B(D+CA^{-1}B)^{-1}CA^{-1} \tag{14}
(A+BD?1C)?1=A?1?A?1B(D+CA?1B)?1CA?1(14)
依式(14)对式(13)变形:
V
k
=
(
P
k
?
1
?
1
+
C
T
∑
?
1
C
)
?
1
=
P
k
?
1
?
P
k
?
1
C
T
(
∑
+
C
P
k
?
1
C
T
)
?
1
C
P
k
?
1
(15)
V_k =(P^{-1}_{k-1}+C^T\sum{}{}^{-1}C)^{-1} \\ = P_{k-1}-P_{k-1}C^T(\sum{}{}+CP_{k-1}C^T)^{-1}CP_{k-1} \tag{15}
Vk?=(Pk?1?1?+CT∑?1C)?1=Pk?1??Pk?1?CT(∑+CPk?1?CT)?1CPk?1?(15)
记卡尔曼增益
K
k
=
P
k
?
1
C
T
(
∑
+
C
P
k
?
1
C
T
)
?
1
K_k=P_{k-1}C^T(\sum{}{}+CP_{k-1}C^T)^{-1}
Kk?=Pk?1?CT(∑+CPk?1?CT)?1 从而:
V
k
=
(
P
k
?
1
?
1
+
C
T
∑
?
1
C
)
?
1
=
P
k
?
1
?
K
k
C
P
k
?
1
=
(
I
?
K
k
C
)
P
k
?
1
(16)
V_k =(P^{-1}_{k-1}+C^T\sum{}{}^{-1}C)^{-1} \\ = P_{k-1}-K_kCP_{k-1} \tag{16} = (I-K_kC)P_{k-1}
Vk?=(Pk?1?1?+CT∑?1C)?1=Pk?1??Kk?CPk?1?=(I?Kk?C)Pk?1?(16)
将(16)式带入(13)式整理得:
此即为后验分布的均值向量的最终形式,第二个等号对矩阵和相乘做展开,关键的技巧在于第三个等号,通过对第一项乘以一个单位阵
I
=
(
C
P
k
?
1
C
T
+
∑
)
?
1
(
C
P
k
?
1
C
T
+
∑
)
I=(CP_{k-1}C^T+\sum)^{-1}(CP_{k-1}C^T+\sum)
I=(CPk?1?CT+∑)?1(CPk?1?CT+∑)凑出
K
k
K_k
Kk?,后面就是简单的乘法展开、求和与合并同类项了。
参考:https://zhuanlan.zhihu.com/p/69534520
|