激活函数(Activation Function):在神经网络神经元上运行的函数,负责将神经元的输入映射到输出端。
入激活函数是为了增加神经网络模型的非线性。没有激活函数的每层都相当于矩阵相乘,就算叠加若干层,无非还是矩阵相乘。
1. Sigmoid函数
注: Sigmoid一般不与MSE配合使用。
因为Sigmoid的导数为f(x)(1−f(x))。假设当预测值为f(x)=1而真实值为0的时候,此时虽然(yi−y˜)很大,但是f(x)(1−f(x))太小接近0,收敛速度同样很慢。
2. Tanh函数
3. ReLU函数
4. MaxOut函数
Maxout是深度学习网络中的一层网络,可以看成是网络的激活函数层。假设网络某一层的输入特征向量为:X=(x1,x2,……xd)Maxout隐藏层每个神经元的计算公式如下:
Z的计算公式为:
权重w是一个大小为(d,m,k)三维矩阵,b是一个大小为(m,k)的二维矩阵,这两个就是需要学习的参数。
优点:
(1)Maxout具有ReLU的所有优点,线性、不饱和性。
(2)同时没有ReLU的一些缺点。如:神经元的死亡。
缺点: 参数的数量激增
补充内容:
1)饱和激活函数
sigmoid和tanh是“饱和激活函数”,而ReLU及其变体则是“非饱和激活函数”。
使用“非饱和激活函数”的优势在于两点:(1)"非饱和激活函数”能解决所谓的“梯度消失”问题。(2)它能加快收敛速度。
2) 神经元死亡
大的梯度导致某个神经元权重更新的过猛,之后小的梯度对它的权重更新太慢,使得模型训练陷入了僵局。遍历了整个训练集,它的参数都没有更新。因此就说该神经元死了……