深度学习模型Transformer核心组件—前馈网络FFN

第一章:人工智能之不同数据类型及其特点梳理
第二章:自然语言处理(NLP):文本向量化从文字到数字的原理
第三章:循环神经网络RNN:理解 RNN的工作机制与应用场景(附代码)
第四章:循环神经网络RNN、LSTM以及GRU 对比(附代码)
第五章:理解Seq2Seq的工作机制与应用场景中英互译(附代码)
第六章:深度学习架构Seq2Seq-添加并理解注意力机制(一)
第七章:深度学习架构Seq2Seq-添加并理解注意力机制(二)
第八章:深度学习模型Transformer初步认识整体架构
第九章:深度学习模型Transformer核心组件---自注意力机制
第十章:理解梯度下降、链式法则、梯度消失/爆炸
第十一章:Transformer核心组件---残差连接与层归一化
第十二章:Transformer核心组件---位置编码
第十三章:Transformer核心组件---前馈网络FFN

在Transformer模型中,前馈网络(Feed-Forward Network,FFN)是一个关键组件,其作用是对每个位置的表示进行非线性变换,增强模型的表达能力。

下面是Transformer 的架构图,可以看到前馈网络Feed-Forward,在编码器和解码器都存在。

一、前馈网络的结构

上图是一个 3 层线性层的例子,前馈网络由两个线性变换层和一个激活函数组成,公式表示为:
FFN ( x ) = ReLU ( x W 1 + b 1 ) W 2 + b 2 \text{FFN}(x) = \text{ReLU}(xW_1 + b_1)W_2 + b_2 FFN(x)=ReLU(xW1+b1)W2+b2

  • 输入:每个位置的独立表示(如自注意力层的输出)。
  • 参数
    • W 1 ∈ R d model × d ff W_1 \in \mathbb{R}^{d_{\text{model}}} \times d_{\text{ff}} W1∈Rdmodel×dff:第一个线性层的权重矩阵, d model d_{\text{model}} dmodel是词向量的维度, d ff d_{\text{ff}} dff是第二个线性层的维度(通常 d ff = 2048 d_{\text{ff}} = 2048 dff=2048)。
    • b 1 b_1 b1:第一个线性层的偏置。
    • W 2 ∈ R d ff × d model W_2 \in \mathbb{R}^{d_{\text{ff}}} \times d_{\text{model}} W2∈Rdff×dmodel:第二个线性层的权重矩阵。
    • b 2 b_2 b2:第二个线性层的偏置。
  • 激活函数:ReLU(或其他如GELU)引入非线性。
示例 (假设 d model = 512 d_{\text{model}} = 512 dmodel=512):
  1. 输入向量 x ∈ R 512 x \in \mathbb{R}^{512} x∈R512。
  2. 通过 W 1 W_1 W1 映射到 R 2048 \mathbb{R}^{2048} R2048。
  3. 应用ReLU激活。
  4. 通过 W 2 W_2 W2 映射回 R 512 \mathbb{R}^{512} R512。

二、前馈网络的作用

(1) 引入非线性
  • 自注意力的局限性:自注意力层本质是线性变换的加权和(点积运算),缺乏非线性。
  • FFN的补充:通过ReLU激活函数,FFN为模型添加非线性,使其能拟合更复杂的函数。
(2) 独立的位置特征处理
  • 逐位置操作:FFN独立处理每个位置的表示,不涉及序列中其他位置的交互。
  • 局部特征增强:对每个位置的语义信息进行深度加工,例如提取词性、语义角色等局部特征。
(3) 升维与降维
  • 升维:通过中间层(如2048维)扩展表示空间,捕捉更细粒度的特征。
  • 降维:将高维特征压缩回原始维度,保持模型结构的一致性。
(4) 跨层特征融合
  • 分层抽象:不同层的FFN学习不同层次的特征,底层可能捕捉语法,高层可能捕捉语义。

三、前馈网络的设计意义

(1) 与自注意力机制互补
组件 核心功能 交互范围
自注意力机制 捕捉序列内长程依赖和全局关系 全局(所有位置)
前馈网络 增强单个位置的非线性表示能力 局部(单个位置)
(2) 参数规模与模型容量
  • 参数量占比 :在Transformer中,FFN的参数通常占全模型的60%以上(如 d model = 512 d_{\text{model}} = 512 dmodel=512 时,单层FFN参数量为 512 × 2048 + 2048 × 512 ≈ 2.1 M 512{\times}2048 + 2048{\times}512 \approx 2.1M 512×2048+2048×512≈2.1M)。
  • 模型深度:FFN的深度(两层线性变换)增强了单层的表达能力,减少所需的总层数。

四、示例说明

假设输入序列为"猫 吃 鱼",经过自注意力层后,每个位置的表示已包含上下文信息:

  • "猫"的表示:包含"吃"和"鱼"的上下文。
  • FFN处理
    1. 将"猫"的向量从512维映射到2048维,捕捉更细粒度特征(如"主语""动物")。
    2. 通过ReLU过滤非重要特征。
    3. 映射回512维,保留关键信息供下一层使用。

五、总结

若没有前馈网络

  • 模型退化:仅靠自注意力机制,模型退化为线性堆叠,无法拟合复杂模式。
  • 实验验证:移除FFN的Transformer在文本生成、翻译等任务上性能显著下降。
核心点 说明
结构 两层线性变换 + 激活函数,独立处理每个位置
作用 引入非线性、增强局部特征、升维/降维
与自注意力关系 全局交互(自注意力) + 局部深化(FFN) = 完整特征学习
必要性 避免模型表达能力受限,提升对复杂模式的拟合能力
相关推荐
火山引擎开发者社区40 分钟前
TLS for DeepSeek Harness 可观测实践:从系统总览到会话复盘
人工智能
数字融合3 小时前
透明化地铁线视频孪生综合监控项目技术
大数据·人工智能·virtualenv
鼎艺创新科技3 小时前
不依赖 UE/Unity:我们如何从零搭建一套国产三维 GIS 渲染引擎
人工智能·算法·unity·游戏引擎·三维电子沙盘
十三画者4 小时前
【文献分享】ConfRetro:融合3D构象信息的逆合成预测Transformer框架
人工智能·深度学习·数据挖掘·数据分析·transformer·数据可视化
前沿在线4 小时前
百度文心助手推出任务引擎 2.0,日活用户同比增长 83%,日均对话轮次增长超 2 倍
人工智能·ai·大模型
zandy10114 小时前
AI办公工具选哪个?千问办公、百度搭子、WorkBuddy三款高阶智能体深度拆解
人工智能·ai办公工具
mengpp_1234564 小时前
AIoT平台 vs 普通IoT平台 核心区别
人工智能
canonical_entropy4 小时前
可逆不是逆向运行:DeepSeek Harness 架构的数学本质
人工智能·架构·agent
别动我齐刘海4 小时前
机器人运动控制学习2——基础进阶
c++·人工智能·神经网络·学习·目标检测·机器学习·机器人
冬奇Lab5 小时前
Code Agent 解剖(05):模型怎么知道有哪些工具可以用?Function Calling 如何实现?
人工智能·开源·agent