Pytorch基本使用—激活函数

✨1 介绍

⛄ 1.1 概念

激活函数是神经网络中的一种数学函数,它被应用于神经元的输出,以决定神经元是否应该被激活并传递信号给下一层。常见的激活函数包括Sigmoid函数、ReLU函数、Tanh函数等

🎄 1.2 性质

激活函数是神经网络中的一种重要组件,它的作用是引入非线性特性,使得神经网络能够学习和表示更加复杂的函数关系。

激活函数具有以下几个性质:

  1. 非线性:激活函数必须是非线性的,这是为了使得神经网络能够学习非线性函数。如果使用线性激活函数,多层神经网络的输出将仍然是线性的,无法表达复杂的非线性关系。
  2. 可微性:激活函数在神经网络的反向传播算法中起到关键作用,因此它必须是可微的。这样才能计算梯度并更新网络参数,实现网络的训练。
  3. 非饱和性:激活函数应该具有非饱和性,即在输入取值范围内,函数值不会饱和或饱和得很快。这样可以避免梯度消失的问题,使得网络能够更好地进行训练。
  4. 输出范围:激活函数的输出范围应该适当,使得神经网络的输出在合理的范围内。例如,对于二分类问题,常用的激活函数是sigmoid函数,其输出范围在0到1之间,可以表示概率值。

⛱️ 1.3 为什么使用激活函数

在深度学习中,神经网络通常由多个层组成,每一层都包含了许多神经元。每个神经元接收来自上一层神经元的输入,并通过激活函数将其转换为输出。起到的作用有三点:

  1. 激活函数可以引入非线性。如果没有激活函数,多层神经网络将只能表示线性关系,无法学习复杂的非线性模式。通过使用激活函数,神经网络能够学习和表示更加复杂的模式,从而提高其表达能力。
  2. 激活韩素可以帮助神经网络进行分类任务,将输入数据映射到不同的类别。
  3. 激活函数还可以帮助神经网络处理输入数据中的噪声和不确定性,增强其鲁棒性和泛化能力。

总之,激活函数在深度学习中的使用是为了引入非线性特性,提高神经网络的表达能力和学习能力。

✨ 2 常见激活函数

常见的激活函数包括Sigmoid函数、ReLU函数、Tanh函数等

🎈2.1 Sigmoid

☃️ 2.1.1 理论

公式:
在这里插入图片描述
(0, 1)之间取值

函数图像:
在这里插入图片描述
但是sigmoid存在下列问题:

  1. 容易出现梯度消失。当输入值非常大或非常小时,sigmoid函数的导数接近于0,这导致在反向传播过程中梯度逐渐消失,使得网络难以训练。
  2. 输出不是以0为中心。sigmoid函数的输出不是以0为中心的,这可能导致神经网络在训练过程中出现偏移问题,使得收敛速度变慢。
  3. 计算量大

🧽 2.1.2 torch.nn.Sigmoid

torch.nn.Sigmoid()

🎃 2.2 ReLU

2.2.1 ⛱️ 原理

公式:
在这里插入图片描述
sigmoid函数在输入值非常大或非常小时,导数接近于0,导致梯度逐渐消失。而ReLU函数在正值部分的导数为1,因此在反向传播过程中可以更好地保持梯度的大小,避免梯度消失问题

函数图像:
在这里插入图片描述
但是仍然存在一些问题

  1. 输出范围是[0,正无穷),存在输出不是以0为中心的问题。
  2. Dead ReLU问题。当输入值小于等于0时,ReLU函数的导数为0,导致神经元无法更新权重,从而导致神经元“死亡”。如果大量神经元处于“死亡”状态,那么整个网络的表达能力将受到限制。
  3. 输出不受限制。ReLU函数的输出范围没有上界,这可能导致某些神经元输出值过大,称为“exploding gradients”问题。这可能会对网络的稳定性和收敛性造成影响。
  4. 不可导性。ReLU函数在输入为0时是不可导的,因为它的导数在0处不存在。这可能导致在某些优化算法中的计算问题,例如梯度下降算法。

🧽 2.2.2 torch.nn.ReLU

torch.nn.ReLU( inplace: bool = False)
  1. inplace:如果inplace=True,ReLU函数将会修改输入张量本身,而不是创建一个新的张量来存储结果(计算ReLU的反向传播时,有时只需根据输出就能够推算出反向传播的梯度)。这意味着原始输入张量的值将被覆盖,这种原地操作可以节省内存,特别是当处理大型张量时,但是只有少数的autograd操作支持inplace操作,除非明确地知道自己在做什么,否则不要使用inplace操作。

🌊 2.3 Tanh

🎄 2.3.1 理论

公式:
在这里插入图片描述
输出范围是(-1, 1)
函数图像:
在这里插入图片描述
存在的一些问题:

  1. 梯度消失。当输入值非常大或非常小的时候,Tanh函数的导数会接近于零,导致梯度消失的问题。这可能会导致训练过程中的梯度更新变得非常缓慢,甚至无法收敛到最优解。(与Sigmoid相同)
  2. 输出范围限制。Tanh函数的输出范围被限制在-1和1之间,这可能导致某些情况下的信息损失。例如,在某些任务中,输出值需要超过这个范围才能正确表示。

🧽 2.3.2 Torch.nn.Tanh

torch.nn.ReLU()

✨ 3 扩展

为了解决上面三个激活函数的问题,一些改进的激活函数被提出,例如ReLU和Leaky ReLU。

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

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

相关文章

为什么单片机可以直接烧录程序的原因是什么?

单片机(Microcontroller)可以直接烧录程序的原因主要有以下几点: 集成性:单片机是一种高度集成的芯片,内部包含了处理器核心(CPU)、存储器(如闪存、EEPROM、RAM等)、输入…

校园wifi网页认证登录入口

很多校园wifi网页认证登录入口是1.1.1.1 连上校园网在浏览器写上http://1.1.1.1就进入了校园网 使 用 说 明 一、帐户余额 < 0.00元时&#xff0c;帐号被禁用&#xff0c;需追加网费。 二、在计算中心机房上机的用户&#xff0c;登录时请选择新建帐号时给您指定的NT域&…

windows 搭建ssh服务

1、官网下载安装包&#xff1a;mls-software.com 2、点击安装&#xff08;一直默认即可&#xff09; 3、配置 opensshServer 4、成功登录

Python深度强化学习实战 ——OpenAI Gym-CarRacing自动驾驶项目

&#x1f4ad; 写在前面&#xff1a;本篇是关于 OpenAI Gym-CarRacing 自动驾驶项目的博客&#xff0c;面向掌握 Python 并有一定的深度强化学习基础的读者。GYM-Box2D CarRacing 是一种在 OpenAI Gym 平台上开发和比较强化学习算法的模拟环境。它是流行的 Box2D 物理引擎的一个…

灌区信息化智能测控一体化闸门系统解决方案

一、方案背景 闸门是节水灌溉工程中重要组成部分。在农田灌区中&#xff0c;一方面存在传统手摇闸门&#xff0c;未能实现自动化、数字化&#xff0c;另一方面部分灌区闸站虽然部分实现了自动化控制&#xff0c;但是由于闸站较多&#xff0c;有些位置较为偏僻&#xff0c;部分水…

Jmeter接口关联(一)【使用json层级方式提取值】与python中使用层级方式提取值 完成接口关联

文章目录 前言一、按照 json 的路径来提取 ​​​​​​​&#xff08;1&#xff09;成功匹配到数据的案例&#xff08;按照层级匹配&#xff09;&#xff08;2&#xff09;失败未匹配到数据的案例&#xff08;没有按照层级匹配&#xff09;json提取器二、使用完整的接口关联&a…

selenium自动化测试工具

Selenium是一个用于测试网站的自动化测试工具&#xff0c;支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器&#xff0c;同时也支持phantomJS无界面浏览器。 查看chrome版本&#xff0c;114.05735.199 去 http://chromedriver.storage.googleapis.com/index.html 网…

密码学证明方案寒武纪大爆发——扩容、透明性和隐私的变革潜力

1. 引言 前序博客有&#xff1a; ZKP大爆炸 本文主要参考&#xff1a; StarkWare 2023年6月博客 Cambrian Explosion of Cryptographic Proofs----The transformative potential for scalability, transparency, and privacy2023年3月Eli Ben-Sasson在The 13th BIU Winter …

