核心要点

  • 能列举 ReLU、Sigmoid、Softmax 等及用途

  • 理解无激活则多层等价于单层线性

  • 知道各激活的梯度特性与选型

  • 能说明输出层激活与损失函数的匹配

简要回答

激活函数对每个神经元输出施加非线性变换 σ(z);没有激活函数,多层 神经网络 的复合仍是线性变换(矩阵连乘),深度失去意义

标准回答

激活函数对每个神经元输出施加非线性变换 σ(z)。没有激活函数,多层 神经网络 的复合仍是线性变换(矩阵连乘),深度失去意义。

常见激活

函数 公式/特点 用途
ReLU max(0,x) 隐藏层默认,缓解梯度消失
Leaky ReLU 负区小斜率 避免死神经元
Sigmoid (0,1) 二分类输出、门控
Tanh (-1,1) RNN 历史常用
Softmax 归一化指数 多分类概率
GELU/Swish 平滑非线性 Transformer FFN

必要性

  1. 表达能力:逼近非线性决策边界与复杂流形
  2. 层次特征:深层可组合低级非线性成高级语义
  3. 与损失配合:输出层 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)以提升数值稳定,此时输出层就不显式加激活。

追问 3GELU 为何在 Transformer 中流行?

题库专题:Transformer 架构如何工作?通常用于哪些场景?

GELU 按输入服从标准正态的概率对其加权(x·Φ(x)),在 0 附近平滑过渡而非 ReLU 的硬截断,负值区保留小幅信息、处处可微,对大模型优化更友好。BERTGPT 系列 FFN 默认用它,实测比 ReLU 略好,故成 Transformer 标配(变体还有 SwiGLU)。

题库延伸:与本追问相关的专题题 → Transformer 架构如何工作?通常用于哪些场景?

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。

🛠️ AI 工具

  • Pytorch

    Meta 开源的深度学习框架,100K+ stars。以动态计算图和 Pythonic 风格著称,在学术界和工业界都有广泛应用,支持分布式训练、移动端部署和 ONNX 导出

  • Tensorflow

    全球最流行的机器学习框架之一,195K+ stars。Google 开源的端到端 ML 平台,支持 TensorFlow、Keras 等多种 API,覆盖深度学习、强化学习、移动端部署等全场景,是 AI 工程师的必备工具