1:卡尔曼滤波是一种线性动态模型,
针对的也是有隐状态 和观测状态的模型,和HMM不同的是:
卡尔曼滤波不要求隐状态是离散的,并且前一个状态和后一个状态满足线性关系,也叫线性高斯模型,噪声服从正态分布
前提条件也符合HMM的前提假设条件:
- 齐次马尔科夫假设
- 观测独立假设
公式满足:
卡尔曼滤波属于推断问题的一种,已知 x 1 , x 2 , x 3 , . . x t x_1,x_2,x_3,..x_t x1,x2,x3,..xt时刻的观测状态,求 z t 隐 状 态 的 概 率 : z_t隐状态的概率: zt隐状态的概率:
p ( z t ∣ x 1 , x 2 , . . x t ) p(z_t|x_1,x_2,..x_t) p(zt∣x1,x2,..xt)
公式推导:
p ( z t ∣ x 1 , x 2 , . . x t ) = p ( z t , x 1 , x 2 , . . x t ) p ( x 1 , x 2 , . . x t ) p(z_t|x_1,x_2,..x_t)=\displaystyle \frac{p(z_t,x_1,x_2,..x_t)}{p(x_1,x_2,..x_t)} p(zt∣x1,x2,..xt)=p(x1,x2,..xt)p(zt,x1,x2,..xt)
由于 p ( x 1 , x 2 , . . x t ) p(x_1,x_2,..x_t) p(x1,x2,..xt)可以直接求出,和 z t z_t zt没有关系,这里可以视作常量
= 1 C ∗ p ( x 1 , x 2 , . . x t , z t ) = \frac{1}{C}*p(x_1,x_2,..x_t,z_t) =C1∗p(x1,x2,..xt,zt)
吸出 x t x_t xt
= 1 C ∗ p ( x t ∣ x 1 , x 2 , . . x t − 1 , z t ) p ( x 1 , x 2 , . . x t − 1 , z t ) = \frac{1}{C}*p(x_t|x_1,x_2,..x_{t-1},z_t)p(x_1,x_2,..x_{t-1},z_t) =C1∗p(xt∣x1,x2,..xt−1,zt)p(x1,x2,..xt−1,zt)
应用观测独立假设和贝叶斯公式
= 1 C ∗ p ( x t ∣ z t ) p ( z t ∣ x 1 , x 2 , . . x t − 1 ) p ( x 1 , x 2 , . . x t − 1 ) = \frac{1}{C}*p(x_t|z_t)p(z_t| x_1,x_2,..x_{t-1})p(x_1,x_2,..x_{t-1}) =C1∗p(xt∣zt)p(zt∣x1,x2,..xt−1)p(x1,x2,..xt−1)
这里 p ( x 1 , x 2 , . . x t − 1 ) p(x_1,x_2,..x_{t-1}) p(x1,x2,..xt−1)也可以作为常量处理
= 1 C ∗ p ( x t ∣ z t ) p ( z t ∣ x 1 , x 2 , . . x t − 1 ) = \frac{1}{C}*p(x_t|z_t)p(z_t| x_1,x_2,..x_{t-1}) =C1∗p(xt∣zt)p(zt∣x1,x2,..xt−1)
应用联合分布和边缘分布关系
= 1 C ∗ p ( x t ∣ z t ) ∫ z t − 1 p ( z t − 1 , z t ∣ x 1 , x 2 , . . x t − 1 ) d z t − 1 = \frac{1}{C}*p(x_t|z_t) \int_{z_{t-1}}p(z_{t-1},z_{t} |x_1,x_2,..x_{t-1})dz_{t-1} =C1∗p(xt∣zt)∫zt−1p(zt−1,zt∣x1,x2,..xt−1)dzt−1
= 1 C ∗ p ( x t ∣ z t ) ∫ z t − 1 p ( z t ∣ x 1 , x 2 , . . x t − 1 , z t − 1 ) p ( z t − 1 ∣ x 1 , x 2 , . . x t − 1 ) d z t − 1 = \frac{1}{C}*p(x_t|z_t) \int_{z_{t-1}} p(z_t|x_1,x_2,..x_{t-1},z_{t-1}) p(z_{t-1} |x_1,x_2,..x_{t-1})dz_{t-1} =C1∗p(xt∣zt)∫zt−1p(zt∣x1,x2,..xt−1,zt−1)p(zt−1∣x1,x2,..xt−1)dzt−1
应用齐次马尔科夫假设:
= 1 C ∗ p ( x t ∣ z t ) ∫ z t − 1 p ( z t ∣ z t − 1 ) p ( z t − 1 ∣ x 1 , x 2 , . . x t − 1 ) d z t − 1 = \frac{1}{C}*p(x_t|z_t) \int_{z_{t-1}} p(z_t|z_{t-1}) p(z_{t-1} |x_1,x_2,..x_{t-1})dz_{t-1} =C1∗p(xt∣zt)∫zt−1p(zt∣zt−1)p(zt−1∣x1,x2,..xt−1)dzt−1
可以看到 p ( z t − 1 ∣ x 1 , x 2 , . . x t − 1 ) 是 t − 1 时 刻 的 卡 尔 曼 滤 波 p(z_{t-1} |x_1,x_2,..x_{t-1})是t-1时刻的卡尔曼滤波 p(zt−1∣x1,x2,..xt−1)是t−1时刻的卡尔曼滤波
通常记作:
B
e
l
(
z
t
)
=
1
C
∗
p
(
x
t
∣
z
t
)
B
e
l
(
z
t
)
‾
Bel(z_t)= \frac{1}{C}*p(x_t|z_t)\overline{Bel(z_t)}
Bel(zt)=C1∗p(xt∣zt)Bel(zt) 叫做更新过程,也叫修正过程
B e l ( z t ) ‾ = ∫ z t − 1 p ( z t ∣ z t − 1 ) B e l ( z t − 1 ) d z t − 1 \overline{Bel(z_t)}=\int_{z_{t-1}} p(z_t|z_{t-1}) Bel(z_{t-1})dz_{t-1} Bel(zt)=∫zt−1p(zt∣zt−1)Bel(zt−1)dzt−1 叫做预测过程
2:正态分布:
一元正态分布:
p
(
x
)
∼
N
(
μ
,
σ
2
)
:
p
(
x
)
=
1
2
π
σ
e
−
1
2
(
x
−
μ
)
2
σ
2
\begin{array}{l} p(x)\sim N(\mu ,{\sigma ^2}):\\ p(x) = \frac{1}{{\sqrt {2\pi } \sigma }}{e^{ - \frac{1}{2}\frac{{{{(x - \mu )}^2}}}{{{\sigma ^2}}}}} \end{array}
p(x)∼N(μ,σ2):p(x)=2πσ1e−21σ2(x−μ)2
多元正态分布:
p
(
x
)
∼
N
(
μ
,
Σ
)
:
p
(
x
)
=
1
(
2
π
)
n
/
2
∣
Σ
∣
1
/
2
e
−
1
2
(
x
−
μ
)
t
Σ
−
1
(
x
−
μ
)
\begin{array}{l} p({{x}})\sim {\rm N}({\bf{\mu }},{{\Sigma }}):\\ p({{x}}) = \frac{1}{{{{(2\pi )}^{n/2}}{{\left| {{\Sigma }} \right|}^{1/2}}}}{e^{ - \frac{1}{2}{{({{x}} - {{\mu }})}^t}{{{\Sigma }}^{ - 1}}({{x}} - {{\mu }})}} \end{array}
p(x)∼N(μ,Σ):p(x)=(2π)n/2∣Σ∣1/21e−21(x−μ)tΣ−1(x−μ)
其中
μ
∈
R
n
,
Σ
∈
R
n
∗
n
是
半
正
定
方
差
矩
阵
,
∣
Σ
∣
表
示
方
差
矩
阵
的
行
列
式
\mu \in R^n ,\Sigma \in R^{n*n}是半正定方差矩阵,\left| {{\Sigma }} \right| 表示方差矩阵的行列式
μ∈Rn,Σ∈Rn∗n是半正定方差矩阵,∣Σ∣表示方差矩阵的行列式
3:正态分布的特点:一代高斯,代代高斯
首先,高斯变量线性变换后,仍为高斯分布,均值和方差如下:
X
∼
N
(
μ
,
Σ
)
Y
=
A
X
+
B
}
⇒
Y
∼
N
(
A
μ
+
B
,
A
Σ
A
T
)
\left. {\begin{array}{l} {X\sim N(\mu ,\Sigma )}\\ {Y = AX + B\quad \;} \end{array}} \right\}\quad \Rightarrow \quad Y\sim N(A\mu + B,A\Sigma {A^T})
X∼N(μ,Σ)Y=AX+B}⇒Y∼N(Aμ+B,AΣAT)
其次:两个高斯的线性组合仍然是高斯分布
X
1
∼
N
(
μ
1
,
σ
1
2
)
X
2
∼
N
(
μ
2
,
σ
2
2
)
}
⇒
k
1
X
1
+
k
2
X
2
+
c
∼
N
(
k
1
μ
1
+
k
2
μ
2
+
c
,
k
1
2
σ
1
2
+
k
2
2
σ
2
2
)
\left. {\begin{array}{l} {{X_1}\sim N({\mu _1},\sigma _1^2)}\\ {{X_2}\sim N({\mu _2},\sigma _2^2)} \end{array}} \right\} \Rightarrow k_1{X_1} +k_2 {X_2}+c \sim N\left( {{k_1\mu _1} + k_2{\mu _2}+c,k_1^2\sigma _1^2 + k_2^2\sigma _2^2} \right)
X1∼N(μ1,σ12)X2∼N(μ2,σ22)}⇒k1X1+k2X2+c∼N(k1μ1+k2μ2+c,k12σ12+k22σ22)
最后,两个相互独立的高斯变量的乘积,仍然为高斯分布,均值和方差如下:
X
1
∼
N
(
μ
1
,
σ
1
2
)
X
2
∼
N
(
μ
2
,
σ
2
2
)
}
⇒
p
(
X
1
)
⋅
p
(
X
2
)
∼
N
(
σ
2
2
σ
1
2
+
σ
2
2
μ
1
+
σ
1
2
σ
1
2
+
σ
2
2
μ
2
,
σ
1
2
σ
2
2
σ
1
2
+
σ
2
2
)
\left. {\begin{array}{l} {{X_1}\sim N({\mu _1},\sigma _1^2)}\\ {{X_2}\sim N({\mu _2},\sigma _2^2)} \end{array}} \right\} \Rightarrow p({X_1}) \cdot p({X_2}) \sim N\left( {\frac{{\sigma _2^2}}{{\sigma _1^2 + \sigma _2^2}}{\mu _1} + \frac{{\sigma _1^2}}{{\sigma _1^2 + \sigma _2^2}}{\mu _2}, \quad \frac{{\sigma _1^2\sigma _2^2}}{{\sigma _1^2 + \sigma _2^2}}} \right)
X1∼N(μ1,σ12)X2∼N(μ2,σ22)}⇒p(X1)⋅p(X2)∼N(σ12+σ22σ22μ1+σ12+σ22σ12μ2,σ12+σ22σ12σ22)
4: Kalman滤波:
状态方程:
z
t
=
A
z
t
−
1
+
B
u
t
+
ε
t
z_t=Az_{t-1}+Bu_t+\varepsilon_t
zt=Azt−1+But+εt
观测方程:
x
t
=
H
z
t
+
δ
t
x_t=Hz_{t}+\delta_t
xt=Hzt+δt
其中:
ε
t
∼
N
(
0
,
R
t
)
\varepsilon_t \sim N(0,R_t)
εt∼N(0,Rt)
δ
t
∼
N
(
0
,
Q
t
)
\delta_t \sim N(0,Q_t)
δt∼N(0,Qt)
z
0
∼
N
(
μ
0
,
P
t
)
z_0 \sim N(\mu_0,P_t)
z0∼N(μ0,Pt)
应用正态分布线性变换的特点有:
p
(
x
t
∣
z
t
)
∼
N
(
H
z
t
,
Q
t
)
p(x_t|z_t) \sim N(Hz_{t},Q_t)
p(xt∣zt)∼N(Hzt,Qt)
p
(
z
t
∣
z
t
−
1
)
∼
N
(
A
z
t
−
1
+
B
u
t
,
R
t
)
p(z_t|z_{t-1}) \sim N(Az_{t-1}+Bu_t,R_t)
p(zt∣zt−1)∼N(Azt−1+But,Rt)
p
t
=
A
P
t
−
1
A
T
+
R
t
p_t=AP_{t-1}A^T+R_t
pt=APt−1AT+Rt
z
t
:
是
t
时
刻
的
状
态
,
是
n
维
向
量
z_t:是t时刻的状态,是n维向量
zt:是t时刻的状态,是n维向量
A
t
:
是
n
∗
n
状
态
转
移
矩
阵
(
在
没
有
输
入
的
影
响
下
)
A_t:是n*n状态转移矩阵(在没有输入的影响下)
At:是n∗n状态转移矩阵(在没有输入的影响下)
B
t
:
是
n
∗
n
矩
阵
(
表
示
u
t
如
何
影
响
z
t
)
B_t:是n*n矩阵(表示u_t如何影响z_t)
Bt:是n∗n矩阵(表示ut如何影响zt)
u
t
:
是
t
时
刻
输
入
向
量
u_t:是t时刻输入向量
ut:是t时刻输入向量
x
t
:
是
t
时
刻
观
测
向
量
,
m
维
向
量
x_t:是t时刻观测向量,m维向量
xt:是t时刻观测向量,m维向量
H
t
:
是
m
∗
n
发
射
概
率
矩
阵
(
z
t
−
−
>
x
t
)
H_t:是m*n发射概率矩阵(z_{t} -->x_t)
Ht:是m∗n发射概率矩阵(zt−−>xt)
R
t
:
是
n
∗
n
矩
阵
,
表
示
隐
状
态
噪
声
ε
t
的
方
差
矩
阵
R_t:是n*n矩阵,表示隐状态噪声\varepsilon_t 的方差矩阵
Rt:是n∗n矩阵,表示隐状态噪声εt的方差矩阵
Q
t
:
是
m
∗
m
矩
阵
,
表
示
观
测
状
态
噪
声
δ
t
的
方
差
矩
阵
Q_t:是m*m矩阵,表示观测状态噪声\delta_t 的方差矩阵
Qt:是m∗m矩阵,表示观测状态噪声δt的方差矩阵
P
t
:
是
n
∗
n
矩
阵
,
表
示
t
时
刻
隐
状
态
z
t
的
方
差
矩
阵
P_t:是n*n矩阵,表示t时刻隐状态z_t的方差矩阵
Pt:是n∗n矩阵,表示t时刻隐状态zt的方差矩阵
5:Kalman滤波算法的推导
1):系统初始状态
B
e
l
(
z
0
)
=
p
(
z
0
∣
x
0
)
∼
N
(
μ
0
,
P
0
)
Bel(z_0)=p(z_0|x_0) \sim N(\mu_0,P_0)
Bel(z0)=p(z0∣x0)∼N(μ0,P0)
2):预测过程的推导,这里列出预测过程公式:
B
e
l
(
z
t
)
‾
=
∫
z
t
−
1
p
(
z
t
∣
z
t
−
1
)
B
e
l
(
z
t
−
1
)
\overline{Bel(z_t)}=\int_{z_{t-1}} p(z_t|z_{t-1}) Bel(z_{t-1})
Bel(zt)=∫zt−1p(zt∣zt−1)Bel(zt−1)
因为:
p
(
z
t
∣
z
t
−
1
)
∼
N
(
A
z
t
−
1
+
B
u
t
,
R
t
)
p(z_t|z_{t-1}) \sim N(Az_{t-1}+Bu_t,R_t)
p(zt∣zt−1)∼N(Azt−1+But,Rt)
B
e
l
(
z
t
−
1
)
∼
N
(
μ
t
−
1
,
P
t
−
1
)
Bel(z_{t-1}) \sim N(\mu_{t-1},P_{t-1})
Bel(zt−1)∼N(μt−1,Pt−1)
所以:
B
e
l
(
z
t
)
‾
=
∫
z
t
−
1
p
(
z
t
∣
z
t
−
1
)
B
e
l
(
z
t
−
1
)
\overline{Bel(z_t)}=\int_{z_{t-1}} p(z_t|z_{t-1}) Bel(z_{t-1})
Bel(zt)=∫zt−1p(zt∣zt−1)Bel(zt−1)
=
∫
z
t
−
1
1
(
2
π
)
n
/
2
∣
R
t
∣
1
/
2
e
−
1
2
(
z
t
−
A
z
t
−
1
−
B
u
t
)
t
R
t
−
1
(
z
t
−
A
z
t
−
1
−
B
u
t
)
∗
1
(
2
π
)
n
/
2
∣
P
t
∣
1
/
2
e
−
1
2
(
z
t
−
1
−
μ
t
−
1
)
t
P
t
−
1
(
z
t
−
1
−
μ
t
−
1
)
d
z
t
−
1
=\int_{z_{t-1}} \frac{1}{{{{(2\pi )}^{n/2}}{{\left| {{\R_t }} \right|}^{1/2}}}}{e^{ - \frac{1}{2}{{({{z_t}} - {{Az_{t-1}-Bu_t }})}^t}{{{R_t}}^{ - 1}}({{z_t}} - {{Az_{t-1}-Bu_t}})}}* \frac{1}{{{{(2\pi )}^{n/2}}{{\left| {{P_t }} \right|}^{1/2}}}}{e^{ - \frac{1}{2}{{({{z_{t-1}}} - \mu_{t-1})}^t}{{{P_t }}^{ - 1}}({{z_{t-1}}} - \mu_{t-1})}}dz_{t-1}
=∫zt−1(2π)n/2∣Rt∣1/21e−21(zt−Azt−1−But)tRt−1(zt−Azt−1−But)∗(2π)n/2∣Pt∣1/21e−21(zt−1−μt−1)tPt−1(zt−1−μt−1)dzt−1
因为状态方程满足线性关系
所以有:均值更新满足
μ
t
=
A
μ
t
−
1
+
B
u
t
\mu_t=A\mu_{t-1}+Bu_t
μt=Aμt−1+But
方差矩阵更新满足:
P
t
=
A
t
P
t
−
1
A
P_t=A_tP_{t-1}A^{}
Pt=AtPt−1A
3)更新过程的推导
B e l ( z t ) = 1 C ∗ p ( x t ∣ z t ) B e l ( z t ) ‾ Bel(z_t)= \frac{1}{C}*p(x_t|z_t)\overline{Bel(z_t)} Bel(zt)=C1∗p(xt∣zt)Bel(zt)
b
e
l
(
z
t
)
=
1
C
p
(
x
t
∣
z
t
)
b
e
l
‾
(
z
t
)
⇓
⇓
∼
N
(
H
t
x
t
,
Q
t
)
∼
N
(
μ
‾
t
,
P
‾
t
)
⇓
b
e
l
(
z
t
)
=
1
C
exp
{
−
1
2
(
x
t
−
H
t
z
t
)
T
Q
t
−
1
(
x
t
−
H
t
z
t
)
}
exp
{
−
1
2
(
z
t
−
μ
ˉ
t
)
T
P
ˉ
t
−
1
(
z
t
−
μ
ˉ
t
)
}
\begin{array}{l} bel({z_t}) = \,\quad \frac{1}{C} \quad \,p({x_t}|{z_t})\quad \quad \quad \quad \quad \quad \overline {bel} ({z_t})\\ \quad \quad \quad \quad \quad \quad \quad \quad \Downarrow \quad \quad \quad \quad \quad \quad \quad \quad \Downarrow \\ \quad \quad \quad \quad \quad \sim N\left( {{H_t}{x_t},{Q_t}} \right)\quad \quad \sim N\left( {{{\overline \mu }_t},{{\overline P }_t}} \right)\\ \quad \quad \quad \quad \quad \quad \quad \quad \Downarrow \\ bel({z_t}) = \frac{1}{C} \;\exp \left\{ { - \frac{1}{2}{{({x_t} - {H_t}{z_t})}^T}Q_t^{ - 1}({x_t} - {H_t}{z_t})} \right\}\exp \left\{ { - \frac{1}{2}{{({z_t} - {{\bar \mu }_t})}^T}\bar P_t^{ - 1}({z_t} - {{\bar \mu }_t})} \right\}\\ \end{array}
bel(zt)=C1p(xt∣zt)bel(zt)⇓⇓∼N(Htxt,Qt)∼N(μt,Pt)⇓bel(zt)=C1exp{−21(xt−Htzt)TQt−1(xt−Htzt)}exp{−21(zt−μˉt)TPˉt−1(zt−μˉt)}
均值和方差的迭代公式满足(这个不知道咋推导的 ^^)
b
e
l
(
x
t
)
=
{
μ
t
=
μ
ˉ
t
+
K
t
(
z
t
−
H
t
μ
ˉ
t
)
P
t
=
(
I
−
K
t
H
t
)
P
‾
t
w
i
t
h
K
t
=
P
‾
t
H
t
T
(
H
t
P
‾
t
H
t
T
+
Q
t
)
−
1
bel({x_t}) = \left\{ {\begin{array}{l} {{\mu _t} = {{\bar \mu }_t} + {K_t}({z_t} - {H_t}{{\bar \mu }_t})}\\ {{P_t} = (I - {K_t}{H_t}){{\overline P }_t}} \end{array}} \right.\quad \quad {\rm{with }}{K_t} = {\overline P _t}H_t^T{({H_t}{\overline P _t}H_t^T + {Q_t})^{ - 1}}
bel(xt)={μt=μˉt+Kt(zt−Htμˉt)Pt=(I−KtHt)PtwithKt=PtHtT(HtPtHtT+Qt)−1