CNN卷积层:ReLU函数

卷积层的非线性部分

一、ReLU定义

ReLU:全称 Rectified Linear Units)激活函数

定义

def relu(x):

  return x if x >0 else 0

二、传统sigmoid系激活函数

Sigmoid与人的神经反应很相似,在很多浅层模型上发挥巨大作用

传统神经网络中最常用的两个激活函数,Sigmoid系(Logistic-Sigmoid、Tanh-Sigmoid)被视为神经网络的核心所在。

从数学上来看,非线性的Sigmoid函数对中央区的信号增益较大,对两侧区的信号增益小,在信号的特征空间映射上,有很好的效果。

从神经科学上来看,中央区酷似神经元的兴奋态,两侧区酷似神经元的抑制态,因而在神经网络学习方面,可以将重点特征推向中央区,将非重点特征推向两侧区。

无论是哪种解释,看起来都比早期的线性激活函数(y=x),阶跃激活函数(-1/1,0/1)高明了不少。

梯度消失问题

 sigmoid导数值的范围(0,  0.25)

tanh的导数值范围(0, 1)

可以看出sigmoid的弱点:对于深度网络,sigmoid在最好的情况下也会把传递的导数数值缩小至0.25倍,下层网络得到的梯度值明显小很多。这会导致模型训练效果很差。

对于浅层网络这种影响不明显,但对于深度网络,反向传导逐渐变成了一个“漫长累积”的过程。

从训练效果看,以不同激活函数的LeNet模型,训练迭代数与Loss的关系——

sigmoid明显弱一些,tanh与ReLU相近

ReLU的优点:没有出现梯度消失问题

三、ReLU的线性性质

作为一个非线性函数,它还具备线性性质

     1 0 0

   [ 0 1 0 ]  x 向量

     0 0 0

你可能感兴趣的:(cnn,深度学习,人工智能)