深度学习模型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}} W1Rdmodel×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}} W2Rdff×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} xR512
  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×5122.1M)。
  • 模型深度:FFN的深度(两层线性变换)增强了单层的表达能力,减少所需的总层数。

四、示例说明

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

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

五、总结

若没有前馈网络

  • 模型退化:仅靠自注意力机制,模型退化为线性堆叠,无法拟合复杂模式。
  • 实验验证:移除FFN的Transformer在文本生成、翻译等任务上性能显著下降。
核心点说明
结构两层线性变换 + 激活函数,独立处理每个位置
作用引入非线性、增强局部特征、升维/降维
与自注意力关系全局交互(自注意力) + 局部深化(FFN) = 完整特征学习
必要性避免模型表达能力受限,提升对复杂模式的拟合能力

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/984062.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Helm安装chart包到k8s报错“不能重复使用名称,名称已被使用”

一、报错提示如下 “Error: INSTALLATION FAILED: cannot re-use a name that is still in use”,意思是安装chart时提供的名称已存在,不能重复使用同一个名称。 登录后复制 rootiZ:/usr/local/src/my-helm-repo/charts# helm install mymemcached3 memcached -n te…

容器编排革命:从 Docker Run 到 Docker Compose 的进化之路20250309

容器编排革命:从 Docker Run 到 Docker Compose 的进化之路 一、容器化部署的范式转变 在 Docker 生态系统的演进中,容器编排正从“手动操作”走向“自动化管理”。根据 Docker 官方 2023 年开发者调查报告,78% 的开发者已采用 Docker Compo…

对开源VLA sota π0的微调——如何基于各种开源数据集、以及你自己的私有数据集微调π0(含我司的微调实践)

前言 25年2.4日,几个月前推出π0的公司Physical Intelligence (π)宣布正式开源π0及π0-FAST,如之前所介绍的,他们对用超过 10,000 小时的机器人数据进行了预训练 该GitHub代码仓库「 π0及π0-FAST的GitHub地址:github.com/Ph…

VBA使用fso对象合并指定路径的txt文件(含子目录)

图(1) 前几天我跟大家分享了在VBA中如何获取指定类型文件的路径的方法,其中最重要的一个思路就是在处理完当前目录的文件后,再调用程序自身来对子目录进行处理,以此来实现对子目录的无限循环,直至所有文件都处理完毕为止。按照此设…

nginx反向代理功能

如上图所示,当配置好nginx反向代理服务器的时候,客户端向nginx反向代理服务器发送请求,nginx反向代理服务器再向真实服务器转发请求。 nginx作为反向代理就是利用nginx高并发,速度快的特性,让nginx能够承受更多的链接…

deepseek在pycharm中的配置和简单应用

对于最常用的调试python脚本开发环境pycharm,如何接入deepseek是我们窥探ai代码编写的第一步,熟悉起来总没坏处。 1、官网安装pycharm社区版(免费),如果需要安装专业版,需要另外找破解码。 2、安装Ollama…

【江协科技STM32】ADC数模转换器-学习笔记

ADC简介 ADC(Analog-Digital Converter)模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁,ADC是一种将连续的模拟信号转换为离散的数字信号的设备或模块12位逐次逼近型…

八卡5090服务器首发亮相!

AI 人工智能领域热度居高不下。OpenAI 的 GPT - 4 凭强悍语言处理能力,在内容创作、智能客服等领域广泛应用。清华大学团队的 DeepSeek 大模型在深度学习训练优势突出,正促使各行业应用端算力需求向推理主导转变,呈爆发式增长 。 随着 DeepS…

hadoop集群环境配置

目录 VMware虚拟机安装 Xshell安装 网络问题 centos7下载 ---------参考以下视频步骤进行生态搭建---------- 搭建好hadoop01 克隆出hadoop02、hadoop03 启动三台虚拟机 打开终端 输入 记录下各个ip 打开Xshell,新建会话 修改主机名 配置静态IP 主机名称…

【GPU】什么是NCCL和Simple, LL, LL128通信协议

