Bootstrap

从 S4 到 S6 的转换过程

在这里插入图片描述
在这里插入图片描述

从 S4 到 S6 的转换过程解释

这张图详细说明了从 S4 模型到 S6 模型的转换过程中,参数矩阵 A \mathbf{A} A B \mathbf{B} B C \mathbf{C} C以及步长 Δ \Delta Δ形状的变化。我们将通过具体的数据举例,解释这些参数如何应用于模型中。

状态空间模型 S4

在 S4 模型中,参数矩阵的形状如下:

  • 矩阵 A \mathbf{A} A ( D , N ) (D, N) (D,N)
    - D D D是输入向量的维度(如颜色通道数 RGB)。
    - N N N是隐藏状态维度。
  • 矩阵 B \mathbf{B} B ( D , N ) (D, N) (D,N)
    • 表示输入向量如何影响当前状态。
  • 矩阵 C \mathbf{C} C ( N , D ) (N, D) (N,D)
    • 表示当前状态如何转换为输出。

状态空间模型 S6

在 S6 模型中,参数矩阵的形状变为:

  • 矩阵 A \mathbf{A} A ( D , N ) (D, N) (D,N)
    • 保持不变,表示当前状态如何随时间演变。
  • 矩阵 B \mathbf{B} B ( B , L , N ) (B, L, N) (B,L,N)
    • 每个批次和序列位置都有一个独特的 B \mathbf{B} B矩阵。
  • 矩阵 C \mathbf{C} C ( B , L , N ) (B, L, N) (B,L,N)
    • 每个批次和序列位置都有一个独特的 C \mathbf{C} C矩阵。
  • 步长 Δ \Delta Δ ( B , L , D ) (B, L, D) (B,L,D)
    • 每个位置的步长 Δ \Delta Δ都不同,允许对输入序列中的每个位置进行独特的离散化处理。

具体示例

假设我们有以下参数:

  • 批量大小 B = 2 B = 2 B=2
  • 序列长度 L = 4 L = 4 L=4
  • 输入维度 D = 3 D = 3 D=3
  • 隐藏状态维度 N = 2 N = 2 N=2
输入矩阵 X \mathbf{X} X

X = ( ( 1 2 3 4 5 6 7 8 9 10 11 12 ) , ( 13 14 15 16 17 18 19 20 21 22 23 24 ) ) \mathbf{X} = \begin{pmatrix} \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ 10 & 11 & 12 \end{pmatrix}, \begin{pmatrix} 13 & 14 & 15 \\ 16 & 17 & 18 \\ 19 & 20 & 21 \\ 22 & 23 & 24 \end{pmatrix} \end{pmatrix} X= 147102581136912 , 131619221417202315182124

矩阵 A \mathbf{A} A

A = ( 0.5 0.1 0.2 0.3 0.4 0.4 ) \mathbf{A} = \begin{pmatrix} 0.5 & 0.1 \\ 0.2 & 0.3 \\ 0.4 & 0.4 \end{pmatrix} A= 0.50.20.40.10.30.4

矩阵 B \mathbf{B} B在 S4 中

B S 4 = ( 0.7 0.8 0.9 1.0 1.1 1.2 ) \mathbf{B}_{S4} = \begin{pmatrix} 0.7 & 0.8 \\ 0.9 & 1.0 \\ 1.1 & 1.2 \end{pmatrix} BS4= 0.70.91.10.81.01.2

矩阵 B \mathbf{B} B在 S6 中

B S 6 = ( ( 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 ) , ( 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 ) ) \mathbf{B}_{S6} = \begin{pmatrix} \begin{pmatrix} 0.7 & 0.8 \\ 0.9 & 1.0 \\ 1.1 & 1.2 \\ 1.3 & 1.4 \end{pmatrix}, \begin{pmatrix} 1.5 & 1.6 \\ 1.7 & 1.8 \\ 1.9 & 2.0 \\ 2.1 & 2.2 \end{pmatrix} \end{pmatrix} BS6= 0.70.91.11.30.81.01.21.4 , 1.51.71.92.11.61.82.02.2

