一、二分类问题
sigmoid函数表示为:
sigmoid函数图像为:
sigmoid的输入为实数,输出在0和1之间,对一定范围内的数据很敏感。
二、单标签多分类问题
softmax函数表示为:
它的实质就是将一个K维的任意实数向量映射成另一个K维的实数向量,其中向量中的每个元素取值都介于0,1之间,并且和为1。
三、多标签分类问题
sigmoid一般不用来做多类分类,而是用来做二分类的,它是将一个标量数字转换到[0,1]之间,如果大于一个概率阈值,则认为属于某个类别,否则不属于某个类别。
那么如何用sigmoid来做多标签分类呢?其实就是针对logits中每个分类计算的结果分别作用一个sigmoid分类器,分别判定样本是否属于某个类别。
例如:假设神经网络模型最后的输出是这样一个向量logits=[1,2,3,4],假设总共有4个分类,tf.sigmoid(logits)会将logits中每个数字都变成[0,1]之间的概率值,假设结果为[0.01, 0.05, 0.4, 0.6],然后设置一个概率阈值,比如0.3,如果概率值大于0.3,则判定类别符合,那这里,样本会被判定为类别3和类别4都符合。
参考原文链接:https://blog.csdn.net/u011734144/article/details/80915559