首页 > 自考资讯 > 培训提升

Transformer中的残差连接与层归一化

2026 05 11 19:02:45

一、什么是残差连接与层归一化?

残差连接:信息高速公路

核心定义:残差连接是一种跳跃连接技术,它将某一层的输入直接"跳过"该层,与该层的输出相加。

数学表达:

输出 = 层归一化(输入 + 子层(输入))

在Transformer中的具体应用:

层归一化:训练稳定器

核心定义:层归一化对每个样本的所有特征维度进行归一化,使其均值为0,方差为1,然后应用可学*的缩放和平移参数。

数学表达:

均值 = mean(输入)方差 = var(输入)归一化 = (输入 - 均值) / sqrt(方差 + ε)输出 = γ × 归一化 + β

其中γ和β是可学*的参数。


二、残差连接解决了什么问题?

问题1:梯度消失 - 深度网络的"记忆衰退"

深度网络的梯度困境

问题本质:在深层网络中,梯度通过链式法则反向传播时,如果每层的梯度模小于1,经过多层连乘后,前面层的梯度会指数级衰减到接近0。

实际影响:

网络前几层的参数几乎不更新深层网络无法有效训练网络性能随深度增加反而下降

残差连接的解决方案

残差块结构:

革命性思想:不要求每个层直接学*目标映射H(x),而是学*残差函数F(x) = H(x) - x

这样,如果恒等映射是最优的,只需要将F(x)学*为0即可,这比学*恒等映射容易得多。

生动比喻:文稿修订系统

想象你在修改一篇长文档:

没有残差连接(传统深度网络):

每次修改都重写整个文档经过多次重写,原始信息大量丢失最终文档可能与初衷相去甚远

有残差连接(现代深度网络):

每次修改都在原稿基础上做批注保留原始版本,只记录变化部分可以随时回溯到任何历史版本信息完整保留,修改精准可控

问题2:网络退化 - 深度不意味着更好

深度网络的矛盾现象

实验发现:单纯增加网络层数,性能先提升后下降。

网络性能 ↑ | × 理想情况 | / | / |× | × 实际情况 | / |× +----------------→ 网络深度

原因:深层网络难以学*恒等映射,即使理论上浅层网络是深层网络的子集。

残差连接的效果验证

在ImageNet上的实验结果:

网络类型 层数 Top-1错误率普通网络 34 28.5%残差网络 34 24.0%普通网络 18 27.9% # 更浅的网络反而更好!残差网络 152 21.3% # 极深网络突破性表现

问题3:信息流通瓶颈

传统网络的信息衰减

输入 → 层1 → 层2 → ... → 层100 → 输出信息: 100% → 90% → 81% → ... → (0.9^100)≈0%

残差网络的信息保持

输入 → 层1 → 层2 → ... → 层100 → 输出 ↓ ↓ ↓ ↓ ↑ └─────┴─────┴───── ... ┴─────┘信息: 始终保持接近100%的原始信息流通


三、层归一化解决了什么问题?

问题1:内部协变量偏移 - 训练的"移动靶心"

问题描述

在深度网络训练过程中,前面层参数的更新会导致后面层输入分布的变化,这就像射击一个不断移动的靶子。

具体表现:

需要更小的学*率训练过程不稳定收敛速度慢

层归一化的解决方案

工作原理:


效果:确保每层的输入分布保持稳定,均值为0,方差为1。

生动比喻:产品质量控制线

想象一个汽车装配流水线:

没有层归一化:

每个工位接收的零件尺寸都不稳定工人需要不断调整工具和手法生产效率低,质量不稳定

有层归一化:

每个工位前都有标准化检测站确保输入零件符合统一规格工人可以专注本职工作,效率高质量稳定

问题2:训练不稳定性

梯度爆炸/消失的缓解

层归一化通过稳定激活值的尺度,间接稳定了梯度流动:

没有层归一化:激活值 → 可能很大或很小 → 梯度不稳定 → 训练震荡有层归一化:激活值 → 标准化到稳定范围 → 梯度适中 → 训练平稳

学*率敏感性改善

实验对比:

配置 最大学*率 最终准确率无归一化 0.001 75%有层归一化 0.01 82% # 10倍学*率,更好效果

问题3:批量大小依赖性

与批量归一化的对比

批量归一化:

依赖当前批次的统计量小批量时估计不准确推理时使用移动平均值

层归一化:


优势:

对批量大小不敏感适合小批量或在线学*训练和推理行为一致

四、Transformer中的完美组合

编码器层的完整数据流

协同效应分析

1.训练深度保障

残差连接:解决梯度消失 → 允许极深网络层归一化:稳定训练过程 → 加速深度网络收敛

2.信息流优化

原始信息 ──────┐ ↓子层变换 → 残差相加 → 层归一化 → 稳定输出

3.实际配置示例

# Transformer层的伪代码实现class TransformerLayer: def forward(self, x): # 第一个子层:自注意力 + 残差 + 层归一化 residual = x x = self.self_attention(x) x = self.layer_norm1(x + residual) # 残差后归一化 # 第二个子层:前馈网络 + 残差 + 层归一化 residual = x x = self.feed_forward(x) x = self.layer_norm2(x + residual) return x

为什么这个组合如此有效?

1.互补优势

残差连接确保信息流通,但不解决分布偏移层归一化解决分布偏移,但不解决梯度消失两者结合同时解决两大深度训练难题

2.实践验证

在原始Transformer论文中,没有这个组合的模型:

无法训练超过6层的编码器训练过程极度不稳定最终性能显著下降

3.扩展到其他架构

这个成功模式已经被广泛应用于:

BERT、GPT系列大模型Vision Transformer各种现代深度学*架构

总结:深度学*的稳定基石

残差连接和层归一化不仅是技术实现,更体现了深刻的工程智慧:

设计哲学启示

尊重信息完整性:不要轻易丢弃原始信息稳定胜于复杂:简单的标准化带来巨大的训练收益组合创造奇迹:1+1 > 2 的经典案例

实际影响

这两个技术的结合,使得训练成百上千层的深度网络成为可能,直接催生了现代大模型时代。可以说,没有残差连接和层归一化,就没有今天强大的Transformer模型,也就没有GPT、BERT等改变AI格局的突破。

它们就像深度学*的"稳定之锚",让原本难以驾驭的深层网络变得温顺可控,开启了人工智能的新纪元。

版权声明:本文转载于今日头条,版权归作者所有,如果侵权,请联系本站编辑删除

猜你喜欢