深度学习入门到放弃系列教程 05 | 解析Softmax函数的原理与应用

文摘   2024-11-05 20:52   新加坡  
点击订阅公众号 | 前沿学术成果每日更新               

1. 什么是Softmax

Softmax函数是机器学习和深度学习中常用的激活函数,特别适用于多分类问题。它能够将一个实数向量转换为概率分布,输出值介于0到1之间,且总和为1。

具体来说,给定输入向量 ,Softmax函数定义为:

这样, 表示第 个类别的概率。

注意,这里的向量是实数向量,维度是k,每个元素 对应一个类别的未归一化得分或激活值,是个实数。数学上,向量既可以表示为列向量()也可以表示为行向量()。在实际应用中,两种表示方式都常见,关键是保持一致性。

2. Softmax的数学原理解析

Softmax函数的数学操作

  1. 指数变换

    对输入向量的每个元素 计算其指数:

    Softmax函数利用指数函数的特性,将输入值放大或缩小,使得较大的 对应更大的概率。指数函数是严格递增的,确保输入值的相对大小关系保持不变。

  2. 求和归一化

    将所有指数值相加,得到归一化因子:

  3. 计算输出值

    将每个指数值除以归一化因子,得到归一化后的输出:

    通过除以所有指数值的总和,Softmax函数将输出归一化为概率分布:

    这满足概率分布的基本性质,使得输出可以直接用于概率解释。

Softmax函数的本质

  • 平滑的 近似

    Softmax函数可以看作是 函数的平滑近似,使得在优化过程中可以使用梯度方法。

  • 信息论解释

    Softmax函数与最大熵原理相关,它在给定约束下最大化了输出分布的熵。

Softmax函数的数学性质

  • 可微性

    Softmax函数是光滑且可微的,这使得在优化问题中可以方便地计算梯度。

  • 尺度不变性

    对输入向量加上同一个常数不会改变输出结果,即对于任意实数 ,有:

    这是因为:

  • 映射到概率空间

  • 梯度计算

    Softmax函数的偏导数(雅可比矩阵)为:

    其中, 是 Kronecker δ 函数,当 时为1,否则为0。

  • 凸性

    Softmax函数的负对数似然损失是凸函数,这对于全局优化具有重要意义。

Softmax数值稳定性

在实际计算中,为了避免指数函数导致的数值溢出,常对输入值进行调整,例如减去最大值:


3. 为什么要用Softmax:Softmax的应用场景分析

多分类问题

在需要对输入分类到多个类别中的情况下,Softmax函数是首选。例如,在图像识别中,需要判断一张图片属于多个类别中的哪一个。

概率解释性

Softmax的输出直接给出了每个类别的概率,这对于需要概率解释的任务非常有用,例如风险评估和决策支持系统。

与交叉熵损失函数的结合

Softmax函数常与交叉熵损失函数一起使用,形成了一个良好的组合。交叉熵损失函数衡量了预测概率分布与真实分布之间的差异,优化目标清晰明确。

应用实例:

  • 自然语言处理:在语言模型中预测下一个词的概率分布。
  • 计算机视觉:在卷积神经网络的最后一层用于图像分类。
  • 推荐系统:计算用户对不同物品的选择概率。


文献信息             
:5              

点击“原文链接”,查看论文

               

               

声明:本公众号分享的前沿学术成果来源于各学术网站,不依法享有其所有权。若原作者发现本次分享中的文字及图片涉及侵权,请立刻联系公众号后台或发送邮件,我们将及时修改或删除!         

邮箱:environmodel@sina.com         

若您认为有用,欢迎

Environmodel设为星标,或

点击“在看”或“分享”给他人


Environmodel
Environmodel(环境模型)专注于环境科学与工程领域的建模及模型研究进展,并分享涵盖机器学习、深度学习以及人工智能等相关领域的理论知识、主流工具和Python编程技巧。
 最新文章