激活函数总结(五):Shrink系列激活函数补充(HardShrink、SoftShrink、TanhShrink)

news2024/11/23 21:59:10

激活函数总结(五):Shrink系列激活函数补充

  • 1 引言
  • 2 激活函数
    • 2.1 HardShrink激活函数
    • 2.2 SoftShrink激活函数
    • 2.3 TanhShrink激活函数
  • 3. 总结

1 引言

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

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

2 激活函数

2.1 HardShrink激活函数

HardShrink激活函数的数学表达式和数学图像分别如下所示:
H a r d S h r i n k ( x ) = { x i f x > + t h r e s h o l d x i f x < − t h r e s h o l d 0 o t h e r w i s e HardShrink(x)=\left\{ \begin{matrix} \quad \quad \quad x \quad \quad \quad if \quad x > +threshold \\ \quad \quad \quad x \quad \quad \quad if \quad x < -threshold \\ \quad \quad \quad 0 \quad \quad \quad \quad \quad \quad \quad otherwise \end{matrix} \right. HardShrink(x)= xifx>+thresholdxifx<threshold0otherwise 在这里插入图片描述
上面这幅图像是连续的(这是因为以直线的形式画出来了,会将断点连接),实际上的图像是非连续的,如下所示:
在这里插入图片描述
其中, t h r e s h o l d threshold threshold 是硬缩减的阈值,通常为一个预先设定的常数。

优点:

  • 硬缩减:HardShrink激活函数在输入值小于阈值时直接将输出缩减为0,从而引入了非线性变换。这种硬缩减操作可以帮助模型学习具有稀疏性的表示,有助于减少模型的计算复杂性和参数数量。
  • 无需学习参数:HardShrink激活函数不需要学习任何参数,因为它只是简单地对输入进行硬缩减。这使得HardShrink函数非常轻量级,适用于一些资源有限的场景和轻量级模型。

缺点:

  • 硬缩减的信息丢失:HardShrink函数在阈值区间时直接将输出设为0,这可能导致部分信息的丢失。因此,HardShrink函数可能不适用于一些需要保留全部信息的任务。
  • 不连续性:HardShrink函数在阈值处存在不连续性,这意味着在这些点上梯度不连续。这可能会影响梯度优化过程的稳定性和收敛性。
  • 参数选择:HardShrink激活函数的性能高度依赖于阈值的选择。选择不合适的阈值可能导致性能下降,因此需要进行一定的调参。

对于不连续的HardShrink激活函数,几乎没有人使用。。。

2.2 SoftShrink激活函数

SoftShrink激活函数的数学表达式和数学图像分别如下所示:
S o f t S h r i n k ( x ) = { x − t h r e s h o l d i f x > + t h r e s h o l d x + t h r e s h o l d i f x < − t h r e s h o l d 0 o t h e r w i s e SoftShrink(x)=\left\{ \begin{matrix} \quad \quad \quad x-threshold \quad \quad \quad if \quad x > +threshold \\ \quad \quad \quad x+threshold \quad \quad \quad if \quad x < -threshold \\ \quad \quad \quad 0 \quad \quad \quad \quad \quad \quad \quad \quad otherwise \end{matrix} \right. SoftShrink(x)= xthresholdifx>+thresholdx+thresholdifx<threshold0otherwise
在这里插入图片描述
HardShrink激活函数相比,SoftShrink激活函数是连续的,具有更少的稀疏性,保存更多的信息。同时,由于其连续性,在进行优化时过程会更加稳定

SoftShrink在一定程度上改善了HardShrink的情况,但是在当前情况下仍不怎么使用。。。

2.3 TanhShrink激活函数

基于Tanh之上,计算输入输出的差值,即为TanhShrink。数学表达式和数学图像分别如下所示:
T a n h S h r i n k ( x ) = x − tanh ⁡ ( x ) = x − exp ⁡ ( x ) − exp ⁡ ( − x ) exp ⁡ ( x ) + exp ⁡ ( − x ) = x i − exp ⁡ ( 2 x ) − 1 exp ⁡ ( 2 x ) + 1 TanhShrink(x) =x-\tanh(x)=x- \frac{\exp(x) - \exp(-x)}{\exp(x) + \exp(-x)} = x_i-\frac{\exp(2x) - 1}{\exp(2x) + 1} TanhShrink(x)=xtanh(x)=xexp(x)+exp(x)exp(x)exp(x)=xiexp(2x)+1exp(2x)1
在这里插入图片描述
在当输入在0附近时,梯度近乎为0,而在输入极大或极小时,梯度反而为正常梯度

TanhShrink相对于SoftShrink函数又具有一定的平滑性能,但是仍具有局限性(更多的是用作Tanh激活函数的代替)。。。

3. 总结

上述介绍的Shrink系列激活函数更多的是对Tanh函数的改进,同样地,这些函数也更适用于对Tanh函数进行替换,别的情况下很难得到应用。。。。
到此,使用 激活函数总结(五) 已经介绍完毕了!!! 如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。如果存在没有提及的激活函数也可以在评论区提出,后续会对其进行添加!!!!

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

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

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

相关文章

新一代分布式融合存储,数据场景All In One

1、摘要 2023年5月11日&#xff0c;浪潮信息全国巡展广州站正式启航。会上&#xff0c;重磅发布新一代分布式融合存储AS13000G7&#xff0c;其采用极致融合架构设计理念&#xff0c;实现同一套存储满足四种非结构化数据的“All In One”高效融合&#xff0c;数据存力提升300%&a…

机器学习基础之《特征工程(4)—特征降维—案例》

一、探究用户对物品类别的喜好细分 1、找到用户和物品类别的关系 数据如下&#xff1a; &#xff08;1&#xff09;order_products__prior.csv&#xff1a;订单与商品信息 字段&#xff1a;order_id&#xff0c;product_id&#xff0c;add_to_cart_order&#xff0c;reordered…

【已解决】mac端 sourceTree 解决remote: HTTP Basic: Access denied报错

又是在一次使用sourcetree拉取或者提交代码时候&#xff0c;遇到了sourcetree报错&#xff1b; 排查了一会&#xff0c;比如查看了SSH keys是否有问题、是否与sourcetree账户状态有问题等等&#xff0c;最终才发现并解决问题 原因&#xff1a; 因为之前公司要求企业gitlab中…

平板选择什么电容笔比较好?ipad手写笔推荐品牌

在现在的生活上&#xff0c;有了iPad平板&#xff0c;一切都变得简单了许多&#xff0c;也让我们的学习以及工作都更加的便利。这其中&#xff0c;电容笔就起到了很大的作用&#xff0c;很多人都不知道&#xff0c;到底要买什么牌子的电容笔&#xff1f;哪些电容笔的性价比比较…

佛祖保佑,永不宕机,永无bug

当我们的程序编译通过&#xff0c;能预防的bug也都预防了&#xff0c;其它的就只能交给天意了。当然请求佛祖的保佑也是必不可少的。 下面是一些常用的保佑图&#xff1a; 佛祖保佑图 ——————————————————————————————————————————…

那些年的iOS开发经验记录

【iOS】Cydia Impactor 错误&#xff1a;file http.hpp&#xff1b; line:37&#xff1b; what: _assert(code 200) Cydia Impactor 报错&#xff0c;信息如下 file http.hpp; line:37; what: _assert(code 200)解决方案&#xff1a;Cydia Impactor 已被弃用&#xff0c;切…

一文盘点 Zebec 生态的几个利好预期

Zebec Protocol 是目前商业进展最快的流支付体系&#xff0c;也是推动流支付向 Web2 世界发展的主要生态。目前&#xff0c;其已经与包括 Visa、Master 等支付巨头展开了合作&#xff0c;以推出银行卡的方式进一步向金融发达地区推出 Zebec Card 以拓展业务&#xff0c;前不久其…

电商系统架构设计系列(八):订单数据越来越多,数据库越来越慢该怎么办?

上篇文章中&#xff0c;我给你留了一个思考题&#xff1a;订单数据越来越多&#xff0c;数据库越来越慢该怎么办&#xff1f; 今天这篇文章&#xff0c;我们来聊一下如何应对数据的持续增长&#xff0c;特别是像订单数据这种会随着时间一直累积的数据。 引言 为什么数据量越大…

牛客小白月赛71E题题解

文章目录 猫猫与数学问题建模问题分析1.转换条件2.分析新的gcd3.方法1筛约数判断代码 4.方法2筛质因子判断代码 猫猫与数学 问题建模 给定两个正整数a&#xff0c;b&#xff0c;问能否找到最小的整数c&#xff0c;使得gcd(ac,bc)不等于1&#xff0c;若可以输出c&#xff0c;不…

PE启动盘和U启动盘(第三十六课)

PE启动盘和U启动盘(第三十六课) 一 WindowsPE工具盘 1. 制作WinPE镜像光盘 双击WePE64_V2.2-是-点击右下角光盘图标-选择ISO的输出位置-立即生成ISO 2. 通过光盘启动WinPE

Vue [Day7]

文章目录 自定义创建项目ESlint 代码规范vuex 概述创建仓库向仓库提供数据使用仓库中的数据通过store直接访问通过辅助函数 mapState&#xff08;简化&#xff09;mutations传参语法(同步实时输入&#xff0c;实时更新辅助函数 mapMutationsaction &#xff08;异步辅助函数map…

【Java学习】System.Console使用

背景 在自学《Java核心技术卷1》的过程中看到了对System.Console的介绍&#xff0c;编写下列测试代码&#xff0c; public class ConsoleTest {public static void main(String[] args) {Console cs System.console();String name cs.readLine("AccountInfo: ");…

谷粒商城第十一天-完善商品分组(主要添上关联属性)

目录 一、总述 二、前端部分 2.1 改良前端获取分组列表接口及其调用 2.2 添加关联的一整套逻辑 三、后端部分 四、总结 一、总述 前端部分和之前的商品品牌添加分类差不多。 也是修改一下前端的分页获取列表的接口&#xff0c;还有就是加上关联的那一套逻辑&#xff0c;…

C语言每日一题:16:数对。

思路一&#xff1a;基本思路 1.x,y均不大于n&#xff0c;就是小于等于n。 2.x%y大于等于k。 3.一般的思路使用双for循环去遍历每一对数。 代码实现&#xff1a; #include <stdio.h> int main() {int n 0;int k 0;//输入scanf("%d%d", &n, &k);int x…

VUE+ElementUI的表单验证二选一必填项,并且满足条件后清除表单验证提示

上代码 <el-form-item label"出库单号" prop"ecode" ref"ecode" :rules"rules.ecode"><el-input v-model"queryParams.ecode" placeholder"出库单号和出库箱号至少填写一项" clearable style"width…

Labview控制APx(Audio Precision)进行测试测量(六)

用 LabVIEW 驱动 VIs生成任意波形 在 APx500 应用程序中&#xff0c;默认波形类型为正弦。这是指 APx 内置的正弦发生器&#xff0c;根据信号路径设置&#xff0c;许多测量还允许其他内置波形&#xff0c;如方波&#xff0c;分裂正弦波或分裂相位&#xff0c;以及使用导入的。w…

27.Netty源码之FastThreadLocal

highlight: arduino-light FastThreadLocal FastThreadLocal 的实现与 ThreadLocal 非常类似&#xff0c;Netty 为 FastThreadLocal 量身打造了 FastThreadLocalThread 和 InternalThreadLocalMap 两个重要的类。下面我们看下这两个类是如何实现的。 FastThreadLocalThread 是对…

Java-低代码平台使用H2内存数据库

一、引言 作者目前在做的平台使用到了H2&#xff0c;这里介绍下使用场景、使用方式&#xff0c;出于以下两个原因会使用H2: 1、平台化的项目一般是用户使用脚本或者sql进行通用的执行&#xff0c;这样可以实现低代码平台&#xff0c;不需要管理类之间的引入、依赖、编译&#x…

4个简化IT服务台任务的ChatGPT功能

最近几个月&#xff0c;ChatGPT 风靡全球&#xff0c;这是一个 AI 聊天机器人&#xff0c;使用户能够生成脚本、文章、锻炼图表等。这项技术在各行各业都有无穷无尽的应用&#xff0c;在本文中&#xff0c;我们将研究这种现代技术如何帮助服务台团队增强服务交付和客户体验。 什…

AD7151

AD7151采用ADI公司的电容-数字转换器&#xff08;CDC&#xff09;技术,这种技术汇集了与实际传感器接口过程中起着重要作用的众多特性于一身,如高输入灵敏度,较高的输入寄生接地电容和泄漏电流容限。 集成自适应式阈值算法可对因环境因素&#xff08;如湿度和温度&#xff09;…