Transformer 论文通俗解读:FFN 中的非线性表达

本文是通俗解读Transformer 论文的FFN部分,你可以点击本文最后左下角的标签查看全部内容。

上一节介绍 FFN层时,提到了在 Transformer 架构中添加 FFN 层的一个作用:为了给神经网络增加非线性表达能力

非线性是学习神经网络时的一个基础知识。

虽然基础,但是我还是希望针对这部分内容做一个更加详细的说明,希望你可以对此有一个更深刻的认识,而不仅仅是 Transfomer 结构。

1、线性系统是什么样的?

请你先回忆一个基础知识:什么是线性函数?回忆完毕后,继续往下看。

假设有一个线性函数:y = kx + b, 这个函数画出来是下面的样子,此时我们可以说 y 和 x 是线性关系。

图片

而如果又有一个线性函数 z = hy + d,那么,我们可以推断出,变量 z 和 x 同样也是线性关系。

为什么呢? 因为你可以通过下面的变量代入变换得到:

z = hy + d  = z(kx + b) + d = zk x + zb + d = zk(x) + (zb + d)

如果令 K = zk,B = zb + d,那么 z 和 x 的关系就可以写出 z = Kx + B。

所以,z 和 x 同样是线性关系,这里就引出一个前提——

两个线性函数的叠加还是线性关系,同理,多个线性函数的叠加最终还是线性关系?

2、FFN 中的 FC 是非线性还是线性呢?

不好意思,FFN 中的全连接层(FC)本身就是一个线性系统。

为了说明这个问题,我询问了一个AI模型,让其来回答一下这个问题。

图片

AI 模型对于这类问题回答的非常好(这里贴个图你可以看一下,也省去了我打字的时间花销😂)。

甚至,你可以将两个首尾相连的全连接层看作是一个全连接层。

图片

看到这你或许对非线性有了一个更深刻的认识了吧——

事实上,神经网络中的很多基础且核心的运算,比如卷积,比如全连接(矩阵乘法),都是一种线性变换层。

如果这些层后面直接连接其他的线性变换层,那么多个线性变换层会退化成一个。

图片

因此,在这类的线性变换层后面,要添加非线性的激活函数,使得整个变换不至于是线性变换,从而使得神经网络模型可以拟合成更加复杂多变的非线性系统。

如此一来,模型就可以处理复杂的任务,而不用担心模型在数学上仅仅是一个简单的线性模型了。

在 Transformer 的 FFN 结构中,先后添加了两个 FC 层,因此,在两个 FC 中间是一定要加入非线性激活函数的,这也是为什么论文中给出的公式是下面的样子:

图片

其中的 max(0, xW1 + b1) 便是对第一个线性层施加 Relu 激活函数。

本文暂且不论 FFN 中添加 FC 的作用,你只需要了解在多个线性层中间一定要添加非线性层,来防止多个线性层叠加退化成一个线性层就可以了。

关于 FFN 中添加 FC,也就是线性层的作用,在后面的文章中会进行详细介绍。防止文章丢失,你可以点击下面连接关注我,来获取最新的文章。


我的技术专栏已经有几百位朋友加入了。

如果你也希望了解AI技术,学习AI视觉或者大语言模型,戳下面的链接加入吧,这可能是你学习路上非常重要的一次点击呀

CV视觉入门第三版(细化版)完成

我的Transformer专栏努力更新中

最后,送一句话给大家:生活不止眼前,还有诗和远方,共勉~           

