激活函数总结(七):激活函数补充(Softsign、Threshold、Sinc)

news2024/11/26 20:09:35

激活函数总结(七):激活函数补充

  • 1 引言
  • 2 激活函数
    • 2.1 Softsign激活函数
    • 2.2 Threshold (Unit step activation function) 激活函数
    • 2.3 Sinc激活函数
  • 3. 总结

1 引言

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

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

2 激活函数

2.1 Softsign激活函数

Softsign 激活函数是一种Tanh 、Sigmoid 激活函数的替代,它通过应用阈值来重新缩放 -1 和 1 之间的值。其数学表达式和数学图像分别如下所示:
S o f t s i g n ( x ) = x / ( 1 + ∣ x ∣ ) Softsign(x) = x / (1 + |x|) Softsign(x)=x/(1+x)在这里插入图片描述
特点:

  • 收敛性:Softsign 以多项式而不是指数方式收敛于其渐近线。

Softsign 与 ReLU 激活函数效果相比,仍存在一定的差异。现在仍处于几乎没有人使用的情况。。。

2.2 Threshold (Unit step activation function) 激活函数

Threshold (阈值激活函数) 是一种最简单非线性激活函数,它在神经网络中用于引入非线性性质。这种激活函数在输入大于某个阈值时输出1,否则输出0。简单来说,它模拟了一个开关的行为,输入超过阈值时激活(输出1),否则不激活(输出0)。其数学表达式和数学图像分别如下所示:
T h r e s h o l d ( x ) = { 1 i f x > = t h r e s h o l d 0 i f x < t h r e s h o l d Threshold(x)=\left\{ \begin{matrix} \quad \quad \quad 1 \quad \quad \quad if \quad x >= threshold \\ \quad \quad \quad 0 \quad \quad \quad if \quad x < threshold \quad \end{matrix} \right. Threshold(x)={1ifx>=threshold0ifx<threshold在这里插入图片描述
其中,Threshold activation function 又名 Unit step activation function

优点:

  • 简单性: 阈值激活函数非常简单,仅基于阈值对输入进行二进制判定,因此计算效率高
  • 稳定性: 在一些特定的应用中,阈值激活函数可能会表现出稳定性,不易受到梯度爆炸等问题的影响。

缺点:

  • 缺乏表达能力:阈值激活函数非常限制了神经网络的表达能力,它只能输出两种值(0和1),无法适应更复杂的数据模式。这使得神经网络很难从数据中学习到更高层次的特征表示
  • 梯度消失:阈值激活函数在大部分输入范围内的导数都为0,这导致在反向传播时,梯度会很快消失,使得网络很难学习。这个问题也在Sigmoid激活函数中存在,因此它们通常不作为主要的激活函数选择。
  • 不可导性:阈值激活函数在阈值处是不可导的,这使得它无法直接应用于使用梯度下降等基于梯度的优化算法进行训练。这会导致训练过程不稳定,并可能需要使用一些近似的方法来处理。

阈值激活函数在现代深度学习中不太常用,因为它的非线性表达能力相对有限,且在梯度计算时存在问题,容易导致梯度消失的情况。

2.3 Sinc激活函数

Sinc激活函数是一种基于Sinc函数的激活函数,它在一定程度上引入了周期性的非线性性质。Sinc函数是一个在信号处理和数学领域中常见的函数,表示正弦函数的振幅归一化后的形式。其数学表达式和数学图像分别如下所示:
S i n c ( x ) = { sin ⁡ ( x ) / x i f x ≠ 0 1 i f x = 0 Sinc(x)=\left\{ \begin{matrix} \quad \quad \quad \sin(x)/x \quad \quad \quad if \quad x \not= 0\\ \quad \quad \quad \quad 1 \quad \quad \quad \quad \quad if \quad x=0 \end{matrix} \right. Sinc(x)={sin(x)/xifx=01ifx=0在这里插入图片描述
根据Sinc激活函数的定义可知:当 x 等于零时,Sinc将未定义。这就是为什么函数定义有一个例外点,其中 x 等于零。sinc(0) 定义为值 1 作为特异点

优点:

  • 适用于周期性模式:Sinc激活函数的基础是Sinc函数,它具有周期性的性质。因此,在涉及到周期性模式的问题中,Sinc激活函数可能更适用,可以捕捉数据中的周期性特征
  • 保留了周期性信息:Sinc激活函数不像一些常见的激活函数(如ReLU)那样直接将一部分输入归零,因此它可以在一定程度上保留输入的周期性信息

缺点:

  • 复杂的计算:Sinc函数的计算较为复杂,涉及到除法和三角函数的计算。这可能会导致在神经网络的前向传播过程中增加计算负担,从而影响模型的训练速度和性能。
  • 梯度消失: 类似于其他非线性激活函数,Sinc激活函数也可能面临梯度消失的问题。在某些区域,它的导数可能非常小,导致训练过程变得困难。
  • 训练不稳定: Sinc激活函数可能导致训练过程不稳定,特别是在深层神经网络中。梯度的不稳定性消失问题可能会影响模型的收敛速度和性能。

在周期性数据中可能(还未证实)会存在一定的优势,但是不推荐使用。

3. 总结

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/872412.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java-运算符和控制语句(下)(基于c语言的补充)

输出到控制台 System.out.println(msg); // 输出一个字符串, 带换行 System.out.print(msg); // 输出一个字符串, 不带换行 System.out.printf(format, msg); // 格式化输出 从键盘输入 使用 Scanner 读取字符串/整数/浮点数 首先需要导入util包 自动导入util包 这里把回车看…

21-因子个数

题目 一个正整数可以分解成一个或多个数组的积。例如362*2*3*3&#xff0c;即包含2和3两个因子。NowCoder最近在研究因子个数的分布规律&#xff0c;现在给出一系列正整数&#xff0c;他希望你开发一个程序输出每个正整数的因子个数。 输入描述: 输入包括多组数据。 每组数…

Ubuntu22开机后正上方弹出“Printer addded(已添加打印)”等提示框

一、问题描述 Ubuntu22开机后正上方弹出“Printer addded&#xff08;已添加打印&#xff09;”等提示框。如下 二、问题分析 1、列出当前所有开机启动服务 service --status-all msmoshui:~$ service --status-all[ - ] alsa-utils[ - ] anacron[ ] apparmor[ ] app…

预测算法|改进粒子群算法优化极限学习机IDM-PSO-ELM

回归拟合&#xff1a; 分类 本文是作者的预测算法系列的第四篇&#xff0c;前面的文章中介绍了BP、SVM、RF及其优化&#xff0c;感兴趣的读者可以在作者往期文章中了解&#xff0c;这一篇将介绍——极限学习机 过去的几十年里基于梯度的学习方法被广泛用于训练神经网络&am…

全网最详细,Pytest自动化测试框架-Fixture固件实战,你要的都有...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 什么是固件 Fixt…

SpringBoot整合Redis完整篇

SpringBoot整合Redis完整篇 1、在springboot项目的pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schem…

用HARU-Net增强核分割:一种基于混合注意的残差u块网络

文章目录 Enhancing Nucleus Segmentation with HARU-Net: A Hybrid Attention Based Residual U-Blocks Network摘要本文方法损失函数后处理消融实验 Enhancing Nucleus Segmentation with HARU-Net: A Hybrid Attention Based Residual U-Blocks Network 摘要 核图像分割是…

B3716 分解质因子 3

#include <bitset> #include <vector> #include <iostream> #include <algorithm>const int maxn 100000008;std::vector<int> prm, pre; // pre is the min-factor array. bool np[maxn];void getPrime(const int N 100000000) {//线性筛&am…

Fast SAM与YOLOV8检测模型一起使用实现实例分割以及指定物体分割(有代码)

Fast SAM与YOLOV8检测模型一起使用 VX 搜索”晓理紫“ 关注并回复yolov8fastsam获取核心代码 晓理紫 1 使用场景 实例分割数据集的获取要比检测数据的获取更加困难&#xff0c;在已有检测模型不想从新标注分割数据进行训练但是又想获取相关物体的mask信息以便从像素级别对物体进…

Redis原理简述

Redis原理简述 Redis 有哪些特性 1. 特性 key-value 型内存数据库单线程——原子化操作支持lua脚本发布与订阅可持久化逐出与过期……2. 持久化 RDB:经过压缩的二进制文件;fork子进程进行操作AOF:保存所有写命令;先写缓存再同步至AOF文件;文件过大时会触发AOF重写3. 过期…

4. 发布确认

4.1. 发布确认原理 生产者将信道设置成 confirm 模式&#xff0c;一旦信道进入 confirm 模式&#xff0c;所有在该信道上面发布的 消息都将会被指派一个唯一的 ID(从 1 开始)&#xff0c;一旦消息被投递到所有匹配的队列之后&#xff0c;broker 就会发送一个确认给生产者(包含消…

[python]RuntimeError: Can‘t decrement id ref count (unable to close file...

使用spectralspatial模型进行EEG分类时&#xff0c;出现以下错误 RuntimeError: Cant decrement id ref count (unable to close file, errno 5, error message Input/output error) Segmentation fault (core dumped) 猜测是因为存储的model太大了导致的&#xff0c;找到了…

QGIS3.28的二次开发八:显示shp的属性表

这里实现两个基本的 GIS 软件需求&#xff1a;矢量图层的属性表显示&#xff0c;以及根据属性筛选要素。 具体需求如下&#xff1a; 加载一个矢量图层并打开其属性表&#xff1b;输入筛选条件确认无误后&#xff0c;画布上和属性表中均只显示筛选后的要素。 QGIS 提供了若干…

V3s uboot 通过env 修改LCD 参数信息

实际项目中我们可能使用各种参数的LCD 显示器&#xff0c;有7吋&#xff0c;4.3 寸等等&#xff0c;我这里使用的uboot 版本是U-Boot 2017.01-rc2 &#xff0c;在make menuconfig 时候会填入lcd 配置信息&#xff0c;如下&#xff1a; 所以这里使用起来很不方便&#xff0c;查看…

Vulnhub: DriftingBlues: 3靶机

kali&#xff1a;192.168.111.111 靶机&#xff1a;192.168.111.192 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.192 查看robots.txt得到提示 访问eventadmins提示littlequeenofspades.html 查看littlequeenofspades.html源码 base64解密…

掌握Python的X篇_35_用Python为美女打码_图像库Pillow

本篇将会介绍python中的一个图像库Pillow。 文章目录 1. Pillow与PIL的关系2. 调整大小3. 加滤镜4. 剪裁5. 生成验证码 1. Pillow与PIL的关系 我们在网上搜python的图像库的话&#xff0c;可能搜到的时PIL。实际上之前python发展的时候就是PIL&#xff0c;这个库比较好用&…

IL汇编语言做一个窗体

网上看到一段代码&#xff0c; .assembly extern mscorlib {} .assembly Classes { .ver 1:0:1:0 } .namespace MyForm { .class public TestForm extends [System.Windows.Forms]System.Windows.Forms.Form { .field private class [System]…

C语言快速回顾(二)

前言 在Android音视频开发中&#xff0c;网上知识点过于零碎&#xff0c;自学起来难度非常大&#xff0c;不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》&#xff0c;结合我自己的工作学习经历&#xff0c;我准备写一个音视频系列blog。C/C是音视频必…

房屋中介系统springboot框架jsp房产信息管理java源代码

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 房屋中介系统springboot框架 系统有1权限&#xff1a…

SAP MM学习笔记19- SAP中的库存处理 单纯的退货,交货不足和过量交货

下面这篇文章讲了 SAP中的库存类型。本篇讲一些库存处理场景。 SAP MM学习笔记19- SAP中的库存类型&#xff0c;以及 保留在库的利用场景_东京老树根的博客-CSDN博客 1&#xff0c;单纯的退货 收货之后发现不合格货物&#xff0c;然后就想退货。而且退货之后不想再要了&#…