【Transformer 与注意力机制】05. 激活函数:让网络「弯下来」的非线性魔法

💡 原文中文,约28300字,阅读约需68分钟。
📝

内容提要

激活函数在神经网络中引入非线性,使网络能够拟合复杂关系。最早的Sigmoid函数因其可导性被广泛使用,但存在梯度消失问题。Tanh函数有所改进,但仍未解决深层网络训练困难。ReLU函数的出现解决了梯度消失问题,但引入了Dying ReLU现象。后续的激活函数如Leaky ReLU、ELU、GELU和SwiGLU等不断优化,以适应不同任务需求。激活函数的选择直接影响网络的训练效果和性能。

🎯

关键要点

  • 激活函数在神经网络中引入非线性,使网络能够拟合复杂关系。

  • Sigmoid函数是第一代激活函数,具有可导性,但存在梯度消失问题。

  • Tanh函数改进了Sigmoid,解决了非零中心化问题,但仍未解决深层网络训练困难。

  • ReLU函数的出现解决了梯度消失问题,但引入了Dying ReLU现象。

  • 后续的激活函数如Leaky ReLU、ELU、GELU和SwiGLU等不断优化,以适应不同任务需求。

  • 激活函数的选择直接影响网络的训练效果和性能。

🔎

延伸解读

激活函数的演变与选择

激活函数的选择对神经网络的训练效果至关重要。从Sigmoid到ReLU,再到现代的GELU和SwiGLU,每种激活函数的演变都解决了前一代的核心问题。选择合适的激活函数不仅影响收敛速度,还能决定模型的最终性能。

梯度消失与激活函数的关系

激活函数的设计直接影响梯度的流动。Sigmoid和Tanh在输入值较大时容易导致梯度消失,而ReLU则有效缓解了这一问题。理解这些特性有助于在构建深度网络时做出更明智的选择,避免训练过程中的常见陷阱。

激活函数与初始化的耦合

激活函数与参数初始化密切相关。不同的激活函数需要不同的初始化策略,以确保前向传播和反向传播中的方差稳定。错误的初始化可能导致即使使用了优秀的激活函数,模型仍然无法有效训练。

新兴激活函数的探索

随着深度学习的发展,新型激活函数如SwiGLU逐渐成为主流。这些新函数在特定任务上表现出色,表明激活函数的研究仍有广阔的探索空间。未来可能会有更多创新的激活函数出现,推动模型性能的进一步提升。

延伸问答

激活函数在神经网络中有什么作用?

激活函数在神经网络中引入非线性,使网络能够拟合复杂关系。

Sigmoid函数的主要缺点是什么?

Sigmoid函数存在梯度消失和非零中心化问题,导致深层网络训练困难。

ReLU函数的优点是什么?

ReLU函数计算速度快,正区间梯度恒为1,且不饱和,适合深层网络训练。

什么是Dying ReLU现象?

Dying ReLU现象指的是某些神经元的输入始终为负,导致其输出为0,梯度也为0,无法更新。

GELU函数在Transformer中的作用是什么?

GELU是Transformer的标准激活函数,能够提供更好的训练效果和性能。

激活函数的选择对网络训练有什么影响?

激活函数的选择直接影响网络的训练效果和性能,不合适的激活函数会导致训练不稳定。

🏷️

标签

➡️

继续阅读