softmax激活函数

news2024/11/24 1:06:43

Softmax激活函数是一种用于多类别分类问题的激活函数,通常用于神经网络的输出层。它将原始分数(也称为logits)转换为表示概率分布的数值,使得每个类别的概率值都在0和1之间,并且所有类别的概率之和等于1。这使得它适用于多类别分类问题,其中每个样本只能属于一个类别。

Softmax函数的数学定义如下:

对于给定的原始分数(logits)z = [z1, z2, …, zn],Softmax函数将这些分数转换为概率分布p = [p1, p2, …, pn]
在这里插入图片描述
在这里插入图片描述

其中,e表示自然对数的底(欧拉数),n表示类别的数量,zi是第i个类别的原始分数。

Softmax函数的特点包括:
(1)将输入映射到0和1之间:Softmax函数确保每个类别的概率在0和1之间,因此可以用来表示每个类别的相对权重。
(2)归一化:Softmax函数对原始分数进行归一化,使所有类别的概率之和为1,这使得它适用于多类别互斥的分类问题。
(3)放大差异:Softmax函数会放大具有更高原始分数的类别的概率,因此可以更好地区分不同类别的可能性。

Softmax激活函数通常用于神经网络的输出层,特别是在多类别分类任务中,如图像分类、文本分类和语音识别。在训练过程中,Softmax函数的输出与实际的类别标签之间的差异通常使用交叉熵损失函数来度量,以便调整网络参数以最小化损失。

本文主要包括以下内容:

  • 1. nn.ReLU的常见用法
  • 2. ReLU激活函数图像实现

1. nn.ReLU的常见用法

在深度学习框架中,如PyTorch、TensorFlow或Keras,通常有内置的softmax函数,可用于计算Softmax激活函数的输出。下面是使用PyTorch作为示例的一些关于如何使用nn.softmax函数的说明:

import torch
import torch.nn as nn

# 假设有原始分数 logits
logits = torch.tensor([3.0, 2.0, 1.0])

# 创建一个Softmax模块
softmax = nn.Softmax(dim=0)

# 使用Softmax模块来计算Softmax激活
softmax_output = softmax(logits)

# 输出Softmax激活后的结果
print(softmax_output)

#输出结果:
#tensor([0.6652, 0.2447, 0.0900])

接下来我们再用普通的方法验算一下:

import math

result3 = math.exp(3)
result2 = math.exp(2)
result1 = math.exp(1)
print(result3)
print(result2)
print(result1)

r=result3+result2+result1
r1=result3/r
r2=result2/r
r3=result1/r

print([(r1),(r2),(r3)])

#输出结果:
#result3: 20.085536923187668
#result2: 7.38905609893065
#result1: 2.718281828459045
#[0.6652409557748219, 0.24472847105479764, 0.09003057317038045]
#与上面的代码运行结果相同

上述代码演示了如何使用PyTorch中的nn.Softmax模块来计算Softmax激活。需要注意以下几点:

(1)首先,导入PyTorch库以及nn模块。
(2)创建一个包含原始分数(logits)的张量(上述示例中logits的数据是示例数据,你可以用你自己的实际数据替代)。
(3)创建一个Softmax模块,使用nn.Softmax,并通过dim参数指定在哪个维度上进行Softmax操作。通常,dim=0表示在第一个维度(通常是类别维度)上应用Softmax操作。
(4)使用Softmax模块来计算Softmax激活,将原始分数作为输入。
(5)最后,输出Softmax激活后的结果。

请注意,不同的深度学习框架可能有略微不同的用法,但通常都会提供类似的Softmax函数来执行这个任务。在TensorFlow中,你可以使用tf.nn.softmax函数来执行类似的操作,而在Keras中,你可以使用keras.layers.Softmax层。确保查看你使用的特定框架的文档以了解更多细节。

2. ReLU激活函数图像实现

我们可以使用Python的matplotlib库来绘制Softmax函数的图像。下面是一个示例代码,它演示了如何绘制Softmax函数的图像:

import numpy as np
import matplotlib.pyplot as plt

