计算机系统应用教程网站

网站首页 > 技术文章 正文

神经网络常用激活函数总结(二)

btikc 2024-09-06 18:07:32 技术文章 12 ℃ 0 评论

激活函数性质

  • 非线性:即导数不是常数,保证多层网络不退化成单层线性网络;
  • 可微性:保证了在优化中梯度的可计算性;
  • 计算简单:激活函数复杂就会降低计算速度;
  • 非饱和性(saturation):饱和指的是在某些区间梯度接近于零(即梯度消失),使得参数无法继续更新的问题;
  • 单调性(monotonic):即导数符号不变。当激活函数是单调的时候,单层网络能够保证是凸函数;
  • 参数少:大部分激活函数都是没有参数的,像 PReLU 带单个参数会略微增加网络的大小。

高斯误差线性单元(Gaussian Error Linear Unit,GELU)

Dropout 和 ReLU 都希望将“不重要”的激活信息变为零。以 ReLU 为例,对于每个输入 x 都会乘以一个分布,这个分布在 x>0 时为常数 1,在 x≤0 时为常数0。而 GELU 也是在 x(服从标准正态分布)的基础上乘以一个分布,这个分布就是伯努利分布 Φ(x) = P(X≤x)。

因此,高斯误差线性单元(GELU)为 GELU(x) = x*P(X≤x)

但是这个函数无法直接计算,需要通过另外的方法来逼近这样的激活函数,研究者得出来两个逼近函数:

优点:

  • 在 NLP 领域效果最佳,尤其在 Transformer 模型中表现最好
  • 类似 RELU 能避免梯度消失问题

缺点:

  • 计算量大:类似 ELU,涉及到指数运算。

Swish

Swish 激活函数形式为:f(x)=x*sigmoid(βx)

  • β 是个常数或可训练的参数,通常所说的 Swish 是指 β=1
  • β=1.702 时,可以看作是 GELU 激活函数

缺点:

计算量大:sigmoid 涉及到指数运算

Mish

Mish=x * tanh(ln(1+e^x))

在函数形式和图像上,都与 GELU 和 Swish(β=1) 类似。

优点:

  • Mish 函数保证在曲线上几乎所有点上的平滑度;
  • 随着层深的增加,ReLU 精度迅速下降,其次是 Swish,而 Mish 能更好地保持准确性。

Data Adaptive Activation Function (Dice)

PReLU 和 Dice 的异同:

  • 激活函数的形式相同:f(s) = p(s) * s + (1 ? p(s)) · αs
  • p(s)的计算方式不同:
    • PReLU:p(s) 是指示函数 I(s>0)
    • Dice:p(s) 是 sigmoid(BN(s)),BN 代表 Batch Normalization

Dice 可以看作是一种广义的 PReLu,当 E(s) = 0 且 Var(s) = 0 时,Dice 退化为 PReLU。Dice 受到数据影响,E(s) 决定其 rectified point:PReLU 是在 0 的位置,而 Dice 是在 E(s) 位置。



Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表