<think>嗯,用户问的是“基于MLP的模型”,我需要先确认MLP的定义。MLP是多层感知机,也就是多层全连接神经网络。那基于MLP的模型应该是指以MLP为核心结构的模型吧。 首先得解释MLP的基本结构,包括输入层、隐藏层和输出层,每层由神经元组成,使用全连接方式。激活函数的部分很重要,比如Sigmoid、ReLU这些,得说明它们的作用。 然后要讲MLP如何工作,前向传播的过程,输入数据经过层层处理,得到输出。反向传播和梯度下降用于训练,优化参数。这部分可能需要简单描述,但用户可能已经了解基础,所以不用太深入。 接下来,需要说明MLP的应用场景,比如分类、回归,还有具体的例子,比如图像识别、自然语言处理中的简单任务。但也要提到它的局限性,比如处理图像时不如CNN高效,序列数据不如RNN或Transformer好。 用户可能想知道为什么现在还用MLP,可能是在某些轻量级任务或者作为复杂模型的一部分组件。比如Transformer中的FFN其实也是MLP,这点可以提到,说明其现代应用。 另外,可能用户想了解MLP的变体或改进,比如加入残差连接、不同的初始化方法,或者结合其他结构,比如Deep Feedforward Networks。这些扩展可以展示MLP的灵活性。 还要注意用户的背景,可能不是特别熟悉深度学习,所以需要避免太多术语,用通俗的语言解释。比如用“堆叠多个层”而不是“层级联结构”,可能更易懂。 需要确认有没有混淆MLP和其他模型,比如CNN或RNN,强调MLP是全连接的特点。同时,举例子的时候,比如推荐系统或简单模式识别,让用户有更直观的理解。 总结的时候,应该强调MLP的基础地位,虽然简单但重要,是很多复杂模型的基础组件。这样用户能明白学习MLP的价值,即使现在有更高级的模型,MLP依然有用武之地。</think>基于MLP(Multi-Layer Perceptron,**多层感知机**)的模型是一种经典的神经网络模型,也是深度学习中最基础的结构之一。它通过堆叠多个全连接层(Fully Connected Layers),结合非线性激活函数,实现对复杂数据的建模能力。以下是其核心概念和特点: --- ### **1. MLP的基本结构** - **输入层**:接收原始数据(如图像像素、文本特征等)。 - **隐藏层**:介于输入层和输出层之间的多层神经元,每层通过权重矩阵和激活函数对输入进行非线性变换。 - **输出层**:生成最终预测结果(如分类概率、回归值等)。 **示例结构**: 输入层 → 隐藏层1(激活函数) → 隐藏层2(激活函数) → 输出层 --- ### **2. 核心特点** - **全连接**:每一层的神经元与下一层的所有神经元相连,参数规模较大。 - **非线性激活函数**:如ReLU、Sigmoid、Tanh等,赋予模型非线性表达能力。 - **前向传播**:数据从输入层逐层传递到输出层,通过矩阵乘法和激活函数计算输出。 - **反向传播**:通过损失函数计算误差,利用梯度下降优化权重参数。 --- ### **3. 应用场景** - **分类任务**:如图像分类、文本分类。 - **回归任务**:如房价预测、销量预测。 - **简单模式识别**:处理结构化数据或低维非结构化数据。 --- ### **4. 优势和局限性** - **优势**: - 结构简单,易于实现和训练。 - 可作为复杂模型的基础组件(例如Transformer中的FFN层)。 - **局限性**: - 参数量大,容易过拟合。 - 对高维数据(如图像、序列)的局部特征或时序关系建模能力较弱(需配合CNN、RNN等结构)。 --- ### **5. MLP的现代扩展** - **深度MLP**:增加隐藏层数和神经元数量,提升表达能力(如早期的深度前馈网络)。 - **结合残差连接**:通过跳跃连接缓解梯度消失问题(类似ResNet思想)。 - **自注意力增强**:与注意力机制结合,提升对全局信息的捕捉能力。 --- ### **6. 实际案例** - **推荐系统**:用MLP学习用户和物品的交互特征。 - **简单图像分类**:如MNIST手写数字识别(需将图像展平为向量)。 - **Transformer中的FFN**:Transformer模型中的前馈网络本质是两层MLP。 --- ### **总结** MLP是深度学习的基石,尽管在处理复杂任务时可能被CNN、Transformer等结构替代,但其全连接思想和非线性变换能力仍是现代模型的重要组成部分。理解MLP是学习更复杂神经网络模型的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董董灿是个攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值