一文详解深度学习中的Softmax是什么?原理与应用
09aaab-Softmax是什么? 这篇文章会把 Softmax 函数彻底讲清楚。从最直观的类比,到严谨的数学定义,再到手算验证、核心性质、数值稳定性问题,最后还会附上 NumPy 和 PyTorch 的代码实现。如果你对 Transformer 里的注意力机制也感兴趣,那 Softmax 在其中
09aaab-Softmax是什么?
这篇文章会把 Softmax 函数彻底讲清楚。从最直观的类比,到严谨的数学定义,再到手算验证、核心性质、数值稳定性问题,最后还会附上 NumPy 和 PyTorch 的代码实现。如果你对 Transformer 里的注意力机制也感兴趣,那 Softmax 在其中扮演的关键角色这里也一并涵盖了。

阅读路线图如下:先从直观类比入手理解 Softmax 是什么,然后掌握核心公式并拆解每个部分的作用。接着用手算例子验证公式,再深入了解三大性质,最后攻克数值稳定性问题并看代码实战。
1. 什么是 Softmax?
1.1 直观类比:投票计数器
想象一下班级评选“最受欢迎的同学”。每个同学都可以给其他人打分——分数任意,正数代表喜欢,负数代表讨厌。但最终我们需要的是每个人的“得票百分比”,加起来正好 100%。
Softmax 函数干的活就和这个“投票计数器”差不多:输入是任意实数(同学们的“支持度打分”),输出则是 [0,1] 之间的概率值并且总和为 1(最终的“得票百分比”)。关键的区别在于,Softmax 不是简单按比例缩放,它通过指数函数 放大了输入之间的差异,让得分高的获得更高权重,得分低的则被进一步压制。
1.2 基本定义
Softmax 函数,也叫 softargmax 或归一化指数函数,其作用是把任意实数向量转化为概率分布。给定一个 K 维实数向量 ,它对每个元素 的输出为:
其中 是自然对数的底。输出自然满足两个条件,确保它成为一个合法的概率分布:每个值都在 (0,1) 之间,且所有值之和恰好为 1。
2. 核心公式
Softmax 的计算其实就分两步。第一步是“指数化”:对每个输入 计算 。第二步是“归一化”:将每个指数值除以所有指数值的总和。
#### 2.1 为什么要用指数函数 ? 指数函数在这里扮演了三个关键角色。首先,它把任意实数映射为正数—— 对任何实数 x 都成立,这保证了输出为正。其次,它放大了差异——指数函数的增长速度极快, 而 ,即使输入只差 2,输出已经差了将近 7 倍——这让高分者能脱颖而出。最后,它保持了单调性: 严格递增,输入的顺序被忠实地保留下来。2.2 为什么分母要用求和?
分母 的作用就是归一化。把所有指数值加起来作为“总基数”,每个指数值除以这个总基数,结果就是每个输出变成了相对占比,范围在 0 到 1 之间,而且所有输出加起来恰好等于 1——一个标准的概率分布。
3. 手算示例
光说不练假把式。假设输入向量 ,咱们一步步来算。
第一步,计算指数值:,,。
第二步,计算分母:。
第三步,计算每个 Softmax 值:,,。验算一下,总和 ,完美。
注意到输入最高的 2.0 获得了 65.9% 的权重,而最低的 0.1 只拿到了 9.9%。输入之间的原始差距是 1.9,而输出权重的差距被放大到了 0.56。这就是指数函数在起作用。
4. 核心性质
4.1 保序性(Order Preservation)
这个性质很好理解:如果 ,那么 。简单说,打分最高的同学,最终得票率也是最高的。Softmax 不会“碘伏”排名。数学上这是因为指数函数严格单调递增,而且除以同一个正分母不会改变大小关系。
4.2 平移不变性(Translation Invariance)
这个性质非常有用:如果对输入向量的所有元素同时加上同一个常数 c,Softmax 的输出不变。证明也很直接,分子分母同时提取出一个 约掉就行了。直观理解就是,假设所有同学的分数都加了 10 分,大家加的一样多,最终得票百分比不变。这个性质是后面数值稳定性技巧的理论基础——我们可以安全地减去最大值来防止溢出,而不改变结果。
4.3 非缩放不变性(Non-Scaling Invariance)
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
手写Mini Cursor:Agent文件读写、命令执行与项目创建
基于ReAct循环构建的MiniCursorAgent,通过Node jsRuntime提供读文件、写文件、查看目录、执行命令四个工具,在本地工作区自主完成创建ReactTodoList项目、实现功能、添加样式动画等编程任务,模型根据工具结果循环决策。
一条脚本结合多步流水线与HereDoc实现全自动内容生产
多步流水线将多个命令调用串联成自动化生产流程,HereDoc通过cat命令以标准输入方式传递长文本prompt,避免引号嵌套引发的混乱,显著提升脚本可读性与可维护性,是处理长文本提示的有效方法,广泛应用于自动化脚本编写。
iOS设备上PlayWright MCP服务器的安装配置与使用详细指南
基于Appium的iOS设备自动化测试MCPServer,提供屏幕截图、元素点击及UI树获取功能,支持Stdio与SSE两种运行模式,可无缝接入Trae等支持MCP协议的AI客户端,所有工具共享同一Appium会话,避免重复启动开销,显著提升测试效率。
MCP Server开发入门与协议调试生产部署
MCPServer开发需解决五个工程问题:多工具共享数据层;输入验证含枚举值、必填字段和业务规则;错误处理区分硬错误与软反馈;日志必须写入stderr避免破坏协议;Resources使LLM能动态获取上下文数据。以JiraServer为例,实现4个工具、1个资源和1个Prompt,覆盖完整测试用例。
机器学习基本术语详解与核心概念解析
机器学习以数据为基础,样本由属性构成特征向量。训练从数据中学习模型,有标记的样本用于监督学习(分类与回归),无标记的样本用于无监督学习(聚类)。泛化能力是衡量模型对新样本适用性的关键标准。
- 热门数据榜
相关攻略
2026-07-13 16:15
2026-07-13 16:14
2026-07-13 16:14
2026-07-13 16:14
2026-07-13 16:14
2026-07-13 16:14
2026-07-13 16:13
2026-07-13 16:13
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

