激活函数总结(十一):激活函数补充(Absolute、Bipolar、Bipolar Sigmoid)

激活函数总结(十一):激活函数补充

  • 1 引言
  • 2 激活函数
    • 2.1 Absolute激活函数
    • 2.2 Bipolar激活函数
    • 2.3 Bipolar Sigmoid激活函数
  • 3. 总结

1 引言

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

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

2 激活函数

2.1 Absolute激活函数

Absolute(绝对值)激活函数是一种基于绝对值非线性激活函数,它将输入值映射到其绝对值上。该函数在输入从负向正变化的过程中保持连续性。在输入为负时,绝对值激活函数输出与输入值相同的正值;在输入为正时,输出仍然是输入值。其数学表达式和数学图像分别如下所示:

A b s o l u t e ( x ) = ∣ x ∣ Absolute(x) = |x| Absolute(x)=x在这里插入图片描述
优点:

  • 无梯度消失问题: 绝对值激活函数在所有输入范围内的梯度都为常数(1或-1),因此不存在类似于Sigmoid或Tanh等函数那样的梯度消失问题。这意味着在训练过程中梯度可以更容易地传播,特别是在深层神经网络中。
  • 线性性质:绝对值激活函数是一个分段线性函数,其输出在不同的区间内是线性的。这可以在某些问题中提供适度的非线性性质,对于某些任务可能是有用的。
  • 稳定性: 绝对值激活函数对于输入中的大幅度变化有一定的鲁棒性,因为它总是返回非负的输出,避免了负数的抑制性影响。

缺点:

  • 缺乏灵活性:绝对值激活函数是非常简单的线性函数,它没有类似于Sigmoid、ReLU等激活函数引入的非线性特性。这可能限制了其在某些复杂任务上的表现能力。
  • 信息损失: 由于绝对值激活函数直接舍弃了输入的符号信息,它可能无法区分正负值对任务的影响,这可能导致在某些情况下丢失有用的信息。
  • 非可导连续:绝对值激活函数在0处不可微分,表现出导数不连续的状况。

这个激活函数十分简单,也因其简单的性质现在很少使用。。。

2.2 Bipolar激活函数

