激活函数总结(一):ReLU及其变体

激活函数介绍(一)

  • 1 引言
  • 2 常用激活函数介绍
    • 2.1 Sigmoid激活函数
    • 2.2 Tanh激活函数
    • 2.3 ReLU激活函数
    • 2.4 Leaky ReLU激活函数
    • 2.5 Parametric ReLU(PReLU)激活函数
    • 2.6 Swish激活函数
  • 3. 总结

介绍的激活函数都在目录中有所展示,如果找不到你想查看的激活函数,请去这里寻找:激活函数介绍(二)!!!

1 引言

激活函数是神经网络模型重要的组成部分。在神经网络模型中,激活函数提供了非线性建模能力(不带激活函数的感知元是线性的),进而帮助网络学习数据中的复杂模式
在这里插入图片描述

2 常用激活函数介绍

2.1 Sigmoid激活函数

Sigmoid激活函数将输入值压缩到0到1之间的范围,公式和数学图片分别如下所示:
f ( x ) = 1 / ( 1 + e − x ) f(x) = 1 / (1 + e^{-x}) f(x)=1/(1+ex)在这里插入图片描述Sigmoid函数在早期的神经网络中广泛使用。然而,它有一些问题,如梯度消失梯度爆炸,导致在深层网络中训练困难,因此现在使用较少。
当前更多的是用于二分类中。

2.2 Tanh激活函数

Tanh激活函数是Sigmoid的改进版,将输入值映射到一个范围在-1到1之间的值,公式和数学图像分别如下所示:
f ( x ) = ( 2 / ( 1 + e − 2 x ) ) − 1 f(x) = (2 / (1 + e^{-2x})) - 1 f(x)=(2/(1+e2x))1在这里插入图片描述相较于Sigmoid激活函数,Tanh激活函数的输出范围更广,因此在某些情况下,它能带来更好的表现。然而,类似于Sigmoid,Tanh仍然存在梯度消失问题,特别是对于较深的神经网络。
当前更多的是用于类似于LSTM网络结构的后面

2.3 ReLU激活函数

ReLU(Rectified Linear Unit)是目前使用最广泛的激活函数之一。ReLU函数在输入为正数时直接输出输入值,而在输入为负数时输出为0,公式和数学图像分别如下所示:
f ( x ) = m a x ( 0 , x ) f(x) = max(0, x) f(x)=max(0,x)在这里插入图片描述相比于SigmoidTanhReLU的梯度更大,且在深层网络中具有较快的训练速度。然而,ReLU也存在一个问题,当输入为负数时,梯度为0,导致对应的神经元无法更新权重,这被称为"神经元死亡"问题。
当前在各种任务下广泛使用(不包括多分类任务)。

2.4 Leaky ReLU激活函数

为了解决ReLU的"神经元死亡"问题,Leaky ReLU引入了一个小的斜率(通常为0.01)来保证在输入为负数时仍然有梯度。Leaky ReLU函数的定义和数学图像分别如下所示:
f ( x ) = m a x ( a x , x ) f(x) = max(ax, x) f(x)=max(ax,x)在这里插入图片描述其中,a是一个小于1的常数。这使得Leaky ReLU在某些场景下表现更好,但对于a的选择需要小心,过大的值可能导致函数失去非线性特性
当前已没有特定使用情况,同等情况下(PReLU 和Swish 激活函数可能会有更好的表现)。

2.5 Parametric ReLU(PReLU)激活函数

Parametric ReLU是Leaky ReLU的扩展版本,它允许斜率参数a成为可学习的参数,这样网络可以自动调整斜率。这一特性使得Parametric ReLU更加适应不同的数据分布和任务,减少了手动调整的需求。

2.6 Swish激活函数

Swish激活函数在近年来被提出,它是一个平滑的激活函数。Swish函数在输入为正数时与ReLU相似,在输入为负数时逐渐趋近于0。Swish函数的表现相对于ReLU在一些情况下更好,但在某些场景下可能受到影响,因此使用时需谨慎权衡。函数公式和数学图像分别如下所示:
f ( x ) = x ⋅ s i g m o i d ( β x ) f(x)=x⋅sigmoid(βx) f(x)=xsigmoid(βx)在这里插入图片描述 其中, β β β 是一个常量或一个可学习的参数。

  • β = 1 β = 1 β=1 f ( x ) = x ⋅ s i g m o i d ( x ) f(x)=x⋅sigmoid(x) f(x)=xsigmoid(x),相当于Sigmoid-weighted Linear Unit (SiL)
  • β = 0 β = 0 β=0,Swish 变成了缩放线性函数 f ( x ) = x / 2 f(x) = x/2 f(x)=x/2
  • β → ∞ β → ∞ β,sigmoid 分量接近 0-1 函数,因此 Swish 变得像 ReLU 函数

3. 总结

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

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

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

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

相关文章

Flutter编译一直显示Running Gradle task ‘assembleDebug‘

🔥 目前开发的Android Studio版本 🔥 🔥 当前Flutter SDK 版本 🔥 Flutter 3.10.6 • channel stable • https://github.com/flutter/flutter.git Framework • revision f468f3366c (3 周前) • 2023-07-12 15:19:05 -0700 Eng…

用户权限提升Sudo

