本节从动态模型开始,介绍卡尔曼滤波(Kalman Filter)。
我们在机器学习笔记之隐马尔可夫模型中已经介绍了一种动态模型。
假设数据集合
X
\mathcal X
X在某连续时刻
{
1
,
2
,
⋯
,
T
}
\{1,2,\cdots,T\}
{1,2,⋯,T}内的观测值序列
{
o
1
,
o
2
,
⋯
,
o
T
}
\{o_1,o_2,\cdots,o_T\}
{o1,o2,⋯,oT}表示如下:
由于这些观测值是基于同一数据集合
X
\mathcal X
X在连续时刻下的观测结果。从常理角度思考,相邻观测值之间存在关联关系。但观测值序列中的关联关系可能不是显式关系,即无法通过观测值序列直接写出它们之间的关联关系。因此有了动态模型的假设(Dynamic Model):
动态模型是指 观测变量的变化规律是基于隐变量
I
\mathcal I
I随着时间/序列的变化而变化,从而影响观测变量
O
\mathcal O
O的变化。其概率图模型可表示为如下形式:
称
O
=
{
o
1
,
o
2
,
⋯
,
o
T
}
\mathcal O = \{o_1,o_2,\cdots,o_{T}\}
O={o1,o2,⋯,oT}为观测变量,
I
=
{
i
1
,
i
2
,
⋯
,
i
T
}
\mathcal I = \{i_1,i_2,\cdots,i_{T}\}
I={i1,i2,⋯,iT}为隐变量。这种概率图模型也称状态空间模型(State Space Model),这种模型的核心思想是:
如果找到了隐变量之间的关联关系,观测变量只与对应时刻的隐变量之间存在关联关系,从而观测变量之间相互独立。
这看起来和上述介绍的‘相邻观测值之间存在关联关系’相悖,实际上,只是将‘观测变量中的关联关系’转移至隐变量中,而观测变量被看成‘对应时刻给定隐变量下的结果’。
这种概率图表示也完全符合‘贝叶斯网络’中的描述。以
o
t
o_{t}
ot为例,可能与
o
t
o_{t}
ot相关联的结点表示如下:
上图描述的是
贝叶斯网络结构表示中提到的‘同父结构’和‘顺序结构’。但无论是其中哪种结构,在给定隐变量
i
t
i_t
it的条件下,
o
t
o_t
ot与
i
t
−
1
,
i
t
+
1
i_{t-1},i_{t+1}
it−1,it+1之间均条件独立。
这也是动态模型中的 观测独立性假设。
动态模型中共包含三类概率:
这里以‘一阶齐次马尔可夫假设’为例。
马尔可夫模型的特点是 每一时刻的隐变量
i
t
(
t
=
1
,
2
,
⋯
,
T
)
i_t(t=1,2,\cdots,T)
it(t=1,2,⋯,T)必须是离散型随机变量,而对应观测变量
o
t
(
t
=
1
,
2
,
⋯
,
T
)
o_t(t=1,2,\cdots,T)
ot(t=1,2,⋯,T)不做要求。
通常为了简化运算,也将观测变量
o
t
o_t
ot定义为‘离散型随机变量’。
如果 隐变量是连续型随机变量,可分为两种情况:
从变量的分布条件角度,也可称卡尔曼滤波为‘线性高斯模型’(Linear Gaussian Model)。
相关推导过程见
隐马尔可夫模型(五)学习问题——EM算法其中
K
\mathcal K
K表示‘离散型随机变量’的隐状态存在
K
\mathcal K
K种选择。
这明显是一个‘在线算法’(on-line Algorithm),只有在对应时刻以及之前所有时刻观测变量给定的条件下,才能够计算出当前时刻的隐变量信息。
与‘滤波问题’相对应的,这是一个‘离线算法’(off-line Algorithm),在完整序列的观测变量给定的条件下,可以计算任意时刻的隐变量信息。
与隐马尔可夫模型类似,卡尔曼滤波主要从三个方面进行描述:
表示基于
i
t
i_t
it噪声的协方差信息。
表示基于
o
t
o_t
ot噪声的协方差信息。
这里回顾隐马尔可夫模型中的状态转移过程:
那么,卡尔曼滤波中状态转移概率
P
(
i
t
+
1
∣
i
t
)
\mathcal P(i_{t+1} \mid i_t)
P(it+1∣it)和发射概率
P
(
o
t
∣
i
t
)
\mathcal P(o_t \mid i_t)
P(ot∣it)的具体表示为:
一个线性函数 + 高斯分布,并不影响其结果是高斯分布的本质,其结果仅对高斯分布的均值位置进行平移,对协方差结果不产生影响。
P
(
i
t
∣
i
t
−
1
)
∼
N
(
A
⋅
i
t
−
1
+
B
,
Q
)
P
(
o
t
∣
i
t
)
∼
N
(
C
⋅
i
t
+
D
,
R
)
\mathcal P(i_t \mid i_{t-1}) \sim \mathcal N(\mathcal A \cdot i_{t-1} + \mathcal B,\mathcal Q) \\ \mathcal P(o_t \mid i_t) \sim \mathcal N(\mathcal C \cdot i_t + \mathcal D,\mathcal R)
P(it∣it−1)∼N(A⋅it−1+B,Q)P(ot∣it)∼N(C⋅it+D,R)
隐马尔可夫模型与卡尔曼滤波中需要求解的模型参数对比如下:
λ
=
{
(
π
,
A
,
B
)
→
H
i
d
d
e
n
M
a
r
k
o
v
M
o
d
e
l
(
A
,
B
,
C
,
D
,
Q
,
R
,
μ
1
,
Σ
1
)
→
K
a
l
m
a
n
F
i
l
t
e
r
\lambda =
相关参考:
徐亦达机器学习:Kalman-Filter-part-1
机器学习-线性动态系统1-KalmanFilter-背景介绍