​​​​​​​什么是NCCL 简介 NCCL 的原理 机器内通信: 机器间通信: NCCL通信协议 简介 NCCL通信选择协议规则 ​​​​​​​1 自动选择 ​​​​​​​2 强制选择 Simple协议 1 介绍 2 Simple 协议的基本格式 2 Simple 协议的示例 Sim…

aws(学习笔记第三十一课) aws cdk深入学习(batch-arm64-instance-type)

aws(学习笔记第三十一课) aws cdk深入学习 学习内容: 深入练习aws cdk下部署batch-arm64-instance-type 1. 深入练习aws cdk下部署batch-arm64-instance-type 代码链接 代码链接 代码链接 -> batch-arm64-instance-type之前代码学习 之前学习代码链接 -> aw…

单细胞多数据集整合和去除批次效应教程,代做各领域生信分析

单细胞多数据集整合和去除批次效应教程 每个数据集的数据分别单独进行读取单细胞数据构建Seurat分析对象 读取各种来源的单细胞数据构建Seurat分析对象的教程 做这一步的时候可以查看我这篇写的非常详细的教程文章: 【腾讯文档】单细胞分析步骤1读取各种来源格式…

什么是OFD文件?2025年我推荐新版OFD阅读器和PDF阅读器,双合一

说起文档格式,大家第一反应肯定是PDF,但你知道吗?现在OFD也越来越常见了,特别是在一些正式文件上。刚开始我也是一脸懵,心想这OFD文件咋看啊?网上一搜,发现原来有专门对付它的阅读器&#xff0c…

计算机网络----主要内容简介

这里写目录标题 章节概览每章的大体结构结构功能与服务的关系 一些概念概念一概念二传统的网络层的工作方式(路由IP)现代的网络层的工作方式(SDN) 二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二…

每日一练之合并两个有序链表

题目描述&#xff1a; 方法&#xff1a;双指针 代码实例&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> struct ListNode {int val;struct ListNode* next; }; typedef struct ListNode ListNode; struct ListNode* merg…

基于Spring3的抽奖系统

注&#xff1a;项目git仓库地址&#xff1a;demo.lottery 小五Z/Spring items - 码云 - 开源中国 目录 注&#xff1a;项目git仓库地址&#xff1a;demo.lottery 小五Z/Spring items - 码云 - 开源中国 项目具体代码可参考仓库源码&#xff0c;本文只讲解重点代码逻辑 一…

Vue使用jsts,将wkt转为geojson

jsts库相关官方资料&#xff1a; JSTS是一个ECMAScript空间谓词和函数库&#xff0c;用于处理符合开放地理空间联盟发布的SQL简单特征规范的几何图形。JSTS也是成熟的Java库JTS的移植。 npm库的地址&#xff1a;https://www.npmjs.com/package/jsts Github开源项目地址&…

【移动WEB开发】rem适配布局

目录 1. rem基础 2.媒体查询 2.1 语法规范 2.2 媒体查询rem 2.3 引入资源&#xff08;理解&#xff09; 3. less基础 3.1 维护css的弊端 3.2 less介绍 3.3 less变量 3.4 less编译 3.5 less嵌套 3.6 less运算 4. rem适配方案 4.1 rem实际开发 4.2 技术使用 4.3 …

数字电子技术基础(二十六)——TTL门电路的输入特性和扇出系数

1 TTL门电路的输入特性 如下图所示为输入端伏安特性曲线的测试电路&#xff1a; 图1 输入端伏安特性曲线测试电路 以流入输入端的方向作为输入电流的参考方向&#xff0c;调节测试电路当中&#xff0c;电位器滑动端的位置&#xff0c;可以为这个与非门的B输入端提供一个可调的…

DeepSeek-R1本地化部署(Mac)

一、下载 Ollama 本地化部署需要用到 Ollama&#xff0c;它能支持很多大模型。官方网站&#xff1a;https://ollama.com/ 点击 Download 即可&#xff0c;支持macOS,Linux 和 Windows&#xff1b;我下载的是 mac 版本&#xff0c;要求macOS 11 Big Sur or later&#xff0c;Ol…