什么是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=Aht−1+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=(CAkBCAk−1B...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=(CAkBCAk−1B...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=CAhk−1+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=Aht−1+Bxt−1
y
t
=
C
‾
h
t
y_t = \overline{C}h_t
yt=Cht
这些公式描述了状态更新和输出生成的过程。
图示分解:
-
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 -
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),表示开始状态的初始化。
-
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。
通过这种卷积与递归相结合的方式,状态空间模型可以有效地处理时间序列数据,捕捉其动态特性,实现输入到输出的高效转换。