常用激活函数整理

news2024/9/21 2:48:27

最近一边应付工作,一边在补足人工智能的一些基础知识,这个方向虽然新兴,但已是卷帙浩繁,有时不知从何入手,幸亏有个适合基础薄弱的人士学习的网站,每天学习一点,积跬步以至千里吧。有像我一样学习需求的同学,可以访问:人工智能教程,从AI基础讲起,通俗易懂,风趣幽默,步步深入,非常适合初学者。

有输入有输出才能高效学习,今天就针对常用的激活函数来整理一份学习笔记。 

我们知道,如果没有激活函数,那么神经网络层数再多,都只能处理线性问题,对于非线性问题则无能为力。激活函数则是通过引入非线性,使得网络具备处理复杂问题的能力。也正是由于激活函数具备非线性特点,那么网络的层数越多,所能表达的曲线也就能越复杂。

那么有哪些常用的激活函数呢?

1. Sigmoid函数

sigmoid函数的公式和图形如下:

sigmoid函数的输出值在0~1之间,非常适合在二分类(如图像中是否存在人)问题中应用,例如输出为0.8表示80%的概率有人,为0则表示完全没有人。

与sigmoid类似的还有一个hard sigmoid,如下:

但由于该函数在梯度的反向传播时容易产生梯度消失,因此除了在二分类问题中使用,在其他问题中使用较少了。

2. Tanh函数

tanh函数的公式和图形如下:

tanh和sigmoid形状是一样的,但输出范围在-1~1之间,解决了sigmoid函数非zero-centered输出的问题,这使得tanh比sigmoid函数更加高效。但该函数和sigmoid函数一样,在输入数据绝对值较大时,由于梯度越来越小,学习速度就会很慢。

与tanh类似的还有一个hard tanh函数:

3. ReLU函数

sigmoid和tanh有一个共同的缺点,就是当输入数据的绝对值比较大时,神经网络的学习速度就会很慢。这是因为,学习速度跟激活函数的偏导数(斜率)有关,偏导数越大,学习速度就越快。而sigmoid和tanh在输入绝对值越来越大时,斜率越来越小,直至变为0。因此,学界又提出了一个新的激活函数——ReLU(Rectified Linear Unit),即整流线性单元。 该激活函数目前被广泛使用,它具有非线性的特性,并且不会同时激活所有的神经元,在输入为负值的情况下,会输出0,也就是说有部分神经元不会被激活,从而使得网络变得稀疏,这对计算是非常有效率的。

ReLU的公式:f(x) = max(0, x) ,图形如下:

4. Leaky Relu函数

从ReLU的图形可以看出,当输入大于0时,ReLU的斜率较大,而当输入小于0时,则没有斜率。虽然在实际应用中,大多数输入数据都大于0,但为了解决斜率为0的问题,人们又提出了另外一个激活函数——Leaky ReLU,该函数最大的有点就是将0梯度去掉,代之以一个较小的非零梯度。

Leaky ReLU的函数和图形如下:

0.1也可以根据需要换成其他系数,如0.01等。

5. Softmax函数

Softmax是另一种Sigmoid函数,所不同的是,Sigmoid只能处理二分类问题,而Softmax是将输出结果映射到0~1之间,可以处理多分类问题。Softmax的公式如下:

那么如果某个输出结果是[1.2,0.9,0.75] ,使用Softmax之后,结果就变成[0.42,0.31,0.27],这组数据可以表示输入数据对应的三个类别的概率。

6. 其他激活函数

除了以上常用的几个激活函数,还有其他的一些激活函数,大多是ReLU的变体,列举如下。

(1) CeLU(Continuously Differentiable Exponential Linear Units,连续可微指数线性单元)

 

(2) ELU(Exponential Linear Unit activation function,指数线性单元激活函数)

 

 

(3) GELU(Gaussian error linear unit activation function,高斯误差线性单元激活函数)

其中,P是标准高斯分布的累积分布函数。

(4) SeLU(Scaled exponential Linear Unit)

参考资料:MindSpore 文档

 

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

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

相关文章

产品经理进行用户分层 常见的4大方法

用户分层对产品开发非常重要,通过对用户进行分层,我们可以更好地理解不同用户群体的需求、行为和偏好,从而更精准定位和设计产品,有利于提高市场竞争力。 如果不进行用户分层可能导致产品经理不了解用户需求,无法提供个…

ODrive解析移植(一)—— 国产替代方案(VScode版移植)

目录 一、ODrive简介1.1、 github下载 二、ODrive官方版本的问题三、国产化方案3.1、版本0.5.1与0.5.6的区别3.2、移植说明3.2.0、修改“tup.config.default”文件名为“tup.config”,打开屏蔽“v3.6-56V”,3.2.1、修改死区时间,3.2.2、修改采…

2023年您需要虚拟助手的 5个迹象

您的企业今年有以收入为中心的战略目标要实现。然而,新的增长往往伴随着您现有员工的新责任。工作负载增加。团队达到最大容量。超负荷的员工表现出倦怠的迹象。在这些时候,企业主通常会意识到雇用虚拟助理 (VA) 提供支持的好处。…

服务器上使用screen的学习记录

服务器上使用screen 训练模型的时候,花费时间是很长的,不可能一直挂在桌面上。所以就想到用screen了。 记录一下简单的操作指令。 创建screen screen -S roof # 新建一个名字为name的窗口,并进入到该窗口中进入后打开环境,运…

一套成熟在用的Spring Cloud工程项目数字化管理云平台源码

技术架构: 微服务JavaSpring Cloud VueUniApp MySql 开发语言:Java 开发工具:Idea 前端框架:Vue 后端框架:Spring Cloud 数 据 库:MySql 移 动 端:UniApp 系统端口:PC端&…

虚引用真的不影响对象的生命周期吗?99%的人都错了

Java的四大引用,大家都很熟悉吧: 强应用:正常代码中的引用。一个对象能通过强应用访问到,那它就永远不会被回收软引用:比强引用弱一级的引用,内存不足时引用指向的对象会被回收弱引用:比软引用…

现货白银投资快速入门的方法

虽然在现货白银投资之中有很多,所谓的速成班都是不靠谱的,他们一般都是营销的噱头,但是会普通投资者来说,通过一些方法的训练,可以实现快速入门。所谓的快速入门,就是能够在市场中掌握一定的投资方法&#…

手机建模自定义方法,你会用了吗?

易模App借助影像即可完成三维建模,除了在各个建模模式中直接拍摄采集数据,还用开放了宽容度更高的建模方法——自定义建模。 自定义方法可以使用在【人脸模式】【人像模式】【主体模式】【场景模式】中,上传满足建模条件的视频或照片组即可实…

小编亲测八款Ai工具,建议收藏,最后一个你懂的

随着AI大模型不断更新迭代,AI应用也呈现出爆炸式的增长趋势,而利用人工智能工具提高工作效率,已经成为今年来越来越受欢迎的工作方式。除了大名鼎鼎的chatgpt之外,小编在体验了超多各种类型、各种功能的AI工具后,给大家…

count(1)、count(*)和count(列名)及官网解释

最近面试并且看网上的资料说count(1)和count(*)参差不同,就查看了官网,特别记录一下。 共同点:都是用来统计我们的表中的行数不同点: 执行效果上来说:count(1)和count(*)都不会忽略列值为null的行数,而cou…

smartbi token回调获取登录凭证漏洞(二)

2023年8月8日Smartbi官方又修复了一处权限绕过漏洞。该漏洞是上一个特定场景下设置Token回调地址漏洞的绕过,未经授权的攻击者可利用该漏洞,获取管理员token,完全接管管理员权限。 于是研究了下相关补丁并进行分析。 0x01 分析过程 阅读相关…

一篇文章帮你拯救70%的购物车放弃率

想象一下,您倾注所有的心血到您的在线业务中,却面临着令人痛苦的购物车放弃率。这可能会让你痛苦不堪,错失了销售和收入的机会。 此外,你忠实的顾客可能会叛逃去使用竞争对手的产品,雪上加霜。通过再次在广告上支付客…

教程i.MX8MPlus开发板SPI转CAN操作

飞凌嵌入式OKMX8MP-C核心板有两路原生CAN总线,但用户在开发产品时可能需要用到更多的CAN,这该如何解决呢?今天小编将为大家介绍一种SPI转CAN的方法,供各位工程师小伙伴参考。 说明 OKMX8MP-C核心板有两路原生的SPI总线&#xff0c…

如何让看书变听书?

听书神器 安卓 页面简单,易操作,全网小说随便听 各种声音帮你读你喜欢听的小说,带你进入主人公世界 支持网页版小说、本地小说、图片,都能读给你听 想看小说,又怕伤眼睛的宝子,可以试试看!…

堆的基本存储(Java 实例代码)

堆的基本存储 一、概念及其介绍 堆(Heap)是计算机科学中一类特殊的数据结构的统称。 堆通常是一个可以被看做一棵完全二叉树的数组对象。 堆满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值。堆总是一棵完全二叉树。 二、适用说明 堆是利用完…

typescript的~~和双感叹号符号使用

(标题不给用“!”) "~~"符号使用 1.对于number类型的值,~~是取整作用 const num: number 3.14; const roundedNum: number ~~num; // 3 2.对于boolean类型的值,~ ~ true还是true,false还是false “!!”…

无涯教程-JavaScript - FLOOR函数

描述 FLOOR函数将数字向下舍入为零,直到最接近的有效倍数。 语法 FLOOR (number, significance)争论 Argument描述Required/OptionalNumberThe numeric value you want to round.RequiredSignificanceThe multiple to which you want to round.Required Notes 如果数字的符…

设计模式--多例模式(Multition pattern)

一、什么是多例模式(Multition pattern) 多例模式(Multition pattern)是单例模式的一种扩展,它属于对象创建类型的设计模式。在多例模式中,一个类可以有多个实例,并且这些实例都是该类本身。因…

APM32F4XX USB OTA

近期在研究USB CDC协议,使用USB Virtual Port Com功能与上位机通讯做了OTA功能。开发平台:MDK529开发硬件:APM32F411首先看下手册Flash分布,Flash总共8个扇区。 接下来进行Flash分区。 扇区 0 和 扇区 1做Boo区。 扇区 2做APP跳…

LeetCode(力扣)98. 验证二叉搜索树Python

LeetCode98. 验证二叉搜索树 题目链接代码 题目链接 https://leetcode.cn/problems/validate-binary-search-tree/ 代码 递归 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # …