news 2026/4/23 11:09:02

面试官:深层网络梯度消失的根本原因是什么?除了 ResNet,还有哪些架构能有效缓解?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
面试官:深层网络梯度消失的根本原因是什么?除了 ResNet,还有哪些架构能有效缓解?

📚推荐阅读

面试官:Transformer如何优化到线性级?

面试官:模型的量化了解吗?解释一下非对称量化与对称量化

面试官:模型剪枝了解吗?解释一下结构化剪枝与非结构化剪枝

面试官:为什么 Adam 在部分任务上会比 SGD 收敛更快,但泛化性更差?如何改进?

面试官:BatchNorm、LayerNorm、GroupNorm、InstanceNorm 有什么本质区别?

面试官:深层网络梯度消失的根本原因是什么?除了 ResNet,还有哪些架构能有效缓解?

这题是典中典。很多人听到“梯度消失”就背一句——“因为深度太深”,但要真能把原因讲透机制解释清改进方案说全,那就不只是“知道问题”,而是理解问题的结构本质了。

今天这篇,我们就彻底搞清楚:

  • 梯度为什么会消失(根本原因)?
  • ResNet 是怎么解决的?
  • 还有哪些架构能有效缓解?

有相关源码示例、流程图、模型配置与知识库构建技巧,我也将持续更新在Github:LLMHub,欢迎关注收藏!

一、什么是梯度消失?

“梯度消失”(Vanishing Gradient)指的是在反向传播过程中,梯度在层与层之间不断相乘,到达前面层时已经接近 0,导致这些层几乎学不到东西

这个问题的根本,在于链式法则的累乘效应

对于一个深度网络:y = f L ( f L − 1 ( . . . f 1 ( x ) . . . ) ) y = f_L(f_{L-1}( ... f_1(x) ... ))y=fL(fL1(...f1(x)...))

反向传播时梯度为:∂ L ∂ x = ∂ L ∂ y ∏ i = 1 L ∂ f i ∂ f i − 1 \frac{\partial L}{\partial x} = \frac{\partial L}{\partial y} \prod_{i=1}^{L} \frac{\partial f_i}{\partial f_{i-1}}xL=yLi=1Lfi1fi

当每个∂ f i ∂ f i − 1 \frac{\partial f_i}{\partial f_{i-1}}fi1fi的范数 < 1 时,随着层数增加,梯度会呈指数级衰减。

假设每层的权重矩阵为W i W_iWi,激活函数为 σ:∂ L ∂ x = ∂ L ∂ y ( W L σ ′ ( z L ) ) ( W L − 1 σ ′ ( z L − 1 ) ) . . . ( W 1 σ ′ ( z 1 ) ) \frac{\partial L}{\partial x} = \frac{\partial L}{\partial y} (W_L σ'(z_L)) (W_{L-1} σ'(z_{L-1})) ... (W_1 σ'(z_1))xL=yL(WLσ(zL))(WL1σ(zL1))...(W1σ(z1))

如果激活函数的导数平均小于 1(如 sigmoid, tanh),或者权重初始化不当(如方差太小),那么梯度会被不断缩小,最终趋近于 0。这就是梯度消失的本质:链式相乘中的指数衰减

二、激活函数与初始化的双重作用

激活函数问题

像 sigmoid 或 tanh,这类函数的导数在饱和区间非常小:

函数导数区间问题
Sigmoid(0, 0.25)饱和后梯度极小
Tanh(0, 1)仍会衰减
ReLU0 或 1解决了一部分问题

ReLU 的出现让梯度能在正区间传播不衰减,这就是为什么 ReLU 成为深度学习的标配。

权重初始化问题

如果初始化方差太小,梯度被压缩;如果太大,梯度爆炸。

He Initialization(ReLU)和 Xavier Initialization(tanh)就是为了解决“梯度稳定传播”的问题,让方差在层间保持恒定。

三、ResNet 是怎么缓解的?

ResNet 的关键思想:恒等映射(Identity Mapping) + 残差连接(Skip Connection)

残差块:y=F(x)+x

反向传播时:∂ L ∂ x = ∂ L ∂ y ( 1 + ∂ F ∂ x ) \frac{\partial L}{\partial x} = \frac{\partial L}{\partial y} (1 + \frac{\partial F}{\partial x})xL=yL(1+xF)

即使∂ F ∂ x \frac{\partial F}{\partial x}xF很小,梯度仍可通过恒等路径“直接传回前层”。这让梯度流不再完全依赖非线性层的累乘。

四、缓解梯度消失的其他架构?

ResNet 是经典,但并不是唯一的解。我们来看几类常见的缓解梯度消失的其他架构

1. DenseNet — “全连接式残差”

DenseNet 在每一层都把前面所有层的特征拼接起来:x l = [ x 0 , x 1 , . . . , x l − 1 ] x_l = [x_0, x_1, ..., x_{l-1}]xl=[x0,x1,...,xl1]

这样每一层都能直接访问前面层的输出,梯度可以多路径回流,并且可以实现信息复用,缓解梯度消失。

2. Highway Network — “门控残差”

Highway Network 在 ResNet 的基础上加了门控机制:y = T(x) * F(x) + (1 - T(x)) * x

其中 T(x) 是一个可学习的门函数,控制信息通过多少。

这种结构让网络能动态控制梯度通道的流量,在 RNN、语音建模中也常用。

3. LSTM / GRU — 时间维度的残差思想

在序列模型中,梯度消失更严重(因为时间展开更深)。


LSTM 通过“门控 + 线性通道”让梯度能长期传播:c t = f t ∗ c t − 1 + i t ∗ c ~ t c_t = f_t * c_{t-1} + i_t * \tilde{c}_tct=ftct1+itc~t

这其实就是在时间维度上做了“残差连接”,让梯度在时间上传递更稳定。

4. Transformer — LayerNorm + 残差 + 注意力机制

Transformer 的每一层都有:

x’ = x + MultiHeadAttention(x)

y = x’ + FeedForward(x’)

同时配合 LayerNorm 稳定分布,使得残差通道保持梯度流,LayerNorm 保证数值不发散,整体训练稳定,能堆叠上百层。

总结一下,梯度消失的根本原因是链式相乘中的指数衰减,ResNet 只是第一个成功的缓解梯度消失设计,后来 DenseNet、LSTM、Transformer 都在不同维度上继续拓宽了这条路。

关于深度学习和大模型相关的知识和前沿技术更新,请关注公众号coting

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 20:58:53

Langchain-Chatchat轻量化部署:树莓派也能跑的本地AI助手

Langchain-Chatchat轻量化部署&#xff1a;树莓派也能跑的本地AI助手 在智能家居设备日益复杂的今天&#xff0c;确保无线连接的稳定性已成为一大设计挑战。然而&#xff0c;当我们将视线从消费电子转向工业物联网或边缘计算场景时&#xff0c;另一个更深层的问题浮现出来&…

作者头像 李华
网站建设 2026/4/18 6:29:04

5分钟掌握OpenHashTab:Windows文件完整性验证终极指南

还在为文件下载后担心数据损坏而烦恼吗&#xff1f;文件哈希校验工具OpenHashTab让文件完整性验证变得简单直观。这款开源的Windows Shell扩展直接在文件属性中集成多种哈希算法计算功能&#xff0c;无需额外打开软件即可快速完成文件校验。 【免费下载链接】OpenHashTab &…

作者头像 李华
网站建设 2026/4/18 0:51:23

FastAPI蓝绿部署:实现零停机更新的完整实战指南

FastAPI蓝绿部署&#xff1a;实现零停机更新的完整实战指南 【免费下载链接】awesome-fastapi A curated list of awesome things related to FastAPI 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-fastapi 想要在用户毫无感知的情况下完成系统升级吗&#xff…

作者头像 李华