Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 仅使用最可能的类别时是否使用softmax?_Machine Learning_Neural Network_Conv Neural Network - Fatal编程技术网

Machine learning 仅使用最可能的类别时是否使用softmax?

Machine learning 仅使用最可能的类别时是否使用softmax?,machine-learning,neural-network,conv-neural-network,Machine Learning,Neural Network,Conv Neural Network,我有一个17个班级的深度学习分类问题,我在Pytorch工作。该体系结构包括在线性层之后实现的交叉熵损失 我相信,通常情况下,计算softmax激活并解释为相应输出类的概率。但是softmax是一个单调函数,似乎,如果我只想要最可能的类,我可以简单地选择线性层之后得分最大的类,而不需要softmax 鉴于softmax是分类问题中广泛使用的默认激活,我想知道我是否遗漏了一些重要的东西。有人能指引我吗 请注意,我用谷歌搜索了大量的网站,但据我所知,没有一个网站回答这个基本问题(尽管提供了很多信息)

我有一个17个班级的深度学习分类问题,我在Pytorch工作。该体系结构包括在线性层之后实现的交叉熵损失

我相信,通常情况下,计算softmax激活并解释为相应输出类的概率。但是softmax是一个单调函数,似乎,如果我只想要最可能的类,我可以简单地选择线性层之后得分最大的类,而不需要softmax

鉴于softmax是分类问题中广泛使用的默认激活,我想知道我是否遗漏了一些重要的东西。有人能指引我吗

请注意,我用谷歌搜索了大量的网站,但据我所知,没有一个网站回答这个基本问题(尽管提供了很多信息)


谢谢

你说得对你不需要softmax来预测最可能的课程-你确实可以选择分数最高的课程

然而,您需要在训练时间内使用softmax来计算损失函数(交叉熵),因为它仅适用于类的概率分布。softmax转换保证网络的输出看起来确实像一个分布:所有分数都是正的,加起来等于1。如果它们不是正的,你就不能计算交叉熵,因为它涉及对数。如果分数总和不等于一(或任何其他常数),那么该模型可以通过使所有分数无限大来最小化损失,而不实际学习任何有用的东西

此外,在预测时,softmax也很有用,因为当您报告概率而不是分数时,您可以将其解释为置信度:例如,模型的预测准确率为98%


在某些情况下,它不是您感兴趣的最可能的类。例如,如果您进行信用评分,那么即使是低违约概率(例如20%)也可能高到足以拒绝贷款申请。在这种情况下,您需要查看概率本身,而不是最可能的类别,softmax有助于正确估计它们

可能会有帮助。谢谢,这些很有用。好的,谢谢。我将尝试添加它,看看它对收敛有什么影响。好的,这就是我想要的答案。事实证明,pytorch将softmax直接构建到交叉熵中,因此我不需要将其添加进去。如上所述,您仍然需要softmax以避免除以0