卡尔曼滤波

1:卡尔曼滤波是一种线性动态模型,
在这里插入图片描述
针对的也是有隐状态 和观测状态的模型,和HMM不同的是:
卡尔曼滤波不要求隐状态是离散的,并且前一个状态和后一个状态满足线性关系,也叫线性高斯模型,噪声服从正态分布
在这里插入图片描述
前提条件也符合HMM的前提假设条件:

  • 齐次马尔科夫假设
  • 观测独立假设
    公式满足:
    在这里插入图片描述
    卡尔曼滤波属于推断问题的一种,已知x1,x2,x3,..xtx_1,x_2,x_3,..x_tx1,x2,x3,..xt时刻的观测状态,求zt隐状态的概率:z_t隐状态的概率:zt
    p(zt∣x1,x2,..xt)p(z_t|x_1,x_2,..x_t)p(ztx1,x2,..xt)
    公式推导:
    p(zt∣x1,x2,..xt)=p(zt,x1,x2,..xt)p(x1,x2,..xt)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(ztx1,x2,..xt)=p(x1,x2,..xt)p(zt,x1,x2,..xt)
    由于p(x1,x2,..xt)p(x_1,x_2,..x_t)p(x1,x2,..xt)可以直接求出,和ztz_tzt没有关系,这里可以视作常量
    =1C∗p(x1,x2,..xt,zt)= \frac{1}{C}*p(x_1,x_2,..x_t,z_t)=C1p(x1,x2,..xt,zt)
    吸出xtx_txt
    =1C∗p(xt∣x1,x2,..xt−1,zt)p(x1,x2,..xt−1,zt)= \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)=C1p(xtx1,x2,..xt1,zt)p(x1,x2,..xt1,zt)
    应用观测独立假设和贝叶斯公式
    =1C∗p(xt∣zt)p(zt∣x1,x2,..xt−1)p(x1,x2,..xt−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})=C1p(xtzt)p(ztx1,x2,..xt1)p(x1,x2,..xt1)
    这里p(x1,x2,..xt−1)p(x_1,x_2,..x_{t-1})p(x1,x2,..xt1)也可以作为常量处理
    =1C∗p(xt∣zt)p(zt∣x1,x2,..xt−1)= \frac{1}{C}*p(x_t|z_t)p(z_t| x_1,x_2,..x_{t-1})=C1p(xtzt)p(ztx1,x2,..xt1)
    应用联合分布和边缘分布关系
    =1C∗p(xt∣zt)∫zt−1p(zt−1,zt∣x1,x2,..xt−1)dzt−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}=C1p(xtzt)zt1p(zt1,ztx1,x2,..xt1)dzt1
    =1C∗p(xt∣zt)∫zt−1p(zt∣x1,x2,..xt−1,zt−1)p(zt−1∣x1,x2,..xt−1)dzt−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}=C1p(xtzt)zt1p(ztx1,x2,..xt1,zt1)p(zt1x1,x2,..xt1)dzt1
    应用齐次马尔科夫假设:
    =1C∗p(xt∣zt)∫zt−1p(zt∣zt−1)p(zt−1∣x1,x2,..xt−1)dzt−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}=C1p(xtzt)zt1p(ztzt1)p(zt1x1,x2,..xt1)dzt1
    可以看到 p(zt−1∣x1,x2,..xt−1)是t−1时刻的卡尔曼滤波p(z_{t-1} |x_1,x_2,..x_{t-1})是t-1时刻的卡尔曼滤波p(zt1x1,x2,..xt1)t1

通常记作:
Bel(zt)=1C∗p(xt∣zt)Bel(zt)‾Bel(z_t)= \frac{1}{C}*p(x_t|z_t)\overline{Bel(z_t)}Bel(zt)=C1p(xtzt)Bel(zt) 叫做更新过程,也叫修正过程

