尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Softmax 函数全面而详细的解读,原理、图像、应用 - 详解

Softmax 函数全面而详细的解读,原理、图像、应用 - 详解
📅 发布时间:2026/6/21 12:47:23

Softmax 函数全面而详细的解读,原理、图像、应用 - 详解

2025-11-15 20:18  tlnshuju  阅读(0)  评论(0)    收藏  举报

1. 什么是 Softmax?—— 直观理解

想象一个场景:你训练了一个模型来识别图片中的动物,模型最终输出了三个原始分数(称为Logits),分别对应“猫”、“狗”和“兔子”,数值为 [3.0, 1.0, 0.2]。

猫吗?大家需要一种方法,将这些就是这些数字本身很难解释。它们代表可能性吗?3.0 是 0.2 的 15 倍,因而肯定任意实数的分数转化为一个概率分布。

概率分布需要满足两个条件:

  1. 每个概率值都在0 到 1 之间。
  2. 所有概率之和等于 1。

Softmax 正是搞定这个转换的数学函数。它接收一组任意实数值的向量,并将其压缩到 (0, 1) 区间内,同时保证所有输出值的和为 1。

对于上面的例子 [3.0, 1.0, 0.2],应用 Softmax 后,我们可能会得到 [0.84, 0.11, 0.05]。
这意味着:

  • 图片是猫的概率为84%
  • 图片是狗的概率为11%
  • 图片是兔子的概率为5%

这个结果就非常直观且易于理解了。


2. 原理与数学公式

公式

给定一个输入向量z= [z₁, z₂, …, zₙ],其中 zᵢ 是第 i 个类别的 Logit 值,Softmax 的计算公式为:

σ(zi)=ezi∑j=1nezjfor i=1,2,…,n \sigma(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{n} e^{z_j}} \quad \text{for } i = 1, 2, \dots, nσ(zi​)=∑j=1n​ezj​ezi​​for i=1,2,…,n

其中:

  • $\sigma(z_i) $是第 i 个类别的输出概率。
  • ezie^{z_i}ezi​是对第 i 个 Logit 取指数,确保结果为正数。
  • ∑j=1nezj\sum_{j=1}^{n} e^{z_j}∑j=1n​ezj​是所有类别指数值的总和,起到归一化的作用,确保所有概率之和为 1。
计算过程详解(以 [3.0, 1.0, 0.2] 为例)
  1. 计算指数(Exponentiate):对每个 Logit 计算 (e^{z_i})。

    • e3.0≈20.0855e^{3.0} ≈ 20.0855e3.0≈20.0855
    • e1.0≈2.7183e^{1.0} ≈ 2.7183e1.0≈2.7183
    • e0.2≈1.2214e^{0.2} ≈ 1.2214e0.2≈1.2214
  2. 计算指数和(Sum):

    • (总和 = 20.0855 + 2.7183 + 1.2214 ≈ 24.0252)
  3. 归一化(Normalize):将每个指数值除以总和,得到概率。

    • P(猫)=20.0855/24.0252≈0.836P(猫) = 20.0855 / 24.0252 ≈ 0.836P(猫)=20.0855/24.0252≈0.836
    • P(狗)=2.7183/24.0252≈0.113P(狗) = 2.7183 / 24.0252 ≈ 0.113P(狗)=2.7183/24.0252≈0.113
    • P(兔子)=1.2214/24.0252≈0.051P(兔子) = 1.2214 / 24.0252 ≈ 0.051P(兔子)=1.2214/24.0252≈0.051

最终得到概率分布 [0.836, 0.113, 0.051]。

关键特性
  • 放大差异:指数函数会放大高分值的效应。最高分(3.0)对应的概率(0.836)远高于其他,使其在概率上占据绝对主导地位。
  • 平移不变性:如果给所有 Logits 都加上一个常数 C,Softmax 的输出结果不变。
    • 证明: ezi+C∑ezj+C=ezi⋅eC(∑ezj)⋅eC=ezi∑ezj\frac{e^{z_i + C}}{\sum e^{z_j + C}} = \frac{e^{z_i} \cdot e^C}{(\sum e^{z_j}) \cdot e^C} = \frac{e^{z_i}}{\sum e^{z_j}}∑ezj​+Cezi​+C​=(∑ezj​)⋅eCezi​⋅eC​=∑ezj​ezi​​
    • 这个性质在数值计算中极其有用。

“Softmax”?就是3. 为什么

这个名字来源于它与 “Hardmax” (或称 Argmax) 的对比。

  • Hardmax (Argmax): 它会将最大的分量置为 1,其余全部置为 0。

    • 对于 [3.0, 1.0, 0.2],Hardmax 输出为 [1, 0, 0]。
    • 这是一个“非黑即白”的选择,没有提供任何关于其他可能性的信息。
  • Softmax: 它提供了一个“软化”的版本。虽然它仍然偏向于最大值,但保留了其他类别的相对可能性信息,输出是一个平滑的概率分布。

    • 对于 [3.0, 1.0, 0.2],Softmax 输出为 [0.84, 0.11, 0.05]。
    • 狗”。就是这不仅是“猫”,而且是“很有可能是猫,但有一点点可能

