# 激活函数

> 来源：https://deeplearning.bnuai.com/demos/activation ｜ 作者：唐志清（北京师范大学） ｜ 更新：2026-11-01 ｜ 内容依据邱锡鹏《神经网络与深度学习》（https://nndl.ai/）及作者公开课件

> （此处为交互演示，请在网页中使用：https://deeplearning.bnuai.com/demos/activation）

## 观察要点

1. **饱和与梯度消失**：把 x 拖到 ±5 附近，Logistic（Sigmoid） 和 Tanh 的导数几乎为 0。Sigmoid 的导数最大只有 $\sigma'(0)=0.25$，误差每经过一层至少衰减为原来的 1/4——这就是深层 Sigmoid 网络梯度消失的原因（[第 4 章](https://deeplearning.bnuai.com/chapters/04-feedforward)）。
2. **ReLU 的优势与问题**：$x>0$ 时导数恒为 1，不会饱和、计算简单；但 $x<0$ 时导数为 0，若某个神经元的输入总是负的，它就再也不会被更新（**死亡 ReLU**）。Leaky ReLU、ELU 在负半轴保留了一个小梯度。
3. **非零中心化**：Sigmoid 的输出恒为正，会使下一层权重的梯度同号、优化路径呈“之”字形；Tanh 是零中心化的，通常比 Sigmoid 收敛更快。
4. **平滑版本**：Softplus $\log(1+e^x)$ 是 ReLU 的平滑近似，其导数恰好是 Sigmoid；Swish $x\,\sigma(\beta x)$ 与 GELU $x\,\Phi(x)$ 在 Transformer 等现代网络中广泛使用。

| 函数 | 定义 | 导数 |
| --- | --- | --- |
| Sigmoid | $\sigma(x)=\dfrac{1}{1+e^{-x}}$ | $\sigma(x)\big(1-\sigma(x)\big)$ |
| Tanh | $\tanh(x)=\dfrac{e^x-e^{-x}}{e^x+e^{-x}}$ | $1-\tanh^2(x)$ |
| ReLU | $\max(0,x)$ | $\mathbb I(x>0)$ |
| Leaky ReLU | $\max(x,\gamma x)$ | $1$ 或 $\gamma$ |
| ELU | $x$（$x>0$），$\gamma(e^x-1)$（$x\le0$） | $1$ 或 $\gamma e^x$ |
| Softplus | $\log(1+e^x)$ | $\sigma(x)$ |
| Swish | $x\,\sigma(\beta x)$ | $\sigma(\beta x)+\beta x\,\sigma(\beta x)\big(1-\sigma(\beta x)\big)$ |
| GELU | $x\,\Phi(x)\approx x\,\sigma(1.702x)$ | $\Phi(x)+x\,\phi(x)$ |

相关章节：[第 4 章 前馈神经网络](https://deeplearning.bnuai.com/chapters/04-feedforward)。
