神经网络中常见的激活函数Sigmoid、Tanh和ReLU

激活函数在神经网络中起着至关重要的作用,它们决定了神经元的输出是否应该被激活以及如何非线性地转换输入信号。不同的激活函数适用于不同的场景,选择合适的激活函数可以显著影响模型的性能和训练效率。以下是三种常见的激活函数:SigmoidTanhReLU 的详细介绍。

1. Sigmoid 激活函数

公式:

在这里插入图片描述

图像:

在这里插入图片描述

特点:
  • 输出范围:(0, 1),将输入压缩到0到1之间。
  • 用途:常用于二分类问题中的输出层,因为它的输出可以解释为概率值(0表示负类,1表示正类)。
  • 优点
    • 输出具有良好的可解释性,适合用于需要概率输出的任务。
  • 缺点
    • 梯度消失问题:当输入较大或较小时,Sigmoid 函数的导数接近于0,导致反向传播时梯度几乎为零,使得权重更新非常缓慢,甚至停止更新。这在深度网络中尤为严重。
    • 非零中心化:Sigmoid 函数的输出不是以0为中心的,这会导致后续层的权重更新方向不一致,影响训练效率。
应用场景:
  • 二分类问题的输出层。
  • 逻辑回归模型。

2. Tanh (双曲正切) 激活函数

公式:

在这里插入图片描述

图像:

在这里插入图片描述

特点:
  • 输出范围:(-1, 1),将输入压缩到-1到1之间。
  • 用途:常用于隐藏层,尤其是在早期的神经网络中。它比 Sigmoid 更加对称,且输出是以0为中心的。
  • 优点
    • 零中心化:Tanh 的输出是零中心化的,这有助于加速收敛,因为后续层的权重更新方向更加一致。
    • 更好的梯度传播:相比 Sigmoid,Tanh 在输入接近0时的导数更大,因此梯度消失问题稍微缓解。
  • 缺点
    • 仍然存在梯度消失问题:虽然比 Sigmoid 稍好,但在输入较大或较小时,Tanh 的导数也会接近0,导致梯度消失。
应用场景:
  • 隐藏层,尤其是浅层神经网络。
  • RNN(循环神经网络)中,Tanh 是常用的激活函数,因为它可以帮助控制信息的流动。

3. ReLU (Rectified Linear Unit) 激活函数

公式:

在这里插入图片描述

图像:

在这里插入图片描述

特点:
  • 输出范围:[0, +∞),当输入为正时,输出等于输入;当输入为负时,输出为0。
  • 用途:广泛应用于现代深度学习模型的隐藏层,尤其是在卷积神经网络(CNN)和全连接网络中。
  • 优点
    • 避免梯度消失问题:对于正输入,ReLU 的导数为1,因此不会出现梯度消失问题。这使得 ReLU 在深层网络中表现良好,能够加速训练。
    • 计算简单:ReLU 的计算非常简单,只需判断输入是否大于0,因此计算效率高。
    • 稀疏性:ReLU 会将负输入直接设为0,这有助于引入稀疏性,减少模型的复杂度。
  • 缺点
    • 死亡 ReLU 问题:当输入为负时,ReLU 的导数为0,导致该神经元在反向传播时不再更新权重。如果大量神经元进入“死亡”状态,模型可能会失去表达能力。为了解决这个问题,通常使用改进版的 ReLU,如 Leaky ReLU 或 Parametric ReLU。
    • 非零中心化:ReLU 的输出是非零中心化的,这可能会导致后续层的权重更新方向不一致。
改进版本:
  • Leaky ReLU:为了解决死亡 ReLU 问题,Leaky ReLU 在负输入时赋予一个很小的斜率(通常是0.01),而不是直接设为0。
    [
    \text{Leaky ReLU}(x) = \max(\alpha x, x), \quad \text{其中} ; 0 < \alpha \ll 1
    ]
  • Parametric ReLU (PReLU):Leaky ReLU 的斜率是固定的,而 PReLU 的斜率是一个可学习的参数,可以在训练过程中自动调整。
    [
    \text{PReLU}(x) = \max(\alpha_i x, x), \quad \text{其中} ; \alpha_i ; \text{是每个神经元的可学习参数}
    ]
  • Exponential Linear Unit (ELU):ELU 在负输入时使用指数函数来平滑过渡,避免了死亡 ReLU 问题,并且输出是零中心化的。
    [
    \text{ELU}(x) =
    \begin{cases}
    x & \text{if} ; x > 0 \
    \alpha (e^x - 1) & \text{if} ; x \leq 0
    \end{cases}
    ]
