文章目录
1.背景
我们知道对于一般的概率图模型加上时间就组成了动态系统,即:
图
+
时
间
=
动
态
系
统
(1)
图+时间=动态系统\tag{1}
图+时间=动态系统(1)
动态模型的图结构如下:
动态模型根据隐变量和观测变量之间的关系分成三类:
- 1.隐马尔可夫模型HMM:要求隐状态变量Z是离散变量;对于观测变量X是没有要求的,可以是离散也可以是连续变量
- 2.1卡曼滤波(Kalman-Filter):要求隐变量Z和观测变量X都是连续的,而且都是服从高斯分布的。也是线性高斯模型
- 2.2 粒子滤波(Particle-Filter):要求隐变量Z和观测变量X都是连续的,但不服从高新分布,变量之间也不是线性关系。
2.目标
对于线性动态系统来说,我们有两类问题。
- 学习learning问题:即根据所看到的观测变量X,将模型的参数估计出来。
- 推断inference问题:1.decoding;2.Prob-of-evidence;3.filtering问题;4.smoothing问题;5.prediction问题
3.线性高斯模型分析
我们知道线性高斯模型结构图,那么为啥角线性高斯模型呢?它的线性体现在哪里?它的高斯又体现在哪里?
- 线性关系表示:
Z
t
和
Z
t
−
1
是
线
性
关
系
;
X
t
和
Z
t
是
线
性
关
系
Z_t和Z_{t-1}是线性关系;X_t和Z_{t}是线性关系
Zt和Zt−1是线性关系;Xt和Zt是线性关系
Z t = A ⋅ Z t − 1 + B + ε (2) Z_{t}=A·Z_{t-1}+B+\varepsilon\tag{2} Zt=A⋅Zt−1+B+ε(2)
X t = C ⋅ Z t + D + δ (3) X_{t}=C·Z_{t}+D+\delta\tag{3} Xt=C⋅Zt+D+δ(3) - 高斯表示:即噪声 ε 服 从 高 斯 分 布 即 : ε ∼ N ( 0 , Q ) ; 即 噪 声 δ 服 从 高 斯 分 布 即 : δ ∼ N ( 0 , R ) \varepsilon服从高斯分布即:\varepsilon \sim N(0,Q);即噪声\delta服从高斯分布即:\delta \sim N(0,R) ε服从高斯分布即:ε∼N(0,Q);即噪声δ服从高斯分布即:δ∼N(0,R)
由上述公式可得如下关系:
P
(
Z
t
∣
Z
t
−
1
)
∼
N
(
A
⋅
Z
t
−
1
+
B
,
Q
)
;
此
时
Z
t
−
1
看
作
已
知
(4)
P(Z_t|Z_{t-1})\sim N(A·Z_{t-1}+B,Q);此时Z_{t-1}看作已知\tag{4}
P(Zt∣Zt−1)∼N(A⋅Zt−1+B,Q);此时Zt−1看作已知(4)
P
(
X
t
∣
Z
t
)
∼
N
(
C
⋅
Z
t
+
D
,
R
)
;
此
时
Z
t
看
作
已
知
(5)
P(X_t|Z_{t})\sim N(C·Z_{t}+D,R);此时Z_{t}看作已知\tag{5}
P(Xt∣Zt)∼N(C⋅Zt+D,R);此时Zt看作已知(5)
以上为递推公式,所以我们还要定义一个初始化参数
Z
1
∼
N
(
μ
1
,
Σ
1
)
Z_1 \sim N(\mu_1,\Sigma_1)
Z1∼N(μ1,Σ1),所以综上所示,模型的参数
θ
\theta
θ
θ
=
(
A
,
B
,
C
,
D
,
Q
,
R
,
μ
1
,
Σ
1
)
(6)
\theta=(A,B,C,D,Q,R,\mu_1,\Sigma_1)\tag{6}
θ=(A,B,C,D,Q,R,μ1,Σ1)(6)
4.Filtering 问题分析
我们知道filtering问题的目标是为了求解边缘后验概率
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
(
X
1
,
X
2
,
.
.
.
X
t
,
Z
t
)
P
(
X
1
,
X
2
,
.
.
.
,
X
t
)
∝
P
(
X
1
,
X
2
,
.
.
.
X
t
,
Z
t
)
(7)
P(Z_t|X_1,X_2,...,X_t)=\frac{P(X_1,X_2,...X_t,Z_t)}{P(X_1,X_2,...,X_t)}\propto P(X_1,X_2,...X_t,Z_t)\tag{7}
P(Zt∣X1,X2,...,Xt)=P(X1,X2,...,Xt)P(X1,X2,...Xt,Zt)∝P(X1,X2,...Xt,Zt)(7)
- 注:因为观测变量P(X)已知,故
P
(
X
1
,
X
2
,
.
.
.
,
X
t
)
P(X_1,X_2,...,X_t)
P(X1,X2,...,Xt)为常量。
化简 P ( X 1 , X 2 , . . . X t , Z t ) P(X_1,X_2,...X_t,Z_t) P(X1,X2,...Xt,Zt)可得如下:
P ( X 1 , X 2 , . . . X t , Z t ) = P ( X t ∣ X 1 , X 2 , . . . X t − 1 , Z t ) ⋅ P ( X 1 , X 2 , . . . , X t − 1 , Z t ) (8) P(X_1,X_2,...X_t,Z_t)=P(X_t|X_1,X_2,...X_{t-1},Z_t)·P(X_1,X_2,...,X_{t-1},Z_t)\tag{8} P(X1,X2,...Xt,Zt)=P(Xt∣X1,X2,...Xt−1,Zt)⋅P(X1,X2,...,Xt−1,Zt)(8) - 由观测独立性假设可得:
P
(
X
t
∣
X
1
,
X
2
,
.
.
.
X
t
−
1
,
Z
t
)
=
P
(
X
t
∣
Z
t
)
P(X_t|X_1,X_2,...X_{t-1},Z_t)=P(X_t|Z_t)
P(Xt∣X1,X2,...Xt−1,Zt)=P(Xt∣Zt)
P ( X 1 , X 2 , . . . X t , Z t ) = P ( X t ∣ Z t ) ⋅ P ( X 1 , X 2 , . . . , X t − 1 , Z t ) (9) P(X_1,X_2,...X_t,Z_t)=P(X_t|Z_t)·P(X_1,X_2,...,X_{t-1},Z_t)\tag{9} P(X1,X2,...Xt,Zt)=P(Xt∣Zt)⋅P(X1,X2,...,Xt−1,Zt)(9)
化简 P ( X 1 , X 2 , . . . , X t − 1 , Z t ) P(X_1,X_2,...,X_{t-1},Z_t) P(X1,X2,...,Xt−1,Zt)可得如下:
P ( X 1 , X 2 , . . . , X t − 1 , Z t ) = P ( Z t ∣ X 1 , X 2 , . . . , X t − 1 ) ⋅ P ( X 1 , X 2 , . . . , X t − 1 ) (10) P(X_1,X_2,...,X_{t-1},Z_t)=P(Z_t|X_1,X_2,...,X_{t-1})·P(X_1,X_2,...,X_{t-1})\tag{10} P(X1,X2,...,Xt−1,Zt)=P(Zt∣X1,X2,...,Xt−1)⋅P(X1,X2,...,Xt−1)(10) - 注:
P
(
X
1
,
X
2
,
.
.
.
,
X
t
−
1
)
对
于
Z
来
说
是
常
量
故
可
以
忽
略
P(X_1,X_2,...,X_{t-1})对于Z来说是常量故可以忽略
P(X1,X2,...,Xt−1)对于Z来说是常量故可以忽略
所以可得:
P ( Z t ∣ X 1 , X 2 , . . . , X t ) ∝ P ( X t ∣ Z t ) ⋅ P ( Z t ∣ X 1 , X 2 , . . . , X t − 1 ) (11) P(Z_t|X_1,X_2,...,X_t)\propto P(X_t|Z_t)·P(Z_t|X_1,X_2,...,X_{t-1})\tag{11} P(Zt∣X1,X2,...,Xt)∝P(Xt∣Zt)⋅P(Zt∣X1,X2,...,Xt−1)(11)
化简概率 P ( Z t ∣ X 1 , X 2 , . . . , X t − 1 ) P(Z_t|X_1,X_2,...,X_{t-1}) P(Zt∣X1,X2,...,Xt−1):prediction预测问题,可得如下:
P ( Z t ∣ X 1 , X 2 , . . . , X t − 1 ) = ∫ Z t − 1 P ( Z t , Z t − 1 ∣ X 1 , X 2 , . . . , X t − 1 ) d Z t − 1 (12) P(Z_t|X_1,X_2,...,X_{t-1})=\int_{Z_{t-1}}P(Z_t,Z_{t-1}|X_1,X_2,...,X_{t-1})dZ_{t-1}\tag{12} P(Zt∣X1,X2,...,Xt−1)=∫Zt−1P(Zt,Zt−1∣X1,X2,...,Xt−1)dZt−1(12)
= ∫ Z t − 1 P ( Z t , Z t − 1 ∣ X 1 , X 2 , . . . , X t − 1 ) d Z t − 1 =\int_{Z_{t-1}}P(Z_t,Z_{t-1}|X_1,X_2,...,X_{t-1})dZ_{t-1} =∫Zt−1P(Zt,Zt−1∣X1,X2,...,Xt−1)dZt−1
展开可得:
= ∫ Z t − 1 P ( Z t ∣ Z t − 1 , X 1 , X 2 , . . . , X t − 1 ) ⋅ P ( Z t − 1 ∣ X 1 , X 2 , . . . , X t − 1 ) d Z t − 1 =\int_{Z_{t-1}}P(Z_t|Z_{t-1},X_1,X_2,...,X_{t-1})·P(Z_{t-1}|X_1,X_2,...,X_{t-1})dZ_{t-1} =∫Zt−1P(Zt∣Zt−1,X1,X2,...,Xt−1)⋅P(Zt−1∣X1,X2,...,Xt−1)dZt−1
- 注:由齐次马尔可夫假设可得:
P ( Z t ∣ Z t − 1 , X 1 , X 2 , . . . , X t − 1 ) = P ( Z t ∣ Z t − 1 ) P(Z_t|Z_{t-1},X_1,X_2,...,X_{t-1})=P(Z_t|Z_{t-1}) P(Zt∣Zt−1,X1,X2,...,Xt−1)=P(Zt∣Zt−1);
- 注: P ( Z t − 1 ∣ X 1 , X 2 , . . . , X t − 1 ) 是 规 模 为 t − 1 的 f i l t e r i n g 滤 波 问 题 P(Z_{t-1}|X_1,X_2,...,X_{t-1})是规模为t-1的filtering滤波问题 P(Zt−1∣X1,X2,...,Xt−1)是规模为t−1的filtering滤波问题
综上所述递归式可得预测问题prediction如下:
P
(
Z
t
∣
X
1
,
X
2
,
.
.
.
,
X
t
−
1
)
=
∫
Z
t
−
1
P
(
Z
t
∣
Z
t
−
1
)
⋅
P
(
Z
t
−
1
∣
X
1
,
X
2
,
.
.
.
,
X
t
−
1
)
⏟
f
i
l
l
t
e
r
i
n
g
−
(
t
−
1
)
d
Z
t
−
1
(13)
P(Z_t|X_1,X_2,...,X_{t-1}) = \int_{Z_{t-1}}P(Z_t|Z_{t-1})·\underbrace{P(Z_{t-1}|X_1,X_2,...,X_{t-1})}_{filltering-(t-1)}dZ_{t-1}\tag{13}
P(Zt∣X1,X2,...,Xt−1)=∫Zt−1P(Zt∣Zt−1)⋅filltering−(t−1)
P(Zt−1∣X1,X2,...,Xt−1)dZt−1(13)
- 通过上式可以知道,我们最终得到了规模为 t-1大小的filtering问题,这样就可以得到递归式了,那么我们可以总结,在一个规模为t的filtering问题中,通过prediction问题来构建一个规模为(t-1)大小的filtering问题,从而构成了一个递归式。
递归过程问题如下:update也叫修正,这个算法也叫online问题;
- t=1
P ( Z 1 ∣ X 1 ) ; − > u p d a t e P(Z_1|X_1);-> update P(Z1∣X1);−>update
P ( Z 2 ∣ X 1 ) ; − > p r e d i c i t o n P(Z_2|X_1);-> prediciton P(Z2∣X1);−>prediciton - t=2
P ( Z 2 ∣ X 1 , X 2 ) ; − > u p d a t e P(Z_2|X_1,X_2);-> update P(Z2∣X1,X2);−>update
P ( Z 3 ∣ X 1 , X 2 ) ; − > p r e d i c i t o n P(Z_3|X_1,X_2);-> prediciton P(Z3∣X1,X2);−>prediciton - t =k
… - t = T
P ( Z T ∣ X 1 , X 2 , . . . , X T ) ; − > u p d a t e P(Z_T|X_1,X_2,...,X_T);-> update P(ZT∣X1,X2,...,XT);−>update
P ( Z T + 1 ∣ X 1 , X 2 , . . . , X T ) ; − > p r e d i c i t o n P(Z_{T+1}|X_1,X_2,...,X_T);-> prediciton P(ZT+1∣X1,X2,...,XT);−>prediciton
所以我们看出来,我们可以看到Filtering 问题可以被大致分成两个部分,也就是Prediction 和Update 两个部分。
5.filtering问题具体分析
5.1 线性高斯分布公式
对于高斯分布来说,它具有非常好的性质,就是如果一个变量分布满足高斯分布,那么由于高斯分布具有自共轭分布性质,所以其高斯分布的条件概率分布,边缘概率分布,联合概率分布都是服从高斯分布的,这样就极大的方便和构造模型,为了以后的计算提供了更加简洁的方式。高斯分布基础
- 前提:X,Y是X的线性关系变量,Y=AX+b满足如下性质:
P ( X ) = N ( X ∣ μ , Λ − 1 ) (14) P(X)=N(X|\mu,\Lambda^{-1})\tag{14} P(X)=N(X∣μ,Λ−1)(14)
P ( Y ∣ X ) = N ( X ∣ A X + b , L − 1 ) (15) P(Y|X)=N(X|AX+b,L^{-1})\tag{15} P(Y∣X)=N(X∣AX+b,L−1)(15)
P ( Y ) = N ( Y ∣ A X + b , L − 1 + A − 1 Λ A ) (16) P(Y)=N(Y|AX+b,L^{-1}+A^{-1}\Lambda A)\tag{16} P(Y)=N(Y∣AX+b,L−1+A−1ΛA)(16)
P ( X ∣ Y ) = N ( Σ { A T L ( y − b ) + Λ μ , Σ } ) ; Σ = ( Λ + A T L A ) − 1 (17) P(X|Y)=N(\Sigma\{A^TL(y-b)+\Lambda \mu,\Sigma\});\Sigma=(\Lambda+A^TLA)^{-1}\tag{17} P(X∣Y)=N(Σ{ATL(y−b)+Λμ,Σ});Σ=(Λ+ATLA)−1(17)
5.2 prediction问题分布
由上述我们知道滤波问题分成两个部分,第一部分是prediction问题,第二部分是update问题;prediction问题是为了求解概率值:
P
(
Z
t
∣
X
1
,
X
2
,
.
.
,
X
t
−
1
)
P(Z_t|X_1,X_2,..,X_{t-1})
P(Zt∣X1,X2,..,Xt−1),分析如下:
P
(
Z
t
∣
X
1
,
X
2
,
.
.
,
X
t
−
1
)
=
∫
Z
t
−
1
P
(
Z
t
∣
Z
t
−
1
)
⋅
P
(
Z
t
−
1
∣
X
1
,
X
2
,
.
.
.
,
X
t
−
1
)
d
Z
t
−
1
(18)
P(Z_t|X_1,X_2,..,X_{t-1})=\int_{Z_{t-1}}P(Z_t|Z_{t-1})·P(Z_{t-1}|X_1,X_2,...,X_{t-1})dZ_{t-1}\tag{18}
P(Zt∣X1,X2,..,Xt−1)=∫Zt−1P(Zt∣Zt−1)⋅P(Zt−1∣X1,X2,...,Xt−1)dZt−1(18)
由联合高斯分布的自共轭性,所以目标概率
P
(
Z
t
∣
X
1
,
X
2
,
.
.
,
X
t
−
1
)
P(Z_t|X_1,X_2,..,X_{t-1})
P(Zt∣X1,X2,..,Xt−1)也一定服从高斯分布。即prediction和update 也一定服从高斯分布的。
-
注:此时在第 t 时刻可以知道, X 1 , X 2 , . . . X t − 1 X_1,X_2,...X_{t-1} X1,X2,...Xt−1为已知量,故可以看作常量来忽略。所以 P ( Z t − 1 ∣ X 1 , X 2 , . . . , X t − 1 ) P(Z_{t-1}|X_1,X_2,...,X_{t-1}) P(Zt−1∣X1,X2,...,Xt−1)可以看作为 P ( Z t ) P(Z_t) P(Zt),为了方便后续的转换,我们将 Z t 看 作 Y , Z t − 1 看 作 X Z_t看作Y,Z_{t-1}看作X Zt看作Y,Zt−1看作X
所以原式可以看成如下:
P ( Y ) = ∫ X P ( Y ∣ X ) ⋅ P ( X ) d X (19) P(Y)=\int_X P(Y|X)·P(X)d X\tag{19} P(Y)=∫XP(Y∣X)⋅P(X)dX(19) -
由公式<4>,<5>可得:
P ( Z t ∣ Z t − 1 ) ∼ N ( A ⋅ Z t − 1 + B , Q ) ; 此 时 Z t − 1 看 作 已 知 (20) P(Z_t|Z_{t-1})\sim N(A·Z_{t-1}+B,Q);此时Z_{t-1}看作已知\tag{20} P(Zt∣Zt−1)∼N(A⋅Zt−1+B,Q);此时Zt−1看作已知(20)
P ( X t ∣ Z t ) ∼ N ( C ⋅ Z t + D , R ) ; 此 时 Z t 看 作 已 知 (21) P(X_t|Z_{t})\sim N(C·Z_{t}+D,R);此时Z_{t}看作已知\tag{21} P(Xt∣Zt)∼N(C⋅Zt+D,R);此时Zt看作已知(21) -
定义第t时刻的分布 P ( Z t ∣ X 1 , X 2 , . . . , X t ) ∼ N ( μ t , Σ t ) P(Z_t|X_1,X_2,...,X_t)\sim N(\mu_t,\Sigma_t) P(Zt∣X1,X2,...,Xt)∼N(μt,Σt),我们假设目标预测 P ( Z t ∣ X 1 , X 2 , . . , X t − 1 ) P(Z_t|X_1,X_2,..,X_{t-1}) P(Zt∣X1,X2,..,Xt−1)服从正太分布 N ∼ ( μ t ∗ , Σ t ∗ ) N \sim (\mu^*_t,\Sigma^*_t) N∼(μt∗,Σt∗)
那么我们可以将公式18分布如下:
μ t ∗ = A μ t − 1 + B (22) \mu^*_t=A\mu_{t-1}+B\tag{22} μt∗=Aμt−1+B(22)
Σ t ∗ = Q + A Σ t − 1 A T (23) \Sigma^*_t=Q+A\Sigma_{t-1}A^T\tag{23} Σt∗=Q+AΣt−1AT(23)
5.3 update问题分布
对于update 问题来说,我们的目标是为了求解如下:
P
(
Z
t
∣
X
1
,
X
2
,
.
.
.
,
X
t
−
1
,
X
t
)
∝
P
(
X
t
∣
Z
t
)
⋅
P
(
Z
t
∣
X
1
,
.
.
.
,
X
t
−
1
)
(24)
P(Z_t|X_1,X_2,...,X_{t-1},X_t)\propto P(X_t|Z_t)·P(Z_t|X_1,...,X_{t-1})\tag{24}
P(Zt∣X1,X2,...,Xt−1,Xt)∝P(Xt∣Zt)⋅P(Zt∣X1,...,Xt−1)(24)
- 注:在这一步中,我们知道
X
1
,
X
2
,
.
.
.
X
t
−
1
X_1,X_2,...X_{t-1}
X1,X2,...Xt−1为已知量,故可以看作常量来忽略。而
X
t
X_t
Xt为未知量,所以目标概率可改写成如下:
P ( Z t ∣ X 1 , X 2 , . . . , X t − 1 , X t ) ⏟ P ( X ∣ Y ) ∝ P ( X t ∣ Z t ) ⏟ P ( Y ∣ X ) ⋅ P ( Z t ∣ X 1 , . . . , X t − 1 ) ⏟ P ( X ) (25) \underbrace{P(Z_t|X_1,X_2,...,X_{t-1},X_t)}_{P(X|Y)}\propto \underbrace{P(X_t|Z_t)}_{P(Y|X)}·\underbrace{P(Z_t|X_1,...,X_{t-1})}_{P(X)}\tag{25} P(X∣Y) P(Zt∣X1,X2,...,Xt−1,Xt)∝P(Y∣X) P(Xt∣Zt)⋅P(X) P(Zt∣X1,...,Xt−1)(25) - 注,我们就可以根据上述式子来分析,当我们知道X分布,Y|X分布时,求解X|Y分布,可以根据公式17来求解X|Y的期望和方差即可。具体解析套用公式即可,后续再写。