矩阵 C \mathbf{C} C在 S4 中

C S 4 = ( 1.3 1.4 1.5 1.6 1.7 1.8 ) \mathbf{C}_{S4} = \begin{pmatrix} 1.3 & 1.4 \\ 1.5 & 1.6 \\ 1.7 & 1.8 \end{pmatrix} CS4= 1.31.51.71.41.61.8

矩阵 C \mathbf{C} C在 S6 中

C S 6 = ( ( 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 ) , ( 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 ) ) \mathbf{C}_{S6} = \begin{pmatrix} \begin{pmatrix} 1.3 & 1.4 \\ 1.5 & 1.6 \\ 1.7 & 1.8 \\ 1.9 & 2.0 \end{pmatrix}, \begin{pmatrix} 2.1 & 2.2 \\ 2.3 & 2.4 \\ 2.5 & 2.6 \\ 2.7 & 2.8 \end{pmatrix} \end{pmatrix} CS6= 1.31.51.71.91.41.61.82.0 , 2.12.32.52.72.22.42.62.8

步长 Δ \Delta Δ在 S6 中

Δ S 6 = ( ( 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 ) , ( 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 ) ) \Delta_{S6} = \begin{pmatrix} \begin{pmatrix} 0.1 & 0.2 & 0.3 \\ 0.4 & 0.5 & 0.6 \\ 0.7 & 0.8 & 0.9 \\ 1.0 & 1.1 & 1.2 \end{pmatrix}, \begin{pmatrix} 1.3 & 1.4 & 1.5 \\ 1.6 & 1.7 & 1.8 \\ 1.9 & 2.0 & 2.1 \\ 2.2 & 2.3 & 2.4 \end{pmatrix} \end{pmatrix} ΔS6= 0.10.40.71.00.20.50.81.10.30.60.91.2 , 1.31.61.92.21.41.72.02.31.51.82.12.4

处理流程示例

初始化状态 h [ 0 ] \mathbf{h}[0] h[0]

假设初始状态为零向量:
h [ 0 ] = ( 0 0 ) \mathbf{h}[0] = \begin{pmatrix} 0 \\ 0 \end{pmatrix} h[0]=(00)

计算第一个时间步的状态更新(S4)

h [ 1 ] = A h [ 0 ] + B S 4 x [ 0 ] = ( 0.5 0.1 0.2 0.3 0.4 0.4 ) ( 0 0 ) + ( 0.7 0.8 0.9 1.0 1.1 1.2 ) ( 1 2 3 ) \mathbf{h}[1] = \mathbf{A} \mathbf{h}[0] + \mathbf{B}_{S4} \mathbf{x}[0] = \begin{pmatrix} 0.5 & 0.1 \\ 0.2 & 0.3 \\ 0.4 & 0.4 \end{pmatrix} \begin{pmatrix} 0 \\ 0 \end{pmatrix} + \begin{pmatrix} 0.7 & 0.8 \\ 0.9 & 1.0 \\ 1.1 & 1.2 \end{pmatrix} \begin{pmatrix} 1 \\ 2 \\ 3 \end{pmatrix} h[1]=Ah[0]+BS4x[0]= 0.50.20.40.10.30.4 (00)+ 0.70.91.10.81.01.2 123
= ( 0.7 × 1 + 0.8 × 2 + 1.1 × 3 0.9 × 1 + 1.0 × 2 + 1.2 × 3 1.1 × 1 + 1.2 × 2 + 1.3 × 3 ) = ( 5.7 8.3 11.1 ) = \begin{pmatrix} 0.7 \times 1 + 0.8 \times 2 + 1.1 \times 3 \\ 0.9 \times 1 + 1.0 \times 2 + 1.2 \times 3 \\ 1.1 \times 1 + 1.2 \times 2 + 1.3 \times 3 \end{pmatrix} = \begin{pmatrix} 5.7 \\ 8.3 \\ 11.1 \end{pmatrix} = 0.7×1+0.8×2+1.1×30.9×1+1.0×2+1.2×31.1×1+1.2×2+1.3×3 = 5.78.311.1

