激活函数Swish 和 SiLU

Swish 和 SiLU 在本质上是同一个函数,只是在表达方式上有点历史原因,导致很多文章或回答把它们写得“好像不一样”。

区别来源

  • Swish (论文原版)
    Google 在 Searching for Activation Functions (2017) 提出:

    Swish(x)=x⋅σ(βx)\text{Swish}(x) = x \cdot \sigma(\beta x)Swish(x)=x⋅σ(βx)

    其中 β\betaβ 是一个可调超参数,可以是固定常数,也可以学习得到。

  • SiLU (框架实现)
    在 PyTorch、TensorFlow 等框架里,直接实现的是 β=1\beta = 1β=1 的情况:

    SiLU(x)=x⋅σ(x)\text{SiLU}(x) = x \cdot \sigma(x)SiLU(x)=x⋅σ(x)

    所以框架中的 SiLU 就是 Swish 的特殊情况(β=1\beta=1β=1)

为什么有人说它们“不一样”

  1. 有些资料严格区分:

    • Swish = 一族函数(带超参数 β\betaβ);

    • SiLU = 特殊情况(β=1\beta=1β=1)。

  2. 但在大部分论文和实现里,β\betaβ 通常取 1(因为实验发现效果最好),所以 Swish 和 SiLU 在实际使用上就是同一个函数

总结

  • 数学上:SiLU = Swish(β=1\beta=1β=1)。

  • 历史上:Swish 是 Google 提出并命名的,SiLU 是后来框架标准化的名字。

  • 使用上:几乎所有深度学习框架实现的 SiLU = Swish(1)。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值