简要回答
激活函数引入非线性,使多层网络能拟合复杂函数;若无激活,多层线性变换仍等价于单层。常用 ReLU 隐藏层、Sigmoid 二分类、Softmax 多分类。
标准回答
激活函数对每个神经元输出施加非线性变换 σ(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 或合适初始化缓解。详见 深度学习基础。
回答思路
【定义】用一句话说清「什么是激活函数?为什么神经网络需要它」
【原理】讲清关键机制或步骤(2~3 点)
【例子】举一个真实项目、论文或产品中的例子
【对比】与易混淆概念或替代方案比较(如有)
【收尾】总结适用场景 + 一个局限或风险
常见误区
⚠️ 常见踩坑
说「激活函数越多越好」;隐藏层用 Softmax 导致表示受限;忽视 BCEWithLogitsLoss 已内置 Sigmoid 又手动 sigmoid 造成数值问题。
追问
追问 1:为什么 ReLU 比 Sigmoid 更适合深层网络?
Sigmoid 饱和区梯度接近 0,深层连乘导致梯度消失;ReLU 正区间梯度恒为 1,传播更稳定,计算也更快。输出层仍可按任务选 Sigmoid/Softmax。
追问 2:输出层是否一定要激活?
回归任务输出层常无激活(线性);分类用 Softmax/Sigmoid 与交叉熵配合。BCEWithLogitsLoss 内部含 Sigmoid,数值更稳定。
🔗 相似问题
同一考点的不同问法,换着练更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习