应用场景:
  • 隐藏层,尤其是深度神经网络(DNN)、卷积神经网络(CNN)和生成对抗网络(GAN)。
  • 由于其出色的性能和计算效率,ReLU 及其变体已成为现代深度学习模型中最常用的激活函数之一。

总结

激活函数输出范围优点缺点应用场景
Sigmoid(0, 1)输出具有概率意义梯度消失,非零中心化二分类问题的输出层,逻辑回归
Tanh(-1, 1)零中心化,更好的梯度传播梯度消失隐藏层,RNN 中
ReLU[0, +∞)避免梯度消失,计算简单,引入稀疏性死亡 ReLU 问题,非零中心化隐藏层,DNN、CNN、GAN

选择激活函数的建议:

  • Sigmoid:主要用于二分类问题的输出层,尤其是在需要概率输出的情况下。
  • Tanh:适用于隐藏层,尤其是浅层网络或 RNN 中。它比 Sigmoid 更加对称,有助于加速收敛。
  • ReLU:是现代深度学习模型中最常用的激活函数,尤其适用于隐藏层。如果你遇到死亡 ReLU 问题,可以尝试使用 Leaky ReLU 或 PReLU。

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

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

相关文章

基于Java Springboot蛋糕订购小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 微信…

<项目代码>YOLOv8 红绿灯识别<目标检测>

YOLOv8是一种单阶段&#xff08;one-stage&#xff09;检测算法&#xff0c;它将目标检测问题转化为一个回归问题&#xff0c;能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法&#xff08;如Faster R-CNN&#xff09;&#xff0c;YOLOv8具有更高的…

ProtonBase 教育行业解决方案

01/方案概述 当前&#xff0c;大数据、云计算等技术正加速教育行业的数字化转型&#xff0c;教学模式从线下转向线上&#xff0c;传统教育企业向具有互联网性质的新型教育企业转变。在此背景下&#xff0c;教育企业亟需探索多源数据的融合扩展&#xff0c;以应对复杂的业务场景…

Mybatis:CRUD数据操作之删除一行数据

Mybatis基础环境准备请看&#xff1a;Mybatis基础环境准备 本篇讲解Mybati数据CRUD数据操作之单条删除数据 当用户点击了该按钮&#xff0c;就会将改行数据删除掉。那我们就需要思考&#xff0c;这种删除是根据什么进行删除呢&#xff1f;是通过主键id删除&#xff0c;因为id是…

力扣1382:将二叉搜索树便平衡

给你一棵二叉搜索树&#xff0c;请你返回一棵 平衡后 的二叉搜索树&#xff0c;新生成的树应该与原来的树有着相同的节点值。如果有多种构造方法&#xff0c;请你返回任意一种。 如果一棵二叉搜索树中&#xff0c;每个节点的两棵子树高度差不超过 1 &#xff0c;我们就称这棵二…

架构01-演进中的架构

零、文章目录 架构01-演进中的架构 1、原始分布式时代&#xff1a;Unix设计哲学下的服务探索 &#xff08;1&#xff09;背景 时间&#xff1a;20世纪70年代末到80年代初计算机硬件&#xff1a;16位寻址能力、不足5MHz时钟频率的处理器、128KB左右的内存转型&#xff1a;从…

MySQL —— MySQL 程序

目录 前言 一、MySQL 程序简介 二、mysqld -- MySQL 服务器 三、mysql -- MySQL 客户端 1. mysql 客户端简介 2. mysql 客户端选项 &#xff08;1&#xff09;指定选项的方式 &#xff08;2&#xff09;mysql 客户端命令常用选项 &#xff08;3&#xff09;在命令行中使…

GoogleTest做单元测试

目录 环境准备GoogleTest 环境准备 git clone https://github.com/google/googletest.git说cmkae版本过低了&#xff0c;解决方法 进到googletest中 cmake CMakeLists.txt make sudo make installls /usr/local/lib存在以下文件说明安装成功 中间出了个问题就是&#xff0c;…

Flink四大基石之CheckPoint

1、State Vs Checkpoint State:状态,是Flink中某一个Operator在某一个时刻的状态,如maxBy/sum,注意State存的是历史数据/状态,存在内存中。 Checkpoint:快照点, 是Flink中所有有状态的Operator在某一个时刻的State快照信息/存档信息。 一句话概括: Checkpoint就是State的快照…

基于TensorFlow的手写体数字识别训练与测试

