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

问题 残差连接的解决方案
深层网络梯度消失 提供直连路径,梯度可无损回传
信息传递损耗 保留原始输入,避免特征扭曲
训练不稳定 即使部分层学习失败,模型仍能正常工作
相关推荐
IT_陈寒9 分钟前
Vue的响应式更新有时候真的不听话
前端·人工智能·后端
柳絮飞祭奠13 分钟前
Dify Windows Docker Desktop 部署文档
人工智能·深度学习·语言模型·数据分析·transformer·边缘计算·集成学习
DeepLink_202518 分钟前
Triton第四课:基于对称内存融合 AllGather 与 MatMul,提速1.56倍
人工智能·芯片·技术科普
zhangfeng113320 分钟前
AMD Instinct MI50(gfx906)上为 Qwen 系列模型优化并可用的 vLLM 相关仓库、Docker 镜像与实践指南。
人工智能·docker·ai编程·qwen·算子开发·vllm·mi50
其实防守也摸鱼22 分钟前
信创是什么:一文读懂信息技术应用创新
人工智能·阿里云·云计算·github·copilot
咖啡星人k25 分钟前
2026 AI Agent 长期记忆:为什么 AI 助手总“聊完就忘“?MonkeyCode 免费上手
人工智能·深度学习·机器学习·语言模型·自然语言处理
帅哥的AI自修课26 分钟前
AI 换个会话就装失忆?Letta 焊死「记忆即灵魂」,从 MemGPT 的 OS 梦到 Core/Recall/Archival 三层记忆一篇打通
人工智能
机构师32 分钟前
AI编程实战:效率与成本,AI 编程的 ROI 怎么算
人工智能·prompt·ai编程·deepseek
ManageEngineITSM33 分钟前
什么是CMDB?配置管理数据库的定义、作用与建设方法一文讲清
大数据·数据库·人工智能·资产管理·变更管理
Delite80237 分钟前
开口闪点检测智能化升级:工业油品安全检测的标准化解决方案
大数据·人工智能·安全