这种“软化”的特性在模型训练中至关重要,因为它提供了梯度。Hardmax 在绝大多数地方梯度为0,无法进行梯度下降学习,而 Softmax 处处可微,非常适合与反向传播算法结合。


4. 应用场景

Softmax 几乎是现代深度学习中多分类问题 的标配。

  1. 图像分类

    • 场景:识别图片中是猫、狗、汽车、飞机等。
    • 流程:卷积神经网络 (CNN) 提取特征 → 全连接层输出 N 个 Logits (N=类别数) → Softmax 层将 Logits 转化为 N 个类别的概率。
  2. 自然语言处理 (NLP)

    • 场景:文本分类(如情感分析、新闻主题分类)、语言模型预测下一个词。
    • 流程:循环神经网络 (RNN) 或 Transformer 处理序列 → 最后输出层产生每个可能的词(在词汇表中)的 Logit → Softmax 计算出每个词的概率,选择概率最高的词作为下一个输出。
  3. 注意力机制

    • 在 Transformer 和 ChatGPT 等模型中,注意力权重的计算本质上就是一个 Softmax 运行。它接收一组“得分”(Query 和 Key 的相似度),然后通过 Softmax 将其归一化为加和为 1 的权重,表示在生成当前词时应该“注意”输入序列中各个部分的程度。

5. 关键细节与常见问题

1. 数值稳定性

直接计算 (e^{z_i}) 可能会导致数值溢出(如果 (z_i) 很大)。为了解决这个问题,在实践中我们使用一个数值稳定的版本:

σ(zi)=ezi−max(z)∑j=1nezj−max(z) \sigma(z_i) = \frac{e^{z_i - \text{max}(z)}}{\sum_{j=1}^{n} e^{z_j - \text{max}(z)}}σ(zi​)=∑j=1n​ezj​−max(z)ezi​−max(z)​

通过减去向量中的最大值(记为 max(z)),指数函数的参数最大为 0,从而避免了上溢,并且根据平移不变性,计算结果与原始公式完全相同。

2. 与交叉熵损失函数的搭配

在训练分类模型时,Softmax 通常与交叉熵损失 配对使用。

  • Softmax:将模型的原始输出转换为概率。
  • 交叉熵损失:衡量模型预测的概率分布与真实的概率分布(通常是 one-hot 编码,如 [1, 0, 0])之间的“距离”。

这是一个“黄金组合”,因为当 Softmax 作为输出层,交叉熵作为损失函数时,计算梯度会变得异常简单和高效,这大大加速了模型的训练过程。

3. Softmax 不是激活函数

虽然常被放在最后一层,但 Softmax 的性质与 Sigmoid、ReLU 等激活函数不同。Sigmoid/ReLU 是按元素操作的,输出的每个元素独立于其他元素。而 Softmax 是跨元素操作的,它的每个输出值都依赖于所有输入值(因为要计算总和)。因此,它更多地被看作一个归一化层。


总结

方面描述
核心功能将一组任意实数值的向量归一化 为一个概率分布。
数学本质对每个元素取指数,然后用指数和进行归一化。
输入任意实数的向量(Logits)。
输出(0, 1) 区间内的向量,且所有元素之和为 1。
关键特性放大高分值差异、平移不变性、处处可微。
主要应用多分类模型的输出层、注意力机制中的权重计算。
黄金搭档交叉熵损失函数。

相关新闻

  • MySQL 8+ 日志管理与数据备份恢复实战指南 - 指南
  • 前端css中rem的作用
  • 数据结构2:单链表 - 教程

最新新闻

  • 大模型微调与Agent开发培训怎么选?2026主流技术培训机构实力梳理 - 互联网科技品牌测评
  • 双A100上优化vLLM跑Qwen 3.6-27B 128K长上下文推理
  • 嵌入式系统功耗监控:从电流检测到GUI可视化的完整方案解析
  • 手撕Gradient Boosting分类原理:从log-odds到概率的三轮迭代
  • 鼎工机械五金统率 ERP、统率 WMS、统率 MES - 品牌发掘
  • 第01章|登台远望:Claude Code 底层技术全景导览

日新闻

  • 2026速览惠州叛逆青少年学校前十大排名名单出炉 - 武汉中职最新信息发布
  • 2026上饶白蚁消杀哪家好?15年本土2大权威白蚁防治公司推荐(金盾虫控/青蚁卫士) - 我叫一
  • 天龙八部单机版终极数据管理工具:5个技巧快速掌握游戏数据编辑

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号