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

神经网络之激活函数Softmax

🧠 一、设计动机:Softmax 为什么存在?

Softmax 的设计核心思想是:

将任意实数向量映射为一个概率分布,使得所有元素都为正,并总和为 1。

📌 背后的需求:

在多分类任务中,神经网络输出一个向量(logits),每个分量表示模型对某个类别的“评分”或“偏好”。
但我们希望模型输出的是每个类别的概率,因此需要一个转换机制:

从打分→概率 \text{从打分} \rightarrow \text{概率} 从打分概率

Softmax 就是这个“打分转概率”的函数。


🔢 二、数学定义与形式

设输出层的未归一化向量为:

z=[z1,z2,...,zK] \mathbf{z} = [z_1, z_2, ..., z_K] z=[z1,z2,...,zK]

Softmax 输出:

softmax(zi)=ezi∑j=1Kezjfor i=1,...,K \text{softmax}(z_i) = \frac{e^{z_i}}{\sum_{j=1}^K e^{z_j}} \quad \text{for } i = 1, ..., K softmax(zi)=j=1Kezjezifor i=1,...,K

✅ 特性总结:

特性描述
非负性所有输出 ∈(0,1)\in (0, 1)(0,1)
归一性所有输出总和为 1,构成有效的概率分布
可导性对每个输入 ziz_izi 都可微,有封闭形式的导数

🎲 三、Softmax 的概率解释

Softmax 实际上来源于统计物理中的Boltzmann分布,在信息论中可解释为:

给定一组能量值 ziz_izi,我们希望获得每个状态被“选中”的概率。能量越低的状态越可能被选中。

在机器学习中:

  • ziz_izi 可以看作是某个类别的“置信评分”;
  • Softmax 将这些评分转化为概率,使得高评分的类别对应更高概率。

它是**最大熵原理(Maximum Entropy Principle)**在多类输出问题中的自然选择:
在满足均值约束下,Softmax 是熵最大的概率分布。


📈 四、Softmax 的导数与梯度结构

反向传播中,Softmax 的梯度结构是训练中的核心之一。

设:

si=softmax(zi) s_i = \text{softmax}(z_i) si=softmax(zi)

Softmax 的偏导数:

$$
\frac{\partial s_i}{\partial z_j} =
\begin{cases}
s_i (1 - s_i), & \text{if } i = j \

  • s_i s_j, & \text{if } i \ne j
    \end{cases}
    $$

这构成一个 Jacobian 矩阵 J∈RK×K\mathbf{J} \in \mathbb{R}^{K \times K}JRK×K,其结构具有特殊性:

  • 对角线为正(表示每个输出对自身的敏感性);
  • 非对角线为负(类别之间具有竞争关系)。

📌 这种“竞争机制”使得 Softmax 能捕捉类别之间的相对关系。


🔄 五、Softmax 与交叉熵的联合优化

通常,我们不单独使用 Softmax,而是配合 交叉熵损失函数(Cross-Entropy Loss) 一起使用。这有数学上的简洁性和数值稳定性的优势。

给定:

  • 模型输出(logits):z\mathbf{z}z
  • Softmax 输出概率分布:p=softmax(z)\mathbf{p} = \text{softmax}(\mathbf{z})p=softmax(z)
  • 真实标签 one-hot 向量:y\mathbf{y}y

交叉熵损失为:

L=−∑i=1Kyilog⁡(pi) \mathcal{L} = - \sum_{i=1}^K y_i \log(p_i) L=i=1Kyilog(pi)

由于 yiy_iyi 是 one-hot 的,这简化为:

