激活函数是神经网络中决定神经元输出的核心组件,它赋予模型非线性表达能力,使网络能够拟合复杂模式。以下是常见激活函数的分类与解析:
1. Sigmoid 函数 📈
公式:σ(x) = 1 / (1 + e^(-x))
特点:
- 输出范围为 (0,1),适合二分类任务
- 存在梯度消失问题(尤其在深层网络中)
- 曾被广泛用于早期神经网络
2. ReLU 函数 ⚡
公式:ReLU(x) = max(0, x)
特点:
- 计算高效,梯度不会消失
- 可能导致神经元“死亡”(输出恒为0)
- 是现代深度学习的默认选择
3. Tanh 函数 🔄
公式:tanh(x) = (e^x - e^(-x)) / (e^x + e^(-x))
特点:
- 输出范围为 (-1,1),中心化特性有助于训练
- 比Sigmoid收敛更快,但仍存在梯度消失风险
- 常用于隐藏层激活
4. Softmax 函数 🎯
公式:Softmax(x_i) = e^x_i / Σ(e^x_j)
特点:
- 将输出转化为概率分布,适用于多分类任务
- 常与交叉熵损失函数搭配使用
- 仅在输出层应用
5. 其他前沿函数 🔬
- Swish:自门控激活函数,表现优于ReLU
- GELU:高斯误差线性单元,常用于Transformer模型
- Mish:基于Tanh的非单调激活函数
选择激活函数的建议 ✅
场景 | 推荐函数 |
---|---|
二分类 | Sigmoid |
隐藏层 | ReLU/Leaky_ReLU |
输出层多分类 | Softmax |
需要平滑输出 | Softplus |