当前位置: 首页 > web >正文

简说IMM

1. 基本概念和表述

齐次马尔科夫链

其次马尔可夫链的转移过程可表述为:
P i j { m j ( k + 1 ) ∣ m i ( k ) } = p i j ∀ i , j ∈ M f P_{ij}\{m_j(k+1)|m_i(k)\}=p_{ij} \qquad \forall i,j \in M_f Pij{mj(k+1)mi(k)}=piji,jMf
易理解, p i j p_{ij} pij表达了由 k k k时刻的模型 i i i转移到 k + 1 k+1 k+1时刻的模型 j j j的概率

文中符号说明

  • M f M_f Mf 表示模型空间,IMM表达多个模型都属于这个模型空间
  • 下标 i , j i,j i,j
    • 当有一个下标时,一般表示某个模型的变量,如 μ i \mu_i μi表示模型i的概率
    • 当有两个下标时,用来表示两个模型间的转移,如KaTeX parse error: Undefined control sequence: \p at position 1: \̲p̲_{ij}表示模型i转移到模型j的概率
    • 当有两个下标中间有竖线"|"时,表示归一化的信息
  • ⋅ ^ \hat \cdot ^ Hat 表示这个变量是某个条件下的最优估计
  • 括号():表示时间,如 x ( k ) x(k) x(k)表示时间k的状态x;
  • 括号中有竖线:表示观测时间和状态时间,如x(k|k-1)表示在k-1时刻的观测信息得到k时刻的状态,如x(k|k)表示基于k时刻的观测估计的k时刻的状态

2. IMM过程

先有个基本概念,整个过程可描述为:
IMM过程

Step1: Interact

交互,顾名思义,就是多个模型之间的交互。

∀ i , j ∈ M f \forall i,j \in M_f i,jMf
μ i ∣ j ( k − 1 ∣ k − 1 ) = 1 c ˉ j p i j μ i ( k − 1 ) \begin{equation} \mu_{i|j}(k-1|k-1) = \frac{1}{\bar c_j}p_{ij}\mu_i(k-1) \end{equation} μij(k1∣k1)=cˉj1pijμi(k1)

解释:

  • μ i ( k − 1 ) \mu_i(k-1) μi(k1)是k-1时刻,模型 i i i的概率
  • μ i ∣ j ( k − 1 ∣ k − 1 ) \mu_{i|j}(k-1|k-1) μij(k1∣k1) 表示的就是k-1时刻,模型i转移的j的混合概率;
  • 这个公式表达的还是在k-1时刻的进行的估计,是基于k-1时刻的观测和状态,对下一个状态概率的预估
  • 为了描述方便,本章节中的变量都略去时刻的表述 ( k − 1 ∣ k − 1 ) (k-1|k-1) (k1∣k1)

式(1)这个过程表达了模型i到模型j转移的混合概率,其实就是在转移概率 p i j p_{ij} pij的基础上混合了当前状态i模型的概率

在这里插入图片描述
如图, u 23 u_{23} u23表达的是从模型2转移到模型3的概率,混合上当前的模型2的概率
可以表达为

[ μ 11 μ 12 μ 13 ] = [ p 11 p 12 p 13 ] μ 1 [ μ 21 μ 22 μ 23 ] = [ p 21 p 22 p 23 ] μ 2 [ μ 31 μ 32 μ 33 ] = [ p 31 p 32 p 33 ] μ 3 \begin{bmatrix} \mu_{11} & \mu_{12} & \mu_{13} \end{bmatrix} = \begin{bmatrix} p_{11} & p_{12} & p_{13} \end{bmatrix} \mu_{1} \\ \begin{bmatrix} \mu_{21} & \mu_{22} & \mu_{23} \end{bmatrix} = \begin{bmatrix} p_{21} & p_{22} & p_{23} \end{bmatrix} \mu_{2} \\ \begin{bmatrix} \mu_{31} & \mu_{32} & \mu_{33} \end{bmatrix} = \begin{bmatrix} p_{31} & p_{32} & p_{33} \end{bmatrix} \mu_{3} [μ11μ12μ13]=[p11p12p13]μ1[μ21μ22μ23]=[p21p22p23]μ2[μ31μ32μ33]=[p31p32p33]μ3
然后还要归一化一次,表示了转移到模型 i ∈ [ 1 , 3 ] i\in[1,3] i[1,3]的一致性概率,可以理解为, u i 1 u_{i1} ui1表示从上一时刻多个模型转移到模型1的概率,归一化是所有转移到模型1的概率。有点绕,看公式
μ 2 ∣ 3 = μ 23 μ 13 + μ 23 + μ 33 \begin{equation} \mu_{2|3} = \frac{\mu_{23}}{\mu_{13}+\mu_{23}+\mu_{33}} \end{equation} μ2∣3=μ13+μ23+μ33μ23