Bipolar激活函数是一种特殊的激活函数,它是Threshold函数的一个变种。它的数学表达式如下和数学图像分别如下所示::
B i p o l a r ( x ) = { 1 i f x > = t h r e s h o l d − 1 i f x < t h r e s h o l d Bipolar(x)=\left\{ \begin{matrix} \quad \quad \quad 1 \quad \quad \quad if \quad x >= threshold \\ \quad \quad \quad -1 \quad \quad \quad if \quad x < threshold \quad \end{matrix} \right. Bipolar(x)={1ifx>=threshold1ifx<threshold在这里插入图片描述
优点:

  • 简单性: 阈值激活函数非常简单,仅基于阈值对输入进行二进制判定,因此计算效率高
  • 稳定性: 在一些特定的应用中,阈值激活函数可能会表现出稳定性,不易受到梯度爆炸等问题的影响。
  • 双极性:输出范围在-1到1之间,这可以使其在处理输入数据的正负关系时表现更好。

缺点:

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

Bipolar同Threshold是一致的,因其特性导致很难在网络结构中使用。。。

2.3 Bipolar Sigmoid激活函数

论文链接:Mansor, Mohd Asyraf, and Saratha Sathasivam. “Activation function comparison in neural-symbolic integration.” In AIP Conference Proceedings, vol. 1750, no. 1, p. 020013. AIP Publishing LLC, 2016.

Bipolar Sigmoid激活函数是一种特殊的激活函数,它是Sigmoid函数的一个变种。它的数学表达式如下和数学图像分别如下所示::

B i p o l a r S i g m o i d ( x ) = 2 / ( 1 + e x p ( − x ) ) − 1 Bipolar Sigmoid(x) = 2 / (1 + exp(-x)) - 1 BipolarSigmoid(x)=2/(1+exp(x))1在这里插入图片描述

优点:

  • 双极性输出: Bipolar Sigmoid的输出范围在-1到1之间,这可以使其在处理输入数据的正负关系时表现更好。它适用于处理具有双极性性质的数据,例如一些情感分析任务中的正面和负面情感。
  • 连续可微性: 与标准的Sigmoid函数一样,Bipolar Sigmoid也是连续可微的。这对于使用梯度下降等优化方法进行训练和反向传播是至关重要的,因为它们要求激活函数是可微的。
  • 非线性特性: Bipolar Sigmoid是非线性的激活函数,它可以引入一定的非线性表达能力,有助于神经网络模型捕获复杂的数据关系。

缺点:

  • 饱和问题: Bipolar Sigmoid激活函数在输入远离0的时候,输出会饱和,即梯度趋近于0。这可能导致训练时的梯度消失问题,特别是在深层网络中。
  • 计算复杂性: 与标准的Sigmoid函数一样,Bipolar Sigmoid的计算开销也较大,因为它涉及到指数运算。这可能会在网络训练中导致较慢的收敛速度。

虽然Bipolar Sigmoid 在理论上具有比Sigmoid更好的效果,但是结合Sigmoid系列整体的激活函数而言,这是微不足道的!!!因此,Bipolar Sigmoid作为Sigmoid系列激活函数的一员也是很少使用的一类激活函数。。。。

3. 总结

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

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

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

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

相关文章

C++ auto关键字

文章目录 一、auto的推导规则二、auto的限制 C11 中有&#xff1a;auto 类型推导 auto x 5; // OK: x 是 int 类型 auto pi new auto(1); // OK: pi 被推导为 int* const auto *v &x, u 6; // OK: v是const int*类型&#xff0c;u是const int类型 static auto y 0.0;…

【Java】批量生成条形码-itextpdf

批量生成条形码 Controller ApiOperation("商品一览批量生成商品条形码")PostMapping("/batchGenerateProdBarCode")public void batchGenerateProdBarCode(RequestBody ProductListCondition productListCondition,HttpServletResponse response){import…

使用Spring-Security后,浏览器不能缓存的问题

Spring-Security在默认情况下是不允许客户端进行缓存的&#xff0c;在使用时可以通过禁用Spring-Security中的cacheControl配置项允许缓存。 protected void configure(HttpSecurity http) throws Exception {// 允许缓存配置http.headers().cacheControl().disable(); }

Java中使用流将两个集合根据某个字段进行过滤去重?

Java中使用流将两个集合根据某个字段进行过滤去重? 在Java中&#xff0c;您可以使用流(Stream)来过滤和去重两个集合。下面是一个示例代码&#xff0c;展示如何根据对象的某个字段进行过滤和去重操作&#xff1a; import java.util.ArrayList; import java.util.List; impor…

“代码驭宠而行“:探索Python的魔法世界,开启编程奇幻之旅!

文章目录 &#x1f340;引言&#x1f340;第一步&#xff1a;安装Python和开发环境&#x1f340;第二步&#xff1a;掌握基本语法&#x1f340;第三步&#xff1a;使用Python库和模块&#x1f340;第四步&#xff1a;实践项目和练习&#x1f340;第五步&#xff1a;学习进阶主题…

origin修改默认的字体等

因为默认是中文宋体&#xff0c;每次切换成英文尤其是希腊字母就很麻烦。 选择菜单栏的【设置】——【选项】点击。 弹出窗口中选择【文本字体】 设置成你需要的字体就好。 这里同样可以更改页面、图等的默认设置。 效果&#xff1a; 选择插入文字后&#xff0c;自动更改成…

银河麒麟V10 达梦安装教程

安装前先准备要安装包&#xff0c;包需要需要区分X86和arm架构。 版本为&#xff1a;dm8_20230419_FTarm_kylin10_sp1_64.iso 达梦数据库下载地址&#xff1a; https://www.aliyundrive.com/s/Qm7Es5BQM5U 第一步创建用户 su - root 1. 创建安装用户组 dminstall。 groupad…

前馈神经网络优化器

引用的知乎上的文章内容&#xff0c;现在有些地方还不太明白&#xff0c;留待以后查看。 import math import numpy as np import matplotlib.pyplot as pltRATIO 3 # 椭圆的长宽比 LIMIT 1.2 # 图像的坐标轴范围class PlotComparaison(object):"""多种优化…

Python爬虫的应用场景与技术难点:如何提高数据抓取的效率与准确性

作为专业爬虫程序员&#xff0c;我们在数据抓取过程中常常面临效率低下和准确性不高的问题。但不用担心&#xff01;本文将与大家分享Python爬虫的应用场景与技术难点&#xff0c;并提供一些实际操作价值的解决方案。让我们一起来探索如何提高数据抓取的效率与准确性吧&#xf…

python3实现线性规划求解

Background 对于数学规划问题&#xff0c;有很多的实现。MatlabYALMIPCPLEX这个组合应该是比较主流的&#xff0c;尤其是在电力相关系统中占据着比较重要的地位。MATLAB是一个强大的数值计算工具&#xff0c;用于数学建模、算法开发和数据分析。Yalmip是一个MATLAB工具箱&#…

MongoDB:MySQL,Redis,ES,MongoDB的应用场景

简单明了说明MySQL,ES,MongoDB的各自特点,应用场景,以及MongoDB如何使用的第一章节. 一. SQL与NoSQL SQL被称为结构化查询语言.是传统意义上的数据库,数据之间存在很明确的关联关系,例如主外键关联,这种结构可以确保数据的完整性(数据没有缺失并且正确).但是正因为这种严密的结…

神经网络基础-神经网络补充概念-34-正则化

概念 正则化是一种用于控制模型复杂度并防止过拟合的技术&#xff0c;在机器学习和深度学习中广泛应用。它通过在损失函数中添加一项惩罚项来限制模型的参数&#xff0c;从而使模型更倾向于选择简单的参数配置。 理解 L1 正则化&#xff08;L1 Regularization&#xff09;&a…

数据分析 | Boosting与Bagging的区别

Boosting与Bagging的区别 Bagging思想专注于降低方差&#xff0c;操作起来较为简单&#xff0c;而Boosting思想专注于降低整体偏差来降低泛化误差&#xff0c;在模型效果方面的突出表现制霸整个弱分类器集成的领域。具体区别体现在如下五点&#xff1a; 弱评估器&#xff1a;Ba…

vb数控加工技术教学素材资源库的设计和构建

摘 要 20世纪以来,社会生产力迅速发展,科学技术突飞猛进,人们进行信息交流的深度与广度不断增加,信息量急剧增长,传统的信息处理与决策的手段已不能适应社会的需要,信息的重要性和信息处理问题的紧迫性空前提高了,面对着日益复杂和不断发展,变化的社会环境,特别是企业…

Windows上使用dump文件调试

dump文件 dump文件记录当前程序运行某一时刻的信息&#xff0c;包括内存&#xff0c;线程&#xff0c;线程栈&#xff0c;变量等等&#xff0c;相当于调试程序时运行到某个断点上&#xff0c;把程序运行的信息记录下来。可以通过Windbg打开dump&#xff0c;查看程序运行的变量…

mysql 修改存储路径,重启失败授权

目录 停掉mysql修改mysql 配置文件my.cnf目录授权重启mysql 停掉mysql 修改mysql 配置文件my.cnf 更改mysql 存储位置 到/data/mysql_data目录下&#xff1a; datadir/data/mysql/mysql_data/socket/data/mysql/mysql_data/mysql.sockmysql 默认路么径在 /var/lib/mysql/ 防止…

go_并发编程(1)

go并发编程 一、 并发介绍1&#xff0c;进程和线程2&#xff0c;并发和并行3&#xff0c;协程和线程4&#xff0c;goroutine 二、 Goroutine1&#xff0c;使用goroutine1&#xff09;启动单个goroutine2&#xff09;启动多个goroutine 2&#xff0c;goroutine与线程3&#xff0…

在 React 中获取数据的6种方法

一、前言 数据获取是任何 react 应用程序的核心方面。对于 React 开发人员来说&#xff0c;了解不同的数据获取方法以及哪些用例最适合他们很重要。 但首先&#xff0c;让我们了解 JavaScript Promises。 简而言之&#xff0c;promise 是一个 JavaScript 对象&#xff0c;它将…

Python Web:Django、Flask和FastAPI框架对比

原文&#xff1a;百度安全验证 Django、Flask和FastAPI是Python Web框架中的三个主要代表。这些框架都有着各自的优点和缺点&#xff0c;适合不同类型和规模的应用程序。 1. Django&#xff1a; Django是一个全功能的Web框架&#xff0c;它提供了很多内置的应用程序和工具&am…

排序+运算>直接运算的效率的原因分析

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…