【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的标准激活函数,能够提供更好的训练效果和性能。
激活函数的选择对网络训练有什么影响?
激活函数的选择直接影响网络的训练效果和性能,不合适的激活函数会导致训练不稳定。
➡️