人工智能学习:Transformer结构中的子层连接(Sublayer Connection)
Transformer结构中的子层连接(Sublayer Connection)
一、子层连接介绍
-
概念
子层连接(Sublayer Connection),也称为残差连接(Residual Connection),是Transformer模型中的一个关键设计,用于将多个子层(如自注意力层和前馈全连接层)组合在一起。它通过残差连接(Residual Connection)和层归一化(Layer Normalization)来增强模型的训练稳定性和性能。
如下图所示,输入到每个子层以及规范化层的过程中,还使用了残差连接(跳跃连接),因此我们把这一部分结构整体叫做子层连接(代表子层及其连接结构),在每个编码器层中都有两个子层,这两个子层加上周围的连接结构就形成了两个子层连接结构。
-
结构
-
残差连接:将子层的输入直接加到子层的输出上。
-
层归一化:对残差连接的结果进行归一化。
-
公式:
Output=LayerNorm(x+Sublayer(x))
- x:子层的输入
- Sublayer(x):子层的输出(如自注意力层或前馈全连接层)
- LayerNorm:层归一化
-
-
作用
- 避免梯度消失或爆炸:在深度神经网络中,梯度可能会在反向传播过程中逐渐消失或爆炸,导致训练不稳定。通过残差连接,输入能够直接传递到输出,从而有效地缓解了梯度消失问题。梯度可以通过残差路径传递,使得深层网络的训练变得更加容易。
- 加速收敛:由于残差连接使得信息更容易流动,因此它能够加速模型的训练过程。这种加速效果特别显著,在更深层的网络中,残差连接可以帮助网络更快地收敛到最佳解。
- 有效信息传递:层归一化的应用确保了每一层的输出具有合适的分布,从而避免了过大的激活值引起的数值不稳定问题。这保证了模型的训练过程中,信息能够有效地在不同层之间传递。
- 防止过拟合:通过残差连接,模型可以更好地捕捉和保留有用的特征,避免信息丢失,有助于减轻过拟合问题,尤其是在深层网络中。
二、代码实现
Python
# 子层连接结构 子层(前馈全连接层 或者 注意力机制层)+ norm层 + 残差连接
# SublayerConnection实现思路分析