可以看出最大的区别在于softmax的计算的是一个比重,而sigmoid只是对每一个输出值进行非线性化。二者在结果上很相似,区别就在于softmax是一个针对输出结果归一化的过程,所以很多文献里也称作softmax层;而sigmoid只是一个非线性激活过程,所以一般称为激活函数。二者公式上也并不是直接归一化的关系:
sigmoid:
softmax
可以看到softmax在求概率的时候,是会考虑其他数值的,而sigmoid值考虑了他自己这个数,这也是为什么上面的图softmax的图是有交叉的,而sigmoid没有交叉
为什么说softmax一般是多分类问题使用。sigmoid用于二分类问题。
1、 sigmoid本身是用来做激活函数的,并不是用来做分类的,知识恰好sigmoid 可以把数字处理成0-1之间的数值
2、 softmax也可以做二分类问题,即softmax既可以做二分类也可以做多分类
3、softmax和sigmoid做二分类有什么区别?sigmoid做二分类最后的输出是一个神经元,这个神经元是0-1之间的数,用一个神经元就可以表示是或者不是,,,,softmax的二分类最后的输出是两个神经元,原因在于它需要计算比重,两个神经元才可以一计算
4、为什么sigmoid不可以处理多分类任务?也不是不可以,比如说在做三分类任务时,最后的神经元是三个,对其进行sigmoid,将其都变成0-1之间,谁最大,就属于哪个类,,这样也是完全可以的。但有一个问题,在我们学习数学的分类问题的时候,是不是讲过所有类别概率之和应该是1,sigmoid就做不到这一点,,三个类别的概率可能是0.6,0.9,0.8,都偏高,虽然知道最后计算结果应该是第二类,但是类别之间并没有拉开距离,不利于模型的训练。