Add(残差连接)

AI

Add(残差连接),把“这一层的输入”和“这一层的输出”加起来,作为最终输出。
image-20260507233238099

Add做了什么

1
2
3
4
5
#输出=输入+F(输入)
def residual_block(x):
# x: 这一层的输入
output = layer(x) # 对x做点什么(注意力、前馈等)
return x + output # 加回去

为什么要这么做呢,这样做首先保留了原始输入x,哪怕学习效果不好,也保留了原始x可以让你撤回。其次每一层只需要学习”增量”(输入和理想输出之间的差值),而不是从零学习完整输出。比如从5->5.1,只需要输出0.1即可,小量更容易学习。
综上:**Add提高了训练稳定性(容错)**和学习效率

Add解决了什么

缓解[[梯度消失]]: 在反向传播时,梯度可以直接通过残差路径(加号)无损地流回浅层网络,确保深层参数也能得到有效的更新信号。

信息高速公路: 为模型提供了一条“捷径”,使得网络即使很深,浅层的信息也能相对容易地传递到深层,反之亦然。

模型更容易优化: 让网络更容易学习到一个恒等映射(即输出等于输入),这通常是深层网络一个不错的起点。如果子层需要做出改变,它只需要学习相对于输入的“残差”(Residual)即可。

Add在Transformer的应用

站内搜索
常搜: