Bootstrap

状态空间模型(Structured Space Model)SSM

什么是SSM?——状态空间模型(Structured Space Model)

1. 基本定义

  • 源于现代控制系统理论。SSM是用于描述序列在各时间步的状态表示,并根据输入预测其下一个状态的模型。原始理论处理连续函数。
    • 输入序列 x ( t ) x(t) x(t)
    • 隐状态表示 h ( t ) h(t) h(t)
    • 预测输出序列 y ( t ) y(t) y(t)

2. 公式表示

- h ′ ( t ) = A h ( t ) + B x ( t ) h'(t) = Ah(t) + Bx(t) h(t)=Ah(t)+Bx(t)
- y ( t ) = C h ( t ) + D x ( t ) y(t) = Ch(t) + Dx(t) y(t)=Ch(t)+Dx(t)
公式详解文章链接

3. 连续函数离散化——零阶保持

- h t = A ‾ h t − 1 + B ‾ x t h_t = \overline{A}h_{t-1} + \overline{B}x_t ht=Aht1+Bxt, h 0 = B ‾ x 0 h_0 = \overline{B}x_0 h0=Bx0
- y t = C ‾ h t y_t = \overline{C}h_t yt=Cht
公式详解文章链接

4. 卷积与递归双重属性

公式推导:

y 2 = C h 2 y_2 = Ch_2 y2=Ch2
h 2 = A ‾ h 1 + B ‾ x 2 h_2 = \overline{A}h_1 + \overline{B}x_2 h2=Ah1+Bx2
h 1 = A ‾ h 0 + B ‾ x 1 h_1 = \overline{A}h_0 + \overline{B}x_1 h1=Ah0+Bx1
h 0 = B ‾ x 0 h_0 = \overline{B}x_0 h0=Bx0

结合起来:

y 2 = C ( A ‾ h 1 + B ‾ x 2 ) y_2 = C(\overline{A}h_1 + \overline{B}x_2) y2=C(Ah1+Bx2)
= C ( A ‾ ( A ‾ h 0 + B ‾ x 1 ) + B ‾ x 2 ) = C(\overline{A}(\overline{A}h_0 + \overline{B}x_1) + \overline{B}x_2) =C(A(Ah0+Bx1)+Bx2)
= C ( A ‾ ( A ‾ B ‾ x 0 + B ‾ x 1 ) + B ‾ x 2 ) = C(\overline{A}(\overline{A}\overline{B}x_0 + \overline{B}x_1) + \overline{B}x_2) =C(A(ABx0+Bx1)+Bx2)
= C ( A ‾ A ‾ B ‾ x 0 + A ‾ B ‾ x 1 + B ‾ x 2 ) = C(\overline{A}\overline{A}\overline{B}x_0 + \overline{A}\overline{B}x_1 + \overline{B}x_2) =C(AABx0+ABx1+Bx2)
= C A ‾ 2 B ‾ x 0 + C A ‾ B ‾ x 1 + C B ‾ x 2 = C\overline{A}^2\overline{B}x_0 + C\overline{A}\overline{B}x_1 + C\overline{B}x_2 =CA2Bx0+CABx1+CBx2

卷积运算解释:

我们可以将输出 y k y_k yk看作卷积运算:
y k = ( C A ‾ k B ‾ C A ‾ k − 1 B ‾ . . . C A ‾ B ‾ C B ‾ ) ( x 0 x 1 . . . x k ) y_k = (C\overline{A}^k\overline{B} \quad C\overline{A}^{k-1}\overline{B} \quad ... \quad C\overline{A}\overline{B} \quad C\overline{B}) \begin{pmatrix} x_0 \\ x_1 \\ ... \\ x_k \end{pmatrix} yk=(CAkBCAk1B...CABCB) x0x1...xk
视为卷积核 K = ( C A ‾ k B ‾ C A ‾ k − 1 B ‾ . . . C A ‾ B ‾ C B ‾ ) K = (C\overline{A}^k\overline{B} \quad C\overline{A}^{k-1}\overline{B} \quad ... \quad C\overline{A}\overline{B} \quad C\overline{B}) K=(CAkBCAk1B...CABCB),只要确定了 A , B , C A, B, C A,B,C,就可以进行并行计算。

