激活函数的作用
提供非线性能力
激活函数的性质
1、处处可微分
2、增强鲁棒性
3、值域是-1到1或者0到1,定义域负无穷到正无穷。定义域在-1到1之间的函数图像梯度很大,而在其他地方梯度很小
常见激活函数
(1) sigmoid函数
sigmoid 可处理二分类问题
优点:
1.Sigmoid函数的输出映射在(0,1)之间,单调连续,输出范围有限,优化稳定,可以用作输出层。
2.求导容易。
缺点:
1.由于其软饱和性,容易产生梯度消失,导致训练出现问题。
2.其输出并不是以0为中心的。
(2) ReLU
Rectified Linear Unit(ReLU) - 用于隐层神经元输出
Relu=max(0,x)
ReLU 的缺点是,它在训练时比较脆弱并且可能“死掉”。
举例来说:一个非常大的梯度经过一个 ReLU 神经元,更新过参数之后,这个神经元再也不会对任何数据有激活现象了。如果这种情况发生,那么从此所有流过这个神经元的梯度将都变成 0 。
解释:训练神经网络的时候,一旦学习率没有设置好,第一次更新权重的时候,输入是负值,那么这个含有ReLU的神经节点就会死亡,再也不会被激活。因为:ReLU的导数在x>0的时候是1,在x<=0的时候是0。如果x<=0,那么ReLU的输出是0,那么反向传播中梯度也是0,权重就不会被更新,导致神经元不再学习。
也就是说,这个ReLU激活函数在训练中将不可逆转的死亡,导致了训练数据多样化的丢失。在实际训练中,如果学习率设置的太高,可能会发现网络中40%的神经元都会死掉,且在整个训练集中这些神经元都不会被激活。所以,设置一个合适的较小的学习率,会降低这种情况的发生。为了解决神经元节点死亡的情况,有人提出了Leaky ReLU、P-ReLu、R-ReLU、ELU等激活函数。
(3) Softmax - 用于多分类神经网络输出
分类器最后的输出单元需要Softmax 函数进行数值处理
Si 表示的是当前元素的指数与所有元素指数和的比值,Softmax 将多分类的输出数值转化为相对概率