注:先不要纠结为什么这里要归一化概率,后面会解释

无论什么模型,目的都是为了获得对当前状态的估计。当我们使用多个模型对状态进行估计时,会得到不同模型对状态估计的结果,然后我们将这些结果加权,就得到了多模型混合估计结果。
在这里插入图片描述
对于上图中的模型转移过程,如果我们要求模型3的预估状态 x 3 ′ x'_3 x3,很容易想到,通过加权来获得
x 3 ′ = x 1 ⋅ p 13 μ 1 + x 2 ⋅ p 23 μ 2 + x 3 ⋅ p 33 μ 3 p 13 μ 1 + p 23 μ 2 + p 33 μ 3 x'_3=\frac{x_1\cdot p_{13}\mu_1+x_2\cdot p_{23}\mu_2+x_3\cdot p_{33}\mu_3}{ p_{13}\mu_1+ p_{23}\mu_2+ p_{33}\mu_3} x3=p13μ1+p23μ2+p33μ3x1p13μ1+x2p23μ2+x3p33μ3
显然,式(2)就是这个权重

x 3 ′ = x 1 ⋅ μ 1 ∣ 1 + x 2 ⋅ μ 2 ∣ 1 + x 3 ⋅ μ 1 ∣ 3 x'_3=x_1\cdot \mu_{1|1}+x_2\cdot \mu_{2|1}+x_3\cdot \mu_{1|3} x3=x1μ1∣1+x2μ2∣1+x3μ1∣3

总结下,Step1得到了对状态的估计模型 x ′ x' x,论文中记 x ^ 0 j \hat x_{0j} x^0j,有了状态我们还需要相关协方差 P P P,同样,协方差的更新于状态量类似,

