前馈神经网络 (一)
2018-05-19 本文已影响0人
进辞
神经元模型
该模型分为两部分:
第一部分进行信号累加,就如得分函数,该部分仅对输入信号进行累加求和。
第二部分为激活函数,这是神经元的关键,通常使用某类激活函数,就被称为某类神经元。如果我们使用的激活函数使用Sigmoid激活函数,那该神经元就相当于Logistic回归。
最开始使用的激活函数是阈值激活函数,如果阈值大于0就恒定输出1,否则就输出0。该函数虽然不可求导,使用感知机收敛理论依然可以学习线性可分的数据。
Sigmoid神经元
Sigmoid函数表达式Sigmoid函数
Sigmoid函数的导函数
但是他有一个缺点,就是易饱和性,当输入值远离0时,其函数会很快变得平稳,而这种平稳的代价就是梯度接近于0,这样一来,当我们试图修改权重时,几乎得不到梯度进行学习。
因此,使用Sigmoid神经元时,尤其需要注意参数的初始值来尽量避免饱和情况。如果初始值很大的话,大部分神经元可能都会处在饱和状态。
Tanh神经元
双曲正切激活函数的函数图像,该函数的取值为(-1,1),由于其函数期望为0,因此可算作Sigmoid神经元的一个改进,但该神经元依然存在易饱和的性质,激活函数的表达式为:
Tanh激活函数
类似于Sigmoid函数:
tanh == Sigmoid的变形
tanh导数
tanh函数
ReLU神经元
修正线性神经元(Rectified Linear Units):
ReLU激活函数
Relu可以看坐两条分段线性函数,只是其中一条分段函数输出恒为零,为通用的修正线性单元的函数表达式。
修正线性函数表达式
当α=0时,就是我们前面介绍的ReLU,若固定α=-1,该函数可被表示为绝对值修正单元:
绝对修正单元
而将α=0.01,就称之为裂缝修正单元(Leaky ReLU)。
当然也可以使用PReLU将α作为一个可变参数来调整学习。
如果喜欢追求函数的表达能力,可以使用Maxout单元。Maxout有k段线性分段函数构成,具有很强的拟合能力。由Maxout组成的神经网络,不仅要学习神经元间的关系,还需要学习激活函数本身,但是参数量加重了训练的负担。