了解transformer。变形金刚!
一个文本变换模型:序列到序列
Transformer 是谷歌于2017年在论文《Attention Is All You Need》中提出的深度学习模型架构。它通过自注意力机制(Self-Attention)完全替代了传统的循环神经网络(RNN)和卷积神经网络(CNN),解决了以下核心问题:
Transformer由编码器(Encoder)和解码器(Decoder)堆叠而成,每层结构独立且参数不共享。以下为关键组件:
自注意力是Transformer的核心,通过计算词与词之间的关联权重,动态聚合上下文信息。其计算过程如下:
生成Q、K、V矩阵:
输入向量通过线性变换生成查询(Query)、键(Key)、值(Value)矩阵。
计算注意力分数:
通过点积计算词与词之间的相似度,再缩放(防止梯度爆炸)并归一化:
\[
\text{Attention}(Q, K, V) =
\text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V\\
{d_k}为Key的维度
\]
多头注意力(Multi-Head):
因为transformer是并行计算每个词语的Attention的,所以没法考虑到语序问题。因此引入了位置编码。通过位置编码为输入序列注入位置信息。
正弦与余弦函数:
\[
PE_{(pos, 2i)} =
\sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right), \quad
PE_{(pos, 2i+1)} =
\cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right)
\] (pos):词的位置,(i):维度索引。
可泛化到任意长度的序列,且能通过线性变换捕捉相对位置关系。
每个注意力层后接一个全连接前馈网络,包含两次线性变换和ReLU激活函数:
\[
\text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2
\]
Transformer凭借其自注意力机制和并行化设计,成为深度学习领域的基石模型。它不仅推动了NLP的快速发展,还跨界影响了计算机视觉、语音识别等领域。尽管存在计算复杂度高、长序列处理难等挑战,其灵活性和强大性能使其成为AI模型设计的核心范式。后续的改进模型(如稀疏注意力、模型压缩等)进一步扩展了其应用边界,奠定了其在现代AI中的核心地位。
前馈网络层,特别是在前馈神经网络中,扮演着至关重要的角色。前馈神经网络是一种最简单的神经网络,各神经元分层排列,每个神经元只与前一层的神经元相连,接收前一层的输出,并输出给下一层,各层间没有反馈。前馈网络层的作用:
特征提取与转换
隐藏层(即前馈网络中的中间层)的主要功能是提取输入数据的特征和抽象表示。通过具有多个隐藏层,神经网络可以学习输入数据中越来越复杂和抽象的特征。隐藏层中的每个神经元都接收来自前一层神经元的输入,对其进行处理(如加权、求和、激活等),并将其传递到下一层。这样,隐藏层可以转换输入数据并提取有用的特征,从而使网络能够学习输入和输出之间更复杂和抽象的关系。
非线性映射:
激活函数(如ReLU、sigmoid、tanh等)在隐藏层中的应用引入了非线性,使得神经网络能够学习和建模输入和输出之间更复杂的非线性关系。
信息传递与整合:
在前馈神经网络中,信息从输入层流向隐藏层,再流向输出层,而不会循环回馈。这种单向信息传递的方式使得网络结构清晰、易于理解和实现。同时,每一层都接收来自前一层的信息,并对其进行整合和处理,最终生成网络的输出。