大模型算法工程师经典面试题————Transformer中 前馈层(FFN) 的作用是什么?

news/2024/11/6 5:08:45 标签: 算法, transformer, 深度学习
  • 什么是 前馈层(FFN)?

  • Transformer的前馈层通常包含哪些组件?

  • Transformer中 前馈层(FFN) 的作用是什么?

什么是 前馈层(FFN)?

        前馈层(FFN)本质上就是一个两层的 MLP。这个MLP的数学本质是:

                

        其中两层感知机中,第一层会将输入的向量升维,第二层将向量重新降维。这样子就可以学习到更加抽象的特征。

        在这两层之间会应用一个非线性激活函数,常用的是ReLU(修正线性单元)。

Transformer中 前馈层(FFN) 的作用是什么?

        当Transformer架构首次提出时,或许并未预料到它会在后续的研究中受到如此细致的探讨。在论文《Attention is Not All You Need: Pure Attention Loses Rank Doubly Exponentially with Depth》中,研究者们进行了实验,发现如果仅使用纯自注意力机制而不结合残差连接和多层感知器(MLP),随着层数的增加,模型的秩会迅速下降,这意味着所有的表示逐渐趋同于单一向量。然而,通过添加MLP以及残差连接,情况得到了显著改善,这表明MLP对于保持模型复杂度是非常重要的。

        MLP通过提升模型的表达能力来发挥作用,这通常是通过升维后应用线性变换实现的,紧接着是一个非线性激活函数。非线性激活函数的加入突破了线性模型的能力界限,让模型能够执行更复杂的数据转换。接着,降维步骤将这些经过增强的高维特征重新映射回初始维度空间,从而使模型能够整合这些非线性特性到其最终输出之中。这一过程不仅提升了模型捕捉数据间复杂关联的能力,还有效地增强了整体表达力。

        此外,在某些情况下,尤其是当采用如门控单元等特定类型的激活函数时,可以把前馈神经网络(FFN)看作是一种键值记忆系统。具体而言,在Transformer结构中,FFN占据了相当大的参数份额;就功能而言,FFN的第一层线性变换可以被视为键(Key)存储,而第二层则对应于值(Value)存储。相关概念可进一步参考论文《Transformer Feed-Forward Layers Are Key-Value Memories》与《End-To-End Memory Networks》。


http://www.niftyadmin.cn/n/5740214.html

相关文章

【LuatOS】修改LuatOS源码为PC模拟器添加高精度时间戳库timeplus

0x00 缘起 LuatOS以及Lua能够提供微秒或者毫秒的时间戳获取工具,但并没有提供获取纳秒的工具。通过编辑LuatOS源码以及相关BSP源码,添加能够获取纳秒的timeplus库并重新编译,以解决在64位Windows操作系统中LuatOS模拟器获取纳秒的问题&#…

51单片机教程(八)- 数码管的静态显示

1、项目分析 使用数码管显示指定的字符、数字和符号。 2、技术准备 1、显示器及其接口 单片机系统中常用的显示器有: 发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、CRT显…

网络技术----wireshark抓包出现1500以上的大包原因分析

网络技术----wireshark抓包出现1500以上的大包原因分析 背景描述原因分析TSO(TCP segment offload,TSO)linux中关闭/开启TSO功能:其他类似TSO的机制 wireshark抓包来源 背景描述 我们在使用抓包工具的过程中,经常发现…

基于MATLAB的农业病虫害识别研究

1 背景介绍 病虫害一直是限制农业生产过程中农业和副产品的高质量和高产量的最重要因素。然而,在识别中国的病虫害时,无论是用肉眼识别的传统方法还是后来专家的系统判断,这些病虫害的特征一般都是主观因素。主观意图非常大,效率…

pdf添加目录标签python(手动配置)

先安装对应的库: pip install pypdf 代码分为两个部分,一部分是config.py,代码如下: offset=10 catgorys=[("第一章",12),("第二章",45), ] 需要自己手动更改offset,和目录列表 下面是主要代码: import pypdf # import sys from config import…

Intellij IDE报错:[Information:java:javacTask:源发行版8需要目标发行版1.8]

Intellij IDE报错:[Information:java:javacTask:源发行版8需要目标发行版1.8] 处理方法 File->Settings->Build,execution,Deployment->Compiler->Java Compiler 进入该目录下,修改Per-module bytecode version,将该项目修改为8 合理的创…

java mapper 的 xml讲解

<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace"com.bnc.s12.mapper.GoodaCateDT…

W55RP20芯片介绍

目录 概述 引脚映射 特征 资料 文件 相关 EVB-Pico 概述 我们最新的 ioNIC 将串行接口与以太网连接集成在一起&#xff0c;为您提供量身定制的网络解决方案。通过支持各种网络协议、增强的 SSL 安全功能和云 SDK&#xff0c;体验行业特定应用程序的优化性能&#xff01; …