当前位置: 首页 > article >正文

一文详解Softmax与Sigmoid函数

Softmax与Sigmoid函数详解引言在机器学习和深度学习中Softmax和Sigmoid是两个最常用的激活函数尤其常见于分类任务的输出层设计。尽管它们都能将实数映射到概率空间但其数学特性、应用场景和底层逻辑存在显著差异。本文将从数学推导、梯度行为、应用场景和代码实现四个维度对二者进行全面对比分析。一、Sigmoid函数1.1 数学定义Sigmoid函数定义为σ(z)11e−z \sigma(z) \frac{1}{1 e^{-z}}σ(z)1e−z1​它将任意实数zzz映射到(0,1)(0,1)(0,1)区间输出可解释为概率值。1.2 导数特性Sigmoid的导数具有以下关键性质dσdzσ(z)(1−σ(z)) \frac{d\sigma}{dz} \sigma(z)(1 - \sigma(z))dzdσ​σ(z)(1−σ(z))导数在z0z0z0时达到最大值0.25随着∣z∣|z|∣z∣增大快速趋近于0导致梯度消失问题。1.3 应用场景二分类问题输出层单个节点表示正类概率门控机制如LSTM中的遗忘门、输入门概率校准将回归输出转化为概率二、Softmax函数2.1 数学定义对于KKK类分类问题Softmax函数定义为Softmax(zi)ezi∑j1Kezj(i1,...,K) \text{Softmax}(z_i) \frac{e^{z_i}}{\sum_{j1}^K e^{z_j}} \quad (i1,...,K)Softmax(zi​)∑j1K​ezj​ezi​​(i1,...,K)它确保所有输出值的和为1构成完整的概率分布。2.2 导数与雅可比矩阵Softmax的梯度计算涉及雅可比矩阵∂Si∂zj{Si(1−Sj)ij−SiSji≠j \frac{\partial S_i}{\partial z_j} \begin{cases} S_i(1 - S_j) i j \\ -S_i S_j i \neq j \end{cases}∂zj​∂Si​​{Si​(1−Sj​)−Si​Sj​​ijij​该特性使得梯度计算与所有节点的输出相关。2.3 应用场景多分类任务输出层生成互斥类别概率注意力机制如Transformer中的注意力权重计算概率归一化多任务学习的输出标准化三、关键差异对比特性SigmoidSoftmax输出空间独立概率 (0,1)归一化概率分布 (∑1)互斥性支持多标签分类单标签分类梯度依赖仅与当前节点相关与所有节点相关计算复杂度O(1)O(K)典型应用二分类/多标签多分类四、数值稳定性实践4.1 Softmax的溢出问题原始实现可能因ezie^{z_i}ezi​过大导致数值溢出。改进方案Softmax(zi)ezi−max(z)∑ezj−max(z) \text{Softmax}(z_i) \frac{e^{z_i - \text{max}(z)}}{\sum e^{z_j - \text{max}(z)}}Softmax(zi​)∑ezj​−max(z)ezi​−max(z)​4.2 Sigmoid的边界情况极端输入时可能出现梯度消失defsigmoid(z):returnnp.where(z0,1/(1np.exp(-z)),np.exp(z)/(1np.exp(z)))五、PyTorch实现对比5.1 Sigmoid层importtorch.nnasnn modelnn.Sequential(nn.Linear(128,1),nn.Sigmoid()# 二分类输出)loss_fnnn.BCELoss()5.2 Softmax层modelnn.Sequential(nn.Linear(128,10),nn.Softmax(dim1)# 10类分类)# PyTorch CrossEntropyLoss已包含Softmaxloss_fnnn.CrossEntropyLoss()六、常见问题解答Q1: 二分类能否用Softmax可以但等效于同时使用两个Sigmoid节点。此时Softmax输出[p,1−p][p, 1-p][p,1−p]与单Sigmoid输出ppp数学等价但计算效率更低。Q2: 多标签分类如何处理应使用多个Sigmoid节点每个类别独立判断而非Softmax。例如图像中同时包含猫和狗的场景。Q3: 为什么推荐CrossEntropyLoss而非手动实现框架级实现融合了LogSoftmax与NLL Loss兼具数值稳定性和计算效率。七、总结与选择建议明确问题类型单标签 → Sigmoid 多标签 → Softmax关注计算效率类别数超过1000时Softmax计算成本显著增加梯度动态Sigmoid需注意梯度消失适当使用Xavier初始化概率解释需要严格概率分布时优先Softmax总的来说Softmax 和 Sigmoid 函数都是神经网络中使用的激活函数。它们之间的主要区别在于 Softmax 函数适用于多类分类问题而 Sigmoid 函数更适合二分类问题。Softmax 函数用于预测模型中的多类目标变量当其输出值总和为 1 时可以将其解释为这些类的概率。它将输入压缩在 0 和 1 之间因此它的行为类似于范围从 0 到 1 而不是 -1 到 1 的广义逻辑激活函数因此它比 sigmoid 更适合多类分类sigmoid 每个输入向量只返回一个数字每个示例只提供一个类预测。另一方面Sigmoid 函数最适合二元分类问题因为它的输出范围从 0 到 1代表这两个结果0 或 1。这种类型的模型也称为逻辑回归可以通过使用权重 w 进行线性组合过程根据输入 x 值估计任意概率。这个概率将决定应该应用哪个类标签如果 p(x) 阈值则我们应用 A 类否则应用 B 类。当比较 softmax 或 sigmoid 函数带来的性能提升时并没有一个严格的结果而是取决于几个因素例如数据集的大小/复杂性/特征等。但是如果正确实施一般来说这两个模型应该提供相似的性能这也取决于计算成本等因素Softmax 在标准化之前可能由于值较高而存在一些数值稳定性问题。

相关文章:

一文详解Softmax与Sigmoid函数

Softmax与Sigmoid函数详解 引言 在机器学习和深度学习中,Softmax和Sigmoid是两个最常用的激活函数,尤其常见于分类任务的输出层设计。尽管它们都能将实数映射到概率空间,但其数学特性、应用场景和底层逻辑存在显著差异。本文将从数学推导、梯…...

PowerBI主题模板:让数据可视化设计效率提升80%的开源解决方案

PowerBI主题模板:让数据可视化设计效率提升80%的开源解决方案 【免费下载链接】PowerBI-ThemeTemplates Snippets for assembling Power BI Themes 项目地址: https://gitcode.com/gh_mirrors/po/PowerBI-ThemeTemplates 在数据驱动决策的时代,Po…...

效率飙升:跳过激活步骤,在快马平台实现你的下一个效率工具灵感

最近在尝试优化自己的工作节奏,发现番茄工作法特别适合需要高度专注的任务。但市面上的番茄钟工具要么功能太复杂,要么需要下载安装,反而分散了注意力。于是决定自己动手做一个极简的网页版番茄钟,正好试试InsCode(快马)平台的即时…...

用快马快速构建排序算法可视化原型,直观比较性能差异

最近在复习算法基础时,发现单纯看代码很难直观理解不同排序算法的差异。于是尝试用InsCode(快马)平台快速搭建了一个排序算法可视化工具,整个过程比想象中简单很多,分享下具体实现思路。 需求分析 首先明确需要展示五种经典排序算法&#xff…...

实战应用:基于快马平台构建支持高并发的医院预约系统后端服务

今天想和大家分享一个实战项目:基于InsCode(快马)平台构建医院预约系统后端服务的经验。这个系统需要处理高并发预约、确保数据一致性,还要对接短信通知等第三方服务,对代码健壮性要求很高。 系统架构设计 医院预约系统的核心是要解决"…...

AI ABG制作与运营指南

使用ABG轻松玩转Instagram。我创建了一个AI生成的ABG,发布了一些Reels短视频,5天内就获得了1000粉丝。无需购买粉丝,也无需庞大的现有粉丝群。以下是详细步骤。 1、创建你的ABG 首先,你需要创建自己的ABG。这是你整个账号的门面…...

5步解锁Masa Mods全中文体验:从安装到精通的本地化指南

5步解锁Masa Mods全中文体验:从安装到精通的本地化指南 【免费下载链接】masa-mods-chinese 一个masa mods的汉化资源包 项目地址: https://gitcode.com/gh_mirrors/ma/masa-mods-chinese Masa Mods汉化资源包是解决Minecraft玩家语言障碍的关键工具&#xf…...

C语言:数组详解

C语言:数组详解一.数组的基本概念1.基本概念2.主要特性3.基本操作二.数组的创建、初始化与类型1.一维数组的创建2.一维数组的初始化3.数组的类型4.一维数组的常见操作一维数组下标一维数组元素的打印一维数组的输入与输出5.一维数组的内存结构三.多维数组1.基本概念…...

虚拟资产金融犯罪治理中公私协同防控体系研究 —— 以韩国 Upbit 与警方合作为例

摘要 在虚拟资产快速普及与金融犯罪手段持续智能化的背景下,语音钓鱼、投资欺诈、洗钱套现等新型犯罪呈现跨境化、技术化、链条化特征,传统单一执法模式存在数据滞后、响应迟缓、技术不足等局限,难以形成有效遏制。2026 年 4 月,韩…...

打造一个产品评论分析AI工具

客户评论是公司可访问的最丰富的产品反馈来源之一。它们揭示了客户在购买后如何实际体验产品,他们喜欢什么,什么让他们沮丧,他们期望什么,以及产品在哪里不足。 这种反馈特别有价值,因为它是自发的。客户自然会谈及对…...

Tsuru日志聚合性能优化:10个提升吞吐量与降低延迟的终极技巧

Tsuru日志聚合性能优化:10个提升吞吐量与降低延迟的终极技巧 【免费下载链接】tsuru Open source and extensible Platform as a Service (PaaS). 项目地址: https://gitcode.com/gh_mirrors/ts/tsuru Tsuru作为开源且可扩展的Platform as a Service (PaaS)平…...

Tessent测试流程文件里的Tcl魔法:用if/else让你的扫描测试配置更灵活

Tessent测试流程文件里的Tcl魔法:用if/else让你的扫描测试配置更灵活 在芯片测试领域,Tessent Shell作为业界领先的测试解决方案,其Test Procedure File(测试流程文件)的灵活运用往往能决定测试效率的高低。今天我们要…...

别再折腾虚拟机了!Win10下用Geth 1.13+搭建以太坊私有链完整指南(含常见报错解决)

Windows原生环境高效搭建以太坊私有链实战手册 如果你正在寻找一份真正能解决实际问题的以太坊私有链搭建指南,这篇文章就是为你准备的。不同于那些只展示理想流程的教程,我们将直面Windows环境下最常见的报错、配置陷阱和性能瓶颈。许多开发者习惯在虚拟…...

如何确保MVP.css样式一致性:完整的自动化测试策略指南

如何确保MVP.css样式一致性:完整的自动化测试策略指南 【免费下载链接】mvp MVP.css — Minimalist classless CSS stylesheet for HTML elements 项目地址: https://gitcode.com/gh_mirrors/mv/mvp MVP.css是一个极简主义的无类CSS样式表,专为HT…...

MVP.css跨浏览器兼容性终极指南:7个实用技巧解决常见问题

MVP.css跨浏览器兼容性终极指南:7个实用技巧解决常见问题 【免费下载链接】mvp MVP.css — Minimalist classless CSS stylesheet for HTML elements 项目地址: https://gitcode.com/gh_mirrors/mv/mvp MVP.css是一款极简主义的无类CSS样式表,专为…...

通义千问2.5-7B省钱部署案例:GGUF量化仅4GB,3060流畅运行

通义千问2.5-7B省钱部署案例:GGUF量化仅4GB,3060流畅运行 用一张RTX 3060显卡,4GB显存就能流畅运行70亿参数的大模型?这不是天方夜谭,而是通义千问2.5-7B带来的真实体验。 1. 为什么选择通义千问2.5-7B? 如…...

PETRV2-BEV训练效果对比展示:nuscenes高精度vs xtreme1泛化挑战

PETRV2-BEV训练效果对比展示:nuscenes高精度vs xtreme1泛化挑战 最近在星图AI算力平台上折腾了一下PETRV2-BEV模型,分别用nuscenes和xtreme1两个数据集做了训练和测试。结果挺有意思的,一个在标准数据集上表现不错,另一个在泛化性…...

终极图像分类指南:从海豚到多类别的机器学习实战

终极图像分类指南:从海豚到多类别的机器学习实战 【免费下载链接】have-fun-with-machine-learning An absolute beginners guide to Machine Learning and Image Classification with Neural Networks 项目地址: https://gitcode.com/gh_mirrors/ha/have-fun-wit…...

MVP.css暗黑模式终极指南:如何完美适配用户偏好与系统设置

MVP.css暗黑模式终极指南:如何完美适配用户偏好与系统设置 【免费下载链接】mvp MVP.css — Minimalist classless CSS stylesheet for HTML elements 项目地址: https://gitcode.com/gh_mirrors/mv/mvp MVP.css是一款极简主义的无类CSS样式表,为…...

如何高效使用XUnity.AutoTranslator:Unity游戏实时翻译的完整实战指南

如何高效使用XUnity.AutoTranslator:Unity游戏实时翻译的完整实战指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 在全球化游戏市场日益繁荣的今天,语言障碍依然是许多玩家体验…...

ESPHome配置避坑指南:从编译到OTA,让你的ESP32-CAM一次点亮不折腾

ESPHome实战避坑手册:ESP32-CAM从编译到OTA的进阶配置策略 第一次接触ESP32-CAM时,我对着闪烁的蓝色LED灯整整调试了六个小时——不是因为硬件故障,而是YAML配置里一个不起眼的frequency参数写错了单位。这种令人抓狂的经历促使我整理了这份实…...

Tsuru容器网络终极性能测试指南:7大CNI插件深度对比与优化策略

Tsuru容器网络终极性能测试指南:7大CNI插件深度对比与优化策略 【免费下载链接】tsuru Open source and extensible Platform as a Service (PaaS). 项目地址: https://gitcode.com/gh_mirrors/ts/tsuru Tsuru作为开源可扩展的PaaS平台,其容器网络…...

如何实现重组抗体的精准定制?

一、重组抗体定制与传统抗体制备有何本质区别?重组抗体定制是通过基因工程技术在体外构建并表达目标抗体的创新方法。与传统杂交瘤技术相比,重组抗体技术具有多方面的显著优势。首先,其生产完全不依赖于动物免疫系统,而是通过人工…...

5分钟搞定HeyGem数字人视频生成:科哥二次开发版,批量处理指南

5分钟搞定HeyGem数字人视频生成:科哥二次开发版,批量处理指南 1. 系统简介与核心价值 HeyGem数字人视频生成系统批量版是科哥基于原版进行的二次开发版本,专门针对企业级批量视频生成需求进行了优化。这个工具能够将一段音频与多个视频素材…...

Taskwarrior完整国际化指南:如何实现多语言任务管理

Taskwarrior完整国际化指南:如何实现多语言任务管理 【免费下载链接】taskwarrior Taskwarrior - Command line Task Management 项目地址: https://gitcode.com/gh_mirrors/ta/taskwarrior Taskwarrior是一款功能强大的命令行任务管理工具,支持完…...

终极指南:如何实现gumbo-parser跨编译器开发,统一代码风格与宏定义

终极指南:如何实现gumbo-parser跨编译器开发,统一代码风格与宏定义 【免费下载链接】gumbo-parser An HTML5 parsing library in pure C99 项目地址: https://gitcode.com/gh_mirrors/gum/gumbo-parser Gumbo-Parser 是一款纯C99实现的HTML5解析库…...

告别重复造轮子:用快马一键生成可扩展的高效ibbot开发框架

最近在开发一个智能对话机器人(ibbot)时,发现每次从零开始搭建框架都要重复处理很多基础工作。经过一番探索,我发现用InsCode(快马)平台可以快速生成可扩展的项目框架,效率提升非常明显。下面分享下我的实践心得&#…...

Tsuru高可用部署终极指南:构建零单点故障的企业级PaaS平台

Tsuru高可用部署终极指南:构建零单点故障的企业级PaaS平台 【免费下载链接】tsuru Open source and extensible Platform as a Service (PaaS). 项目地址: https://gitcode.com/gh_mirrors/ts/tsuru Tsuru是一个开源且可扩展的平台即服务(PaaS&am…...

rabbitmq新手福音,快马ai生成带详解注释的入门代码,轻松理解消息队列

RabbitMQ新手入门:从零开始理解消息队列 最近在学习消息队列技术,发现RabbitMQ作为最流行的开源消息代理之一,对于新手来说概念确实有点抽象。不过通过InsCode(快马)平台的帮助,我很快就能上手实践了。下面分享我的学习过程&…...

GPCC数据不止看趋势:手把手教你用MATLAB做降水信号的谐波分析(附周年振幅相位代码)

GPCC数据不止看趋势:手把手教你用MATLAB做降水信号的谐波分析(附周年振幅相位代码) 长江流域的降水变化对农业生产、水资源管理和生态保护都具有重要意义。当我们拿到GPCC的月尺度降水数据时,除了绘制时间序列图观察趋势外&#x…...