softmax和sigmoid函数用于输出层

use*_*609 8 computer-vision theano deep-learning keras tensorflow

在与对象检测和语义分割相关的深度学习实现中,我已经看到使用sigmoid或softmax的输出层.我不是很清楚何时使用哪个?在我看来,他们俩都可以支持这些任务.这个选择有什么指导方针吗?

mar*_*ars 13

softmax()当您希望sigmoid输出的范围从0到1,但不需要总和为1时,可以使用总和为1的概率分布.

在您的情况下,您希望对两种选择进行分类和选择.我建议使用,softmax()因为你将得到一个概率分布,你可以应用交叉熵损失函数.


小智 5

sigmoid 和 softmax 函数有不同的用途。关于神经网络设计中何时使用 sigmoid vs. softmax 的详细解释,可以看这篇文章:《分类:Sigmoid vs. Softmax》。

简短的摘要:

如果您遇到多标签分类问题,其中存在多个“正确答案”(输出不互斥),那么您可以对每个原始输出独立使用 sigmoid 函数。sigmoid 将使您对所有类、其中一些类或全部类都没有高概率。

如果您遇到的多类分类问题只有一个“正确答案”(输出是互斥的),那么请使用 softmax 函数。softmax 将强制输出类别的概率总和等于 1,因此为了增加特定类别的概率,您的模型必须相应地减少至少一个其他类别的概率。