深度学习:Softmax 函数详解

发布于:2024-11-02 ⋅ 阅读:(14) ⋅ 点赞:(0)

Softmax 函数详解

定义与数学表达

Softmax 函数是一个广泛使用的激活函数,特别是在多类分类任务中。它将一个向量或一组数值转换为概率分布。每个输出的概率是对应输入的指数与所有输入指数之和的比例。

数学上,Softmax 函数定义如下:

[$ \text{Softmax}(z_i) = \frac{e{z_i}}{\sum_{j=1}{K} e^{z_j}} $]

其中:

  • ( z i z_i zi ) 表示输入向量 ($ \mathbf{z} KaTeX parse error: Can't use function '\)' in math mode at position 1: \̲)̲ 的第 \( i $) 个分量。
  • ( K K K ) 是类别总数,即向量 ($ \mathbf{z}$ ) 的维度。
  • ($ e $) 是自然对数的底数。

Softmax 函数的输出是一个长度为 ( K ) 的向量,其中每个分量都在 0 到 1 之间,并且所有分量的和为 1。

特性
  1. 归一化:Softmax 保证所有输出值的和为1,使其可以被解释为概率。
  2. 可微性:Softmax 函数在整个定义域内可微,这使得它可以在基于梯度的优化算法中使用,例如反向传播。
  3. 敏感性:Softmax 对输入值非常敏感,尤其是当有一个输入远大于其他输入时。
实例解释

假设一个简单的情景,我们需要对三个类别进行分类:猫、狗和鸟。神经网络的最后一层生成了以下原始分数(也称为 logits):

[ $z = [2.0, 1.0, 0.1] $]

这些分数通过 Softmax 函数转换为概率:

  1. 计算每个类别的指数:
    [ e 2.0 ≈ 7.389 , e 1.0 ≈ 2.718 , e 0.1 ≈ 1.105 e^{2.0} \approx 7.389, \quad e^{1.0} \approx 2.718, \quad e^{0.1} \approx 1.105 e2.07.389,e1.02.718,e0.11.105 ]

  2. 计算指数之和:
    [ Sum = 7.389 + 2.718 + 1.105 ≈ 11.212 \text{Sum} = 7.389 + 2.718 + 1.105 \approx 11.212 Sum=7.389+2.718+1.10511.212 ]

  3. 应用 Softmax 公式:
    [ $\text{Softmax}(猫) = \frac{7.389}{11.212} \approx 0.659 $]
    [ $\text{Softmax}(狗) = \frac{2.718}{11.212} \approx 0.242 $]
    [ $\text{Softmax}(鸟) = \frac{1.105}{11.212} \approx 0.099 $]

这表明,根据网络的输出,猫、狗和鸟的分类概率分别为 65.9%,24.2% 和 9.9%。这意味着模型认为这张图片是猫的可能性最高。

数学属性
  1. 输出解释:Softmax 输出的每一个值都代表对应类别的概率,这使得最终解释非常直观。
  2. 交叉熵损失:在训练过程中,Softmax 通常与交叉熵损失结合使用,以有效地计算模型输出和实际标签之间的差异。

总结

Softmax 函数是处理多类分类问题的理想选择,因为它能够将神经网络输出的 logits 转换为清晰的概率分布。这个函数在许多深度学习框架中都得到了广泛应用,尤其是在训练具有多个类别输出的分类器时。通过优化交叉熵损失,Softmax 函数帮助神经网络调整其参数,以更准确地预测每个类别的概率。


网站公告

今日签到

点亮在社区的每一天
去签到