【Transformer拆解】-4. 残差连接(Residual Connection)与层归一化(LayerNorm)

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)后都添加残差连接:

双重保障:

  1. 信息无损传输:原始输入直接传递到高层

  2. 梯度高速公路:反向传播时梯度可绕过复杂变换

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. 为什么必须使用?

问题 残差连接的解决方案
深层网络梯度消失 提供直连路径,梯度可无损回传
信息传递损耗 保留原始输入,避免特征扭曲
训练不稳定 即使部分层学习失败,模型仍能正常工作
相关推荐
老金带你玩AI3 小时前
ChatGPT dots,到底能替你操多少心?
人工智能
AliCloudROS4 小时前
计算巢 X DeepSeek Harness — 云端智能体工作台
人工智能·阿里云
深蓝AI4 小时前
GitHub的Push一年涨4.9倍:AI Agent为什么逼它重做Git存储?
人工智能·github
stereohomology4 小时前
大模型的观点谨:StoryTold 「Crafting Apps」四件套 · 深度总览
人工智能·llm
运维行者_4 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
Su米苏5 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
美狐美颜sdk5 小时前
直播APP源码可以直接接入视频美颜sdk吗?技术方案详解
android·人工智能·音视频·美颜sdk·直播美颜sdk
问商十三载5 小时前
AI引擎生成式优化实践:刑事辩护律师团队IP构建
大数据·人工智能
冬奇Lab5 小时前
LLM 驱动的自动化测试系列(08):移动端自动化(四)——AppAgent:解析树与视觉特征的结合
人工智能·测试