4. 残差连接(Residual Connection)与层归一化(LayerNorm)
-
步骤:
-
残差连接:

-
层归一化:对每个样本的特征维度归一化(非批量归一化)。
-
意义:
-
残差连接:缓解深层网络梯度消失,保留原始信息(参考 ResNet)。
-
层归一化:稳定训练过程,减少对批量大小的依赖。
残差连接是深度学习中的一种跳跃连接(Skip Connection)技术,其数学表达为:
输出=F(x)+x
其中:
-
x:输入向量
-
F(x):神经网络层的变换(如线性变换+激活函数)
2. 核心作用
(1)解决梯度消失问题
- 传统深层网络:反向传播时梯度需逐层连乘,导致底层梯度指数衰减

残差网络:梯度可通过恒等路径直达底层

(2)保留原始信息
-
即使深层网络F(x)学习失效,模型仍能退化为恒等映射y=x,避免性能退化
-
实验证明:ResNet-1000层比普通网络训练误差更低
3. Transformer中的残差连接
在Transformer中,每个子层(自注意力/FFN)后都添加残差连接:

双重保障:
-
信息无损传输:原始输入直接传递到高层
-
梯度高速公路:反向传播时梯度可绕过复杂变换
5. 代码实现
python
# PyTorch示例
class ResidualBlock(nn.Module):
def __init__(self, d_model=512):
super().__init__()
self.linear = nn.Linear(d_model, d_model)
self.dropout = nn.Dropout(0.1)
def forward(self, x):
return x + self.dropout(self.linear(x)) # 残差连接
# Transformer子层实现
x = x + attention_layer(x) # 自注意力残差
x = x + ffn_layer(x) # FFN残差
6. 为什么必须使用?
| 问题 | 残差连接的解决方案 |
|---|---|
| 深层网络梯度消失 | 提供直连路径,梯度可无损回传 |
| 信息传递损耗 | 保留原始输入,避免特征扭曲 |
| 训练不稳定 | 即使部分层学习失败,模型仍能正常工作 |