07 · SiLU / Swish — 自门控激活函数

激活函数 2017
Elfwing et al. · arXiv:1702.03118  /  Ramachandran et al. · arXiv:1710.05941

迭代了什么

上一代的问题:ReLU 在 Transformer 中不是最优的。

这代改了什么:Swish = x·σ(βx),β 可学习,在线性函数和 ReLU 之间插值。SiLU = Swish(β=1)。非单调,负半轴有凸起。

效果:LLaMA 系列(1/2/3)使用 SiLU,EfficientNet/MobileNetV3 使用 Swish。越来越多架构用 SiLU 替代 GELU。

一、两篇论文,同一函数

SiLU(Elfwing et al., 2017.02,从 EE-RBM 理论推导)和 Swish(Ramachandran et al., 2017.10,通过自动化搜索发现)在相近时间独立发现了同一函数 x · sigmoid(x)。有趣的是,前者来自理论推导,后者来自大规模架构搜索——两个完全不同的出发点汇聚到了同一个函数上。

二、核心公式

2.1 Swish 的一般形式

Swish(x) = x · σ(βx) = x / (1 + e-βx)

其中 β 为可学习参数或常数,控制门控曲线的陡峭程度。

2.2 SiLU(β=1 的特例)

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

SiLU 是 Swish 在 β=1 时的退化情况。

2.3 Swish 的参数化插值

β=0 → f(x) = x/2   (线性)
β=1 → SiLU
β→∞ → ReLU(硬门控极限)

通过调节 β,Swish 可以连续地从线性过渡到 ReLU,为不同任务提供灵活的非线性程度选择。

三、关键特征

四、实际影响