【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函数的主要缺点是什么?

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

ReLU函数的优点是什么?

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

什么是Dying ReLU现象?

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

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

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

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

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

➡️

继续阅读