重温 SSM(一):线性系统和 HiPPO 矩阵

引言

前几天,我看了几篇介绍 SSM(State Space Model) 的文章,才发现自己从未认真了解过 SSM,于是决定深入学习相关内容,并记录下我的学习所得。 SSM 的概念由来已久,但我们这里特指的是深度学习中的 SSM 。一般认为它的开篇之作是 2021 年的 S4,而 SSM 最新的变体大概是去年的 Mamba 。

SSM 的背景与发展

SSM 在深度学习中的应用起源于 S4,但在 S4 之前有一篇重要的奠基之作 《HiPPO: Recurrent Memory with Optimal Polynomial Projections 》 (简称 HiPPO) 。本文将从 HiPPO 开始,深入探讨其基本形式、数学推导及其在 SSM 中的应用。

基本形式

对于已经对 SSM 有所了解的读者,可能知道 SSM 建模所用的是线性 ODE 系统:
[
\begin{aligned}
x'(t) =&\, A x(t) + B u(t) \
y(t) =&\, C x(t) + D u(t)
\end{aligned}
]
其中 (u(t) \in \mathbb{R}^{d_i}, x(t) \in \mathbb{R}^{d}, y(t) \in \mathbb{R}^{d_o}, A \in \mathbb{R}^{d \times d}, B \in \mathbb{R}^{d \times d_i}, C \in \mathbb{R}^{d_o \times d}, D \in \mathbb{R}^{d_o \times d_i}) 。

线性系统的选择

线性系统之所以被选择,是因为它们既足够简单,也足够复杂。简单是指线性化是复杂系统的基本近似,而复杂是指即便简单的线性系统也可以拟合异常复杂的函数。

HiPPO 的贡献

HiPPO 的贡献在于当我们试图用正交基去逼近一个动态更新的函数时,其结果自然而然地成为了线性系统。 HiPPO 不仅证明了线性系统能够逼近复杂函数,还告诉我们如何去逼近,甚至近似程度如何。

邻近窗口计算与勒让德多项式

通过选取勒让德多项式为基函数,HiPPO 在处理实时信号的邻近窗口时,推导出了一个线性 ODE 系统。这一推导过程展示了线性系统在记忆和逼近动态函数方面的强大能力。

应用与理论意义

HiPPO 的理论框架为后来的诸多 SSM 提供了基础,特别是在深度学习模型中。 SSM 的应用不仅限于解决复杂的动态系统问题,还展示了其在处理大规模数据和长序列记忆方面的潜力。

总结

本文以尽可能简单的方式重复了 HiPPO 的主要推导,通过适当的记忆假设,自下而上地导出了线性 ODE 系统,并且针对勒让德多项式的情形求出了相应的解析解。 HiPPO 的结果被诸多 SSM 使用,成为 SSM 的重要奠基之作。

参考文献

  • 《 HiPPO: Recurrent Memory with Optimal Polynomial Projections 》

以上内容是对 SSM 和 HiPPO 矩阵的简要介绍和总结,希望对大家有所帮助。


原文链接:

发表评论