SiLU 激活函数

深度学习的平滑之门:结合 Sigmoid 的平滑性与 ReLU 的线性特性,开启神经网络表达的新维度

深度学习 性能提升 神经网络
神经网络激活函数的抽象可视化

数学特性

SiLU(x) = x · σ(x),结合线性单元与Sigmoid门控机制,实现自适应信息调节

性能优势

在YOLO系列模型中提升mAP 0.3-0.5%,在保持速度的同时显著提升检测精度

稳定训练

有效缓解梯度消失问题,避免神经元死亡,提升深层网络训练稳定性

数学定义与计算方式

SiLU(Sigmoid Linear Unit)激活函数,也被称为 Swish 激活函数(当 Swish 函数中的参数 β = 1 时) [37] [41], 是一种结合了 Sigmoid 函数平滑性和 ReLU 函数线性特性的非线性激活函数。

SiLU 的数学公式

SiLU(x) = x · σ(x) = x · 1/(1 + e-x)

函数特性

  • 值域:(-∞, +∞)
  • 连续可导,处处平滑
  • 非单调性:负区间有全局最小值
  • 自门控机制:输入自我调节

输入输出关系

  • x → +∞: SiLU(x) ≈ x
  • x → -∞: SiLU(x) ≈ 0
  • x = 0: SiLU(0) = 0
  • 最小值: x ≈ -1.278 时取得

SiLU 的导函数

SiLU'(x) = σ(x) + x · σ(x) · (1 - σ(x))

梯度特性分析

x ≫ 0 (正区间)

σ(x) ≈ 1, SiLU'(x) ≈ 1

类似 ReLU,梯度稳定

x ≈ 0 (零点附近)

σ(0) = 0.5, SiLU'(0) ≈ 0.5

平滑过渡,训练稳定

x ≪ 0 (负区间)

σ(x) ≈ 0,但梯度非零

避免神经元死亡

主要特点与优势

平滑性与非单调性

平滑性优势

与 ReLU 在 x=0 处不可导不同,SiLU 在整个实数域上连续可导 [52] [136]。 这种平滑性使梯度下降等优化算法能更稳定地收敛。

非单调性特征

SiLU 在负区间表现出非单调行为,当 x ≈ -1.278 时达到全局最小值 -0.278 [8] [50]。 这种特性增强了模型的表达能力。

神经网络平滑激活与梯度优化示意图

梯度特性与避免梯度消失

梯度保持机制

  • 正区间梯度接近 1,有效传递梯度
  • 负区间保留微弱梯度,避免神经元死亡
  • 平滑过渡区域,训练过程更稳定

问题解决能力

  • ReLU:神经元死亡问题
  • Sigmoid:梯度消失问题
  • SiLU:综合解决上述问题

与 ReLU 和 Sigmoid 的比较

特性 SiLU (Swish) ReLU Sigmoid
数学公式 x · σ(x) max(0, x) 1/(1 + e-x)
平滑性 连续可导,处处平滑 在 x=0 处不可导 连续可导,处处平滑
非单调性 是 (负区间有全局最小值) 否 (单调递增) 否 (单调递增)
负值处理 非零输出,非零梯度 输出为 0,梯度为 0 输出接近 0,梯度接近 0
梯度消失 有效缓解 正区间缓解,负区间导致神经元死亡 严重问题
计算成本 较高 (涉及 Sigmoid 和乘法) 非常低 较高 (涉及指数运算)

数据来源:基于研究文献 [52] [136] [60] 的综合分析

应用场景

在卷积神经网络 (CNN) 中的应用

核心优势

SiLU 在 CNN 的卷积层之后使用,帮助网络学习更复杂和鲁棒的特征。其平滑性有助于梯度的稳定传播,使得深层 CNN 更容易训练。

关键应用:EfficientNet、ConvNeXt、Swin Transformer 等先进架构中采用 SiLU 替代 ReLU, 在保持精度的同时降低计算量 [82] [104]

应用效果

  • 增强特征提取:SiLU 的自门控机制使网络能自适应决定信息通过量
  • 提升模型精度:在图像分类任务中观察到准确率提升
  • 训练稳定性:平滑梯度特性使深层网络训练更稳定
卷积神经网络架构示意图

在目标检测任务中的应用 (YOLO 系列)

YOLOv5 性能提升

mAP@.5 提升 +0.5%
mAP@.5:.95 提升 +0.3%
推理速度影响 -0.4ms

数据来源: [115] [116]

YOLOv7 突破表现

10.7%
YOLOv7-tiny SiLU 相比 YOLOv5-N 的 AP 提升
56.8%
YOLOv7 在 V100 GPU 上的最高 AP 准确率

数据来源: [156] [160]

YOLO 系列应用情况

YOLOv5

Conv 模块默认采用 SiLU

YOLOv7

除 tiny 版本外均使用 SiLU

YOLOX

标准配置采用 SiLU

在大型语言模型中的相关应用

SwiGLU: SiLU 的扩展

SwiGLU (Swish-Gated Linear Unit) 是 SiLU 的重要变体,在 LLaMA、LLaMA2、PaLM 等大型语言模型的 FFN 模块中广泛应用 [33] [92]

数学形式:
SwiGLU(x, W, V, b, c) = (Swish(xW + b) ⊗ (xV + c))

其中 Swish(x) = x · σ(x) 即为 SiLU 激活函数

核心优势

  • 提升模型性能:相比传统 ReLU 或 GELU,在下游任务中获得更好表现
  • 增强表达能力:更复杂的非线性变换能力,捕捉长距离依赖
  • 改善训练动态:平滑梯度特性稳定训练过程

实际效果与性能表现

在 YOLO 系列模型中的应用效果

YOLOv7 模型对比

YOLOv7-Tiny-SiLU vs YOLOv5-N
速度快 127 FPS,AP 准确率高 10.7%
YOLOv7-X vs YOLOv5-X
推理速度快 31 FPS,参数减少 22%,AP 提高 2.2%
YOLO目标检测模型性能对比示意图

在 LLaMA 等大型语言模型中的间接应用效果

LLaMA 系列

在 FFN 模块中使用 SwiGLU 激活函数,取代传统的 ReLU 非线性,显著提升模型性能 [105]

PaLM 模型

采用 SwiGLU 激活函数,通过 SiLU 的自门控机制增强模型表达能力 [98]

其他 LLM

DeepSeek LLM、Qwen 1.5 等知名模型均采用 SwiGLU 作为激活函数 [92]

性能总结

主要优势

  • 平滑的梯度特性,训练更稳定
  • 有效缓解梯度消失问题
  • 避免神经元死亡,提高参数利用率
  • 非单调性增强模型表达能力

权衡考虑

  • 计算成本略高于 ReLU
  • 在特定硬件上可能不如 ReLU 高效
  • 性能提升通常能弥补计算开销