一、共同点
Softmax以及Sigmoid这两者都是神经网络中的激活函数,将输入非线性化。
都作为神经网络的最后一层,将输出数值转换为概率值。
二、不同点
1、Softmax
S o f t m a x = e x i ∑ j = 1 n e x j Softmax = \frac{e^{x_{i}}}{\sum_{j=1}^{n}e^{x_{j}}} Softmax=∑j=1nexjexi
场景:
- 对于N分类问题,Softmax输入N个类别的概率( ∑ i = 1 N p i = 1 \sum_{i=1}^{N}p_{i}=1 ∑i=1Npi=1),对应 p i p_{i} pi概率最大的 i i i即为判定的类别。
特性:
- Softmax得出的是归一化类别概率,真实类别有放大。
- 零点不可微
- 负输入梯度为0
- 非负数且概率和为1,得到不同概率间的相互关联
Tricks:
- Softmax作为激活函数时会将 e x e^{x} ex替换为 e − x e^{-x} e−x防止数值过大而溢出
2、Sigmoid
S i g m o i d = 1 1 + e − x Sigmoid = \frac{1}{1+e^{-x}} Sigmoid=1+e−x1
场景:
-
对于N分类问题,可以确定多个类别(>0.5为1,<0.5为0)
-
单调递增且其反函数也有递增的性质,此函数也经常被用作神经网络的阈值函数中。 S i g m o i d ′ ( x ) = S i g m o i d ( x ) ⋅ ( 1 − S i g m o i d ( x ) ) Sigmoid'(x)=Sigmoid(x)\cdot(1-Sigmoid(x)) Sigmoid′(x)=Sigmoid(x)⋅(1−Sigmoid(x))
特性:
- 对应其值加起来并不为1
- 梯度平滑,避免梯度跳跃;连续函数,可导可微
缺陷:
- 横向坐标轴正负无穷的时候,两侧导数为0,造成梯度消失
- 输出非0时,均值收敛速度慢(容易对梯度造成影响)
- e的幂次运算比较复杂,训练时间比较长
参考链接: