激活函数
激活函数在神经网络中的作用
作为神经网络的基本单元——神经元的结构如下图所示,在一个神经元中f函数通常被称为激活函数(激励函数,传递函数)。它的引入参考的是生物神经元,生物神经元一般具有激活态与抑制态两种模态,当从其他神经元接收的生物信号大于某一阈值后神经元就会变为激活态,否则则为抑制态,因而最初的激活函数(sigmoid,tanh)都具有s型的曲线。而对于人工神经网络而言激活函数起到的作用可以说就是进行非线性变换,增加系统的非线性表达能力,没有其他的作用,所以相对于sigmoid,tanh这些比较复杂的激活函数,后来又提出了简单的多的非线性激活函数ReLUm(max(0,x))以及PReLU(x = -x if x <0 x = x else),这些简单非线性激活函数的引入可以加快了网络的训练速度。
在卷积神经网络中使用激活函数
在现在火热的卷积神经网络CNN中,我们定义网络结构的时候通常会在卷积层后跟一个激活层,通常使用ReLU。如果是全卷积网络FCN那么在作为输出层的最后一层卷积层后我们会根据我们数据的预处理方法来加激活层(或者不加激活层),通常如果输入的图片数据没有做归一化中心化处理我们会使用ReLU(去掉负值),如果数据做了归一化没做中心化那么使用sigmoid函数(0~1),如果做了做中心化没做归一化通常就不跟激活函数了,如果做了归一化、中心化就是用tanh(-1,1)。