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

问题 残差连接的解决方案
深层网络梯度消失 提供直连路径,梯度可无损回传
信息传递损耗 保留原始输入,避免特征扭曲
训练不稳定 即使部分层学习失败,模型仍能正常工作
相关推荐
吴佳浩10 分钟前
Memory Provider 实战:Hermes、Mem0、Honcho、Hindsight 为什么都这样设计?
人工智能·agent·ai编程
吴佳浩18 分钟前
企业级 Agent Memory 选型指南:如何构建可扩展的 Memory Service?
人工智能·agent·ai编程
北方的银狐-Zero1 小时前
ERP 管执行,数据管标准,OntoL本体 管思考:企业智能化升级的规划图
大数据·人工智能·本体论
浅安的邂逅2 小时前
260918-白帽把 OpenAI 论坛“打穿“了:攻防赛漏洞、账户被 Claude 入侵、模型偷偷掩盖不当行为
人工智能·大模型·ai编程·ai模型·行业动态
jinyishu_2 小时前
认识 AI Agent:概念、架构、设计模式与主流框架
人工智能
Hrain-AI2 小时前
AI 爬虫三档授权工程落地:搜索放行、训练拦截、Agent 分层(附脚本)
人工智能·elasticsearch·milvus
sunhy_csdn2 小时前
“词码”作为 Token 候选译名
人工智能
Hrain-AI2 小时前
多 Agent 并行不打架:worktree 隔离与反馈回流落地(附脚本)
网络·数据库·人工智能·架构
Koi慢热3 小时前
DayDayMap学术社区体验:卫星网络测绘专题用下来怎么样
网络·人工智能·windows·web安全·网络安全