【DL经典回顾】激活函数大汇总(十八)(ISRU附代码和详细公式)

激活函数大汇总(十八)(ISRU附代码和详细公式)

更多激活函数见激活函数大汇总列表

一、引言

欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智能的世界里,激活函数扮演着不可或缺的角色,它们决定着神经元的输出,并且影响着网络的学习能力与表现力。鉴于激活函数的重要性和多样性,我们将通过几篇文章的形式,本篇详细介绍两种激活函数,旨在帮助读者深入了解各种激活函数的特点、应用场景及其对模型性能的影响。

在接下来的文章中,我们将逐一探讨各种激活函数,从经典到最新的研究成果。

限于笔者水平,对于本博客存在的纰漏和错误,欢迎大家留言指正,我将不断更新。

二、ISRU

ISRU(Inverse Square Root Linear Unit)激活函数是深度学习中的一个非线性激活函数,旨在解决传统激活函数(如ReLU和Sigmoid)的某些限制。它通过引入平滑的非线性性质,同时尝试保持较好的梯度传播特性。

1. 数学定义

ISRU激活函数的数学表达式定义为:

ISRU ⁡ ( x ) = x 1 + α x 2 \operatorname{ISRU}(x)=\frac{x}{\sqrt{1+\alpha x^2}} ISRU(x)=1+αx2 x
其中, x x x是输入信号, α \alpha α是激活函数的参数,控制曲线的形状。
在这里插入图片描述

2. 函数特性

  • 平滑性和连续性:ISRU是一个平滑且连续的函数,这有助于优化算法如梯度下降在训练过程中更稳定地工作。
  • 非饱和性:ISRU避免了Sigmoid和Tanh激活函数中的饱和问题,因为它的梯度不会随着输入值的增加而急剧减小到0,从而有助于缓解梯度消失问题。
  • 参数可调:通过调整 α \alpha α参数,可以改变ISRU函数的曲线形状,为不同的任务提供灵活性。

3. 导数

ISRU函数的导数(梯度)可以表示为:

d d x ISRU ⁡ ( x ) = 1 ( 1 + α x 2 ) 3 / 2 \frac{d}{d x} \operatorname{ISRU}(x)=\frac{1}{\left(1+\alpha x^2\right)^{3 / 2}} dxdISRU(x)=(1+αx2)3/21
这显示了ISRU激活函数相对于输入 x x x的变化率,导数值由 α \alpha α x x x的值共同决定,保持了较好的非饱和性质。

4. 使用场景与局限性

使用场景

  • 缓解梯度消失:在深层网络中,ISRU可以作为一种尝试来缓解梯度消失问题,特别适用于需要平滑激活函数的场景。
  • 替代传统激活函数:在实验中探索激活函数对模型性能的影响时,ISRU可以作为ReLU、Sigmoid或Tanh的替代品。

局限性

  • 数值稳定性:尽管ISRU有助于缓解梯度消失问题,但当输入值很大时,其输出和梯度仍可能受到数值稳定性的挑战。
  • 参数选择:ISRU激活函数的性能在很大程度上依赖于参数 α \alpha α的选择,需要通过实验来确定最佳值。

5.代码实现

def isru(x, alpha=1.0):return x / np.sqrt(1 + alpha * (x ** 2))
  • 函数定义isru函数接受两个参数:xalphax可以是一个数值、一维数组或多维数组,表示输入数据;alpha是一个超参数,用于控制激活函数的曲率,具有默认值1.0
  • 计算过程:函数体中,首先计算1 + alpha * (x ** 2),这是对输入x的每个元素进行平方、乘以alpha、然后加1的操作。接下来,将x除以上述计算结果的平方根,得到ISRU激活函数的输出。
示例输入和输出
  • 输入x = np.array([-3, -1, 0, 1, 3]),这是一个包含负数、零和正数的数组。
  • 输出:ISRU函数处理后,输出为[-0.9486833, -0.70710678, 0, 0.70710678, 0.9486833]。对于非零输入,输出值被压缩到(-1, 1)的范围内,而0的输入仍然映射到0