nginx页面优化与防盗链

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、nginx页面优化1.版本号1.1 查看版本号1.2 修改版本号1.2.1 修改配置文件1.2.2 修改源码文件&#xff0c;重新编译安装 2.nginx的日志分割3.nginx的页面压缩3.1 …

微软亚洲研究院推出AI编译器界“工业重金属四部曲”

编者按&#xff1a;编译器在传统计算科学中一直是一个重要的研究课题。在人工智能技术快速发展和广泛应用的今天&#xff0c;人工智能模型需要部署在多样化的计算机硬件架构上。同时&#xff0c;训练和部署大型人工智能模型时又对硬件性能有着更高的要求&#xff0c;有时还需根…

macOS Ventura 13.5beta5(22G5072a)发布

系统介绍 黑果魏叔 7 月 11 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 13.5 开发者预览版 Beta 5 更新&#xff08;内部版本号&#xff1a;22G5072a&#xff09;&#xff0c;本次更新距离上次发布隔了 12 天。 macOS Ventura 带来了台前调度、连续互通相机、Fa…

1g的视频怎么做二维码?较大视频如何生成二维码?

现在很多参与评选活动时&#xff0c;会制作好相关的视频内容&#xff0c;然后生成二维码之后&#xff0c;发送给活动管理人员从而参与评选。在根据要求录制视频时&#xff0c;有些视频会因为时间太长&#xff0c;导致文件过大&#xff0c;那么如何将超过1g的等视频生成二维码&a…

基于DEF生成LIB的方法

基于DEF生成LIB的方法 [生成64位lib] lib /def:libcurl-x64.def /MACHINE:x64 /OUT:libcurl-x64.lib[生成32位lib] lib /def:libcurl-x64.def /OUT:libcurl-x64.lib

OpenCV 图像处理算法和技术的应用实践

OpenCV 图像处理算法和技术的应用实践 导语一、图像滤波算法二、图像分割技术三、特征提取与描述算法四、实践示例&#xff1a;图像风格转换总结 导语 图像处理算法和技术在计算机视觉和图像处理领域发挥着重要作用&#xff0c;通过对图像进行分析、增强和转换&#xff0c;可以…

2023机器人操作系统(ROS)暑期学校预热-线下时间/地点-(转发)

原文地址&#xff1a; https://mp.weixin.qq.com/s/McjBgCpecL6OMgpcrPyY_Q 中国机器人操作系统&#xff08;ROS&#xff09;暑期学校自2015年举办以来&#xff0c;被中国机器人业界和学界&#xff0c;以及ROS开源基金会誉为除了ROSCon之外规模最大、参与人数最多、最成功的RO…

什么是Heatmap(热图)图表?用DHTMLX可实现快速构建

DHTMLX Chart是DHTMLX最新发布的JavaScript UI小部件库的核心内容之一&#xff0c;这个图表小部件收到了几个重要的更新&#xff0c;但其中最引人注目的是一个新的数据可视化选项——日历热图。 DHTMLX专注于JavaScript和HTML5 UI小部件和库&#xff0c;以帮助开发人员更快地构…

基于springboot+vue的疫情管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

不外传秘诀| docker 快速搭建常用的服务环境

本文主要给大家介绍如何使用 docker 搭建常用的服务环境&#xff0c; 包括mysql,reedis,nginx,jenkins 等常用的环境&#xff0c;下面直接进入主题。 1、MySQL 部署 ①搜索 MySQL 镜像 docker search mysql ②拉取 MySQL 镜像 docker pull mysql:5.7 ③创建容器&#xf…

基于STM32单片机的智能家居烟雾温度火灾防盗报警的设计与实现

功能介绍 以STM32单片机作为主控系统&#xff1b;LCD1602液晶显示屏来显示显示测得的值&#xff1b;SR501人体红外感应是否有人进行防盗&#xff1b;通过烟雾传感器MQ-2获取前的烟雾值&#xff1b;通过DHT11温湿度传感器来获取当前的温湿度&#xff1b;所有的信息通过通过esp82…

php通过IP获取用户当前所在城市

php获取当前用户所在城市 php通过ip免申请api获取所在城市的代码包括省市区sql数据 <?php function getName($pinyin,$lv){$servername "localhost";$username "root";$password "root";$dbname "ttx";try {$conn new PDO(…