深度学习:Softmax 函数详解

Softmax 函数详解

定义与数学表达

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

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

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

其中:

  • ( ziz_izi ) 表示输入向量 ($ \mathbf{z} KaTeX parse error: Can't use function '\)' in math mode at position 1: \̲)̲ 的第 \( i $) 个分量。
  • ( KKK ) 是类别总数,即向量 ($ \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. 计算每个类别的指数:
    [ e2.0≈7.389,e1.0≈2.718,e0.1≈1.105e^{2.0} \approx 7.389, \quad e^{1.0} \approx 2.718, \quad e^{0.1} \approx 1.105e2.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.212Sum=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 函数帮助神经网络调整其参数,以更准确地预测每个类别的概率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YRr YRr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值