论文:A new approach to linear filtering and prediction problems http://160.78.24.2/Public/Kalman/Kalman1960.pdf
术语状态空间模型具有非常广泛的含义,它简单地表示任何具有潜在状态的循环过程的概念。 它已被用来指代不同学科中的许多不同概念,包括马尔可夫决策过程 (MDP)(强化学习(Hafner 等人,2020))、动态因果建模(DCM)(计算神经科学(Friston、Harrison 和 Penny 2003) ))、卡尔曼滤波器(控制(Kalman 1960))、隐马尔可夫模型(HMM)和线性动力系统(LDS)(机器学习)以及循环(有时是卷积)模型(深度学习)。
状态空间模型是一种描述动态系统行为的数学模型,它使用一组一阶微分方程(连续时间系统)或差分方程(离散时间系统)来表示系统的内部状态的演化,同时用另一组方程来描述系统状态和输出之间的关系。这些方程可以表示为矩阵和向量的形式,以处理多变量系统。
在状态空间表述中,系统由下面的两个方程组定义。SSM将一个1-D的输入向量
u
(
t
)
u(t)
u(t)映射为一个N-D的潜在状态变量
x
(
t
)
x(t)
x(t),然后再映射为一个1-D的输出向量
y
(
t
)
y(t)
y(t)。我们的目标是将这个SSM作为黑盒转化为深度模型,其中参数F、D、M、G通过梯度下降等方法学习,并且参数G可以省略,因为参数G的作用类似残差网络的跳跃链接。
用下图可以说明这个过程。
将状态空间模型从连续过程转换为离散过程是控制理论和信号处理中的一个常见任务,因为数字计算机和微控制器通常只能处理离散时间信号。为了在数字设备上实现卡尔曼滤波器,我们需要将连续时间下的状态空间模型离散化。
连续时间状态空间模型通常表示为微分方程的形式:
x
˙
(
t
)
=
A
(
t
)
x
(
t
)
+
B
(
t
)
u
(
t
)
\dot{\mathbf{x}}(t) = \mathbf{A}(t) \mathbf{x}(t) + \mathbf{B}(t) \mathbf{u}(t)
x˙(t)=A(t)x(t)+B(t)u(t)
y
(
t
)
=
C
(
t
)
x
(
t
)
+
D
(
t
)
u
(
t
)
\mathbf{y}(t) = \mathbf{C}(t) \mathbf{x}(t) + \mathbf{D}(t) \mathbf{u}(t)
y(t)=C(t)x(t)+D(t)u(t)
这里,
x
(
t
)
\mathbf{x}(t)
x(t) 是状态向量,
u
(
t
)
\mathbf{u}(t)
u(t) 是输入向量,
y
(
t
)
\mathbf{y}(t)
y(t)是输出向量,
A
(
t
)
\mathbf{A}(t)
A(t),
B
(
t
)
\mathbf{B}(t)
B(t),
C
(
t
)
\mathbf{C}(t)
C(t), 和
D
(
t
)
\mathbf{D}(t)
D(t) 分别是系统矩阵。
离散化过程涉及以下步骤:
一旦连续系统被转换为离散系统,就可以使用离散时间的卡尔曼滤波器来估计系统的状态。注意,离散化过程必须保留系统的关键动态特性,而且采样时间必须遵守奈奎斯特采样定理,以避免混叠现象。
用下图可以说明这个过程。
我们可以使用卡尔曼滤波器解决状态空间方程。
卡尔曼滤波器用于解决状态空间模型中的估计问题时,分为两个阶段:预测阶段和更新阶段。状态空间模型通常由两个方程定义:状态方程和观测方程。
状态方程描述了系统状态的时间演化,通常形式为:
x
k
=
F
k
x
k
−
1
+
B
k
u
k
+
w
k
\mathbf{x}_k = \mathbf{F}_k \mathbf{x}_{k-1} + \mathbf{B}_k \mathbf{u}_k + \mathbf{w}_k
xk=Fkxk−1+Bkuk+wk
其中,
观测方程描述了如何从状态向量得到观测量,形式为:
z
k
=
H
k
x
k
+
v
k
\mathbf{z}_k = \mathbf{H}_k \mathbf{x}_k + \mathbf{v}_k
zk=Hkxk+vk
其中,
现在我们来看卡尔曼滤波器如何工作: