前言
激活函数:用来加入非线性因素的,因为线性模型的表达能力不够
比如下图的数据比较简单是线性可分的,一条直线就可以对样本进行分类了:
但是如果碰到下面的情况,数据变成线性不可分的时候,一条直线根本无法很好地对数据进行分类,这样就引入非线性因素,而激活函数恰好能够做到这点:
一、Sigmoid函数
用于隐层神经元输出
函数图像为:
优缺点:输出映射在(0, 1)之间,用于输出层,求导容易。
缺点:容易产生梯度消失,导致训练出现问题,输出不是以0为中心的。
二、tahn函数
区间位于[-11, 1]之间,函数图像为:
函数的优缺点:
这个函数和sigmoid相比收敛速度块,但是和sigmoid一样有个缺点是:容易产生梯度消失。
三、ReLU函数
f(x) = max(0, x) 即 if x >= 0 时 f(x) = x, 否则f(x) = 0
对应的图像为:
或者可表示为:
优缺点:
优点:这个是线性,非饱和的形式和前面两个相比它能够快速收敛,另外ReLU有效地缓解了梯度消失的问题,而且它提供了神经网络的稀疏表达能力
缺点:随着训练的进行,可能会出现神经元死亡,权重无法更新的情况。如果发生这种情况,那么流经神经元的梯度从这一点开始将永远是0.也就是说,ReLU神经元在训练中不可逆地死亡了。
四、Softmax函数
用于多分类神经网络输出
以上就是这几个激活函数的比较,最后将这几个函数显示在同一个图像上,方便比较