目录 前言 一、su的用法 二、sudo提权 总结 前言 sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。换句话说通过此命令可以让非root的用户运行只有root才有权限…

XML(eXtensible Markup Language)

目录 为什么需要XML? 一 XML语法 1.文档声明 2.元素 语法: 3.属性 4.注释 5.CDATA节 二 树结构 三 转义字符 四 DOM4J 1.XML解析技术 2.dom4j介绍 3.dom4j基本使用 XML 指可扩展标记语言(eXtensible Markup Language)。 XML 被设计用来传…

Killing LeetCode [83] 删除排序链表中的重复元素

Description 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 Intro Ref Link:https://leetcode.cn/problems/remove-duplicates-from-sorted-list/ Difficulty:Easy Tag&am…

全面讲解最小二乘法

常见的最小二乘法我们就不多说了,下面主要介绍一下最小二乘法的一些先进方法。 正则化的最小二乘法 在使用常见的最小二乘法进行回归分析时,常常会遇到过拟合的问题,也就是在训练数据集上表现的很好,但是在测试数据集上表现的很…

64位交叉编译器版本切换

操作系统版本 lkmaoubuntu:~$ cat /proc/version Linux version 5.6.18 (lkmaoubuntu) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #1 SMP Tue Jul 25 23:11:17 PDT 2023 lkmaoubuntu:~$ 64位 安装默认版本和gcc5版本。 sudo apt-get install gcc-aarch64-linux-g…

无涯教程-Perl - if...elsif...else语句函数

if 语句后可以跟可选的 elsif ... else 语句,这对于使用单个if ... elsif语句测试各种条件非常有用。 if...elsif...else - 语法 Perl编程语言中的 if ... elsif...else语句的语法是- if(boolean_expression 1) {# Executes when the boolean expression 1 is tr…

JavaScript 一段代码快速入门

仅记录了和c有所不同之处,其余类似。 一段简单代码 // 关注点分离,指html页面设计和javascript页面行为分离// 对象,键值对形式 const user {name: "gyf",age: 20,jobs: ["front-end", "engineer", 2, true…

智能卡通用安全检测指南 思度文库

范围 本标准规定了智能卡类产品进行安全性检测的一般性过程和方法。 本标准适用于智能卡安全性检测评估和认证。 规范性引用文件 下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,…

STM32 CubeMX USB_CDC(USB_转串口)

STM32 CubeMX STM32 CubeMX 定时器(普通模式和PWM模式) STM32 CubeMX一、STM32 CubeMX 设置USB时钟设置USB使能UBS功能选择 二、代码部分添加代码实验效果 ![请添加图片描述](https://img-blog.csdnimg.cn/a7333bba478441ab950a66fc63f204fb.png)printf发…

Python自动化实战之使用Pytest进行API测试详解

概要 每次手动测试API都需要重复输入相同的数据,而且还需要跑多个测试用例,十分繁琐和无聊。那么,有没有一种方法可以让你更高效地测试API呢?Pytest自动化测试!今天,小编将向你介绍如何使用Pytest进行API自…

【二】SPI IP核的使用

【一】SPI IP核使用:传送门 基于qsys通过spi外部总线协议对sd卡进行读写操作 一、实验平台与实验的目的: ​ 正点原子开拓者、芯片型号:EP4CE10F17C8;还需要一张sd卡。 ​ 该实验主要是利用SPI IP核驱动SD卡来实现读写实验&am…

一文学透设计模式

设计模式是什么? 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案,代表了解决一些问题的最佳实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 说白了,设计模式对于软件开发人员来说就…

K8S系列文章 之 容器网络基础 Docker0

什么是Docker0 使用ip addr命令看一下网卡&#xff1a; rootKitDevVps:~# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host…

优维低代码实践:对接数据

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 优维…

数据结构--单链表OJ题

上文回顾---单链表 这章将来做一些链表的相关题目。 目录 1.移除链表元素 2.反转链表 3.链表的中间结点 4.链表中的倒数第k个结点 5.合并两个有序链表 6.链表分割 7.链表的回文结构 8.相交链表 9.环形链表 ​编辑 10.环形链表II ​编辑 ​编辑 1.移除链表元素 思…

windows永久暂停更新

目录 1.winr,输入regedit打开注册表 2.打开注册表的这个路径: 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings 右键空白地方新建QWORD值命名为:FlightSettingsMaxPauseDays 3.双击FlightSettingsMaxPauseDays,修改里面的值为100000,右边基数设置…

Node.js |(一)Node.js简介及计算机基础 | 尚硅谷2023版Node.js零基础视频教程

学习视频&#xff1a;尚硅谷2023版Node.js零基础视频教程&#xff0c;nodejs新手到高手 文章目录 &#x1f4da;关于Node.js&#x1f407;为什么要学Node.js&#x1f407;Node.js是什么&#x1f407;Node.js的作用&#x1f407;Node.js下载安装&#x1f407;命令行工具&#x1…

ebay儿童书包产品CPC认证

儿童书包是一种能够盛放书本或者文具的包。现在的书包五花八门&#xff0c;以普通的布料或者是帆布等制成&#xff0c;有背带&#xff0c;包内一般分栏。一般分三种&#xff0c;背在身后的&#xff0c;挎在肩上的&#xff0c;轮式&#xff08;可以拖行&#xff09;的。 一、美国…