解读
  • 非饱和性:ISRU函数为负数和正数输入提供了非线性映射,但它不会饱和,即不会达到硬饱和点(如-11),这有助于梯度流动,减少梯度消失问题。
  • 平滑性:ISRU是一个连续且平滑的函数,适用于梯度下降和反向传播算法。
  • 控制参数alpha:通过调整alpha参数,可以控制激活函数的非线性程度,以适应不同的数据分布和网络结构需求。

三、参考文献

  • 原始论文:Brad Carlile, Guy Delamarter, Paul Kinney, Akiko Marti, and Brian Whitney. “Improving deep learning by inverse square root linear units (ISRLUs)”. arXiv preprint arXiv:1710.09967 (2017). 这篇预印本论文首次提出了ISRU激活函数,详细讨论了其数学属性和在不同网络结构中的应用效果。

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

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

相关文章

Android Studio 打包 Maker MV apk 详细步骤

一.使用RPG Make MV 部署项目,获取项目文件夹 这步基本都不会有问题: 二.安装Android Studio 安装过程参考教材就行了: https://blog.csdn.net/m0_62491877/article/details/126832118 但是有的版本面板没有Android的选项(勾…

ES模块化

Node.js默认并不支持ES模块化,如果需要使用可以采用两种方式。方式一,直接将所有的js文件修改为mjs扩展名。方式二,修改package.json中type属性为module。 导出 默认导出 // 向外部导出内容 export let a 10 export const b "孙悟空…

Vue2 引入使用ElementUI详解

目录 1 安装2 引入2.1 全局引入2.1.1 引入2.1.2 使用 2.2 按需引入2.2.1 引入2.2.2 使用 3 总结 1 安装 推荐使用 npm 的方式安装,它能更好地和 webpack打包工具配合使用。(本项目使用安装方式) npm i element-ui -S也可以使用其他的包管理…

WebRTC:真正了解 RTP 和 RTCP

介绍 近年来,通过互联网进行实时通信变得越来越流行,而 WebRTC 已成为通过网络实现实时通信的领先技术之一。WebRTC 使用多种协议,包括实时传输协议 (RTP) 和实时控制协议 (RTCP)。 RTP负责通过网络传输音频和视频数据,而RTCP负责…

Java Swing游戏开发学习12

内容来自RyiSnow视频讲解 这一节讲的是实现游戏中的NPC(Non Player Character)非玩家角色。 添加了一个老人NPC,一个简单的AI(人工智能)拄着拐杖四处走。老人与树木、玩家的碰撞检测。 NPC四处走动 实现NPC四处走动 一开始,每一…

cmd常用指令

cmd全称Command Prompt,中文译为命令提示符。 命令提示符是在操作系统中,提示进行命令输入的一种工作提示符。 在不同的操作系统环境下,命令提示符各不相同。 在windows环境下,命令行程序为cmd.exe,是一个32位的命令…

AndroidStudio 由dolphin升级到giraffe,出现“gradle project sync failed“

1 现象描述 将AS由之前的dolphin版本升级到giraffe之后,接着打开以前的Android project,出现了"Gradle project sync failed…"的异常提示,在build面板中并没有出现project sync过程中报错的日志。 异常提示如下图所示&#xff1a…

springboot蛋糕订购小程序的设计与实现

摘 要 相比于以前的传统手工管理方式,智能化的管理方式可以大幅降低商家的运营人员成本,实现了蛋糕订购的标准化、制度化、程序化的管理,有效地防止了蛋糕订购的随意管理,提高了信息的处理速度和精确度,能够及时、准确…

安卓国产百度网盘与国外云盘软件onedrive对比

我更愿意使用国外软件公司的产品,而不是使用国内百度等制作的流氓软件。使用这些国产软件让我不放心,他们占用我的设备大量空间,在我的设备上推送运行各种无用的垃圾功能。瞒着我,做一些我不知道的事情。 百度网盘安装包大小&…

【JS】html字符转义

