SiLU激活函数与Swish的关系及实践用法
SiLU(Sigmoid Linear Unit)也称为Swish-1,在许多现代模型中广泛使用。请解释其数学形式、导数性质,以及它与Swish和Mish的异同。
回答
编译有声
SiLU的数学公式:SiLU(x) = x · σ(x) = x / (1 + e^(-x))
它是Swish的特例:Swish(x) = x · σ(βx),当β=1时即为SiLU。
导数特点: f'(x) = σ(x) + x · σ(x) · (1 - σ(x)) = σ(x)(1 + x(1 - σ(x))) 导数在负半轴有非零下界,缓解梯度消失。
与Swish(β可变)对比:SiLU是固定β=1的版本,计算更简单;Swish通过可学习的β实现自适应的激活形状。
与Mish对比:Mish(x) = x · tanh(ln(1+e^x)),两者形状接近但Mish在负半轴有小幅上凸,实验表明SiLU在大多数任务上性能与Mish相当或略优。
实践用法:YOLOv8等检测模型使用SiLU替代ReLU;在轻量级Transformer中SiLU常作为FFN的激活函数,计算开销低于GELU的tanh近似。