介绍
状态空间模型是概率图生成模型,它假设序列观察数据背后由隐状态支撑,或者说隐状态生成了观察。隐状态符合一阶马尔科夫链假设,也就是说,除了前一时刻隐状态外,当前时刻隐状态独立于过去其它所有时刻的隐状态。如下图
x
n
x_n
xn为观察,
z
n
z_n
zn为隐状态。
模型
如果 z z z是离散状态,那就是HMM模型。如果 z z z是连续状态,可以成为线性动态系统LDS。
模型学习与推断
HMM和LDS的参数都可以用EM算法学习其参数。本文主要描述LDS的基于贝叶斯估计的贝叶斯滤波过程,也就是推断过程。
推断问题:已知模型参数,求
p
(
z
n
∣
x
1
,
.
.
.
x
n
)
p(z_n|x_1,...x_n)
p(zn∣x1,...xn)。
推断思路:递推过程。
后验概率 (Posterior):
p
(
z
n
∣
x
1
,
.
.
.
x
n
)
=
p
(
x
n
∣
z
n
,
x
1
,
.
.
.
,
x
n
−
1
)
p
(
z
n
∣
x
1
,
.
.
.
,
x
n
−
1
)
p
(
x
n
∣
x
1
,
.
.
.
,
x
n
−
1
)
=
p
(
x
n
∣
z
n
)
p
(
z
n
∣
x
1
,
.
.
.
,
x
n
−
1
)
p
(
x
n
∣
x
1
,
.
.
.
,
x
n
−
1
)
p(z_n|x_1,...x_n) \\=\frac{p(x_n|z_n,x_1,...,x_{n-1})p(z_n|x_1,...,x_{n-1})}{p(x_n|x_1,...,x_{n-1})} \\=\frac{p(x_n|z_n)p(z_n|x_1,...,x_{n-1})}{p(x_n|x_1,...,x_{n-1})}
p(zn∣x1,...xn)=p(xn∣x1,...,xn−1)p(xn∣zn,x1,...,xn−1)p(zn∣x1,...,xn−1)=p(xn∣x1,...,xn−1)p(xn∣zn)p(zn∣x1,...,xn−1)
在贝叶斯滤波中求后验分布的整个过程叫滤波。从当前时刻先验分布求当前时刻后验分布叫更新过程。
先验概率 (Prior):
p
(
z
n
∣
x
1
,
.
.
.
,
x
n
−
1
)
=
∫
p
(
z
n
,
z
n
−
1
∣
x
1
,
.
.
.
,
x
n
−
1
)
d
z
n
−
1
=
∫
p
(
z
n
∣
z
n
−
1
,
x
1
,
.
.
.
,
x
n
−
1
)
p
(
z
n
−
1
∣
x
1
,
.
.
.
,
x
n
−
1
)
d
z
n
−
1
=
∫
p
(
z
n
∣
z
n
−
1
)
p
(
z
n
−
1
∣
x
1
,
.
.
.
,
x
n
−
1
)
d
z
n
−
1
p(z_n|x_1,...,x_{n-1}) \\=\int p(z_n,z_{n-1}|x_1,...,x_{n-1})dz_{n-1} \\=\int p(z_n|z_{n-1},x_1,...,x_{n-1})p(z_{n-1}|x_1,...,x_{n-1})dz_{n-1} \\=\int p(z_n|z_{n-1})p(z_{n-1}|x_1,...,x_{n-1})dz_{n-1}
p(zn∣x1,...,xn−1)=∫p(zn,zn−1∣x1,...,xn−1)dzn−1=∫p(zn∣zn−1,x1,...,xn−1)p(zn−1∣x1,...,xn−1)dzn−1=∫p(zn∣zn−1)p(zn−1∣x1,...,xn−1)dzn−1
其中:
p
(
z
n
∣
z
n
−
1
)
p(z_n|z_{n-1})
p(zn∣zn−1)是转换分布已知;
p
(
z
n
−
1
∣
x
1
,
.
.
.
,
x
n
−
1
)
p(z_{n-1}|x_1,...,x_{n-1})
p(zn−1∣x1,...,xn−1)是上一时刻后验概率,也是已知分布。在贝叶斯滤波中,从上一时刻后验分布求当前时刻先验分布叫预测过程。
似然概率 (Likelihood): p ( x n ∣ z n ) p(x_n|z_n) p(xn∣zn)是观测分布,已知。
归一化因子 (Evidence):
p
(
x
n
∣
x
1
,
.
.
.
,
x
n
−
1
)
=
∫
p
(
z
n
,
x
n
∣
x
1
,
.
.
.
,
x
n
−
1
)
d
z
n
=
∫
p
(
x
n
∣
z
n
)
p
(
z
n
∣
x
1
,
.
.
.
,
x
n
−
1
)
d
z
n
p(x_n|x_1,...,x_{n-1}) \\=\int p(z_n,x_n|x_1,...,x_{n-1})dz_n \\=\int p(x_n|z_n)p(z_n|x_1,...,x_{n-1})dz_n
p(xn∣x1,...,xn−1)=∫p(zn,xn∣x1,...,xn−1)dzn=∫p(xn∣zn)p(zn∣x1,...,xn−1)dzn
通过积分运算,即可求得递推过程,因为本文仅描述思路,所以不再展开其它推导过程。