深度学习发展历程里,Sigmoid、Tanh、ReLU 是最具代表性的三代激活函数,从早期广泛使用到如今 ReLU 成为主流,各自有着鲜明的特性与局限。今天结合公式、求导结果、函数图像,系统梳理三者区别,帮你彻底搞懂神经网络激活函数的选型逻辑。
以下是个人手写笔记,发现看几遍还不如自己手写记忆深刻!


一、Sigmoid(S 型曲线,初代激活函数)
- 数学公式
σ(x)=1+e−x1 - 导数公式
σ′(x)=σ(x)⋅(1−σ(x)) - 函数图像 & 导数图像
函数曲线:光滑 S 形,输入值域 (−∞,+∞),输出被压缩在 (0, 1) 之间;
导数曲线:呈钟型,峰值在 x=0 处,最大值仅为 0.25;x 正负两端越远离原点,导数无限趋近于 0。
- 优点
输出归一化 0~1 区间,适合二分类任务最后一层(概率输出);
函数全程连续可导,早期数学推导友好;
- 致命缺点(被淘汰的核心原因)
梯度消失严重:深层网络两端区域导数极小,反向传播时梯度不断衰减,层数一多参数无法更新,无法搭建深层神经网络;
输出不以 0 为中心:所有数值恒大于 0,会导致后续层输入分布偏移,收敛速度变慢;
包含指数运算,计算开销偏大。
适用场景:如今基本只用于二分类网络的输出层,隐藏层早已不再使用。
二、Tanh(双曲正切,Sigmoid 优化版)
- 数学公式
tanh(x)=ex+e−xex−e−x - 导数公式
tanh′(x)=1−tanh2(x) - 函数图像 & 导数图像
函数曲线:依然是 S 型,输出范围压缩至 (-1, 1),关于原点中心对称;
导数曲线:同样钟形,x=0 处导数最大值为 1,比 Sigmoid 更大。
- 优化点
解决了 Sigmoid非零均值的问题,收敛速度更快;原点处导数更大,梯度衰减情况略有缓解。 - 依旧存在的缺陷
远端区域导数依旧会趋近于 0,深层网络依然会出现梯度消失;同时指数运算带来的计算开销依旧存在。
适用场景:少量传统循环神经网络 RNN 隐藏层使用,现在主流 CNN、Transformer 基本很少选用。
三、ReLU(修正线性单元,现代深度学习主流)
- 数学公式
f(x)=max(0,x) - 分段导数
f′(x)={1,0,x>0x<0x=0 处不可导,工程上一般默认取 1 或 0 不影响训练。 - 函数图像 & 导数图像
函数图像:x<0 输出恒为 0,x>0 时是斜率为 1 的直线;
导数图像:正数区间导数恒为 1,负数区间导数恒为 0。
- 巨大优势(成为主流的关键)
彻底缓解梯度消失:x>0 区间导数恒定为 1,深层网络反向传播梯度不会持续衰减,可以轻松搭建几十、上百层的深度网络;
计算极简:无指数运算,只有大小判断,训练速度远快于 Sigmoid、Tanh;
单侧抑制特性:x 负数区域直接置 0,带来网络稀疏性,减少冗余参数,提升泛化能力。
- 唯一短板:神经元死亡(Dead ReLU)
学习率设置过大时,大量神经元会永久落入 x<0 区间,导数恒为 0,参数永远无法更新,神经元彻底失效不再被激活。优化方案:衍生出 Leaky ReLU、PReLU、ELU 等变体,给负数区间赋予微小斜率,规避神经元死亡问题。
适用场景:卷积神经网络 CNN、深度网络隐藏层标配激活函数,当下深度学习最通用选择。
四、三者核心参数对比表
表格激活函数输出范围原点中心对称梯度消失计算成本主流用途Sigmoid(0,1)否严重高二分类输出层Tanh(-1,1)是轻微高老式 RNNReLU
[0,+∞) | 否 | 几乎无 | 极低 | CNN 深层隐藏层 |
五、总结学习心得
深度学习的激活函数迭代,本质就是不断解决梯度消失、计算效率、数据分布偏移三大问题:
Sigmoid 是启蒙产物,适合入门理解非线性映射,但无法适配深层网络;
Tanh 小幅改良均值问题,却没能根除梯度消失;
ReLU 凭借极简的公式与优秀的梯度特性,奠定了现代深度神经网络的基础。
弄懂这三个基础激活函数,再去学习 LeakyReLU、GELU、Swish 等进阶变体就会轻松很多。