softmax和sigmoid激活函数的区别
softmax以及sigmoid都是神经网络中的激活函数
引入激活函数的目的是为了将其输出非线性化,使得神经网络可以逼近任何非线性函数
(原本没有引入激活函数,就是多个矩阵进行相乘,无论神经网络多少层都是线性组合,这个概念是感知机)
softmax以及sigmoid两者都是作为神经网络的最后一层,通过激活函数之后转换为概率值
1.softmax
作为二分类问题探讨,是二分类的拓展版,将其拓展为N分类,对应以概率的形式展示(概率最大的类别为此类别)
全连接层的输出使用softmax,将其输出的结果表示为概率类别(所有概率加起来为1)。
softmax将其泛化为多分类(SVM得出的是每个类别的分数),softmax得出的是归一化类别概率(将其所有的输出结果都归一到0和1范围内)。
对应softmax输入N个值,输出的结果为这N个值的概率(符合概率分布),预测出的所有值加起来为1,对应哪个值比较大,则判定为该类别
-
归一性:softmax函数确保输出的所有概率之和等于1,这使其适用于多类别分类问题,因为每个类别的概率可以解释为该类别的相对置信度。
-
非线性:softmax函数是非线性的,它将输入值映射到0到1之间,并且对输入值的较大变化具有较强的响应,因此可以用于建模复杂的非线性关系。
-
整流性:softmax函数具有整流性质,即它会强调输入向量中的最大值,降低其他值的影响,这有助于确定模型对哪个类别的预测最有信心。
2. sigmoid
单调递增且其反函数也有递增的性质,此函数也经常被用作神经网络的阈值函数中
用此函数预测类别,对应其值加起来并不为1,而softmax函数加起来为1
用在神经网络中,其特点如下:
梯度平滑,避免梯度跳跃
连续函数,可导可微
但是缺点如下:
横向坐标轴正负无穷的时候,两侧导数为0,造成梯度消失
输出非0时,均值收敛速度慢(容易对梯度造成影响)
e的幂次运算比较复杂,训练时间比较长
3.总结
softmax是为了判定该类别是什么(激活函数softmax可使用的情况下,sigmoid也可用)
N分类互斥,且只能选择其一,选择softmax
N分类互斥,可选多个类别,选择sigmoid