简要回答
激活函数对每个神经元输出施加非线性变换 σ(z);没有激活函数,多层 神经网络 的复合仍是线性变换(矩阵连乘),深度失去意义
标准回答
激活函数对每个神经元输出施加非线性变换 σ(z)。没有激活函数,多层 神经网络 的复合仍是线性变换(矩阵连乘),深度失去意义。
常见激活:
| 函数 | 公式/特点 | 用途 |
|---|---|---|
| ReLU | max(0,x) | 隐藏层默认,缓解梯度消失 |
| Leaky ReLU | 负区小斜率 | 避免死神经元 |
| Sigmoid | (0,1) | 二分类输出、门控 |
| Tanh | (-1,1) | RNN 历史常用 |
| Softmax | 归一化指数 | 多分类概率 |
| GELU/Swish | 平滑非线性 | Transformer FFN |
必要性:
- 表达能力:逼近非线性决策边界与复杂流形
- 层次特征:深层可组合低级非线性成高级语义
- 与损失配合:输出层 Softmax + 交叉熵;回归常用线性输出 + MSE
ReLU 在 0 处不可微但实践有效;注意 死 ReLU(神经元永久输出 0)可用 Leaky ReLU 或合适初始化缓解。详见 深度学习基础。
常见误区
⚠️ 常见踩坑
说「激活函数越多越好」;隐藏层用 Softmax 导致表示受限;忽视 BCEWithLogitsLoss 已内置 Sigmoid 又手动 sigmoid 造成数值问题。
追问
追问 1:为什么 ReLU 比 Sigmoid 更适合深层网络?
Sigmoid 饱和区梯度接近 0,深层连乘导致梯度消失;ReLU 正区间梯度恒为 1,传播更稳定,计算也更快。输出层仍可按任务选 Sigmoid/Softmax。
追问 2:输出层是否一定要激活?
不一定,取决于任务:回归通常用线性输出(无激活)配 MSE;多分类用 Softmax 配交叉熵;二分类/多标签用 Sigmoid 配 BCE。但实践中常把激活留给损失函数内部做(from_logits / BCEWithLogitsLoss)以提升数值稳定,此时输出层就不显式加激活。
追问 3:GELU 为何在 Transformer 中流行?
题库专题:Transformer 架构如何工作?通常用于哪些场景?GELU 按输入服从标准正态的概率对其加权(x·Φ(x)),在 0 附近平滑过渡而非 ReLU 的硬截断,负值区保留小幅信息、处处可微,对大模型优化更友好。BERT、GPT 系列 FFN 默认用它,实测比 ReLU 略好,故成 Transformer 标配(变体还有 SwiGLU)。
题库延伸:与本追问相关的专题题 → Transformer 架构如何工作?通常用于哪些场景?
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
📚 知识库
📰 AI 资讯
🛠️ AI 工具
- Pytorch
Meta 开源的深度学习框架,100K+ stars。以动态计算图和 Pythonic 风格著称,在学术界和工业界都有广泛应用,支持分布式训练、移动端部署和 ONNX 导出
- Tensorflow
全球最流行的机器学习框架之一,195K+ stars。Google 开源的端到端 ML 平台,支持 TensorFlow、Keras 等多种 API,覆盖深度学习、强化学习、移动端部署等全场景,是 AI 工程师的必备工具