递归运算解释:

同样地,输出 y k y_k yk也可以看作递归运算:
y k = C A ‾ h k − 1 + B ‾ x k y_k = C\overline{A}h_{k-1} + \overline{B}x_k yk=CAhk1+Bxk

在这里插入图片描述
这个图展示了状态空间模型(SSM)中的卷积与递归运算,特别是如何将输入序列 x k x_k xk转换为输出序列 y k y_k yk的过程。让我们详细解释公式和图示内容。

图示内容和公式

公式:

h t = A ‾ h t − 1 + B ‾ x t − 1 h_t = \overline{A}h_{t-1} + \overline{B}x_{t-1} ht=Aht1+Bxt1
y t = C ‾ h t y_t = \overline{C}h_t yt=Cht

这些公式描述了状态更新和输出生成的过程。

图示分解:
  1. Kernel(卷积核)
    - C ‾ A ‾ 2 B ‾ \overline{C}\overline{A}^2 \overline{B} CA2B
    - C ‾ A ‾ B ‾ \overline{C}\overline{A}\overline{B} CAB
    - C ‾ B ‾ \overline{C}\overline{B} CB

  2. Input(输入序列 x k x_k xk

    • 序列输入 x 0 , x 1 , x 2 x_0, x_1, x_2 x0,x1,x2表示为 “My name is” 。
    • 序列开头使用零填充(padding),表示开始状态的初始化。
  3. Output(输出序列 y k y_k yk
    - y 0 y_0 y0, y 1 y_1 y1, y 2 y_2 y2分别表示不同时间步的输出。

核心步骤:

1. 初始填充和输入:
  • 在时间步 t = 0 t = 0 t=0时,输入 x 0 x_0 x0前有一个零填充,表示初始状态。
  • 输入序列表示为 [0, “My”, “name”, “is”]。
2. 卷积运算:
  • 卷积核分别为 C ‾ A ‾ 2 B ‾ \overline{C}\overline{A}^2 \overline{B} CA2B C ‾ A ‾ B ‾ \overline{C}\overline{A}\overline{B} CAB C ‾ B ‾ \overline{C}\overline{B} CB
  • 卷积核与输入序列进行乘法运算。
3. 求和生成输出:
  • 在每个时间步,进行加法求和,生成输出序列。
详细过程:

- y 0 = C ‾ B ‾ x 0 y_0 = \overline{C} \overline{B} x_0 y0=CBx0,此时 x 0 x_0 x0= “My”。
- y 1 = C ‾ A ‾ B ‾ x 0 + C ‾ B ‾ x 1 y_1 = \overline{C} \overline{A} \overline{B} x_0 + \overline{C} \overline{B} x_1 y1=CABx0+CBx1,此时 x 0 x_0 x0= “My”, x 1 x_1 x1= “name”。
- y 2 = C ‾ A ‾ 2 B ‾ x 0 + C ‾ A ‾ B ‾ x 1 + C ‾ B ‾ x 2 y_2 = \overline{C} \overline{A}^2 \overline{B} x_0 + \overline{C} \overline{A} \overline{B} x_1 + \overline{C} \overline{B} x_2 y2=CA2Bx0+CABx1+CBx2,此时 x 0 x_0 x0= “My”, x 1 x_1 x1= “name”, x 2 x_2 x2= “is”。

示例计算:

  • 假设 A ‾ , B ‾ , C ‾ \overline{A}, \overline{B}, \overline{C} A,B,C为特定的数值矩阵,通过上述步骤进行计算得到各个时间步的输出 y k y_k yk

通过这种卷积与递归相结合的方式,状态空间模型可以有效地处理时间序列数据,捕捉其动态特性,实现输入到输出的高效转换。

;