transformer公式推导
时间: 2025-01-02 15:39:31 浏览: 7
### Transformer 模型公式推导过程详解
#### 输入表示
在Transformer模型中,输入序列首先被转换成向量形式。对于每一个位置上的token,其对应的嵌入向量由两部分组成:词嵌入(Token Embeddings)和位置编码(Positional Encoding)。这种设计使得即使并行处理所有tokens也能保留它们的位置信息[^1]。
```python
import numpy as np
def get_position_encoding(seq_len, d_model):
position_enc = np.array([
[pos / np.power(10000, 2 * (i // 2) / d_model) for i in range(d_model)]
for pos in range(seq_len)])
position_enc[:, 0::2] = np.sin(position_enc[:, 0::2]) # apply sin to even indices
position_enc[:, 1::2] = np.cos(position_enc[:, 1::2]) # apply cos to odd indices
return position_enc
```
#### 自注意力机制
自注意力层允许每个position与其他positions交互来计算新的特征表达。具体来说,在给定查询Q、键K以及值V的情况下,通过下面的公式可以得到加权求和的结果作为输出:
\[ \text{Attention}(Q,K,V)=\text{softmax}\left(\frac{Q K^{T}}{\sqrt{d_{k}}} \right)V \]
其中\( Q=WK^qX,\; K=W_K^k X ,\; V=W_V^v X\) ,这里W代表权重矩阵,X则是输入embedding加上位置编码后的结果[^2]。
#### 前馈神经网络
每一层还包含了一个简单的前馈全连接网络应用于各自的子空间内独立操作:
\[ FFN(x)=max(0,x W_1+b_1)W_2+b_2 \]
这一步骤有助于引入非线性特性到模型架构之中。
#### 编码器-解码器结构
Encoder接收原始句子并通过多层堆叠上述组件形成上下文理解;Decoder则基于encoder产生的中间表征逐步生成目标语言表述。两者之间通过masked multi-head attention防止decoder提前看到未来的信息。
阅读全文