-
什么是 前馈层(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》。