机器学习笔记之卡尔曼滤波——滤波思想的推导过程(Filtering)
引言
上一节介绍了动态模型,本节将介绍卡尔曼滤波模型中的滤波问题。
回顾:隐马尔可夫模型 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(it∣it−1)
由于离散状态动态模型中的隐变量是离散型随机变量,因此 P ( i t ∣ i t − 1 ) \mathcal P(i_t \mid i_{t-1}) P(it∣it−1)通过查找状态转移矩阵 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 ) \begin{aligned} \mathcal A & = [a_{ij}]_{\mathcal K \times \mathcal K} = \begin{bmatrix} a_{11},a_{12},\cdots,a_{1\mathcal K} \\ a_{21},a_{22},\cdots,a_{2\mathcal K} \\ \vdots \\ a_{\mathcal K1},a_{\mathcal K2},\cdots,a_{\mathcal K\mathcal K} \\ \end{bmatrix}_{\mathcal K \times \mathcal K} \\ a_{ij} & = \mathcal P(i_t = q_j \mid i_{t-1} = q_i) \end{aligned} Aaij=[aij]K×K=⎣⎢⎢⎢⎡a11,a12,⋯,a1Ka21,a22,⋯,a2K⋮aK1,aK2,⋯,aKK⎦⎥⎥⎥⎤K×K=P(it=qj∣it−1=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 } \begin{aligned} q_i,q_j \in \mathcal Q = \{q_1,q_2,\cdots,q_{\mathcal K}\} \end{aligned} qi,qj∈Q={ q1,q2,⋯,qK} - 发射概率 P ( o t ∣ i t ) \mathcal P(o_t \mid i_t) P(ot∣it)
离散状态动态模型中对观测变量 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(ot∣it)通过查找发射矩阵 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 ) \begin{aligned} \mathcal B & = [b_j(k)]_{\mathcal K \times \mathcal M} = \begin{bmatrix} b_1(1),b_1(2),\cdots,b_1(\mathcal M) \\ b_2(1),b_2(2),\cdots,b_2(\mathcal M) \\ \vdots \\ b_{\mathcal K}(1),b_{\mathcal K}(2),\cdots,b_{\mathcal K}(\mathcal M) \\ \end{bmatrix}_{\mathcal K \times \mathcal M} \\ b_j(k) & = \mathcal P(o_t = v_k \mid i_t = q_j) \end{aligned} 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=vk∣it=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}\} vk∈V={ 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(it∣it−1)
线性高斯动态模型中隐变量之间服从线性关系,且对应噪声服从高斯分布:
i t = A ⋅ i t − 1 + B + ϵ ϵ ∼ N ( 0 , Q ) P ( i t ∣ i t − 1 ) ∼ N ( A ⋅ i t − 1 + B , Q ) \begin{aligned} i_t = \mathcal A \cdot i_{t-1} + \mathcal B + \epsilon \quad \epsilon \sim \mathcal N(0,\mathcal Q)\\ \mathcal P(i_t \mid i_{t-1}) \sim \mathcal N(\mathcal A \cdot i_{t-1} + \mathcal B,\mathcal Q) \end{aligned} it=A⋅it−1+B+ϵϵ∼N(0,Q)P(it∣it−1)∼N(A⋅it−1+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(ot∣it)