Bel(zt)‾=∫zt−1p(zt∣zt−1)Bel(zt−1)dzt−1\overline{Bel(z_t)}=\int_{z_{t-1}} p(z_t|z_{t-1}) Bel(z_{t-1})dz_{t-1}Bel(zt)=zt1p(ztzt1)Bel(zt1)dzt1 叫做预测过程

2:正态分布:
一元正态分布:
p(x)∼N(μ,σ2):p(x)=12πσe−12(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πσ1e21σ2(xμ)2
多元正态分布:
p(x)∼N(μ,Σ):p(x)=1(2π)n/2∣Σ∣1/2e−12(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/21e21(xμ)tΣ1(xμ)
其中μ∈Rn,Σ∈Rn∗n是半正定方差矩阵,∣Σ∣表示方差矩阵的行列式\mu \in R^n ,\Sigma \in R^{n*n}是半正定方差矩阵,\left| {{\Sigma }} \right| 表示方差矩阵的行列式μRn,ΣRnnΣ

3:正态分布的特点:一代高斯,代代高斯

首先,高斯变量线性变换后,仍为高斯分布,均值和方差如下:
X∼N(μ,Σ)Y=AX+B  }⇒Y∼N(Aμ+B,AΣAT) \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}) XN(μ,Σ)Y=AX+B}YN(Aμ+B,AΣAT)
其次:两个高斯的线性组合仍然是高斯分布
X1∼N(μ1,σ12)X2∼N(μ2,σ22)}⇒k1X1+k2X2+c∼N(k1μ1+k2μ2+c,k12σ12+k22σ22) \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) X1N(μ1,σ12)X2N(μ2,σ22)}k1X1+k2X2+cN(k1μ1+k2μ2+c,k12σ12+k22σ22)
最后,两个相互独立的高斯变量的乘积,仍然为高斯分布,均值和方差如下:
X1∼N(μ1,σ12)X2∼N(μ2,σ22)}⇒p(X1)⋅p(X2)∼N(σ22σ12+σ22μ1+σ12σ12+σ22μ2,σ12σ22σ12+σ22) \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) X1N(μ1,σ12)X2N(μ2,σ22)}p(X1)p(X2)N(σ12+σ22σ22μ1+σ12+σ22σ12μ2,σ12+σ22σ12σ22)

4: Kalman滤波:
状态方程:zt=Azt−1+But+εtz_t=Az_{t-1}+Bu_t+\varepsilon_tzt=Azt1+But+εt
观测方程:xt=Hzt+δtx_t=Hz_{t}+\delta_txt=Hzt+δt
其中:
εt∼N(0,Rt)\varepsilon_t \sim N(0,R_t)εtN(0,Rt)
δt∼N(0,Qt)\delta_t \sim N(0,Q_t)δtN(0,Qt)
z0∼N(μ0,Pt)z_0 \sim N(\mu_0,P_t)z0N(μ0,Pt)
应用正态分布线性变换的特点有:
p(xt∣zt)∼N(Hzt,Qt)p(x_t|z_t) \sim N(Hz_{t},Q_t)p(xtzt)N(Hzt,Qt)
p(zt∣zt−1)∼N(Azt−1+But,Rt)p(z_t|z_{t-1}) \sim N(Az_{t-1}+Bu_t,R_t)p(ztzt1)N(Azt1+But,Rt)
pt=APt−1AT+Rtp_t=AP_{t-1}A^T+R_tpt=APt1AT+Rt

zt:是t时刻的状态,是n维向量z_t:是t时刻的状态,是n维向量zt:tn
At:是n∗n状态转移矩阵(在没有输入的影响下)A_t:是n*n状态转移矩阵(在没有输入的影响下)Atnn
Bt:是n∗n矩阵(表示ut如何影响zt)B_t:是n*n矩阵(表示u_t如何影响z_t)Btnnutzt
ut:是t时刻输入向量u_t:是t时刻输入向量utt
xt:是t时刻观测向量,m维向量x_t:是t时刻观测向量,m维向量xtt,m
Ht:是m∗n发射概率矩阵(zt−−>xt)H_t:是m*n发射概率矩阵(z_{t} -->x_t)Htmnzt>xt
Rt:是n∗n矩阵,表示隐状态噪声εt的方差矩阵R_t:是n*n矩阵,表示隐状态噪声\varepsilon_t 的方差矩阵Rtnnεt
Qt:是m∗m矩阵,表示观测状态噪声δt的方差矩阵Q_t:是m*m矩阵,表示观测状态噪声\delta_t 的方差矩阵Qtmmδt
Pt:是n∗n矩阵,表示t时刻隐状态zt的方差矩阵P_t:是n*n矩阵,表示t时刻隐状态z_t的方差矩阵Ptnntzt