def softmax(logits):
    exp_logits = np.exp(logits)
    softmax_output = exp_logits / np.sum(exp_logits)
    return softmax_output

# 生成一组原始分数(logits)
logits = np.arange(-5, 6, 1)

# 计算Softmax激活
softmax_output = softmax(logits)

# 绘制Softmax函数图像
plt.figure(figsize=(8, 4))
plt.plot(logits, softmax_output, marker='o', linestyle='-')
plt.title('Softmax Function')
plt.xlabel('Logits')
plt.ylabel('Probability')
plt.grid(True)
plt.show()

运行此段代码,即可得到softmax激活函数的输出图像
在这里插入图片描述

这段代码首先定义了一个softmax函数,该函数接受原始分数(logits)作为输入,并返回Softmax激活后的概率分布。然后,它创建了一个示例的logits数组,计算Softmax输出,并使用Matplotlib库绘制Softmax函数的图像。

在图像中,x轴表示类别,y轴表示对应类别的概率。你可以根据需要更改logits数组的值,以查看不同输入情况下Softmax函数的输出。
运行上述代码后,我们将看到一个简单的条形图,显示了Softmax函数的输出,其中概率随输入的不同而变化。

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

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

相关文章

2023年9月 青少年软件编程等级考试Scratch二级真题

202309 青少年软件编程等级考试Scratch二级真题(电子学会等级考试) 试卷总分数:100分 试卷及格分:60 分 考试时长:60 分钟 第 1 题 点击绿旗,运行程序后,舞台上的图形是?( ) A:画…

极简c++(8)抽象类与多态

类型转换规则 父类定义的指针可以指向子类对象; 指针会误以为,他们指向的对象是Base1类型,导致错误; 虚函数定义 多态 如何实现多态: 1.创建类的继承关系图 2.所以类对象都可以调用的这个函数 3.创建父类指针数组 …

PyTorch 深度学习之卷积神经网络(高级篇)Advanced CNN(十)

0. Revision 前面讲的比较简单的是 串行网络结构 1. GoogLeNet 1.1 Inception module w h 要一致 what is 11 convolution? 信息融合-eg.高中各门学科成绩比较(总分) 最主要工作:改变通道数量 why is 11 convolution? 减少10倍 1.2 implementation of inception module 拼…

一文1400字从0到1进行Jmeter分布式压力测试【图文并茂】

1、场景 在做性能测试时,单台机器进行压测可能达不到预期结果。主要原因是单台机器压到一定程度会出现瓶颈。也有可能单机网卡跟不上造成结果偏差较大。 例如4C8G的window server机器,使用UI方式,最高压测在1800并发(RT 20ms以内)左右。如果…

在C语言中,单向链表的插入操作通常包括以下哪些步骤?

#科技新势力# #极简极速学编程# 【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【C语言每日一题】 在C语言中,单向链表的插入操作通常包括以下哪些步骤? A选项:将新节点指针->指向->链表最后一个节点 B选项&#xff1…

2024级199管理类联考之逻辑核心基础

且与或 含义 A且B(A^B):同时存在 常见形式 A并且B既A又B不但A而且B虽然A但是BA或B:二者至少有一个成立(即A且非B,非A且B,A且B) 否定形式 且的否定 A且B否定形式:非(A^B) 非A 或 非B非A且非B否定形式:非(非A^非B) A 或 B非A且B否定形式:…

c# xml 参数读取读取的简单使用

完整使用之测试参数的读取(xml) 保存一个xml文档(如果没有就会生成一个默认的 里面的参数用的是我们默认设置的),之后每次更改里面的某项,然后保存 类似于重新刷新一遍。 这里所用的xml测试参数前面需要加…

淘宝天猫2023年双11红包活动入口在哪里活动时间是什么时候开始至什么时间结束2023年天猫淘宝双十一超级红包活动?

2023年淘宝天猫双11超级红包活动领取时间是从2023年10月24日20:00开始至11月11日23:59结束,淘宝天猫双十一活动时间内每天都可以领取1超级红包最高可得23888元。 2023年天猫淘宝双十一红包使用时间分为2个阶段:第一阶段是从2023年10月31日20:00开始至11…

螺杆支撑座对注塑机的生产过程有哪些重要影响?

螺杆支撑座对注塑机的生产过程具有重要影响,主要体现在以下几个方面: 1、精度和稳定性:螺杆支撑座能够提高注塑机的精度和稳定性,从而保证塑料制品的品质和一致性。通过提供稳定的支撑和承载,螺杆支撑座可以减少机器运…

高防CDN:网络安全的不可或缺之选

在当今数字化时代,网络攻击已经成为互联网上的一种不可避免的风险。为了应对不断升级的网络威胁,许多企业和组织正在采用高防御CDN(Content Delivery Network)技术,以确保他们的在线资产得到保护,用户体验得…

python 机器视觉 车牌识别 - opencv 深度学习 机器学习 计算机竞赛

1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于python 机器视觉 的车牌识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:3分 🧿 更多资…

JDBC封装查询单个和查询多个

Mybatis在转化时候可以将数据库任意类型全转字符串是没有问题的 下面封装存在一个问题就是需要数据库字段类型与实体类字段类型一致 实体类 //String columnName metaData.getColumnName(i 1); 这个方法返回实际列名 String columnLabel metaData.getColumnLabel(i 1);//该…

查看系统的核心信息

查看系统的版本 cat /etc/redhat-release查看系统的主机名 hostname uname -n 查看内核 uname -r查看网卡信息 ip a ifconfig 查看网关 ip route route -n netstat -rn 查看分区black大小 df -h 查看磁盘block大小 df -i 查看磁盘和分区大小 fdisk -l查看内存大小…

竞赛选题 深度学习YOLOv5车辆颜色识别检测 - python opencv

文章目录 1 前言2 实现效果3 CNN卷积神经网络4 Yolov56 数据集处理及模型训练5 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习YOLOv5车辆颜色识别检测 ** 该项目较为新颖,适合作为竞赛课题方向&#xff0…

Delay-Based 拥塞控制算法

上班七天了,有点崩溃,看一篇论文提神:A Delay-Based Approach for Congestion Avoidance in Interconnected Heterogeneous Computer networks,来自 Raj Jain,1989 年。这篇论文基于下图展开: 是不是很熟…

基于DBC Signal Group生成Autosar SR接口(2)

文章目录 前言m脚本生成BUS数据类型建立Input模块及关联对应的BUS数据类型实现效果总结 前言 上一篇文章中,介绍了DBC中SignalGroup的提取,对于已经提取好的Group信息,就可以批量操作生成Simulink BUS及Simulink接口模型了。本文介绍这部分的…

Element el-table 表格内容 样式错乱的问题

表格切换样式错乱展示 因为切换行的高度变化可能未异步渲染 解决方法&#xff1a; 在需要使用v-if渲染的el-table-column元素上加上一个不重复的key值即可解决问题 :key“Math.random()” <el-table-columnprop""label"问题"width"630.5px":…

你不一定知道的四种遍历进程的方法(c语言)

一、前言 有时候写代码的时候&#xff0c;我们需要遍历出系统的一些进程&#xff0c;一般我们是直接在任务管理器中查看&#xff0c;不过我们也可以自己写一个&#xff0c;下面小编将会从三个方面着手&#xff0c;给大家讲讲如何遍历进程。 二、系统快照 一般会用到了3个关键…

智慧公厕管理系统

在当今快速发展的科技时代&#xff0c;智慧城市管理成为了城市发展的重要趋势。而智慧公厕管理系统作为其中的一个重要组成部分&#xff0c;为公共卫生设施的管理提供了全新的解决方案&#xff0c;引领着智慧城市管理科技的新篇章。 一、智慧公厕管理系统的概念 什么是智慧公…

【基于windows desktop上的docker配置nacos,并采用宿主机访问】

1、拉取镜像&#xff08;以下命令全部基于powershell&#xff09; docker pull nacos/nacos-server2、启动容器 docker run -d -e PREFER_HOST_MODEhostname -e MODEstandalone -e JVM_XMS256m -e JVM_XMX256m -e JVM_XMN128m -p 8848:8848 --name nacos --restartalways nac…