讲一下 Transformer 的 Encoder 模块?
时间: 2023-11-15 13:40:23 浏览: 149
Transformer中的Encoder、Decoder
Transformer 的 Encoder 模块是由多个相同的层堆叠而成的,每个层包含两个子层:Multi-Head Attention 和 Feed Forward Neural Network。同时,每个子层还有一个残差连接和一个 Layer Normalization 操作。
Multi-Head Attention 子层包含了多个(通常是8个)注意力头,每个头都可以学习到不同的注意力分布,从而可以更好地处理不同类型的语义信息。它接收到三个输入:查询向量 Q、键向量 K 和值向量 V。它首先计算 Q 和 K 的点积,然后除以一个缩放系数,再进行 softmax 归一化,得到注意力分布,最后将注意力分布与值向量 V 相乘,得到输出。
Feed Forward Neural Network 子层是一个全连接网络,它对 Multi-Head Attention 的输出进行非线性转换。它包含两层线性转换,中间有一个 ReLU 激活函数。这个子层的作用是对每个位置的特征进行独立的转换,从而增强模型的表达能力。
残差连接的作用是保留原始输入的信息,使得模型更容易学习到输入和输出之间的映射关系。Layer Normalization 则是对每个层的输出进行归一化操作,使得模型更加稳定和鲁棒。
阅读全文