diff --git a/docs/chapter2/第二章 Transformer架构.md b/docs/chapter2/第二章 Transformer架构.md index 955916c..8caab53 100644 --- a/docs/chapter2/第二章 Transformer架构.md +++ b/docs/chapter2/第二章 Transformer架构.md @@ -388,7 +388,7 @@ $$ \mu_j = \frac{1}{m}\sum^{m}_{i=1}Z_j^{i} $$ -其中,$Z_j^{i}$ 是样本 i 在第 j 个维度上的值,m 就是 mini-batch 的大小。 +其中, $Z_j^{i}$ 是样本 i 在第 j 个维度上的值,m 就是 mini-batch 的大小。 再计算样本的方差: @@ -616,13 +616,33 @@ $$ 我们以一个简单的例子来说明位置编码的计算过程:假如我们输入的是一个长度为 4 的句子"I like to code",我们可以得到下面的词向量矩阵 $\rm x$ ,其中每一行代表的就是一个词向量, $\rm x_0=[0.1,0.2,0.3,0.4]$ 对应的就是“I”的词向量,它的pos就是为0,以此类推,第二行代表的是“like”的词向量,它的pos就是1: $$ -\rm x = \begin{bmatrix} 0.1 & 0.2 & 0.3 & 0.4 \\ 0.2 & 0.3 & 0.4 & 0.5 \\ 0.3 & 0.4 & 0.5 & 0.6 \\ 0.4 & 0.5 & 0.6 & 0.7 \end{bmatrix} +\rm x = \begin{bmatrix} +0.1 & 0.2 & 0.3 & 0.4 \\ +0.2 & 0.3 & 0.4 & 0.5 \\ +0.3 & 0.4 & 0.5 & 0.6 \\ +0.4 & 0.5 & 0.6 & 0.7 +\end{bmatrix} $$ ​则经过位置编码后的词向量为: $$ -\rm x_{PE} = \begin{bmatrix} 0.1 & 0.2 & 0.3 & 0.4 \\ 0.2 & 0.3 & 0.4 & 0.5 \\ 0.3 & 0.4 & 0.5 & 0.6 \\ 0.4 & 0.5 & 0.6 & 0.7 \end{bmatrix} + \begin{bmatrix} \sin(\frac{0}{10000^0}) & \cos(\frac{0}{10000^0}) & \sin(\frac{0}{10000^{2/4}}) & \cos(\frac{0}{10000^{2/4}}) \\ \sin(\frac{1}{10000^0}) & \cos(\frac{1}{10000^0}) & \sin(\frac{1}{10000^{2/4}}) & \cos(\frac{1}{10000^{2/4}}) \\ \sin(\frac{2}{10000^0}) & \cos(\frac{2}{10000^0}) & \sin(\frac{2}{10000^{2/4}}) & \cos(\frac{2}{10000^{2/4}}) \\ \sin(\frac{3}{10000^0}) & \cos(\frac{3}{10000^0}) & \sin(\frac{3}{10000^{2/4}}) & \cos(\frac{3}{10000^{2/4}}) \end{bmatrix} = \begin{bmatrix} 0.1 & 1.2 & 0.3 & 1.4 \\ 1.041 & 0.84 & 0.41 & 1.49 \\ 1.209 & -0.016 & 0.52 & 1.59 \\ 0.541 & -0.489 & 0.895 & 1.655 \end{bmatrix} +\rm x_{PE} = \begin{bmatrix} +0.1 & 0.2 & 0.3 & 0.4 \\ +0.2 & 0.3 & 0.4 & 0.5 \\ +0.3 & 0.4 & 0.5 & 0.6 \\ +0.4 & 0.5 & 0.6 & 0.7 +\end{bmatrix} + \begin{bmatrix} +\sin(\frac{0}{10000^0}) & \cos(\frac{0}{10000^0}) & \sin(\frac{0}{10000^{2/4}}) & \cos(\frac{0}{10000^{2/4}}) \\ +\sin(\frac{1}{10000^0}) & \cos(\frac{1}{10000^0}) & \sin(\frac{1}{10000^{2/4}}) & \cos(\frac{1}{10000^{2/4}}) \\ +\sin(\frac{2}{10000^0}) & \cos(\frac{2}{10000^0}) & \sin(\frac{2}{10000^{2/4}}) & \cos(\frac{2}{10000^{2/4}}) \\ +\sin(\frac{3}{10000^0}) & \cos(\frac{3}{10000^0}) & \sin(\frac{3}{10000^{2/4}}) & \cos(\frac{3}{10000^{2/4}}) +\end{bmatrix} = \begin{bmatrix} +0.1 & 1.2 & 0.3 & 1.4 \\ +1.041 & 0.84 & 0.41 & 1.49 \\ +1.209 & -0.016 & 0.52 & 1.59 \\ +0.541 & -0.489 & 0.895 & 1.655 +\end{bmatrix} $$ 我们可以使用如下的代码来获取上述例子的位置编码: