常用激活函数整理

最近一边应付工作,一边在补足人工智能的一些基础知识,这个方向虽然新兴,但已是卷帙浩繁,有时不知从何入手,幸亏有个适合基础薄弱的人士学习的网站,每天学习一点,积跬步以至千里吧。有像我一样学习需求的同学,可以访问:人工智能教程,从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.mzph.cn/news/62383.shtml

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

相关文章

PHP多语言代入电商平台api接口采集拼多多根据ID获取商品详情原数据示例

拼多多商品详情原数据API接口的作用是获取拼多多电商平台上某一商品的详细信息,包括商品的标题、价格、库存、图片、描述、包邮信息、销量、评价、优惠券等数据。通过该API接口可以获取到商品的原始数据,用于分析、筛选和展示商品信息。 pinduoduo.item…

复习之docker部署--项目实战

一、实验环境 1.安装7.6虚拟机 最小化安装,不安装图形! 2.封装虚拟机 关闭selinux关闭防火墙关闭networkmanager配置网络,保证可以ssh修改主机名添加双向解析配置7.6网络仓库--安装常用的工具 配置完成后,在真机ssh虚拟机 如果…

在Mac终端使用unrar和rar 解压和压缩软件

1、首先从rarlab 网站下载 rar / unrar 工具 rarlab网站: https://www.rarlab.com/download.htm 2、解压缩下载的 tar.gz 压缩包(rarmacos-x64-623.tar.gz),在下载目录downloads下自动创建一个rar的目录,其…

从零开始的Hadoop学习(四)| SSH无密登录配置、集群配置

1. SSH 无密登录配置 1.1 配置 ssh (1)基本语法 ssh 另一台电脑的IP地址 (2)ssh 连接时出现 Host key verification failed 的解决方法 [atguiguhadoop102 ~]$ ssh hadoop103(3)回退到 hadoop102 [at…

bazel入门学习笔记

简介 Bazel Google开源的,是一款与 Make、Maven 和 Gradle 类似的开源构建和测试工具。 它使用人类可读的高级构建语言。Bazel 支持多种语言的项目,可为多个平台构建输出。Bazel支持任意大小的构建目标,并支持跨多个代码库和大量用户的大型代…

登录校验-Filter-登录校验过滤器

目录 思路 登录校验Filter-流程 步骤 流程图 登录校验Filter-代码 过滤器类 工具类 测试登录 登录接口功能请求 其他接口功能请求 前后端联调 思路 前端访问登录接口,登陆成功后,服务端会生成一个JWT令牌,并返回给前端&#xff0…

【状态估计】基于UKF法、AUKF法的电力系统三相状态估计研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Unity Canvas动画不显示的问题

问题描述: 我通过角色创建了一个walk的动画,当我把这个动画给到Canvas里面的一个image上,这个动画就不能正常播放了,经过一系列的查看我才发现,canvas里面动画播放和非canvas得动画播放,他们的动画参数是不一样的。一个…

2D-2D对极几何中的基本矩阵、本质矩阵和单应矩阵

本文主要参考高翔博士的视觉SLAM十四讲第二版中的7.3章节内容。文章目录 1 对极约束2 本质矩阵E3 单应矩阵 1 对极约束 现在,假设我们从两张图像中得到了一对配对好的特征点,如图7.9所示(假如后面我们有若干对这样的匹配点,根据这…

高效使用WMS仓储管理系统,需要关注这八个点

在现代供应链中,WMS仓储管理系统扮演着至关重要的角色。然而,随着供应链需求的不断增长和变化,实施WMS仓储管理系统面临着越来越多的挑战和要求。本文将探讨使用WMS仓储管理系统需要考虑的8大因素,以适应现代供应链的需求。 一、W…

树和二叉树基础

引言: 树是一种非线性的结构,也是由一个一个的结点构成。 树的一些基本概念: 节点的度:一个节点含有的子树的个数称为该节点的度;如上图:A的度为6 叶节点或终端节点:度为0的节点称为叶节点。…

优秀的ui设计作品(合集)

UI设计师需要了解的九个Tips 1.图片类APP排版突破 规则是死的,人是活的。很多时候,如果需求是比较宽要尝试突破原则,用一些另类的排版方式,其实也是做好设计的本质。在图片类app中,错落一些的排版会使你的作品更有魅力…

Metinfo6.0.0任意文件读取漏洞复现

漏洞原理 在\MetInfo6.0.0\app\system\include\module\的old_thumb.class.php文件 可以看到这里对./进行了严格的过滤,但是却忽略了在Windows下还可以用…\来跳转目录 环境搭建 下载Metinfo6.0.0 配置随便写,自己记住就行 这里前面已经审计过代码了&a…

基于YOLOv8分割模型实现垃圾识别

基于YOLOv8分割模型实现垃圾识别 本文首发于公众号【DeepDriving】,欢迎关注。 0. 引言 YOLOv8是Ultralytics开源的一个非常火的AI算法,目前支持目标检测、实例分割、姿态估计等任务。如果对YOLOv8的安装和使用还不了解的可以参考我之前写的这篇文章&am…

VUE环境下 CSS3+JS 实现发牌 翻牌

创建牌容器&#xff08;关键点&#xff1a;overflow&#xff1a;hidden&#xff09;&#xff1a; <div class"popup-box"></div> .popup-box {position: absolute;width: 100vw;height: 100vh;top: 0px;left: 0;overflow: hidden; } 创建每一张牌《固…

基于java swing和mysql实现的电影票购票管理系统(源码+数据库+运行指导视频)

一、项目简介 本项目是一套基于java swing和mysql实现的电影票购票管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、项目文档、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都…

PHP小白搭建Kafka环境以及初步使用rdkafka

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、安装java&#xff08;Kafka必须安装java&#xff0c;因为kafka依赖java核心&#xff09;二、安装以及配置Kafka、zookeeper1.下载Kafka&#xff08;无需下载…

26 Linux高级篇-Linux面试题

26 Linux高级篇-Linux面试题 文章目录 26 Linux高级篇-Linux面试题1.分析日志t.txt(访问量)&#xff0c;将各个ip地址截取&#xff0c;并统计出现次数&#xff0c;并按从大到小排序(腾讯)2.统计连接到服务器的各个ip情况&#xff0c;并按连接数从大到小排序(腾讯)3.如忘记了mys…

【Kali Linux高级渗透测试】深入剖析Kali Linux:高级渗透测试技术与实践

&#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff0c;喜爱音乐的一位博主。 &#x1f4d7;本文收录于恒川的日常汇报系列&#xff0c;大家有兴趣的可以看一看 &#x1f4d8;相关专栏C语言初阶、C…

基于java Swing 和 mysql实现的购物管理系统(源码+数据库+说明文档+运行指导视频)

一、项目简介 本项目是一套基于java Swing 和 mysql实现的购物管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、项目文档、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过…