SiLU激活函数(Sigmoid Linear Unit),又称Swish函数,是一种结合了线性和非线性特点的激活函数,其表达式为:
\text{SiLU}(x) = x \cdot \sigma(x) = \frac{x}{1 + e^{-x}}
这里的 \sigma(x) 是Sigmoid函数。
详细分析:
平滑连续
SiLU函数及其导数在整个实数轴上都是连续且光滑的,没有ReLU在0点的拐角。这种平滑性有助于梯度的稳定传递,减少训练时的震荡。
非单调性
SiLU不是单调函数,在某些区间内,输入增大时输出反而减小。这种非单调的特性使得网络能够更灵活地表示复杂的函数,增强表达能力。
负值抑制但不截断
与ReLU不同,SiLU在负区间输出不是恒为0,而是负值乘以接近0的sigmoid值,保留了一些负信息,有助于缓解神经元“死亡”问题。
自适应激活
当输入很大时,\sigma(x) \approx 1,函数近似线性;输入很小时,输出近似于0。这种自适应特性让网络在不同输入范围内表现更好,兼具线性和非线性的优点。
梯度特性
SiLU的导数为:
f'(x) = \sigma(x) + x \cdot \sigma(x) \cdot (1 - \sigma(x))
在训练过程中,这样的导数能够提供相对平稳且非零的梯度,避免ReLU等激活函数可能出现的梯度消失或梯度爆炸问题。
总结:
SiLU激活函数是一种结合了Sigmoid平滑非线性和线性特性的函数,兼具梯度平滑、表达能力强和避免神经元死亡等优点,适合用于深度神经网络中,特别是在需要更稳定训练过程和更高表达能力的场景中,表现优于传统ReLU。