5:Kalman滤波算法的推导
1):系统初始状态
Bel(z0)=p(z0∣x0)∼N(μ0,P0)Bel(z_0)=p(z_0|x_0) \sim N(\mu_0,P_0)Bel(z0)=p(z0x0)N(μ0,P0)
2):预测过程的推导,这里列出预测过程公式:
Bel(zt)‾=∫zt−1p(zt∣zt−1)Bel(zt−1)\overline{Bel(z_t)}=\int_{z_{t-1}} p(z_t|z_{t-1}) Bel(z_{t-1})Bel(zt)=zt1p(ztzt1)Bel(zt1)
因为:
p(zt∣zt−1)∼N(Azt−1+But,Rt)p(z_t|z_{t-1}) \sim N(Az_{t-1}+Bu_t,R_t)p(ztzt1)N(Azt1+But,Rt)
Bel(zt−1)∼N(μt−1,Pt−1)Bel(z_{t-1}) \sim N(\mu_{t-1},P_{t-1})Bel(zt1)N(μt1,Pt1)
所以:
Bel(zt)‾=∫zt−1p(zt∣zt−1)Bel(zt−1)\overline{Bel(z_t)}=\int_{z_{t-1}} p(z_t|z_{t-1}) Bel(z_{t-1})Bel(zt)=zt1p(ztzt1)Bel(zt1)
=∫zt−11(2π)n/2∣Rt∣1/2e−12(zt−Azt−1−But)tRt−1(zt−Azt−1−But)∗1(2π)n/2∣Pt∣1/2e−12(zt−1−μt−1)tPt−1(zt−1−μt−1)dzt−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}=zt1(2π)n/2Rt1/21e21(ztAzt1But)tRt1(ztAzt1But)(2π)n/2Pt1/21e21(zt1μt1)tPt1(zt1μt1)dzt1

因为状态方程满足线性关系
所以有:均值更新满足
μt=Aμt−1+But\mu_t=A\mu_{t-1}+Bu_tμt=Aμt1+But
方差矩阵更新满足:
Pt=AtPt−1AP_t=A_tP_{t-1}A^{}Pt=AtPt1A
3)更新过程的推导

Bel(zt)=1C∗p(xt∣zt)Bel(zt)‾Bel(z_t)= \frac{1}{C}*p(x_t|z_t)\overline{Bel(z_t)}Bel(zt)=C1p(xtzt)Bel(zt)

bel(zt)= 1C p(xt∣zt)bel‾(zt)⇓⇓∼N(Htxt,Qt)∼N(μ‾t,P‾t)⇓bel(zt)=1C  exp⁡{−12(xt−Htzt)TQt−1(xt−Htzt)}exp⁡{−12(zt−μˉt)TPˉt−1(zt−μˉ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(xtzt)bel(zt)N(Htxt,Qt)N(μt,Pt)bel(zt)=C1exp{21(xtHtzt)TQt1(xtHtzt)}exp{21(ztμˉt)TPˉt1(ztμˉt)}
均值和方差的迭代公式满足(这个不知道咋推导的 ^^)
bel(xt)={μt=μˉt+Kt(zt−Htμˉt)Pt=(I−KtHt)P‾twithKt=P‾tHtT(HtP‾tHtT+Qt)−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(ztHtμˉt)Pt=(IKtHt)PtwithKt=PtHtT(HtPtHtT+Qt)1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值