最近谷歌大脑公布了一个新的**函数,叫做 Swish **函数。这个函数非常的有趣,很多人都把它应用到一些小的神经网络和大的神经网络中去测试它的性能。所以,我也打算去 kaggle 上面测试一些这个函数的性能如何。

Swish **函数的数学公式非常的简单,即 f(x) = x * sigmoid(x) 。根据谷歌大脑的论文,该**函数的性能比 ReLU **函数的性能要好很多。

目前使用最广泛的**函数是 ReLU。

    本论文中,我们提出了一种新型**函数 Swish,Swish的数学表达为:f(x) = x * sigmoid(x) 。

    其中σ(x) = 1/(1 + exp(−x)) 是 Sigmoid 函数。 Swish 函数的几何表示如下:

谷歌大脑自门控**函数Swish

    和 ReLU 一样,Swish 无上界有下界。    与 ReLU 不同的是,Swish 是平滑且非单调的函数。

    Swish 的导数是

谷歌大脑自门控**函数Swish

    Swish 的一阶导和二阶导如图 2 所示。输入低于 1.25 时,导数小于 1。

谷歌大脑自门控**函数Swish

    Swish 的设计受到 LSTM 和 highway network 中使用 sigmoid 函数进行门控的启发。我们使用同样的值进行门控来简化门控机制,称为自门控(self-gating)。自门控的优势是它仅需要一个简单的标量输入,而正常的门控需要多个标量输入。该特性令使用自门控的**函数如 Swish 能够轻松替换以单个标量作为输入的**函数(如 ReLU),无需改变参数的隐藏容量或数量。


    在 TensorFlow 等大多数深度学习库中只需更改一行代码即可实现 Swish 函数。需要注意的是,如果使用 BN,应设置缩放参数(scale parameter)。由于 ReLU 函数是分段线性函数,一些高级别的库默认关闭缩放参数,但是该设置不适用于 Swish。


    一句话:Swish 是一种新型**函数,公式为: f(x) = x · sigmoid(x)。Swish 具备无上界有下界、平滑、非单调的特性。


相关文章:

  • 2022-12-23
  • 2021-11-10
  • 2021-07-10
  • 2021-08-02
  • 2022-01-14
  • 2022-01-12
猜你喜欢
  • 2021-11-08
  • 2021-06-21
  • 2021-11-24
  • 2022-12-23
  • 2021-04-21
  • 2022-01-22
  • 2021-06-18
相关资源
相似解决方案