需求 将html转为字符串将html字符串转义&#xff0c;比如<div>转为<div> 码 /*** html标签字符转义* param {Stirng} str 要转换的html字符* returns String 返回转义的html字符串*/ const elToStr str > str.replaceAll(<, <).replaceAll(>, >)…

实现界面跳转及注册界面编写(AndroidStudio)

目录 一、代码 二、最后效果 一、代码 1.先新建一个activity文件 2.注册界面的代码如下&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:la…

读书笔记--数据建模与设计的总结感悟

最近再次研读了DAMA数据管理知识体系,结合目前组织的信息化数字化建设情况,有所感悟就记录如下,供大家参考。数据建模和设计是应用系统或者数据架构设计过程中必须要整体考虑的事情,只是考虑的层级高度、细致情况不同罢了,大家在做信息化建设过程中,在做业务分析和需求调…

Helm Chart部署最简SpringBoot到K8S(AWS EKS版)

目标 这里假设&#xff0c;我们已经基本会使用k8s的kubectl命令进行部署了&#xff0c;也已经会自己打docker镜像推送到AWS ECR上面去了。而且&#xff0c;已经在云上准备好了AWS ECR镜像库和AWS EKS的k8s集群了。 这个前提上面&#xff0c;我们今天使用Helm Chart项目准备k8s…

问了 Gemini 1.5 Pro 五个问题,找到了初遇ChatGPT的感觉

一个月前&#xff08;2月15日&#xff09;&#xff0c;Sora和 Gemini 1.5 同时推出&#xff0c;这个故事很多人都听过了&#xff0c;Google 被冠以 AI 界汪峰的名头。 人们纷纷震惊于 Sora 的强大&#xff0c;讨论 Sora 是不是世界模型。而 Gemini 1.5 的第一个模型 Gemini 1.…

redis发布订阅与stream类型

发布订阅 redis发布订阅(pub/sub)是一种消息通信模式&#xff1b;发送者(pub)发送消息&#xff0c;订阅者(sub)接收消息。redis客户端可以订阅任意数量的频道。 基础命令&#xff1a; 语法 redis publish命令基本语法如下&#xff1a; redis 127.0.0.1:6379> PUBLISH ch…

unity学习(61)——hierarchy和scene的全新认识+模型+皮肤+动画controller

刚刚开始&#xff0c;但又结束的感觉&#xff1f; 1.对hierarchy和scene中的内容有了全新的认识 一定要清楚自己写过几个scene&#xff1b;每个scene之间如何跳转&#xff1b;build setting是add当前的scene。 2.此时的相机需要与模型同级&#xff0c;不能在把模型放在相机下…

STM32输入捕获模式测频率

STM32频率的测量&#xff1a;高频适合使用的方法是测频法&#xff0c;低频适合使用的是测周法&#xff0c;&#xff08;其中使用测频法测量频率比较稳定&#xff0c;使用测周法测量频率的方式没有这么稳定&#xff0c;因为测周法只会通过一次的测量就能得出结果所以测试出来的频…

WPF监控平台(科技大屏)[一]

跟着B站的视频敲了一个略微复杂的WPF界面,链接如下.在这里我详细的写一份博客进行设计总结. 系统介绍和配置及主窗口设计_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Wy421Y7QD?p1&vd_source4796b18a2e4c1ec8a310391a5644b6da 成果展示 实现过程 总体来说,我的…

Python程序设计基础——代码习题

1 __name__属性 import demodef main():if __name__ __main__:print(这个程序被直接运行。)elif __name__demo:print(这个程序作为模块被使用。) main()3.3 编写程序&#xff0c;生成包含1000个0~100之间的随机整数&#xff0c;并统计每个元素出现的次数。 import randomx[r…

某赛通电子文档安全管理系统 DecryptApplication 任意文件读取漏洞(2024年3月发布)

漏洞简介 某赛通电子文档安全管理系统 DecryptApplication 接口处任意文件读取漏洞&#xff0c;未经身份验证的攻击者利用此漏洞获取系统内部敏感文件信息&#xff0c;导致系统处于极不安全的状态。 漏洞等级高危影响版本*漏洞类型任意文件读取影响范围>1W 产品简介 …