当仅使用最可能的类时,是否使用softmax?

时间:2019-05-12 06:01:33

标签: machine-learning neural-network conv-neural-network

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

我相信,通常情况下,人们会计算softmax激活并将其解释为对应输出类的概率。但是softmax是一个单调函数,似乎,如果我只想要最可能的类别,我可以简单地选择线性层之后得分最高的类别,而将softmax排除在外。

鉴于softmax是分类问题中默认的,广泛使用的激活方式,我想知道我是否在这里错过了一些重要的内容。谁能指导我?

请注意,我已经在大量网站上进行了搜索,但据我所知,没有一个人回答这个基本问题(尽管提供了很多信息)。

谢谢

1 个答案:

答案 0 :(得分:3)

您说对了,您不需要softmax来预测最可能的课程-实际上,您可以参加得分最高的课程。

Howewer,您需要在训练时间内使用softmax 来计算损失函数(交叉熵),因为它仅适用于类别上的概率分布。 softmax变换可确保您的网络输出确实看起来像一个分布:所有分数均为正,且总和为1。如果分数不是正数,则无法计算交叉熵,因为它涉及对数。而且,如果分数未加总到一个(或任何其他常数),那么该模型可以通过使所有分数无限大来使损失最小化,而无需实际学习任何有用的知识。

此外,在预测时,softmax也会很有用,因为当您报告概率而不只是分数时,您可以将其解释为信心:例如该模型在其预测中具有98%的把握。

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