L=−log⁡(pc)(真实类别索引为 c) \mathcal{L} = -\log(p_{c}) \quad \text{(真实类别索引为 } c \text{)} L=log(pc)(真实类别索引为 c

🚀 联合梯度优势:

将 Softmax 和交叉熵一起考虑,其组合的梯度非常简洁:

∂L∂zi=pi−yi \frac{\partial \mathcal{L}}{\partial z_i} = p_i - y_i ziL=piyi

这意味着我们不必显式计算 Softmax 和 log 的导数 —— 框架如 PyTorch、TensorFlow 都进行了内建优化(nn.CrossEntropyLoss() 直接接收 logits)。


🧮 六、数值稳定性与实现技巧

由于 ezie^{z_i}ezi 的快速增长,Softmax 在实践中容易出现 overflow,导致 NaN 或 Inf。
为了解决这个问题,常用如下数值稳定技巧:

✅ 稳定 Softmax:

softmax(zi)=ezi−max⁡(z)∑jezj−max⁡(z) \text{softmax}(z_i) = \frac{e^{z_i - \max(\mathbf{z})}}{\sum_j e^{z_j - \max(\mathbf{z})}} softmax(zi)=jezjmax(z)ezimax(z)

减去最大值不会改变输出结果(因为是比值),但能显著减小数值范围,提高稳定性。


🧠 七、为什么不用 Sigmoid?

Softmax 和 Sigmoid 有一定相似性,都是将输出映射为概率,但用途不同:

属性SoftmaxSigmoid
输出总和是否为 1✅ 是❌ 否
类别是否互斥✅ 是(多类选一)❌ 否(可多标签)
应用层多分类输出层二分类输出,或中间层

当任务是 “从多个类中选一个”(如图像分类),使用 Softmax;
当任务是 “每个类都可能属于或不属于”(如多标签任务),使用 Sigmoid。


💡 八、进阶应用:温度 Softmax(Softmax with Temperature)

引入一个温度参数 T>0T > 0T>0

softmaxT(zi)=ezi/T∑jezj/T \text{softmax}_T(z_i) = \frac{e^{z_i / T}}{\sum_j e^{z_j / T}} softmaxT(zi)=jezj/Tezi/T

  • T→0T \to 0T0:输出趋近于 one-hot(更确定);
  • T→∞T \to \inftyT:输出变得平滑(接近均匀分布);
  • 用于控制输出的“确定性”与“探索性”之间的权衡。

📌 在**模型蒸馏(knowledge distillation)**中,常使用 T>1T > 1T>1 来提取教师模型的“软标签”。


🔬 九、Softmax 的局限性

虽然强大,但 Softmax 并非完美:

  1. 对类别关系不建模:无法表达“类别之间相似性”;
  2. 输出非稀疏:即使概率接近 0,也不会真正为 0;
  3. 对异常值敏感:logits 受极端输入影响较大;
  4. 类别数多时计算成本高(如词汇量大的语言模型);

替代方案示例:

  • Sparsemax:产生稀疏概率,部分类别概率为 0
  • Gumbel-Softmax:可微的 one-hot 近似,用于强化学习或离散选择
  • Hierarchical Softmax:减少大量类别下的计算复杂度

✅ 十、一句话总结

Softmax 是将向量“打分”转化为概率分布的函数,它以指数放大差异、总和归一为原则,在多类互斥分类任务中提供了可训练、可解释、可优化的输出机制。

http://www.dtcms.com/a/445661.html

相关文章:

  • 高端网站建设哪家公司好网站建设招标样本
  • Qt Quick 3D-机械臂模型显示与交互
  • 轻松Linux-10.进程信号
  • 淘宝网站可信度状况及建设策略桂林网站
  • HTML简单入门—— 基础标签与路径解析
  • AI Agent:从“超级玩具“到“核心生产力“,智能新纪元的深度解析
  • 网站开发和运行 法律html5登录界面完整代码
  • 数据预处理与可视化流水线:Pandas Profiling + Altair 实战指南
  • 全栈开发杂谈————关于websocket若干问题的大讨论
  • Headless Service
  • Robotframework7.0与 6.0 的差异
  • dmfldr快速装载工具使用
  • 网站建设技术思维导图wordpress页面结构
  • 兰亭妙微QT软件开发与UI设计协同:如何避免设计与实现脱节?
  • Qt3D--箭头示例
  • 自助建子站龙口网络
  • 【QT常用技术讲解】opencv实现指定分辨率打开摄像头
  • ICT 数字测试原理 7 - -VCL 测试环境
  • stp mode mstp 概念及题目
  • ASP4644芯片低功耗设计思路解析
  • Qt 开发修炼指南:从入门到通透的实战心法
  • 怎么格式化idea中的vue文件
  • MATLAB计算标准化加权平均降水量(Weighted Average Precipitation,SWAP)
  • Leetcode 3702. Longest Subsequence With Non-Zero Bitwise XOR
  • 通辽网站公司福州微信网站建设
  • 网页制作的网站建设wordpress 闪图不
  • 访客申请表添加业主信息字段 - 部署说明
  • Faster RCNN - RPN作用原理
  • 响应式公司网站高端大气公司名称
  • C++之模板进阶:非类型参typename的作用,特化设计与分离编译