计算第一个时间步的状态更新(S6)

在 S6 中,状态更新公式类似,但使用的是每个位置独特的 B \mathbf{B} B矩阵和 Δ \Delta Δ
h [ 1 ] = A h [ 0 ] + B S 6 x [ 0 ] = ( 0.5 0.1 0.2 0.3 0.4 0.4 ) ( 0 0 ) + ( 0.7 0.8 0.9 1.0 1.1 1.2 ) ( 1 2 3 ) \mathbf{h}[1] = \mathbf{A} \mathbf{h}[0] + \mathbf{B}_{S6} \mathbf{x}[0] = \begin{pmatrix} 0.5 & 0.1 \\ 0.2 & 0.3 \\ 0.4 & 0.4 \end{pmatrix} \begin{pmatrix} 0 \\ 0 \end{pmatrix} + \begin{pmatrix} 0.7 & 0.8 \\ 0.9 & 1.0 \\ 1.1 & 1.2 \end{pmatrix} \begin{pmatrix} 1 \\ 2 \\ 3 \end{pmatrix} h[1]=Ah[0]+BS6x[0]= 0.50.20.40.10.30.4 (00)+ 0.70.91.10.81.01.2 123
= ( 5.7 8.3 11.1 ) = \begin{pmatrix} 5.7 \\ 8.3 \\ 11.1 \end{pmatrix} = 5.78.311.1

输出计算(S4)

y [ 1 ] = C S 4 h [ 1 ] = ( 1.3 1.4 1.5 1.6 1.7 1.8 ) ( 5.7 8.3 ) \mathbf{y}[1] = \mathbf{C}_{S4} \mathbf{h}[1] = \begin{pmatrix} 1.3 & 1.4 \\ 1.5 & 1.6 \\ 1.7 & 1.8 \end{pmatrix} \begin{pmatrix} 5.7 \\ 8.3 \end{pmatrix} y[1]=CS4h[1]= 1.31.51.71.41.61.8 (5.78.3)
= ( 1.3 × 5.7 + 1.4 × 8.3 1.5 × 5.7 + 1.6 × 8.3 1.7 × 5.7 + 1.8 × 8.3 ) = ( 18.91 21.51 24.11 ) = \begin{pmatrix} 1.3 \times 5.7 + 1.4 \times 8.3 \\ 1.5 \times 5.7 + 1.6 \times 8.3 \\ 1.7 \times 5 .7 + 1.8 \times 8.3 \end{pmatrix} = \begin{pmatrix} 18.91 \\ 21.51 \\ 24.11 \end{pmatrix} = 1.3×5.7+1.4×8.31.5×5.7+1.6×8.31.7×5.7+1.8×8.3 = 18.9121.5124.11

输出计算(S6)

y [ 1 ] = C S 6 h [ 1 ] = ( 1.3 1.4 1.5 1.6 1.7 1.8 ) ( 5.7 8.3 ) \mathbf{y}[1] = \mathbf{C}_{S6} \mathbf{h}[1] = \begin{pmatrix} 1.3 & 1.4 \\ 1.5 & 1.6 \\ 1.7 & 1.8 \end{pmatrix} \begin{pmatrix} 5.7 \\ 8.3 \end{pmatrix} y[1]=CS6h[1]= 1.31.51.71.41.61.8 (5.78.3)
= ( 18.91 21.51 24.11 ) = \begin{pmatrix} 18.91 \\ 21.51 \\ 24.11 \end{pmatrix} = 18.9121.5124.11

总结

通过这个具体的例子,我们展示了从 S4 模型到 S6 模型的转换过程。S6 模型通过为每个批次和序列位置提供独特的 B \mathbf{B} B C \mathbf{C} C Δ \Delta Δ参数,从而允许更加灵活和精细的处理。这种方法能够更好地适应输入数据的变化,提高模型的性能和表达能力。

;