激活函数
ReLU (Rectified Linear Unit)
- 作用:在正区间内线性,负区间为0。简单且有效,通常用于隐藏层,有助于缓解梯度消失问题,但可能面临神经元死亡问题。
- 作用:将输入值压缩到 0 到 1 之间。常用于二分类问题的输出层。
Tanh (Hyperbolic Tangent)
- 作用:将输入值压缩到 -1 到 1 之间。类似于 sigmoid,但由于输出范围更广,通常效果比 sigmoid 好。
- 作用:对 ReLU 的改进,允许负值有一个小的正斜率,以解决神经元死亡问题。
- 公式:与 Leaky ReLU 类似,但 (\alpha$ 是可学习的参数。
- 作用:自适应调整负区间的斜率,提供更灵活的激活模式。
- 作用:常用于多分类问题的输出层,将输出转换为概率分布。
ELU (Exponential Linear Unit)
- 作用:类似于 ReLU,但对负输入值采用指数衰减,有助于减少梯度消失问题。
- 作用:由谷歌提出的激活函数,被发现在多种任务中效果优于 ReLU。
GELU (Gaussian Error Linear Unit)
- 作用:在 NLP 领域特别受欢迎,尤其是在 Transformer 架构中。
- 作用:Softplus 是 ReLU 的平滑版本,提供了一个平滑的曲线,可以避免 ReLU 的硬饱和。
- Hardtanh (Hard Hyperbolic Tangent)
- 作用:是 Tanh 的分段线性近似,计算上更高效。
- SiLU (Sigmoid Linear Unit) 或 Swish-1
- 作用:类似于 Swish,但是使用标准的 sigmoid 函数。
- 作用:是 ReLU 的另一种平滑版本,提供了更好的性能和泛化能力。
- 作用:ReLU 的变体,输出是输入的平方,通常用于特定类型的网络。
- 作用:虽然通常用于二元分类问题的输出层,它也可以作为隐藏层的激活函数。
- 作用:与 Tanh 类似,但是增长速率更慢,更加饱和。
每种激活函数都有其特定的用途和特性。在实践中,选择哪种激活函数很大程度上取决于具体任务的需求、网络的结构以及训练数据的特性。例如,ReLU 及其变体在实践中非常流行,因为它们能够加速训练并且减少梯度消失问题,而 Swish 和 Mish 则因其平滑性和在特定任务中表现出色而受到关注。