整理transformer模型的公式
时间: 2024-08-23 18:02:32 浏览: 49
Transformer是一种基于自注意力机制的深度学习模型,最初由Google团队在2017年提出的Transformer模型主要用于自然语言处理任务,特别是机器翻译。它替代了传统的循环神经网络(RNN)结构,消除了长距离依赖的问题。
核心的Transformer模型包括编码器(Encoder)和解码器(Decoder),每个模块都包含了多层自注意力子层(Aself-Attention Layer)和前馈神经网络 Feedforward Network (FFN)。以下是关键部分的数学公式:
1. **自注意力子层(Self-Attention)**:
- 输入是一个三维张量 `(batch_size, sequence_length, hidden_dim)`,其中`hidden_dim`是隐藏层大小。
- 关键点是计算查询(Q), 键(K) 和值(V):
```
Q = XW_Q, K = XW_K, V = XW_V
```
- 使用softmax函数对Q与K做内积,得到注意力权重α:
```
α = softmax(Q^T * K / sqrt(hidden_dim))
```
- 最后的输出是注意力加权和V:
```
Attention_output = α * V
```
2. **多头注意力(Multi-Head Attention)**:
- 将原始信息分为多个“头部”(heads),并对每个头部独立执行上述过程,然后将结果拼接起来。
3. **前馈神经网络(Feedforward Networks)**
- 对经过自注意力层的输入应用两层线性变换和ReLU激活函数:
```
FFN(x) = max(0, xW_1 + b_1) * W_2 + b_2
```
4. **位置编码(Positional Encoding)**:
- 为了捕捉序列的位置信息,给输入加上额外的位置向量。
阅读全文