• 机器学习笔记之卡尔曼滤波(二)滤波思想的推导过程


    引言

    上一节介绍了动态模型,本节将介绍卡尔曼滤波模型中的滤波问题

    回顾:隐马尔可夫模型 VS 卡尔曼滤波

    动态模型(Dynamic Model)的局部概率图模型表示如下:
    动态模型的局部概率图模型

    这里并非单独比较隐马尔可夫模型卡尔曼滤波两种模型,而是对描述隐马尔可夫模型和卡尔曼滤波的相关性质 进行比较:
    (这里从模型参数的角度进行比较)
    '非线性、非高斯动态模型'的代表(Non-Linear,Non-Gaussian Dynamic Model)——粒子滤波(Particle Filter)在后续介绍时再进行归纳,这里仅归纳2种模型。

    离散状态动态模型(Discrete State Dynamic Model)

    具有代表性的模型——隐马尔可夫模型。

    • 状态转移概率 P ( i t ∣ i t − 1 ) \mathcal P(i_t \mid i_{t-1}) P(itit1)
      由于离散状态动态模型中的隐变量是离散型随机变量,因此 P ( i t ∣ i t − 1 ) \mathcal P(i_t \mid i_{t-1}) P(itit1)通过查找状态转移矩阵 A \mathcal A A得到对应结果
      A = [ a i j ] K × K = [ a 11 , a 12 , ⋯   , a 1 K a 21 , a 22 , ⋯   , a 2 K ⋮ a K 1 , a K 2 , ⋯   , a K K ] K × K a i j = P ( i t = q j ∣ i t − 1 = q i ) A=[aij]K×K=[a11,a12,,a1Ka21,a22,,a2KaK1,aK2,,aKK]K×Kaij=P(it=qjit1=qi) Aaij=[aij]K×K=a11,a12,,a1Ka21,a22,,a2KaK1,aK2,,aKKK×K=P(it=qjit1=qi)
      其中 q i , q j q_i,q_j qi,qj均是 隐变量取值的离散集合 Q \mathcal Q Q中的元素
      q i , q j ∈ Q = { q 1 , q 2 , ⋯   , q K } qi,qjQ={q1,q2,,qK} qi,qjQ={q1,q2,,qK}
    • 发射概率 P ( o t ∣ i t ) \mathcal P(o_t \mid i_t) P(otit)
      离散状态动态模型中对观测变量 O = { o 1 , o 2 , ⋯   , o T } \mathcal O =\{o_1,o_2,\cdots,o_T\} O={o1,o2,,oT}没有具体要求,它可以是离散型随机变量,也可以是连续型随机变量这里为容易表达起见,设定 O \mathcal O O是离散型随机变量。因此 P ( o t ∣ i t ) \mathcal P(o_t \mid i_t) P(otit)通过查找发射矩阵 B \mathcal B B得到相应结果
      B = [ b j ( k ) ] K × M = [ b 1 ( 1 ) , b 1 ( 2 ) , ⋯   , b 1 ( M ) b 2 ( 1 ) , b 2 ( 2 ) , ⋯   , b 2 ( M ) ⋮ b K ( 1 ) , b K ( 2 ) , ⋯   , b K ( M ) ] K × M b j ( k ) = P ( o t = v k ∣ i t = q j ) B=[bj(k)]K×M=[b1(1),b1(2),,b1(M)b2(1),b2(2),,b2(M)bK(1),bK(2),,bK(M)]K×Mbj(k)=P(ot=vkit=qj) Bbj(k)=[bj(k)]K×M=b1(1),b1(2),,b1(M)b2(1),b2(2),,b2(M)bK(1),bK(2),,bK(M)K×M=P(ot=vkit=qj)
      v k v_k vk表示 观测变量取值的离散集合 V \mathcal V V中的元素
      v k ∈ V = { v 1 , v 2 , ⋯   , v M } v_k \in \mathcal V = \{v_1,v_2,\cdots,v_{\mathcal M}\} vkV={v1,v2,,vM}
    • 初始概率 P ( i 1 ) \mathcal P(i_1) P(i1)
      隐马尔可夫模型中介绍过,初始概率分布使用 π \pi π进行表示:
      P ( i 1 ) = π \mathcal P(i_1) = \pi P(i1)=π
      综上,离散状态动态模型需要求解的模型参数具体表示如下:
      λ = ( π , A , B ) \lambda = (\pi,\mathcal A,\mathcal B) λ=(π,A,B)

    线性高斯动态模型(Linear Gaussian Dynamic Model)

    具有代表性的模型——卡尔曼滤波。
    相比于离散状态动态模型,该模型更突出的是线性隐变量与观测变量均是连续型随机变量

    • 状态转移概率 P ( i t ∣ i t − 1 ) \mathcal P(i_t \mid i_{t-1}) P(itit1)
      线性高斯动态模型中隐变量之间服从线性关系,且对应噪声服从高斯分布
      i t = A ⋅ i t − 1 + B + ϵ ϵ ∼ N ( 0 , Q ) P ( i t ∣ i t − 1 ) ∼ N ( A ⋅ i t − 1 + B , Q ) it=Ait1+B+ϵϵN(0,Q)P(itit1)N(Ait1+B,Q) it=Ait1+B+ϵϵN(0,Q)P(itit1)N(Ait1+B,Q)
      其中 A , B \mathcal A,\mathcal B A,B表示线性关系的模型参数; Q \mathcal Q Q表示转移过程高斯分布噪声的协方差信息
    • 发射概率 P ( o t ∣ i t ) \mathcal P(o_t \mid i_t) P(otit)
      同理,隐变量与观测变量之间同样服从线性关系,对应噪声服从高斯分布
      o t = C ⋅ i t + D + δ δ ∼ N ( 0 , R ) P ( o t ∣ i t ) ∼ N ( C ⋅ i t + D , R ) ot=Cit+D+δδN(0,R)P(otit)N(Cit+D,R) ot=Cit+D+δδN(0,R)P(otit)N(Cit+D,R)
      这里的 C , D \mathcal C,\mathcal D C,D表示线性关系的模型参数; R \mathcal R R表示发射过程噪声高斯分布的协方差信息
    • 初始概率 P ( i 1 ) \mathcal P(i_1) P(i1)
      不同于 π \pi π这种具体的概率值结果,线性高斯动态模型的初始概率同样是高斯分布
      P ( i 1 ) ∼ N ( μ 1 , Σ 1 ) \mathcal P(i_1) \sim \mathcal N(\mu_1,\Sigma_1) P(i1)N(μ1,Σ1)
      综上,线性高斯动态模型需要求解的模型参数表示如下:
      λ = ( A , B , C , D , Q , R , μ 1 , Σ 1 ) \lambda = (\mathcal A,\mathcal B,\mathcal C,\mathcal D,\mathcal Q,\mathcal R,\mu_1,\Sigma_1) λ=(A,B,C,D,Q,R,μ1,Σ1)

    滤波问题思想推导

    公式推导过程

    我们需要解决的滤波问题具体表示如下:
    P ( i t ∣ o t , o t − 1 , ⋯   , o 1 ) \mathcal P(i_t \mid o_t,o_{t-1},\cdots,o_1) P(itot,ot1,,o1)
    类似于求值问题 P ( O ∣ λ ) \mathcal P(\mathcal O \mid \lambda) P(Oλ),我们希望通过迭代方式表示 t t t时刻滤波结果与其他时刻滤波结果之间的关联关系

    • 首先,滤波问题本身是一个条件概率。根据条件概率的定义,改写为如下形式:
      P ( i t ∣ o 1 , ⋯   , o t ) = P ( i t , o 1 , ⋯   , o t ) P ( o 1 , ⋯   , o t ) \mathcal P(i_t \mid o_1, \cdots,o_t) = \frac{\mathcal P(i_t,o_1,\cdots,o_t)}{\mathcal P(o_1,\cdots,o_t)} P(ito1,,ot)=P(o1,,ot)P(it,o1,,ot)
      由于 P ( o 1 , ⋯   , o t ) \mathcal P(o_1,\cdots,o_t) P(o1,,ot)初始时刻到 t t t时刻观测变量的联合概率分布,而观测变量是给定的数据集合,因此 P ( o 1 , ⋯   , o t ) \mathcal P(o_1,\cdots,o_t) P(o1,,ot)可求的。令 C 1 = P ( o 1 , ⋯   , o t ) \mathcal C_1 = \mathcal P(o_1,\cdots,o_t) C1=P(o1,,ot),则有:
      P ( i t ∣ o 1 , ⋯   , o t ) = 1 C 1 P ( i t , o 1 , ⋯   , o t ) \mathcal P(i_t \mid o_1,\cdots,o_t) = \frac{1}{\mathcal C_1}\mathcal P(i_t,o_1,\cdots,o_t) P(ito1,,ot)=C11P(it,o1,,ot)
    • 联合概率分布使用条件概率公式展开,展开为 o t o_t ot作为后验的条件概率的乘积形式:
      P ( i t ∣ o 1 , ⋯   , o t ) = 1 C 1 [ P ( o t ∣ o 1 , ⋯   , o t − 1 , i t ) ⋅ P ( o 1 , ⋯   , o t − 1 , i t ) ] \mathcal P(i_t \mid o_1,\cdots,o_t) = \frac{1}{\mathcal C_1}\left[\mathcal P(o_t \mid o_1,\cdots,o_{t-1},i_t) \cdot \mathcal P(o_1,\cdots,o_{t-1},i_t)\right] P(ito1,,ot)=C11[P(oto1,,ot1,it)P(o1,,ot1,it)]
      观察中括号中的第一项,可以使用观测独立性假设改写成如下形式:
      观测独立性假设是‘隐马尔可夫模型’中介绍的,需要的去复习一下~隐马尔可夫模型介绍-传送门
      P ( o t ∣ o 1 , ⋯   , o t − 1 , i t ) = P ( o t ∣ i t ) \mathcal P(o_t \mid o_1,\cdots,o_{t-1},i_t) = \mathcal P(o_t \mid i_t) P(oto1,,ot1,it)=P(otit)
      从而最终改写成如下形式:
      P ( i t ∣ o 1 , ⋯   , o t ) = 1 C 1 [ P ( o t ∣ i t ) ⋅ P ( o 1 , ⋯   , o t − 1 , i t ) ] \mathcal P(i_t \mid o_1,\cdots,o_t) = \frac{1}{\mathcal C_1}\left[\mathcal P(o_t \mid i_t) \cdot \mathcal P(o_1,\cdots,o_{t-1},i_t)\right] P(ito1,,ot)=C11[P(otit)P(o1,,ot1,it)]
    • 将括号中的 P ( o 1 , ⋯   , o t − 1 , i t ) \mathcal P(o_1,\cdots,o_{t-1},i_t) P(o1,,ot1,it)通过条件概率公式,展开成以 i t i_t it为后验的条件概率乘积形式:
      P ( o 1 , ⋯   , o t − 1 , i t ) = P ( i t ∣ o 1 , ⋯   , o t − 1 ) ⋅ P ( o 1 , ⋯   , o t − 1 ) \mathcal P(o_1,\cdots,o_{t-1},i_t) = \mathcal P(i_t \mid o_1,\cdots,o_{t-1}) \cdot \mathcal P(o_1,\cdots,o_{t-1}) P(o1,,ot1,it)=P(ito1,,ot1)P(o1,,ot1)
      其中 P ( o 1 , ⋯   , o t − 1 ) \mathcal P(o_1,\cdots,o_{t-1}) P(o1,,ot1)同样也是观测变量的联合概率分布,是可求的。因此定义 C 2 = P ( o 1 , ⋯   , o t − 1 ) \mathcal C_2 = \mathcal P(o_1,\cdots,o_{t-1}) C2=P(o1,,ot1),从而有:
      P ( i t ∣ o 1 , ⋯   , o t ) = C 2 C 1 [ P ( o t ∣ i t ) ⋅ P ( i t ∣ o 1 , ⋯   , o t − 1 ) ] \mathcal P(i_t \mid o_1,\cdots,o_t) = \frac{\mathcal C_2}{\mathcal C_1} \left[\mathcal P(o_t \mid i_t) \cdot \mathcal P(i_t \mid o_1,\cdots,o_{t-1})\right] P(ito1,,ot)=C1C2[P(otit)P(ito1,,ot1)]
    • 继续观察中括号中的第二项:这明显是一个预测问题,通常采用方法是 通过积分,引入隐变量 i t − 1 i_{t-1} it1
      其中红色框表示‘条件项’与‘后验项’;需要引入中间变量(蓝色框)将它们关联起来。
      不要忘记,隐变量 i t i_t it是连续型随机变量,其对应的积分是 ∫ i t \int_{i_t} it
      prediction图像描述
      P ( i t ∣ o 1 , ⋯   , o t − 1 ) = ∫ i t − 1 P ( i t , i t − 1 ∣ o 1 , ⋯   , o t − 1 ) d i t − 1 \mathcal P(i_{t} \mid o_1,\cdots,o_{t-1}) = \int_{i_{t-1}}\mathcal P(i_t,i_{t-1} \mid o_1,\cdots,o_{t-1}) di_{t-1} P(ito1,,ot1)=it1P(it,it1o1,,ot1)dit1
      再根据条件概率的推导式,转化为如下格式:
      ∫ i t − 1 P ( i t ∣ i t − 1 , o 1 , ⋯   , o t − 1 ) ⋅ P ( i t − 1 ∣ o 1 , ⋯   , o t − 1 ) d i t − 1 \int_{i_{t-1}} \mathcal P(i_t \mid i_{t-1},o_1,\cdots,o_{t-1}) \cdot \mathcal P(i_{t-1} \mid o_1, \cdots,o_{t-1})di_{t-1} it1P(itit1,o1,,ot1)P(it1o1,,ot1)dit1
      其中第一项使用齐次马尔可夫假设将其简化为 P ( i t ∣ i t − 1 ) \mathcal P(i_t \mid i_{t-1}) P(itit1);第二项正是 t − 1 t-1 t1时刻的滤波问题

    至此, t t t时刻与 t − 1 t-1 t1时刻滤波结果的关联关系。最终结果整理如下:
    P ( i t ∣ o 1 , ⋯   , o t ) = C 2 C 1 [ P ( o t ∣ i t ) ∫ i t − 1 P ( i t ∣ i t − 1 ) ⋅ P ( i t − 1 ∣ o 1 , ⋯   , o t − 1 ) d i t 1 ] = P ( o 1 , ⋯   , o t − 1 ) P ( o 1 , ⋯   , o t ) ⋅ [ P ( o t ∣ i t ) ∫ i t − 1 P ( i t ∣ i t − 1 ) ⋅ P ( i t − 1 ∣ o 1 , ⋯   , o t − 1 ) d i t − 1 ] P(ito1,,ot)=C2C1[P(otit)it1P(itit1)P(it1o1,,ot1)dit1]=P(o1,,ot1)P(o1,,ot)[P(otit)it1P(itit1)P(it1o1,,ot1)dit1] P(ito1,,ot)=C1C2[P(otit)it1P(itit1)P(it1o1,,ot1)dit1]=P(o1,,ot)P(o1,,ot1)[P(otit)it1P(itit1)P(it1o1,,ot1)dit1]

    滤波问题求解步骤

    卡尔曼滤波在处理滤波问题时,是使用在线算法(On-line Algorithm)。即 执行到某时刻时,才能够计算出该时刻关于隐变量的后验信息

    它的求解步骤是一个迭代过程。每一次迭代均包含2个步骤

    • 更新步骤(Update):根据给定的观测变量结果(从初始时刻 t o to to 当前时刻),求出当前时刻隐变量的后验概率分布
      P ( i t ∣ o 1 , ⋯   , o t ) \mathcal P(i_t \mid o_1,\cdots,o_t) P(ito1,,ot)
    • 预测步骤(Prediction):根据给定的观测变量结果(从初始时刻 t o to to 当前时刻),求出下一时刻隐变量的后验概率分布
      P ( i t + 1 ∣ o 1 , ⋯   , o t ) \mathcal P(i_{t+1} \mid o_1,\cdots,o_t) P(it+1o1,,ot)

    具体过程表示如下:
    已知条件

    • 隐变量初始时刻的概率分布 P ( i 1 ) \mathcal P(i_1) P(i1)
      P ( i 1 ) ∼ N ( μ 1 , Σ 1 ) \mathcal P(i_1) \sim \mathcal N(\mu_1,\Sigma_1) P(i1)N(μ1,Σ1)
    • 基于观测独立性假设,观测变量 o t o_t ot在给定对应时刻隐变量 i t i_t it的条件概率 P ( o t ∣ i t ) \mathcal P(o_t \mid i_t) P(otit)
      P ( o t ∣ i t ) ∼ N ( C ⋅ i t + D , R ) \mathcal P(o_t \mid i_t) \sim \mathcal N(\mathcal C \cdot i_t +\mathcal D,\mathcal R) P(otit)N(Cit+D,R)
    • 基于齐次马尔可夫假设,隐变量 i t i_t it在给定上一时刻隐变量 i t − 1 i_{t-1} it1的条件概率 P ( i t ∣ i t − 1 ) \mathcal P(i_t \mid i_{t-1}) P(itit1)
      P ( i t ∣ i t − 1 ) ∼ N ( A ⋅ i t − 1 + B , Q ) \mathcal P(i_t \mid i_{t-1}) \sim \mathcal N(\mathcal A \cdot i_{t-1} + \mathcal B,\mathcal Q) P(itit1)N(Ait1+B,Q)

    相关公式介绍
    本质上,卡尔曼滤波待求解的模型参数有很多:
    λ = ( A , B , C , D , Q , R , μ 1 , Σ 1 ) \lambda = (\mathcal A,\mathcal B,\mathcal C,\mathcal D,\mathcal Q,\mathcal R,\mu_1,\Sigma_1) λ=(A,B,C,D,Q,R,μ1,Σ1)
    但实际上,这些参数都是用来描述正态分布 的参数。因此这里给出出现条件概率、积分情况下 概率分布的变化:
    这属于高斯分布的常用计算公式范畴,给大家推荐一篇相关推导文章。PRML笔记-高斯分布-传送门

    给定 变量 X \mathcal X X的边缘概率分布 P ( X ) \mathcal P(\mathcal X) P(X)给定 X \mathcal X X条件下,变量 Y \mathcal Y Y的条件概率分布 P ( Y ∣ X ) \mathcal P(\mathcal Y \mid \mathcal X) P(YX) 如下:
    这里假设'协方差矩阵' Λ , L \Lambda,\mathcal L Λ,L是‘正定矩阵’,它们均可以求逆。
    { P ( X ) : x ∈ P ( X ) , x ∼ N ( μ , Λ − 1 ) P ( Y ∣ X ) : y ∈ P ( Y ∣ X ) , y ∼ N ( A ⋅ x + B , L − 1 ) {P(X):xP(X),xN(μ,Λ1)P(YX):yP(YX),yN(Ax+B,L1) {P(X):xP(X),xN(μ,Λ1)P(YX):yP(YX),yN(Ax+B,L1)
    则变量 Y \mathcal Y Y边缘概率分布 P ( Y ) \mathcal P(\mathcal Y) P(Y)可表示为:
    P ( Y ) = ∫ X P ( X , Y ) d X = ∫ X P ( X ) ⋅ P ( Y ∣ X ) d X → P ( Y ) : y ∈ P ( Y ) , y ∼ N ( A ⋅ μ + B , L − 1 + A Λ − 1 A T ) P(Y)=XP(X,Y)dX=XP(X)P(YX)dXP(Y):yP(Y),yN(Aμ+B,L1+AΛ1AT) P(Y)=XP(X,Y)dX=XP(X)P(YX)dXP(Y):yP(Y),yN(Aμ+B,L1+AΛ1AT)
    给定 Y \mathcal Y Y条件下,变量 X \mathcal X X条件概率分布 P ( X ∣ Y ) \mathcal P(\mathcal X \mid \mathcal Y) P(XY)可表示为:
    P ( X ∣ Y ) = P ( Y ∣ X ) ⋅ P ( X ) P ( Y ) → P ( X ∣ Y ) : x ∈ P ( X ∣ Y ) , x ∼ N ( Σ { A T L ( y − B ) + A μ } , Σ ) Σ = Λ + A T L A − 1 P(XY)=P(YX)P(X)P(Y)P(XY):xP(XY),xN(Σ{ATL(yB)+Aμ},Σ)Σ=Λ+ATLA1 P(XY)=P(Y)P(YX)P(X)P(XY):xP(XY),xN(Σ{ATL(yB)+Aμ},Σ)Σ=Λ+ATLA1

    具体过程

    • 初始步骤 ( t = 1 ) (t=1) (t=1)
      • 隐变量 i 1 i_1 i1的初始化作为 i 1 i_1 i1更新步骤(Update):
        P ( i 1 ∣ o 1 ) = P ( i 1 ) ∼ N ( μ 1 , Σ 1 ) \mathcal P(i_1 \mid o_1) = \mathcal P(i_1) \sim \mathcal N(\mu_1,\Sigma_1) P(i1o1)=P(i1)N(μ1,Σ1)
      • 预测步骤:基于 P ( i 1 ∣ o 1 ) \mathcal P(i_1\mid o_1) P(i1o1),求解下一时刻隐变量 i 2 i_2 i2基于 o 1 o_1 o1的条件概率 P ( i 2 ∣ o 1 ) \mathcal P(i_2 \mid o_1) P(i2o1)
        P ( i 2 ∣ o 1 ) = ∫ i 1 P ( i 2 ∣ i 1 ) ⋅ P ( i 1 ∣ o 1 ) P(i2o1)=i1P(i2i1)P(i1o1) P(i2o1)=i1P(i2i1)P(i1o1)
        根据已知条件, P ( i 2 ∣ i 1 ) ∼ N ( A ⋅ i 1 + B , Q ) \mathcal P(i_2 \mid i_1) \sim \mathcal N(\mathcal A \cdot i_1 + \mathcal B,\mathcal Q) P(i2i1)N(Ai1+B,Q),结合初始概率分布, P ( i 2 ∣ o 1 ) \mathcal P(i_2 \mid o_1) P(i2o1)的概率分布表示如下:
        P ( i 2 ∣ o 1 ) ∼ N ( A ⋅ μ 1 + B , Q + A Σ 1 A T ) \mathcal P(i_2\mid o_1) \sim \mathcal N(\mathcal A \cdot \mu_1 +\mathcal B,\mathcal Q + \mathcal A \Sigma_1 \mathcal A^T) P(i2o1)N(Aμ1+B,Q+AΣ1AT)
        至此,我们通过预测步骤求解出 P ( i 2 ∣ o 1 ) \mathcal P(i_2 \mid o_1) P(i2o1)的概率分布:
        注意,这仅是一个‘预测结果’。
        { μ 2 = A ⋅ μ 1 + B Σ 2 = Q + A Σ 1 A T {μ2=Aμ1+BΣ2=Q+AΣ1AT {μ2=Aμ1+BΣ2=Q+AΣ1AT
    • t = 2 t=2 t=2时刻:
      通过 预测步骤 得到了 P ( i 2 ∣ o 1 ) \mathcal P(i_2 \mid o_1) P(i2o1)的概率分布结果,结合观测独立性概率 P ( o 2 ∣ i 2 ) \mathcal P(o_2 \mid i_2) P(o2i2),求解 P ( i 2 ∣ o 1 , o 2 ) \mathcal P(i_2 \mid o_1,o_2) P(i2o1,o2)
      • 更新步骤
        已知:
        P ( o 2 ∣ i 2 ) ∼ N ( C ⋅ i 2 + D , R ) P ( i 2 ∣ o 1 ) ∼ N ( μ 2 , Σ 2 ) P(o2i2)N(Ci2+D,R)P(i2o1)N(μ2,Σ2) P(o2i2)P(i2o1)N(Ci2+D,R)N(μ2,Σ2)
        则有:
        P ( i 2 ∣ o 1 , o 2 ) = P ( o 1 ) P ( o 1 , o 2 ) [ P ( o 2 ∣ i 2 ) ⋅ P ( i 2 ∣ o 1 ) ] ∝ P ( o 2 ∣ i 2 ) ⋅ P ( i 2 ∣ o 1 ) P(i2o1,o2)=P(o1)P(o1,o2)[P(o2i2)P(i2o1)]P(o2i2)P(i2o1) P(i2o1,o2)=P(o1,o2)P(o1)[P(o2i2)P(i2o1)]P(o2i2)P(i2o1)
        将结果代入上述公式中:
        P ( i 2 ∣ o 1 , o 2 ) ∼ N ( Σ { C T R − 1 ( o 2 − D ) + C ⋅ μ 2 } , Σ ) Σ = Σ 2 − 1 + C R − 1 C − 1 { μ 2 ∗ = ( Σ 2 − 1 + C R − 1 C − 1 ) { C T R − 1 ( o 2 − D ) + C ⋅ μ 2 } Σ 2 ∗ = Σ 2 − 1 + C R − 1 C − 1 P(i2o1,o2)N(Σ{CTR1(o2D)+Cμ2},Σ)Σ=Σ12+CR1C1{μ2=(Σ12+CR1C1){CTR1(o2D)+Cμ2}Σ2=Σ12+CR1C1 P(i2o1,o2)N(Σ{CTR1(o2D)+Cμ2},Σ)Σ=Σ21+CR1C1{μ2=(Σ21+CR1C1){CTR1(o2D)+Cμ2}Σ2=Σ21+CR1C1
    • 后续时刻以此类推

    迭代过程总结

    观察上面的求解步骤,它明显包含两个步骤:

    • 预测步骤(Prediction):对下一时刻的隐变量进行一个预测
      P ( i 2 ∣ o 1 ) ∼ N ( μ 2 , Σ 2 ) { μ 2 = A ⋅ μ 1 + B Σ 2 = Q + A Σ 1 A T \mathcal P(i_2 \mid o_1) \sim \mathcal N(\mu_2,\Sigma_2) \\ {μ2=Aμ1+BΣ2=Q+AΣ1AT P(i2o1)N(μ2,Σ2){μ2=Aμ1+BΣ2=Q+AΣ1AT
    • 更新步骤(Update):在上一时刻预测的基础上,对当前时刻隐变量进行更新。同时对下一时刻隐变量进行预测
      P ( i 2 ∣ o 1 , o 2 ) ∼ N ( Σ { C T R − 1 ( o 2 − D ) + C ⋅ μ 2 } , Σ ) Σ = Σ 2 − 1 + C R − 1 C − 1 { μ 2 ∗ = ( Σ 2 − 1 + C R − 1 C − 1 ) { C T R − 1 ( o 2 − D ) + C ⋅ μ 2 } Σ 2 ∗ = Σ 2 − 1 + C R − 1 C − 1 P(i2o1,o2)N(Σ{CTR1(o2D)+Cμ2},Σ)Σ=Σ12+CR1C1{μ2=(Σ12+CR1C1){CTR1(o2D)+Cμ2}Σ2=Σ12+CR1C1 P(i2o1,o2)N(Σ{CTR1(o2D)+Cμ2},Σ)Σ=Σ21+CR1C1{μ2=(Σ21+CR1C1){CTR1(o2D)+Cμ2}Σ2=Σ21+CR1C1
    • 重复执行上述两个步骤
      ( μ 2 , Σ 2 ) → ( μ 2 ∗ , Σ 2 ∗ ) (\mu_2,\Sigma_2) \to (\mu_2^*,\Sigma_2^*) (μ2,Σ2)(μ2,Σ2)是一个明显的“先预测,再对预测修正”的过程

    至此,卡尔曼滤波部分介绍结束,下一节将介绍粒子滤波(Particle Filter)。

    相关参考:
    【PRML】高斯分布
    机器学习-白板推导系列(十五)-线性动态系统-卡曼滤波(Kalman Filter)笔记
    机器学习-线性动态系统2-Filtering问题
    机器学习-线性动态系统3-Filtering问题求解

  • 相关阅读:
    我的云栖大会之旅:见证云计算创新的15年
    远程办公中的IT女性:工作量增加3倍,离职率却下降近50%
    fpga_图像处理
    【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(十五)
    OCP Java17 SE Developers 复习题15(完)
    c++类型转换
    MYSQL的主从复制
    Rust 从 PyTorch 到 Burn
    基于java菜篮子系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
    咖啡餐饮PPT模板
  • 原文地址:https://blog.csdn.net/qq_34758157/article/details/127588583