pytorch机器学习各种激活函数总结(不完整学习更新中~)

pytorch各种激活函数总结

  • 0.思维导图预览
  • 1. ReLU函数
  • 2. Sigmoid函数
  • 3. Softmax函数
  • 4. Tanh函数
  • 5.(学习后更新)

0.思维导图预览

在这里插入图片描述

1. ReLU函数

ReLU(Rectified Linear Unit)线性整流函数
其公式为:
f ( x ) = M a x ( 0 , x ) f(x)=Max(0,x) f(x)=Max(0,x)
它将小于零的输入映射为0,而将大于等于零的输入保持不变。在PyTorch中,可以使用torch.nn.ReLU类来表示。
ReLU函数求导简单方便;但是当反向传播过程中,权值更新小于0时,导致该处的导数始终为0,无法更新权值,会进入失活状态。
在这里插入图片描述
AlexNet就用的是ReLU函数
在这里插入图片描述

2. Sigmoid函数

Sigmoid函数将输入值压缩到0和1之间,在PyTorch中,可以使用torch.nn.Sigmoid类来表示。
其公式为:
f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+\mathcal{e}^{-x}} f(x)=1+ex1
Sigmoid函数的优点是输出范围在(0, 1)之间,可以将输入映射到概率形式或者用于二分类问题中。
缺点是激活函数饱和时,梯度非常小,网络层数较深时容易出现梯度消失。
在这里插入图片描述

3. Softmax函数

Softmax函数将输入值转换为概率分布,用于多分类问题。在PyTorch中,可以使用torch.nn.Softmax类来表示。Softmax函数将原始的实数向量转换为表示概率分布的向量,使每个元素的取值范围≥0,并且所有元素的和等于1。
其公式为:

对于输入向量 z = ( z 1 , z 2 , … , z k − 1 ) \mathbf{z} = (z_1, z_2, \ldots, z_{k-1}) z=(z1,z2,,zk1),Softmax函数对应的输出向量 y = ( y 1 , y 2 , … , y n ) \mathbf{y} = (y_1, y_2, \ldots, y_n) y=(y1,y2,,yn) 的计算公式为:

y i = e z i ∑ j = 0 k − 1 e z j y_i = \frac{e^{z_i}}{\sum_{j=0}^{k-1} e^{z_j}} yi=j=0k1ezjezi

其中, e e e 是自然对数的底。 y i y_i yi 表示输入向量 z \mathbf{z} z 属于类别 i i i 的概率。

在这里插入图片描述

4. Tanh函数

Tanh函数将输入值压缩到(-1,1)之间,它在中间层中能够产生非线性的激活输出,并且保留了负数的信息,经常被用于数据归一化的过程,将数据标准化到一个更小的范围,使得数据更易处理和比较。
Sigmoid函数是压缩到(0,1)之间。
在PyTorch中,可以使用torch.nn.Tanh类来表示。
其公式为:
f ( x ) = e x − e − x e x + e − x f(x)=\frac{\mathcal{e}^{x}-\mathcal{e}^{-x}}{\mathcal{e}^{x}+\mathcal{e}^{-x}} f(x)=ex+exexex
在这里插入图片描述

5.(学习后更新)

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

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

相关文章

[python] 基于Dataset库操作数据库

dataset库是Python中一个用于操作数据库的简单库,它提供了一种简洁的方式与各种关系型数据库进行交互,例如SQLite、MySQL、PostgreSQL 等。你可以使用dataset库来执行查询、插入、更新和删除操作,而无需编写复杂的SQL语句。dataset库适用于小…

传感器原理与应用复习--具体场景的应用

文章目录 测量转速测量厚度测量加速度测量液体压强测量含水量测量温度测量流速 测量转速 磁电感应传感器 霍尔传感器 测量厚度 电涡流传感器 测量加速度 应变式传感器 差动变压器式传感器 测量液体压强 电感传感器 电容传感器 测量含水量 半导体传感器 微波传感器…

Prototype原型模式(对象创建)

原型模式:Prototype 链接:原型模式实例代码 注解 模式定义 使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。 ——《设计模式》GoF 目的 在软件系统中,经常面临这“某些结构复杂的对象”的创建工作&am…

Redis的集群模式:主从 哨兵 分片集群

基于Redis集群解决单机Redis存在的问题,在之前学Redis一直都是单节点部署 单机或单节点Redis存在的四大问题: 数据丢失问题:Redis是内存存储,服务重启可能会丢失数据 > 利用Redis数据持久化的功能将数据写入磁盘并发能力问题…

基于YOLOv8的目标跟踪技术

💡💡💡本文摘要:介绍了YOLOv8自带的目标跟踪技术以及评价指标,并教会你如何在YOLOv8使用 1.YOLOv8自带两种跟踪方法 ultralytics/cfg/trackers/文件夹下 1.1 ByteTrack介绍 https://arxiv.org/pdf/2110.06864.pdf 摘…

【华为OD】人工智能面试题目

题目如下: 解释什么是人工智能?描述一下你使用过的机器学习库或框架,以及它的主要功能和特点。什么是过拟合和欠拟合?如何避免它们?解释一下决策树、随机森林和梯度提升机等监督学习算法的基本原理。什么是神经网络&a…

Python爬虫---selenium基本使用(支持无界面浏览器PhantomJS和Chrome handless)

为什么使用selenium? 使用urllib.request.urlopen()模拟浏览器有时候获取不到数据,所以使用selenium (1) selenium是一个用于web应用程序测试的工具 (2) selenium 测试直接运行在浏览器中,就像真正的用户在操作一样 (3) 支持通过各种driver (FirfoxDri…

2401编辑器,好插件

原文 CScintillaCtrl,CScintillaView和CScintillaDocv1.82 Scintilla编辑控件的免费MFC和ATL/WTL包装类 这些类为Scintilla编辑控件(http://www.scintilla.org)提供MFC和ATL/WTL包装.此控件提供开源跨平台编辑控件. 部分功能包括语法高亮,调用提示,括号高亮,风格,边距和标记等…

NFS客户端挂载目录后无权限nfsnobody问题

# vim /etc/exports/opt/public 192.168.1.104(rw,sync,anonuid2019,anongid2019)如果使用 anonuid ,则客户端需要授权的用户账号的 uid 需要跟 anonuid 一致。 如果使用 anongid ,则客户端需要授权的用户账号的 groups 中需要有对应的 gid 。 【关…

Linux 软raid - - Barrier

什么是Barriers 在linux软raid中,用来处理正常IO和同步IO的并发问题,可以简单理解为专用于软raid的锁。 软raid在做resync/recovery,或者配置操作时需要raise 屏障,于此同时必须暂停正常IO。 barrier是可以被多次raise的一个计数…

PAT 乙级 1057 数零壹

给定一串长度不超过 10 5 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0、多少 1。例如给定字符串 PAT (Bas…

人大金仓数据库与mysql比较

简介 人大金仓数据库是基于 PostgreSQL 开发的。 SQL语言 语法 关键字 KES: MYSQL: 语句 *特性MYSQLKES字符串字面量单引号()或 双引号(")十六进制字面量0x5461626c65,X5461626c65/BIT字面量b1000001,0b1000001/Boolean字面量常…

C#中汉字转区位码

目录 一、关于区位码 1.区位码定义 2.算法 二、实例 三、生成效果 四、程序中的知识点 1.byte[] GetBytes(string s) 2.字节数组转short类型 一、关于区位码 1.区位码定义 区位码是一个4位的十进制数,每个区位码都对应着一个唯一的汉字,区位码…

软件测试方法分类-按照开发阶段划分细讲

前面我给出了整体的软件测试分类,那么接下来,我会将每个分类进行细讲。 第一个我们要说到的就是按照开发阶段划分。 我们都知道软件测试方法分类中,如果按照开发阶段划分,可以分为: 1,单元测试 (Unit Te…

androidStudio 没有新建flutter工程的入口?

装了flutter dart 插件 执行了 flutter doctor 也执行了 flutter doctor --android-license 最后重启了 androidStudio 还是没发现在哪新建flutter项目工程 原来 plugins 下的 Android APK Support没有勾选

鸿蒙崛起:互联网大厂加速鸿蒙原生应用开发,人才争夺战打响

随着华为鸿蒙系统的发布和不断推进,一场以鸿蒙为中心的生态竞争已经拉开帷幕。近日,网易、美团等多家互联网公司发布了与鸿蒙系统有关的岗位招聘,加速推进鸿蒙原生应用开发转型。这种趋势表明,鸿蒙系统已经引起了行业的广泛关注&a…

【Unity引擎技术整合】 Unity学习路线 | 知识汇总 | 持续更新 | 保持乐趣 | 共同成长

前言 本文对Unity引擎的知识进行了一个整理总结,基本包含了Unity中大部分的知识介绍。网上也有很多Unity相关的学习资料,但大多数都不成体系,学起来的时候难免会东奔西走的摸不着头脑。本文整理的多数文章都是有对应的系列性文章专栏&#x…

MySQL各字段类型占用字节

数据表每个字段所占空间,需要计算出来.在设计表尽量少占用空间,这样在批量插入时单次插入的条数会增加.从而提高效率 数字类型 类型占用字节tinyint1个字节smallint2个字节mediumint3个字节int4个字节bigint8个字节float4个字节double8个字节DECIMAL定义为DECIMAL(M,D) 则占用…

如何修改Anaconda的Jupyter notebook的默认启动路径

1.打开Anaconda控制台 2.输入下面的命令 jupyter notebook --generate-config 这个命令的作用是生成 Jupyter notebook 的配置文件。如果你是第一次运行,会直接生成这个文件。如果曾经运行过这个命令,就会像下图一样问你时候要覆盖原来的文件。这个时候…

PyTorch训练多任务模型技巧

一、解决在分布式训练中,如果对同一模型进行多次调用的报错 报错如下: RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [256)] is at version 4; expected …