P ^ 3 = P 1 ′ ⋅ μ 1 ∣ 1 + P 2 ′ ⋅ μ 2 ∣ 1 + P 3 ′ ⋅ μ 1 ∣ 3 \hat P_3=P'_1\cdot \mu_{1|1}+P'_2\cdot \mu_{2|1}+P'_3\cdot \mu_{1|3} P^3=P1μ1∣1+P2μ2∣1+P3μ1∣3
其中
P 1 ′ = P 1 + ( x ^ 3 ′ − x 1 ) × ( x ^ 3 ′ − x 1 ) T P'_1=P_1+(\hat x'_3-x_1) \times (\hat x'_3-x_1)^T P1=P1+(x^3x1)×(x^3x1)T

公式表示即为:
P ^ j = ∑ i P i ′ ⋅ μ i ∣ j = ∑ i [ P i + ( x ^ j 0 − x i ) × ( x ^ j 0 − x i ) T ] ⋅ μ i ∣ j \begin{equation} \hat P_j =\sum_{i}P'_i\cdot \mu_{i|j} = \sum_{i}[P_i+(\hat x_{j0}-x_i)\times (\hat x_{j0}-x_i)^T]\cdot \mu_{i|j} \end{equation} P^j=iPiμij=i[Pi+(x^j0xi)×(x^j0xi)T]μij

再来理解一下这些变量的含义, u 13 , u 23 , u 33 u_{13},u_{23},u_{33} u13,u23,u33是所有模型转移到模型3的概率,记
c ˉ j = u 1 j + u 2 j + u 3 j = ∑ i μ i j = ∑ i p i j u i \bar c_j=u_{1j}+u_{2j}+u_{3j}=\sum_i \mu_{ij}=\sum_i p_{ij}u_i cˉj=u1j+u2j+u3j=iμij=ipijui


Step 2: Filtering

在Step1中,都是在k-1时刻发生的,因为模型本身并没有进行时域上的前推,现在我们需要对每个模型都通过模型参数预测(前推)一步,所以Step2要进行时序的推演,则状态和协方差的转移可以表述为: ∀ j ∈ M f \forall j \in M_f jMf,
x ^ j ( k ∣ k − 1 ) = F j ( k − l ) x ^ j ( k − 1 ∣ k − 1 ) + Γ j ( k − i ) v ˉ j ( k − 1 ) \hat x_j(k|k-1)=F_j(k - l)\hat x_j(k - 1|k - 1)+ \Gamma_j(k-i)\bar v_j(k-1) x^j(kk1)=Fj(kl)x^j(k1∣k1)+Γj(ki)vˉj(k1)
其中 Γ \Gamma Γ过程噪声增益矩阵
由于公式中的变量为了描述时序信息(k/k-1),看起来有点混乱,为了便于理解,可以描述为:
x ^ j ( k ) = F j x ^ j ( k − 1 ) + Γ j v ˉ j \hat x^{(k)}_j=F_j\hat x^{(k-1)}_j+ \Gamma_j\bar v_j x^j(k)=Fjx^j(k1)+Γjvˉj
同理,协方差的推演表述为:
P j ( k ) = F j P j ( k − 1 ) F j T + Γ j Q j Γ j T P^{(k)}_j=F_jP^{(k-1)}_jF^T_j+\Gamma_j Q_j \Gamma_j^T Pj(k)=FjPj(k1)FjT+ΓjQjΓjT
其中 Q J Q_J QJ过程噪声方差

以上是都是在k-1时刻观测下进行的计算和推演,当来到了k时刻,有了新的观测,就需要进行Correct操作了,这时候的观测时序变成了k,可以,表述为:
x ^ j ( k ∣ k ) = x ^ j ( k ∣ k − 1 ) + W j ( k ) r j ( k ) P j ( k ∣ k ) = P j ( k ∣ k − 1 ) − W j ( k ) S j ( k ) W j ( k ) T \hat x_j(k|k)=\hat x_j(k|k-1) + W_j(k)r_j(k) \\ P_j(k|k)=P_j(k|k-1)-W_j(k)S_j(k)W_j(k)^T x^j(kk)=x^j(kk1)+Wj(k)rj(k)Pj(kk)=Pj(kk1)Wj(k)Sj(k)Wj(k)T
其中:

  • r j ( k ) = z j ( k ) − z ^ j ( k ∣ k − 1 ) r_j(k)=z_j(k)-\hat z_j(k|k-1) rj(k)=zj(k)z^j(kk1)表达了观测残差,计算方式为:
    z ^ j ( k ∣ k − 1 ) = H j ( k ) x ^ j ( k ∣ k − 1 ) \hat z_j(k|k-1)=H_j(k)\hat x_j(k|k-1) z^j(kk1)=Hj(k)x^j(kk1)
  • R j ( k ) R_j(k) Rj(k)测量方差
  • S j ( k ) S_j(k) Sj(k)残差方差,计算方式为
    S j ( k ) = H j ( k ) P j ( k ∣ k − 1 ) H j ( k ) T + R j ( k ) S_j(k)=H_j(k)P_j(k|k-1)H_j(k)^T+R_j(k) Sj(k)=Hj(k)Pj(kk1)Hj(k)T+Rj(k)
  • W j ( k ) W_j(k) Wj(k)表示滤波器增益矩阵,计算方式为
    W j ( k ) = P j ( k ∣ k − 1 ) H j ( k ) S j ( k ) − 1 W_j(k)=P_j(k|k-1)H_j(k)S_j(k)^{-1} Wj(k)=Pj(kk1)Hj(k)Sj(k)1

根据观测的残差,可以根据残差计算出模型j的likehood
Λ j ( k ) = N ( r j ( k ) , 0 , S j ( k ) ) \Lambda_j(k)=N(r_j(k), 0, S_j(k)) Λj(k)=N(rj(k),0,Sj(k))

根据模型j的likehood,来更新模型j的概率
μ j ′ ( k ) = Λ j ( k ) c ˉ j \mu'_j(k)=\Lambda_j(k)\bar c_j μj(k)=Λj(k)cˉj
归一化之后为
μ j ( k ) = μ j ′ ( k ) ∑ i μ i ′ ( k ) \begin{equation} \mu_j(k)=\frac{\mu'_j(k)}{\sum_i \mu'_i(k)} \end{equation} μj(k)=iμi(k)μj(k)

总结下,Step2主要进行了:

  1. 基于模型的推演,得到推演后模型的状态估计及协方差
  2. 基于推演模型状态和观测的残差,得到每个模型的likehood
  3. 基于likehood,推演出每个模型新的概率

Step3: Combination

Combination这一步非常简单,就是将多个模型的输出加权,得到对外的最终输出估计,即
x ^ ( k ∣ k ) = ∑ j x ^ j ( k ∣ k ) μ j ( k ) \hat x(k|k) = \sum_j \hat x_j(k|k)\mu_j(k) x^(kk)=jx^j(kk)μj(k)
同理,输出的协方差为
P ( k ∣ k ) = ∑ j P j ′ ( k ∣ k ) μ j ( k ) P(k|k)=\sum_j P'_j(k|k)\mu_j(k) P(kk)=jPj(kk)μj(k)
其中 P j ′ ( k ∣ k ) = P j ( k ∣ k ) + [ x ^ ( k ∣ k ) − x ^ j ( k ∣ k ) ] × [ x ^ ( k ∣ k ) − x ^ j ( k ∣ k ) ] T P'_j(k|k)=P_j(k|k)+[\hat x(k|k) - \hat x_j(k|k)]\times[\hat x(k|k) - \hat x_j(k|k)]^T Pj(kk)=Pj(kk)+[x^(kk)x^j(kk)]×[x^(kk)x^j(kk)]T

以上,就是IMM的整个过程。

注:Step3 的结果只用来输出,以及通过状态量只用来更新协方差

3. 示例描述

假设我们使用两个模型1和2来对一个观测进行估计,假设两个模型是二维高斯模型,初始状态如下,分别表示两个模型的状态、方差和概率

在这里插入图片描述

Step1:混合

如图,每个模型都有一定概率转移到另一个模型,我们对转移后的模型态进行混合叠加,在这个过程中,需要更新的变量有:

  • 状态量 x x x,基于模型概率和转移概率
  • 协方差 P P P,基于初始协方差和转移叠加后的误差
    在这里插入图片描述

Step2:滤波/更新

如图,基于当前的观测z,分别对两个模型进行更新,这个过程更新的变量包括:

  • 状态量 x x x,基于模型推演,并根据观测更新
  • 协方差 P P P,基于推演转移,即观测残差
  • 模型概率 μ \mu μ,基于残差的likehood
    在这里插入图片描述

Step3:合并

这一步比较简单,将更新的状态和概率直接加权混合,得到最终输出状态估计值,这个过程中更新的变量包括:

  • 状态量 x x x,基于加权后的最优估计
  • 协方差 P P P,基于加权后最优估计与当前模态值的残差

在这里插入图片描述

参考文献

[^1] E. Mazor, A. Averbuch, Y. Bar-Shalom and J. Dayan, “Interacting multiple model methods in target tracking: a survey,” in IEEE Transactions on Aerospace and Electronic Systems, vol. 34, no. 1, pp. 103-123, Jan. 1998, doi: 10.1109/7.640267

http://www.xdnf.cn/news/8742.html

相关文章:

  • AI 理论- 模型优化 - 注意力机制
  • 整平机技术进阶:从原理到实战的深度解析
  • MD5加密(Java)
  • 如何快速解决 java maven项目中jar冲突的问题
  • CAU人工智能class6 ResNet
  • 业务设计篇隐私合规检测URL 重定向资源拒绝服务配合项目
  • leetcode2466,爬楼梯变体,取模注意
  • 【第四篇】 SpringBoot整合第三方技术
  • 板凳-------Mysql cookbook学习 (六)
  • day25JS- es5面向对象、Proxy代理对象
  • ARM笔记-ARM指令集
  • PG Pebbles 靶机复现
  • 【C++】移动窗口
  • Java中使用Stream API优化for循环
  • [NOIP 2003 普及组] 麦森数 Java
  • AI要掌握的知识
  • Python_day35 模型可视化与推理
  • Java 内存模型(JMM)深度解析:理解多线程内存可见性问题
  • 网页 CSS美化2(详解)
  • Reason-ModernColBERT论文速览:内存受限设置下深度对比学习批量大小的扩展
  • IDA插件 MIPSROP的安装和使用方法
  • 电子人的分水岭-FPGA模电和数电
  • 大模型智能体入门扫盲——基于camel的概述
  • 嵌入式<style>设计模式
  • DeepSeek 赋能数字农业:从智慧种植到产业升级的全链条革新
  • 可编程运动控制器行业2025数据分析报告
  • CodeBuddy实现图片水印添加工具
  • Ntfs!ReadIndexBuffer函数分析之根目录读取索引缓冲区的一个例子
  • STM32 USART串口通信
  • Nginx-详解(二)