神经网络Transformer架构中的前馈网络
字数 1291 2025-11-18 13:59:22
神经网络Transformer架构中的前馈网络
神经网络Transformer架构中的前馈网络是Transformer模型中的一个关键组件,它独立处理每个位置的表示,负责非线性变换和特征增强。以下是循序渐进的讲解:
-
基本定位
前馈网络位于Transformer的每个编码器和解码器层中,紧跟在多头注意力机制之后。它独立作用于序列中的每个位置(例如,句子中的每个单词),不跨位置共享信息,这与关注位置间关系的注意力机制形成互补。例如,在句子“I love AI”中,前馈网络会分别处理“I”、“love”、“AI”三个位置的向量。 -
结构组成
前馈网络由两个线性变换和一个非线性激活函数构成:- 第一线性层:将输入向量从维度 \(d_{\text{model}}\)(如512)投影到更高维度 \(d_{\text{ff}}\)(如2048),扩展特征空间以捕获复杂模式。
- 激活函数:通常使用ReLU(Rectified Linear Unit)或GELU(Gaussian Error Linear Unit),引入非线性,使模型能够学习更复杂的函数。例如,ReLU会将负值置零,保留正值。
- 第二线性层:将维度从 \(d_{\text{ff}}\) 降回 \(d_{\text{model}}\),确保输出与输入维度一致,便于后续残差连接和层归一化。
-
数学表达
给定输入向量 \(x\),前馈网络的操作可表示为:
\[ \text{FFN}(x) = \text{Linear}_2(\text{Activation}(\text{Linear}_1(x))) \]
其中,\(\text{Linear}_1\) 和 \(\text{Linear}_2\) 为两个线性变换,\(\text{Activation}\) 为激活函数。实际中,第二线性层常包含偏置项,而第一层可能省略偏置以优化计算。
-
作用与意义
- 特征增强:通过非线性变换深化每个位置的表征,例如帮助模型区分“bank”在“river bank”和“bank account”中的不同含义。
- 参数隔离:前馈网络与注意力机制共享参数,但专注于位置内变换,减少模型对注意力单独依赖的风险。
- 效率优化:尽管维度扩展,但因独立处理各位置,可高度并行化,提升训练速度。
-
实际应用示例
在机器翻译中,当Transformer处理单词“learning”时,多头注意力已聚合上下文信息(如与“machine”的关系),前馈网络则进一步强化该单词本身的语义特征,确保输出编码更精准。 -
变体与扩展
现代Transformer的变体(如BERT、GPT)可能调整前馈网络:- 使用GELU替代ReLU,缓解梯度消失问题。
- 增加中间层数(如DeepNorm),提升模型深度而不稳定训练。
- 压缩 \(d_{\text{ff}}\) 维度(如T5模型),平衡性能与计算成本。
通过以上步骤,前馈网络在Transformer中实现了位置级特征深化,与注意力机制协同提升模型表现。