激活函数 SiLU 和 Swish 的区别

SiLU(Sigmoid Linear Unit)和Swish是两种常用的激活函数,它们在神经网络中起到引入非线性的作用。下面是SiLU和Swish之间的区别:

  • 定义:
  • SiLU:SiLU是Sigmoid Linear Unit的缩写,它是输入数据和参数化Sigmoid函数输出的乘积。在大多数神经网络模型中,SiLU函数的参数”a”通常为1 [1]
  • Swish:Swish是一种数学函数,定义为输入数据和参数化Sigmoid函数输出的乘积。参数β可以是常数或可训练的参数,取决于模型。当β=1时,Swish函数等效于SiLU函数 [2]
  • 公式:
  • SiLU:SiLU函数的公式为SiLU(x) = x * sigmoid(x)。
  • Swish:Swish函数的公式为Swish(x) = x * sigmoid(βx),其中β是常数或可训练的参数。
  • 相似性:
  • SiLU和Swish都是通过将输入数据与Sigmoid函数的输出相乘来引入非线性。
  • 当β=1时,Swish函数与SiLU函数相同。
  • 区别:
  • 命名:SiLU是在2016年首次提出的,后来被重新发现并称为Swish [2]
  • 参数:SiLU函数的参数通常为1,而Swish函数的参数β可以是常数或可训练的参数。
  • 提出时间:SiLU在2016年被首次提出,而Swish在SiLU之后的一年左右被重新发现并提出,最初没有使用可训练的参数β [2]

SiLU和Swish是两种常用的激活函数,它们在定义和公式上有一些相似之处,但也有一些区别,其中最主要的区别是Swish函数引入了可训练的参数β。


Learn more:

  1. Activation functions in neural networks [Updated 2023]
  2. Swish function – Wikipedia
  3. The Swish Activation Function | Paperspace Blog

发表评论