状态空间模型
State Space Models
在机器学习和统计建模中,SSM 是一类非常常用的动态模型,用于表示系统随时间演化(或随其他序列索引变化)的过程。它将系统的“内在状态”与观测到的“输出”分离,并通过状态转移与观测方程来刻画整体系统的动态行为。
物理
以弹簧-质量-阻尼系统 (SMD)为例,在给定一个力作为系统输入量
系统的状态向量可以表示为:
根据牛顿第二定律:
可以表示为:
求解该微分方程,可得:
即:
即:
输出
卡尔曼滤波
基本动态系统模型
卡尔曼滤波模型假设
其中:
- Fk 是作用在 x 上的状态变换模型
- B_k 是作用在控制器向量
上的输入-控制模型 - w_k 是过程噪声,并假定其符合均值为 0,协方差矩阵为
的多元正态分布
算法逻辑
卡尔曼滤波器的状态由以下变量表示:
表示在时刻 的状态的估计 表示已知过去 个时刻的状态,对 时刻状态的预测。 为后验估计误差协方差矩阵,度量估计值的精确程度。
1. 预测
预测步骤中,根据上一时刻的状态和控制量,预测当前时刻的状态。这个预测值是一个估计值,因为它还没有考虑当前时刻的观测值。预测值的误差协方差矩阵是通过上一时刻的误差协方差矩阵和系统噪声协方差矩阵计算得到的。
2. 更新
更新步骤中,根据当前时刻的观测值和预测值,计算出当前时刻的状态估计值。这个估计值是一个更加准确的估计值,因为它已经考虑了当前时刻的观测值。状态估计值的误差协方差矩阵是通过预测步骤中计算得到的误差协方差矩阵、观测噪声协方差矩阵和卡尔曼增益计算得到的。
以上五个公式为卡尔曼滤波的核心公式。更新步骤更加简洁便于理解的形式为,首先计算以下三个量:
然后用它们来更新滤波器变量:
两个方程:状态方程与输出方程
状态方程
输出方程
其中:
:状态转移矩阵 :输入映射矩阵 :观测矩阵 :前馈矩阵
离散化
在实际应用中往往是离散的数据,因此要对模型进行离散化表示。
欧拉法
双线性(bilinear method)
采用双线性变换将连续 SSM 转换为离散形式:
零阶保持法(Zero-Order Hold Technoloty)
SSM 的 RNN 表示
SSM 的卷积表示
假设初始状态
将其写成卷积表达:
S4(结构化序列状态空间模型)
Structured State Space for Sequences
ICLR2022
核心改进:
- 使用低秩修正来优化矩阵
的性质,使其更容易对角化。 - 使用 HiPPO 矩阵解决长距离依赖问题
- 将连续 SSM 转换为离散形式
HiPPO 矩阵:
S4 的参数化
为了避免 HiPPO 矩阵运算量过大,作者提出将 HiPPO 矩阵转换为:正规矩阵+低秩矩阵
NPLR(Normal Plus Low-Rank)
矩阵
RNN 形式
- S4 1 个 step 的计算复杂度依旧为
- S4 1 个 step 的计算复杂度依旧为
卷积形式
计算复杂度从 降低为
S4D(对角状态空间模型)
S4D 模型是一种对角 SSM,它结合了 S4 的计算和参数化优势以及 DSS 的初始化方法。
S4D 模型的核心在于其对角状态矩阵的参数化和初始化,这使得模型在保持简单性的同时,也具备了强大的性能。
S4D 模型的卷积核
S5
ICLR2023
S4 采用的离散 SSM 形式为:
该形式为单输入单输出,对于输入向量
而 S5 采用了多输入多输出(MIMO)形式。