当前位置: 首页 > news >正文

激活函数总结(六):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在这里插入图片描述
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))在这里插入图片描述
优点:

  • 连续可分:对于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)在这里插入图片描述

优点:

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

缺点:

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

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

3. 总结

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

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

http://www.lryc.cn/news/120273.html

相关文章:

  • tp5中的事务处理
  • 论文总结《Towards Evaluating the Robustness of Neural Networks(CW)》
  • 2024重庆邮电大学软件工程809题库(带答案)
  • 三种目标检测方法(基于传统数字图像处理的识别方法、基于传统机器学习的识别方法和基于深度学习的识别方法)的区别
  • 制造业为什么要建设数字化供应链
  • webrtc Thread 和 TaskQueue 的 应用和思考
  • 无涯教程-Perl - pos函数
  • 【腾讯云 Cloud Studio 实战训练营】使用Cloud Studio构建Java、Python项目
  • Java的Class类:每一个类都对应着一个Class对象
  • JavaScript预编译机制
  • 【ARM 嵌入式 编译系列 4.1 -- GCC 编译属性 likely与unlikely 学习】
  • 《算法竞赛·快冲300题》每日一题:“造电梯”
  • NSS [MoeCTF 2022]baby_file
  • 喜报!诚恒科技与赛时达科技达成BI金蝶云星空项目合作
  • Vscode python调试和运行环境设置
  • lua中执行luci.sys.call、luci.sys.exec、os.execute的区别
  • Python-OpenCV中的图像处理-模板匹配
  • 模拟队列(c++题解)
  • Redis_哨兵模式
  • Mysql中如果建立了索引,索引所占的空间随着数据量增长而变大,这样无论写入还是查询,性能都会有所下降,怎么处理?
  • MySQL 约束
  • unity实现角色体力功能【体力条+体力计算】
  • 【深度学习所有损失函数】在 NumPy、TensorFlow 和 PyTorch 中实现(1/2)
  • 七夕好物分享,哪些礼物适合送男/女朋友?这几款好物最为合适!
  • C语言学习系列-->看淡指针(2)
  • Java基础篇--Character 类
  • Flutter参考资料
  • sed命令如何正确修改ini配置文件
  • 【新版系统架构补充】-信息系统基础知识
  • 安防监控视频汇聚平台EasyCVR分发的FLV视频流在VLC中无法播放是什么原因?