真实面经题目 · 原创解析
激活函数有哪些?
激活函数的作用是给神经网络引入非线性,常见包括 Sigmoid、Tanh、ReLU、Leaky ReLU、ELU、GELU、Softmax 和 Swish。回答要讲清各自范围、梯度特点、适用层和常见问题。
真实面经题目 · 原创解析
激活函数的作用是给神经网络引入非线性,常见包括 Sigmoid、Tanh、ReLU、Leaky ReLU、ELU、GELU、Softmax 和 Swish。回答要讲清各自范围、梯度特点、适用层和常见问题。
常见激活函数可以分几类:Sigmoid 输出 0 到 1,常用于二分类输出层,但隐藏层容易梯度消失;Tanh 输出 -1 到 1,零中心但仍可能饱和;ReLU 是 max(0,x),计算简单、缓解梯度消失,是隐藏层常用选择,但有 dying ReLU 问题;Leaky ReLU、ELU 通过负半轴保留梯度改善这个问题;GELU 常用于 Transformer;Softmax 用于多分类输出,把 logits 转成概率分布。
如果没有激活函数,多层线性变换叠加仍然等价于一个线性变换,网络无法表达复杂非线性关系。激活函数让神经网络具备分段、饱和或平滑的非线性表达能力。
Sigmoid 适合二分类概率输出,但在输入很大或很小时梯度接近 0。Tanh 是零中心输出,优化上通常比 Sigmoid 更好,但同样存在饱和区梯度消失。
ReLU 计算简单,正半轴梯度稳定,深度网络中很常用。问题是负半轴梯度为 0,神经元可能死亡;Leaky ReLU、PReLU、ELU 通过负半轴保留信息缓解这个问题。
GELU、Swish 等平滑激活在 Transformer 和大模型中常见。它们不是简单硬截断,而是用更平滑的门控形式保留部分负值信息,训练效果通常更稳但计算略复杂。
二分类常用 sigmoid,多分类常用 softmax,多标签分类可对每个标签用 sigmoid,回归任务输出层常不加激活或按目标范围选择合适变换。
ReLU 在正半轴梯度恒为 1,不会像 sigmoid/tanh 饱和区那样梯度接近 0,因此深层传播更稳定。
如果神经元长期落在 ReLU 负半轴,输出和梯度都为 0,参数不再更新。学习率过大或初始化不当会加重这个问题。
Softmax 用于互斥多分类,所有类别概率和为 1;Sigmoid 可用于二分类或多标签分类,每个标签独立输出概率。