激活函数总结(六):ReLU系列激活函数补充(RReLU、CELU、ReLU6)

激活函数总结(六):ReLU系列激活函数补充

  • 1 引言
  • 2 激活函数
    • 2.1 RReLU激活函数
    • 2.2 CELU激活函数
    • 2.3 ReLU6 激活函数
  • 3. 总结

1 引言

在前面的文章中已经介绍了介绍了一系列激活函数 (SigmoidTanhReLULeaky ReLUPReLUSwishELUSELUGELUSoftmaxSoftplusMishMaxoutHardSigmoidHardTanhHardswishHardShrinkSoftShrinkTanhShrink)。在这篇文章中,会接着上文提到的众多激活函数继续进行介绍,给大家带来更多不常见的激活函数的介绍。这里放一张激活函数的机理图:
在这里插入图片描述

最后,对于文章中没有提及到的激活函数,大家可以通过评论指出,作者会在后续的文章中进行添加补充。

2 激活函数

2.1 RReLU激活函数

论文链接:Empirical Evaluation of Rectified Activations in Convolutional Network

RReLU激活函数是基于Leaky ReLU的一种扩展形式。与传统的Leaky ReLU不同,RReLU引入了随机性,允许在训练过程中随机设置泄漏的斜率。其数学表达式和数学图像分别如下所示:
R R e L U ( x ) = { x i f x > = 0 a x o t h e r w i s e RReLU(x)=\left\{ \begin{matrix} \quad \quad \quad x \quad \quad \quad if \quad x >= 0 \\ \quad \quad \quad ax \quad \quad \quad otherwise \quad \end{matrix} \right. RReLU(x)={xifx>=0axotherwise激活函数总结(六):ReLU系列激活函数补充(RReLU、CELU、ReLU6)_第1张图片
a是一个随机数,服从均匀分布U(lower,upper)。在pytorch中,nn.RReLU默认参数是(lower=1/8, upper=1/3)。参数a在训练时随机,测试时固定(lower + upper) / 2

优点:

  • 减少过拟合:对于RReLU而言,参数a是随机选择的,这样可以减少过拟合带来的风险

缺点:

  • 效果不好:相对ReLU而言,RReLU往往效果不是很好
  • 运算速度慢:RReLU增加了计算的参数量,因此运算速度较慢

RReLU虽然在训练时效果表现很差,但是在测试时表现很好。但是,现在仍处于几乎没有人使用的情况。。。

2.2 CELU激活函数

论文链接:https://arxiv.org/abs/1704.07483

CELU 激活函数是 ELU激活函数的变体,与 ELU 不同,CELU 是一个连续可导的激活函数,旨在在保持ELU的非线性特性的同时消除其在某些点上不可导的问题。其数学表达式和数学图像分别如下所示:
C E L U ( x ) = m a x ( 0 , x ) + m i n ( 0 , α ∗ ( e x p x / α − 1 ) ) CELU(x)=max(0,x)+min(0,α∗(exp^{x/α}−1)) CELU(x)=max(0,x)+min(0,α(expx/α1))激活函数总结(六):ReLU系列激活函数补充(RReLU、CELU、ReLU6)_第2张图片
优点:

  • 连续可分:对于ELU激活函数而言, α \alpha α 不等于1时,其相对于其输入不是连续可微的;而CELU对于所有 α \alpha α 都是连续可微的,使整流器更容易推理,并使 α \alpha α容易调整

缺点:

  • 计算复杂度高:负数部分引入了指数函数的计算,增加了计算的复杂性
  • 增加了超参数:增加了超参数,用于调整激活函数在负值区域的斜率。选择合适的 α \alpha α 值仍然是一个挑战,不同的数据集和任务可能需要不同的参数设置。

实验发现 CELU 具有不错的效果,在许多网络中都有应用。可以作为一种常用激活函数!!!

2.3 ReLU6 激活函数

论文链接:cs.utoronto.ca/~kriz/conv-cifar10-aug2010.pdf

ReLU6 激活函数是 ReLU 激活函数的变种之一。ReLU6 激活函数在负值区域与普通的ReLU相同,而在正值区域则进行了剪裁将正值限制在一个较小的范围内,通常是[0, 6]。(这里设置为6,是因为在论文中经过实验,设置为6取得的效果最好)其数学表达式和数学图像分别如下所示:
R e L U 6 ( x ) = m i n ( m a x ( x , 0 ) , 6 ) ReLU6(x) = min(max(x, 0), 6) ReLU6(x)=min(max(x,0),6)激活函数总结(六):ReLU系列激活函数补充(RReLU、CELU、ReLU6)_第3张图片

优点:

  • 稀疏性:由于ReLU6的截断属性,使得激活函数存在一定的稀疏性。可以降低模型的计算复杂度
  • 低精度分辨率:对于一些低精度的数据,具有很好的分辨率。例如 float16 无法准确描述出较大数据,因此会导致一定的精度损失,而使用ReLU6激活函数不会存在这样的问题。

缺点:

  • 信息丢失:截断属性可能带来一定的信息丢失
  • 超参数选择:对于ReLU6而言,其截断范围也是可以被选择的,可以通过对该超参数进行选择来调节效果。

ReLU6激活函数具有一定的效果,在当前诸多领域都有应用,是一个比较常用的激活函数!!!!

3. 总结

到此,使用 激活函数总结(六) 已经介绍完毕了!!! 如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。如果存在没有提及的激活函数也可以在评论区提出,后续会对其进行添加!!!!

如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦。

你可能感兴趣的:(深度学习,python,深度学习,激活函数)