Ch06 神经网络基础
激活函数 (Activation Functions)
概述
激活函数(Activation Function)是神经网络中引入非线性的关键组件。如果没有激活函数,无论网络有多少层,整个模型都等价于一个线性变换(因为线性变换的复合仍是线性变换),无法拟合复杂的非线性函数。激活函数为每个神经元引入非线性变换,使神经网络具备通用近似能力(Universal Approximation Theorem)。激活函数的选择直接影响训练效率、梯度流动和模型性能。
为什么需要非线性
考虑一个 层的前馈网络,如果每层都是纯线性变换:
则整个网络等价于一个单层线性变换:
无论多少层,都只能表示线性函数。激活函数 打破了这种线性:
主流的激活函数一览
经典激活函数
| 激活函数 | 公式 | 输出范围 | 导数 | 可微性 |
|---|---|---|---|---|
| Sigmoid | (0, 1) | 处处可微 | ||
| Tanh | (-1, 1) | 处处可微 | ||
| ReLU | [0, +) | 0 或 1 | x=0 不可微 | |
| Leaky ReLU | , =0.01 | (-, +) | 或 1 | x=0 不可微 |
| PReLU | , 可学习 | (-, +) | 或 1 | x=0 不可微 |
| ELU | if else | (-, +) | 1 或 | 处处可微 |
| SELU | ELU(), 自归一化 | (-, +) | 缩放后的 ELU 导数 | 处处可微 |
| GELU | (-0.17, +) | 处处可微 | ||
| Swish / SiLU | (-0.28, +) | 处处可微 | ||
| Mish | (-0.31, +) | 较复杂 | 处处可微 |
专业激活函数
| 激活函数 | 公式概要 | 特点 | 主要应用 |
|---|---|---|---|
| Softmax | 输出概率分布,归一化 | 多分类输出层 | |
| Softplus | ReLU 的平滑近似 | 极少使用 | |
| Maxout | 分段线性,通用近似 | 少量早期工作 | |
| SwiGLU | 门控变体,LLaMA 使用 | 现代 LLM (LLaMA) | |
| ReGLU | GLU 门控 + ReLU | 部分 Transformer | |
| GeGLU | GLU 门控 + GELU | 部分 Transformer |
激活函数选择指南
按架构选择
| 架构 | 推荐激活函数 | 原因 |
|---|---|---|
| CNN (ResNet 系) | ReLU | 简单高效,梯度流动好 |
| CNN (EfficientNet 系) | Swish / SiLU | 平滑非单调,NAS 发现 |
| Transformer (BERT, GPT-2) | GELU | 平滑,训练稳定,BERT 验证 |
| Transformer (LLaMA 系) | SwiGLU | 门控变体,LLaMA 验证优秀 |
| RNN / LSTM | Tanh + Sigmoid | 门控机制需要 [-1,1] 或 (0,1) |
| GAN 生成器 | Leaky ReLU | 避免死亡神经元,保持梯度 |
| GAN 判别器 | Leaky ReLU | 同上 |
| 输出层(二分类) | Sigmoid | 输出 (0,1) 概率 |
| 输出层(多分类) | Softmax | 输出概率分布 |
| 输出层(回归) | 无 / Linear | 无界输出 |
按任务选择
| 任务 | 隐藏层推荐 | 说明 |
|---|---|---|
| 图像分类 | ReLU / Swish | 成熟稳定 |
| 目标检测 | ReLU / SiLU | YOLO 系列用 SiLU |
| 语义分割 | ReLU | 标准选择 |
| 文本分类 | GELU | BERT 系标配 |
| 文本生成 | GELU / SwiGLU | GPT 用 GELU,LLaMA 用 SwiGLU |
| 语音识别 | GELU / ReLU | 取决于架构 |
| 强化学习 | ReLU / Tanh | 简单稳定 |
激活函数的进化史
| 年代 | 阶段 | 代表 | 特点 |
|---|---|---|---|
| 1940s-1980s | 早期 | Step, Sigmoid, Tanh | 生物学启发,易饱和 |
| 2010 | ReLU 革命 | ReLU | 简单有效,解决梯度消失,开启深度学习 |
| 2015 | ReLU 改进 | Leaky ReLU, PReLU, ELU | 解决死亡神经元 |
| 2016-2017 | 平滑非单调 | GELU, Swish | 处处可微,非单调,Transformer 标配 |
| 2020-2023 | 门控变体 | SwiGLU, GeGLU | 门控 + 激活的组合,LLM 新标准 |
| 2024-2026 | 自适应 | 动态激活、可学习激活 | 输入依赖的激活行为 |
2026 年趋势
- SwiGLU 成为 LLM 标配:LLaMA-3, Qwen-2.5, DeepSeek-V3 均使用 SwiGLU
- GELU 在视觉 Transformer 中仍主流:ViT, DINO, SAM 等
- 激活函数与量化:低精度推理(INT4/INT8)下激活函数的选择和校准
- 动态激活函数:根据输入特征自适应选择激活行为
相关笔记
- GELU (Gaussian Error Linear Unit) - GELU 激活函数详解
- Leaky ReLU 与 ReLU 变体家族 - ReLU 变体家族
- 梯度消失与梯度爆炸 (Vanishing/Exploding Gradient) - 激活函数选择与梯度问题
- 批归一化 (Batch Normalization) 与归一化家族 - 激活函数与归一化的配合
来源
- Nair & Hinton (2010) - “Rectified Linear Units Improve Restricted Boltzmann Machines” (ReLU): https://www.cs.toronto.edu/~fritz/absps/reluICML.pdf
- Hendrycks & Gimpel (2016) - “Gaussian Error Linear Units (GELUs)”: https://arxiv.org/abs/1606.08415
- Ramachandran et al. (2017) - “Searching for Activation Functions” (Swish): https://arxiv.org/abs/1710.05941
- Shazeer (2020) - “GLU Variants Improve Transformer”: https://arxiv.org/abs/2002.05202
关联11
知识图谱反向链接7
局部图谱 · 点节点跳转