Transformer 是一种基于注意力机制的深度学习模型,广泛应用于自然语言处理、时间序列预测等领域。 其核心在于自注意力机制,能够高效捕捉序列中的全局依赖关系,取代传统的 RNN 和 CNN。
注意力机制:通过计算输入序列中各元素之间的关联,动态分配权重。
注意力机制:通过计算输入序列中各元素之间的关联,动态分配权重,捕捉重要信息。
自注意力:每个元素与序列中所有元素(包括自身)进行关联计算,生成新的表示。
多头注意力:并行运行多个自注意力,增强模型对不同关系的建模能力。
此公式计算注意力权重,用于衡量输入序列中各元素的相关性。
此公式计算注意力权重。
多头注意力公式,通过并行计算多个注意力头,增强模型表达能力。
| 参数名 | 描述 | 值范围 | 默认值 | 建议值 |
|---|---|---|---|---|
| num_layers | 编码器/解码器层数 | - | 6 | - |
| d_model | 模型维度 | - | 512 | - |
| num_heads | 注意力头数 | - | 8 | - |
| d_ff | 前馈网络维度 | - | 2048 | - |
| dropout | Dropout 比率 | - | 0.1 | - |
1. 输入序列 → 变成 embedding(向量表示)。
2. 加上位置编码(告诉模型顺序信息)。
3. 输入到 多层编码器/解码器:每层包含 多头自注意力 + 前馈网络 + 残差 + 层归一化。
4. 得到隐藏状态。
5. 输出层用 softmax 转换为概率,得到下一个 token 的预测分布。
· 并行计算:不同于 RNN,Transformer 可以同时处理整个序列。
· 长依赖建模:自注意力能直接连接远距离元素。
· 可扩展性强:容易加深/加宽,支持大模型训练。
· 通用性强:适用于文本、图像、语音、时间序列。
假设输入序列为 [123, 456, 789],Transformer 模型预测下一个三位数:
1. 将每个三位数转为 embedding。
2. 通过多头自注意力捕捉序列模式。
3. 输出预测下一个三位数(如 234)。
以下是伪代码: