吴恩达《深度学习》之看懂梯度消失的“激活函数直觉”
之前们当了一回“数值法医”用一把手枪梯度修剪解决了数值溢出的狂暴灾难。现在我们调转枪头去迎战它在硬币反面的孪生兄弟也是深度学习史上折磨了科学家整整几十年的超级幽灵——梯度消失Gradient Vanishing。相信你们使用 Sigmoid 或 Tanh 的深层网络在反向传播时经常像陷入了泥潭一样靠近输入层前几层的权重根本纹丝不动。而换上看似简单粗暴的 ReLU 之后网络瞬间就活过来了。核心知识点场景问题为什么使用 Sigmoid 或 Tanh 激活函数的深层网络比使用 ReLU 的网络更容易出现梯度消失核心决策中间隐藏层应默认采用ReLU 及其变体。通过将其正向导数强行死锁为 1直接斩断指数级衰减的枷锁。数学与反向传播核心Sigmoid/Tanh 函数在∣z∣\vert{}z\vert{}∣z∣很大时会陷入饱和区此时导数趋近于 0即使在中心最大处 Sigmoid 导数也仅为 0.25。在深层网络中这些微小的导数通过链式法则Chain Rule在反向传播中连乘导致靠近输入层的梯度呈指数级递减浅层神经元因分不到梯度而停止更新。今天我们不用复杂的矩阵推导。我带你走进一间“安放了 100 面严重磨损的镜子的激光密室”看看微积分的乘法是如何悄无声悄地把信号消磨殆尽的。第一步凝视几何图像——什么是“饱和区的诅咒”首先我们把 Sigmoid 和 Tanh 的函数图像在脑海里展开。它们都是优美的平滑曲线S型或双曲正切型。提问请把你的目光死死盯在 Sigmoid 的两端——也就是当输入∣z∣\vert{}z\vert{}∣z∣很大比如z10z 10z10变成大正数或者z−10z -10z−10变成大负数的地方。在这两个极端区域Sigmoid 的函数曲线长成什么样它是陡峭的还是几乎变成了一条平躺着的水平直线如果一条曲线在某个地方变成了一条水平直线那么根据微积分的含义它在这个地方的导数切线斜率会无限趋近于哪个数字你的大脑给出了数学直觉切线完全平了导数几乎等于0我们在深度学习中把这两端导数趋近于 0 的区域叫做饱和区Saturation Region。第二步解构链式法则——激光穿过“磨损的镜子”现在我们让信号开始反向传播。假设我们有一个 100 层的网络每一层都用了 Sigmoid。在反向传播时误差信号从第 100 层往第 1层传根据微积分的链式法则Chain Rule前面的梯度是后面每一层导数的连乘积∂L∂w1后层的各种项×σ′(z100)×σ′(z99)×⋯×σ′(z2)×σ′(z1)\frac{\partial L}{\partial w_1} \text{后层的各种项} \times \sigma(z_{100}) \times \sigma(z_{99}) \times \dots \times \sigma(z_2) \times \sigma(z_1)∂w1​∂L​后层的各种项×σ′(z100​)×σ′(z99​)×⋯×σ′(z2​)×σ′(z1​)提问就算我们的运气非常好网络没有进入可怕的饱和区而是全部落在了 Sigmoid 导数最大的黄金中心点z0z0z0处。你去查一下数学表Sigmoid 导数的绝对最大值是多少提示σ′(0)0.25\sigma(0) 0.25σ′(0)0.25。这意味着即使在最理想、最完美的状态下信号每穿过一层 Sigmoid它的梯度能量都至少要无条件打一个 25 折乘以 0.25。现在请你化身为第 2 层靠近输入端的那颗弱小的神经元。当你眼睁睁看着后方的误差信号从第 100 层一路传过来中间经历了连续乘以 90 多个小于 0.25 的数字相当于算0.25900.25^{90}0.2590。请问当这束激光终于照到你脸上的时候它的能量还剩下多少你的权重参数在执行WW−α⋅GradW W - \alpha \cdot \text{Grad}WW−α⋅Grad时还能发生任何肉眼可见的改变吗推演闭环0.25900.25^{90}0.2590是一个小数点后面挂着几十个零的绝对天文小数字梯度在传到前几层时已经彻底灰飞烟灭、归于虚无了。这就是梯度消失。前几层的神经元由于分不到梯度长久处于“失聪”状态根本学不到任何高阶的特征比如图像的边缘、线条。第三步ReLU 的降维打击——打破乘法的枷锁1924 年就存在的线性整流函数在 2010 年被引入深度学习也就是ReLURectified Linear Unitf(z)max⁡(0,z)f(z) \max(0, z)f(z)max(0,z)。终极追问请盯着 ReLU 的导数图像看。当z0z 0z0也就是神经元被激活、有信号通过时ReLU 的导数斜率永远、雷打不动地等于几此时我们重新把 100 层网络的激活函数全部换成 ReLU。只要这些神经元是活着的z0z0z0反向传播的链式法则在向前连乘时乘的就是1×1×1×⋯×11 \times 1 \times 1 \times \dots \times 11×1×1×⋯×1。请问这束梯度激光在穿过 100 层由 ReLU 构成的清澈玻璃时它的能量会发生任何一丁点的衰减吗因果闭环绝不衰减因为乘以 1信号被完美、无损地护送到了最前线输入层这就是 ReLU 拯救深层网络的物理直觉。它用最简单粗暴的数学分段直接斩断了由于微积分连乘引发的指数级衰减枷锁让千层网络通电即活。第四步PyTorch 里的“直觉验证”代码落地在工业界如果你错误地在一款深层网络里塞满了 Sigmoid可以通过观察每一层梯度的范数Norm来亲眼目睹这场灾难。这也是为什么我们写 PyTorch 代码时ReLU或其变体 LeakyReLU成了闭着眼写的默认项importtorchimporttorch.nnasnn# 故意搭建一个 50 层的极深全连接网络layers_sigmoid[]layers_relu[]foriinrange(50):layers_sigmoid.append(nn.Linear(100,100))layers_sigmoid.append(nn.Sigmoid())# 极易引发连乘崩溃layers_relu.append(nn.Linear(100,100))layers_relu.append(nn.ReLU())# 导数为 1护航梯度model_sigmoidnn.Sequential(*layers_sigmoid)model_relunn.Sequential(*layers_relu)# 实验验证方法# 如果你运行反向传播去打印 model_sigmoid[0].weight.grad会发现它几乎是 0.00000000...# 而 model_relu[0].weight.grad 依然保持着饱满的、健康的数值量级总结让我们用一行最性感的极客因果链复盘这场激活函数的世纪革命Sigmoid/Tanh 饱和区 ⟹ 导数趋近于 0 (最完美也只有 0.25) ⟹ 链式法则 100 层大连乘 (0.25100) ⟹ 浅层梯度彻底消失网络瘫痪\text{Sigmoid/Tanh 饱和区} \implies \text{导数趋近于 0 (最完美也只有 0.25)} \implies \text{链式法则 100 层大连乘 } (0.25^{100}) \implies \text{浅层梯度彻底消失网络瘫痪}Sigmoid/Tanh饱和区⟹导数趋近于0 (最完美也只有0.25)⟹链式法则100层大连乘(0.25100)⟹浅层梯度彻底消失网络瘫痪ReLU 函数 (z 0) ⟹ 导数强行死锁为 1 ⟹ 反向传播沦为 1 的传递 (无损通过) ⟹ 打破消失诅咒超深网络爆发\text{ReLU 函数 (z 0)} \implies \text{导数强行死锁为 1} \implies \text{反向传播沦为 1 的传递 (无损通过)} \implies \text{打破消失诅咒超深网络爆发}ReLU函数(z 0)⟹导数强行死锁为1⟹反向传播沦为1的传递(无损通过)⟹打破消失诅咒超深网络爆发Sigmoid 追求数学上的“极度平滑与完美对称”却不小心在微积分的宏大宏愿里设下了“重重关卡”把历史的信号消磨殆尽而 ReLU则像是一个崇尚实用主义的黑客它不在乎负数那一半的死活只要你敢亮出正数的锋芒它就给你一条导数为 1 的、畅通无阻的超级高速公路。欢迎在评论区留下你的思考我们今天论证了当z0z 0z0时ReLU 的导数恒为 1完美避开了梯度消失。但是请注意 ReLU 的另一半当z0z 0z0时它的导数硬生生变成了 0。这意味着如果一个神经元由于不幸的权重更新导致输入全部变成了负数它就会陷入“永久死亡”状态Dead ReLU 问题。为了修补 ReLU 的这半边死穴天才的工程师们又对这个“黑客旋钮”进行了怎样微小却精妙的改造

相关新闻

手机回流号安全漏洞:数字身份与物理标识脱节的风险与防御

手机回流号安全漏洞:数字身份与物理标识脱节的风险与防御

1. 项目概述:当你的“新”手机号,曾是别人的“旧”号码最近在排查一个用户账户异常登录的问题时,我再次遇到了一个老生常谈却又极易被忽视的安全隐患:手机回流号。简单来说,就是你新办理或新入网的手机号码&#xff0c…

2026/10/19 17:39:00 阅读更多 →
DynaBERT: Dynamic BERT with Adaptive Width and Depth 解读

DynaBERT: Dynamic BERT with Adaptive Width and Depth 解读

一、论文基本信息 论文题目:DynaBERT: Dynamic BERT with Adaptive Width and Depth 作者:Lu Hou、Zhiqi Huang、Lifeng Shang、Xin Jiang、Xiao Chen、Qun Liu 发表会议:NeurIPS 2020 Spotlight 方法简称:DynaBERT 官方代码…

2026/10/20 13:03:21 阅读更多 →
20260715_145827 递推问题

20260715_145827 递推问题

课堂练习 1216:【基础】数塔问题 20260717_215520 1216 - 数塔问题 https://oj.czos.cn/p/1216https://www.doubao.com/thread/xd9a9eb0477d9804e94f33ca6dcd140951410:【基础】数塔的行走路径? 1224:【提高】过河卒 1369&#xf…

2026/10/18 2:55:38 阅读更多 →

最新新闻

AI平台选型指南:从通用对话到开源自部署的实战策略

AI平台选型指南:从通用对话到开源自部署的实战策略

1. 主流AI平台的全景地图与选型逻辑1.1 为什么现在聊“AI平台”比聊“AI模型”更实际过去一年我接触了不少团队,从几个人的小工作室到上百人的产品线,大家问得最多的问题早就不是“哪个模型最强”,而是“我该把活儿交给哪个平台”。这个转变很…

2026/10/20 21:33:02 阅读更多 →
Win11 25H2下WPS频繁未响应:一个从证据到方向的完整排查记录

Win11 25H2下WPS频繁未响应:一个从证据到方向的完整排查记录

先说结论:我遇到的这个“Win11 25H2 WPS 频繁未响应”问题,直到现在还没有一个确定的根因。但是经过几天反复测试和收集证据,基本可以锁定它并不是WPS软件自身单独惹的祸,而是系统底层和当前环境里某个驱动层组件有兼容性冲突。这…

2026/10/20 21:33:02 阅读更多 →
MCP / Agent / Skill 技术生态分类汇总:用 TaoToken 统一 Key 打通三类工具链

MCP / Agent / Skill 技术生态分类汇总:用 TaoToken 统一 Key 打通三类工具链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 21:33:02 阅读更多 →
Claude账号防封全攻略:避开风控红线,让账号长期稳定

Claude账号防封全攻略:避开风控红线,让账号长期稳定

说来有点丢人,我在刚接触 Claude 的头两个月里,就亲眼看着身边三个朋友先后被提示账号异常,其中一个甚至用了不到三天就进小黑屋。那时候大家的第一反应都是"平台是不是疯了",但后来我对照着官方使用条款和自己的操作记…

2026/10/20 21:33:02 阅读更多 →
AI漫剧工业化生产流水线:人机协作边界与六层技术栈实战

AI漫剧工业化生产流水线:人机协作边界与六层技术栈实战

1. 项目概述:这不是“白嫖教程”,而是一套可落地的AI漫剧工业化生产流水线“AI漫剧制作全教程”这个标题,乍看是知识付费圈常见的流量钩子,但真正拆开来看,它背后指向的是一整套正在快速成型的数字内容工业化新范式。我…

2026/10/20 21:33:01 阅读更多 →
FPGA开发者必看:SRIO协议从IP配置到数据收发的完整调试指南

FPGA开发者必看:SRIO协议从IP配置到数据收发的完整调试指南

简介:面向FPGA与嵌入式系统开发者,这套Xilinx SRIO使用例程围绕Serial RapidIO高速串行互连协议在Spartan6系列中的实际部署,系统覆盖硬核配置、端口速率选择、测试平台搭建与仿真验证,解决高带宽低延迟场景下的接口设计与调试难题…

2026/10/20 21:31:57 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →