机器学习:Softmax介绍及代码实现

Softmax原理
Softmax函数用于将分类结果归一化,形成一个概率分布。作用类似于二分类中的Sigmoid函数。
对于一个k维向量z,我们想把这个结果转换为一个k个类别的概率分布p(z)。softmax可以用于实现上述结果,具体计算公式为:

对于k维向量z来说,其中zi∈Rzi∈R,我们使用指数函数变换可以将元素的取值范围变换到(0,+∞)(0,+∞),之后我们再所有元素求和将结果缩放到[0,1],形成概率分布。
常见的其他归一化方法,如max-min、z-score方法并不能保证各个元素为正,且和为1。
Softmax性质
输入向量x加上一个常数c后求softmax结算结果不变,即:

我们使用softmax(x)的第i个元素的计算来进行证明:

函数实现
由于指数函数的放大作用过于明显,如果直接使用softmax计算公式
进行函数实现,容易导致数据溢出(上溢)。所以我们在函数实现时利用其性质:先对输入数据进行处理,之后再利用计算公式计算。具体使得实现步骤为:
- 查找每个向量x的最大值c;
- 每个向量减去其最大值c, 得到向量y = x-c;
- 利用公式进行计算 s o f t m a x ( x ) = s o f t m a x ( x − c ) = s o f t m a x ( y ) softmax(x) = softmax(x-c) = softmax(y) softmax(x)=softmax(x−c)=softmax(y)
import numpy as np
def softmax(x, axim=1):'''x: m*n m个样本,n个分类输出return s:m*n'''row_max = np.max(x, axis=axis) # 计算最大值row_max = row_max.reshape(-1, 1) # 将数据展开为m*1的形状,方便使用广播进行作差x = x - row_max # 减去最大值x_exp = np.exp(x) # 求exps = x_exp / np.sum(x_exp, axis=axis, keepdim=True) # 求softmaxreturn s
相关文章:
机器学习:Softmax介绍及代码实现
Softmax原理 Softmax函数用于将分类结果归一化,形成一个概率分布。作用类似于二分类中的Sigmoid函数。 对于一个k维向量z,我们想把这个结果转换为一个k个类别的概率分布p(z)。softmax可以用于实现上述结果,具体计算公式为: 对于…...
python基于flask的网上订餐系统769b9-django+vue
课题主要分为两大模块:即管理员模块和用户模块,主要功能包括个人中心、用户管理、菜品类型管理、菜品信息管理、留言反馈、在线交流、系统管理、订单管理等; 如果用户想要交换信息,他们需要满足双方交换信息的需要。由于时间有限…...
jenkins 发布远程服务器并部署项目
安装参考另一个文章 配置maven 和 jdk 和 git 注意jdk的安装目录,是jenkins 安装所在服务器的jdk目录 注意maven的目录 是jenkins 安装所在服务器的maven目录 注意git的目录 是jenkins 安装所在服务器的 git 目录 安装 Publish Over SSH 插件 配置远程服务器 创…...
【数学建模】【2024年】【第40届】【MCM/ICM】【D题 五大湖的水位控制问题】【解题思路】
一、题目 (一) 赛题原文 2024 ICM Problem D: Great Lakes Water Problem Background The Great Lakes of the United States and Canada are the largest group of freshwater lakes in the world. The five lakes and connecting waterways const…...
【开源】JAVA+Vue+SpringBoot实现公司货物订单管理系统
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 客户管理模块2.2 商品维护模块2.3 供应商管理模块2.4 订单管理模块 三、系统展示四、核心代码4.1 查询供应商信息4.2 新增商品信息4.3 查询客户信息4.4 新增订单信息4.5 添加跟进子订单 五、免责说明 一、摘要 1.1 项目…...
###C语言程序设计-----C语言学习(12)#进制间转换,十进制,二进制,八进制,十六进制
前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。 计算机处理的所有信息都以二进制形式表示,即数据的存储和计算都采…...
锐捷设备常用命令
一、命令模式 命令行主要有用户模式、特权模式、全局模式、VLAN模式、接口模式、线程模式 switch> "用户模式"switch# "特权模式"switch(config) "全局模式"switch(conf…...
python:lxml 读目录.txt文件,用 xmltodict 转换为json数据,生成jstree所需的文件
请参阅:java : pdfbox 读取 PDF文件内书签 请注意:书的目录.txt 编码:UTF-8,推荐用 Notepad 转换编码。 pip install lxml ; lxml-5.1.0-cp310-cp310-win_amd64.whl (3.9 MB) pip install xmltodict ; lxml 读目录.txt文件&…...
【Spring】Spring 对 Ioc 的实现
一、Ioc 控制反转 控制反转是一种思想 控制反转是为了降低程序耦合度,提高程序扩展力,达到 OCP 原则,达到 DIP 原则 控制反转,反转的是什么? 将对象的创建权利交出去,交给第三方容器负责 将对象和对象之…...
QT学习文件操作类 QFile
(一)QFile QFile 是 Qt 框架中用于文件处理的一个类。它提供了读取和写入文件的功能,支持文本和二进制文件。QFile 继承自 QIODevice ,因此它可以像其他 IO 设备一样使用。 (1)主要功能 1. 文件读写…...
VOL_常用记录!!
目录 前端1.js如何获取当前时间(yy-MM-dd HH:MM:SS)2.http请求3.grid扩展js常用 后端1.待补充 前端 1.js如何获取当前时间(yy-MM-dd HH:MM:SS) getCurrentTime() {const now new Date();return ${now.getFullYear()}-${(now.getMonth() 1).toString().padStart(2, "0&…...
解决Typora导出HTML不显示图片
解决Typora导出HTML不显示图片 产生原因 Typora导出HTML不显示图片,可能时图片存放在我们的硬盘中。 我们可以将markdown中的图片转化为base64格式,嵌入到html中。 解决步骤 首先,下载 TyporaToBase64.jar 密码:45jq 其次,将…...
React Native开发iOS实战录
文章目录 背景环境准备主要工具xcode安装安装CocoaPods 基本步骤采用Expo go运行iOS模拟器运行安装在真机上测试发布到苹果商店 常见问题ruby3在macOS上编译失败import of module ‘glog.glog.log_severity’ appears within namespace ‘google’yarn网络问题pod安装失败unabl…...
C++局部变量与全局变量
在C中,可以为函数的参数指定默认值。这样做的好处是在调用函数时,如果没有提供对应的参数,那么将会使用默认值。 下面是一个求2个或3个数中最大数的函数的示例,其中使用了默认参数: #include <iostream> using…...
深入理解ES的倒排索引
目录 数据写入过程 词项字典 term dictionary 倒排表 posting list FOR算法 RBM算法 ArrayContainer BitMapContainer 词项索引 term index 在Elasticsearch中,倒排索引的设计无疑是惊为天人的,下面看下倒排索引的结构。 倒排索引分为词项索引【…...
HTML世界之第一重天
一、HTML 元素 注:HTML 文档由 HTML 元素定义。 1.HTML 元素 开始标签 * 元素内容 结束标签 * <p> 这是一个段落 </p> <a href"default.htm"> 这是一个链接 </a> <br> 换行 开始标签常被称为起始标签&…...
docker run报 docker: Error response from daemon: no command specified.
docker run报 docker: Error response from daemon: no command specified. 1. export出mysql的container为tar, 拷贝到另一台虚拟机, import该tar为image, docker run该image时报 docker: Error response from daemon: no command specified. 时间240211 export出mysql的con…...
vue3 之 商城项目—详情页
整体认识 路由配置 准备组件模版 <script setup></script><template><div class"xtx-goods-page"><div class"container"><div class"bread-container"><el-breadcrumb separator">">&…...
Linux笔记之Docker进行镜像备份与迁移
Linux笔记之Docker进行镜像备份与迁移 ——2024-02-11 code review! 文章目录 Linux笔记之Docker进行镜像备份与迁移1. 导出容器文件系统为 tar 归档文件2. 将 tar 归档文件导入为新的 Docker 镜像3. 运行新的 Docker 镜像并创建容器 1. 导出容器文件系统为 tar 归档文件 要导…...
C#,欧拉常数(Euler Constant)的算法与源代码
1 欧拉常数 欧拉常数最先由瑞士数学家莱昂哈德 欧拉 (Leonhard Euler) 在1735年发表的文章《De Progressionibus harmonicus observationes》中定义。欧拉曾经使用γ作为它的符号,并计算出了它的前6位,1761年他又将该值计算到了16位 。 欧拉常数最先由瑞…...
影刀+即刻:碎片化信息自动归类的联动玩法
影刀与即刻联动实现信息自动归类影刀RPA作为自动化工具,与即刻APP的推送功能结合,可高效管理碎片化信息。以下为具体实现方法:创建即刻机器人 在即刻APP中创建自定义机器人,设置关键词触发规则。例如设置"#工作""#…...
5个技巧掌握DINO注意力可视化:从入门到模型可解释性分析
5个技巧掌握DINO注意力可视化:从入门到模型可解释性分析 【免费下载链接】dino PyTorch code for Vision Transformers training with the Self-Supervised learning method DINO 项目地址: https://gitcode.com/gh_mirrors/di/dino 视觉模型可解释性已成为人…...
IP查询API性能评测指南:从响应时间到QPS的完整评估方法
在广告投放、反作弊、内容风控、日志分析等系统中,IP地理位置查询通常是高频、基础、不可或缺的环节。然而,很多团队在技术选型时往往停留在“能查到就行”的层面,忽视了其对系统性能、稳定性与长期成本的影响。 本文从技术评估角度出发&…...
如何自学使用关键字排名软件_关键字排名软件与SEO有什么关系
如何自学使用关键字排名软件_关键字排名软件与SEO有什么关系 在当今数字化时代,SEO(搜索引擎优化)已成为每一个网站运营者必不可少的技能。其中,关键字排名软件扮演了极其重要的角色。如何自学使用关键字排名软件呢?关…...
【MySQL】第五节 - 事务实战详解:从基础到并发控制(附 Navicat 可运行实验脚本)
《MySQL 事务实战详解:从基础到并发控制(附 Navicat 可运行实验脚本)》 为什么你必须掌握 MySQL 事务? 在现代应用系统中,数据一致性是核心诉求。事务(Transaction) 是保证数据完整性的“黄金…...
2026 企业AI 超级员工选型建议:告别伪智能,选对企业级智能体
2026 年,AI Agent 智能体技术全面落地商用,AI 超级员工已然成为企业数字化转型、降本增效的核心抓手,更是营销、运营等业务场景的刚需配置。但当下市场产品鱼龙混杂,定价从数千元到数十万元跨度极大,功能宣传动辄标榜 …...
4步轻松搞定Windows系统优化:Win11Debloat让你的电脑重获新生
4步轻松搞定Windows系统优化:Win11Debloat让你的电脑重获新生 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter…...
springboot+vue基于web的社区交互图书管理系统的设计系统
目录同行可拿货,招校园代理 ,本人源头供货商系统功能模块划分关键技术实现数据库设计要点社区交互设计安全防护措施项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作同行可拿货,招校园代理 ,本人源头供货商 系统功能模块划分 后…...
Scrcpy:重新定义安卓设备跨平台交互体验
Scrcpy:重新定义安卓设备跨平台交互体验 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/gh_mirrors/sc/scrcpy 一、跨设备交互的现实困境:发现问题本质 在数字化办公与移动开发的日常场景中&a…...
新手入门DetectionLab:10个步骤掌握企业网络安全检测基础
新手入门DetectionLab:10个步骤掌握企业网络安全检测基础 【免费下载链接】DetectionLab clong/DetectionLab: DetectionLab是一个开源项目,旨在建立一个高度可配置的虚拟环境以模拟企业网络,用于检测恶意活动、演练入侵检测系统(…...