需求&#xff1a; 选择一个最简单的细分方向&#xff0c;初步了解AI图像识别的训练、测试过程TensorFlow、PyTorch、c&#xff0c;三种代码方案&#xff0c;先从TensorFlow入手探讨最基本问题的优化问题 总结&#xff1a; 基于TensorFlow的python代码库自带了mnist 训练数据…

YOLO系列论文综述(从YOLOv1到YOLOv11)【第11篇:YOLO变体——YOLO+Transformers、DAMO、PP、NAS】

YOLO变体 1 DAMO-YOLO2 PP-YOLO, PP-YOLOv2, and PP-YOLOE2.1 PP-YOLO数据增强和预处理2.2 PP-YOLOv22.3 PP-YOLOE 3 YOLO-NAS4 YOLO Transformers5 YOLOv1-v8及变体网络结构总结 YOLO系列博文&#xff1a; 【第1篇&#xff1a;概述物体检测算法发展史、YOLO应用领域、评价指标…

SE16N 外键校验报错问题

问题&#xff1a; SE16N维护时&#xff0c;偶尔有一些莫名奇妙的校验报错&#xff0c;条目XX在表XX中不存在&#xff0c;但是实际数据时存在的。 分析&#xff1a; DEBUG过程中&#xff0c;定位到数据校验部分&#xff0c;发现当外键定义的关联字段中存在某些不在对应维护表中…

【数据结构】二叉搜索树(二叉排序树)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;数据结构 目录 前言 一、什么是二叉搜索树 二、二叉搜索树的实现 节点 属性和接口的声明 插入 查找 删除 拷贝构造 析构 中序遍历 三、二叉搜索树的…

【接口自动化测试】一文从3000字从0到1详解接口测试用例设计

接口自动化测试是软件测试中的一种重要手段&#xff0c;它能有效提高测试效率和测试覆盖率。在进行接口自动化测试之前&#xff0c;首先需要进行接口测试用例的设计。本文将从0到1详细且规范的介绍接口测试用例设计的过程&#xff0c;帮助读者快速掌握这一技能。 一、了解接口…

使用 PDF API 合并 PDF 文件

内容来源&#xff1a; 如何在 Mac 上合并 PDF 文件 1. 注册与认证 您可以注册一个免费的 ComPDFKit API 帐户&#xff0c;该帐户允许您在 30 天内免费无限制地处理 1,000 多个文档。 ComPDFKit API 使用 JSON Web Tokens 方法进行安全身份验证。从控制面板获取您的公钥和密钥&…

微服务即时通讯系统的实现(服务端)----(2)

目录 1. 语音识别子服务的实现1.1 功能设计1.2 模块划分1.3 模块功能示意图1.4 接口的实现 2. 文件存储子服务的实现2.1 功能设计2.2 模块划分2.3 模块功能示意图2.4 接口的实现 3. 用户管理子服务的实现3.1 功能设计3.2 模块划分3.3 功能模块示意图3.4 数据管理3.4.1 关系数据…

Scala—列表(可变ListBuffer、不可变List)用法详解

Scala集合概述-链接 大家可以点击上方链接&#xff0c;先对Scala的集合有一个整体的概念&#x1f923;&#x1f923;&#x1f923; 在 Scala 中&#xff0c;列表&#xff08;List&#xff09;分为不可变列表&#xff08;List&#xff09;和可变列表&#xff08;ListBuffer&…

Android 系统之Init进程分析

1、Init进程流程 2、Init细节逻辑 2.1 Init触发shutdown init进程触发系统重启是一个很合理的逻辑&#xff0c;为什么合理&#xff1f; init进程是android世界的一切基石&#xff0c;如果android世界的某些服务或者进程出现异常&#xff0c;那么会导致整个系统无法正常使用…

NVR录像机汇聚管理EasyNVR多个NVR同时管理基于B/S架构的技术特点与能力应用

EasyNVR视频融合平台基于云边端协同设计&#xff0c;能够轻松接入并管理海量的视频数据。该平台兼容性强、拓展灵活&#xff0c;提供了视频监控直播、录像存储、云存储服务、回放检索以及平台级联等一系列功能。B/S架构使得EasyNVR实现了视频监控的多元化兼容与高效管理。 其采…

使用ffmpeg命令实现视频文件间隔提取帧图片

将视频按每隔五秒从视频中提取一张图片 使用 ffmpeg 工具&#xff0c;通过设置 -vf&#xff08;视频过滤器&#xff09;和 -vsync 选项 命令格式 ffmpeg -i input_video.mp4 -vf "fps1/5" output_%03d.png 解释&#xff1a; -i input_video.mp4&#xff1a;指定输…