介绍
激活函数就是神经网络里用来引入非线性的函数,没有它,再深的网络也只是线性模型。下面用很短的篇幅帮你理一遍常用激活函数和怎么选。
应用场景
在神经元里,先做线性计算:
z = Wx + b
再通过激活函数:
a = \sigma(z)
作用
- 引入非线性,让网络能拟合复杂函数
- 把值压缩到合适范围(有的会,有的不会)
- 影响梯度流动,从而影响训练是否容易
常见激活函数
1. Sigmoid
- 输出:
(0, 1) - 用途:二分类的输出层
- 问题:容易梯度消失,输出不是零均值
2. Tanh
- 输出:
(-1, 1) - 用途:隐藏层,比 sigmoid 常用
- 特点:零均值,但仍有梯度消失问题
3. ReLU
- 输出:
[0, ∞) - 用途:现在最常用的隐藏层激活函数
- 优点:计算快,缓解梯度消失
- 缺点:部分神经元可能永远不激活(dying ReLU)
4. Leaky ReLU
- 输出:
(-∞, ∞) - 用途:解决 ReLU 死掉的问题
- 特点:一般比 ReLU 更稳,但 α 是超参数
5. Softmax
- 输出:
(0, 1),且和为 1 - 用途:多分类的输出层
- 特点:配合交叉熵损失使用
应用场景
- 二分类输出层:用 Sigmoid
- 多分类输出层:用 Softmax
- 隐藏层(默认):用 ReLU
- 训练不稳定、ReLU 死掉:试试 Leaky ReLU
- RNN 等序列模型:常用 Tanh 或 ReLU