激活函数给神经元引入了非线性因素。
Rectified Linear Unit(ReLU) - 用于隐层神经元输出
Sigmoid - 用于隐层神经元输出
Softmax - 用于多分类神经网络输出
Linear - 用于回归神经网络输出(或二分类问题)
ReLU函数计算如下:φ(x)= max(0,x)
ReLU计算量小(不涉及除法),一部分神经元的输出为0造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生.
对于偏置值,如果用 ReLU 的话,最好的办法就是把它们都初始化成小的正值,这样神经元一开始就会工作在 ReLU 的非零区域内。
ReLU缺点:强制的稀疏处理会减少模型的有效容量(即特征屏蔽太多,导致模型无法学习到有效特征)。
Sigmoid函数计算如下:φ(x) =1/(1+exp(-x))缺点:
激活函数计算量大(指数运算),反向传播求误差梯度时,求导涉及除法
对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失),从而无法完成深层网络的训练
Softmax函数计算如下:交叉熵作为损失函数时,以sigmod或者softmax作为输出层会避免溢出问题。

http://freemind.pluskid.org/machine-learning/softmax-vs-softmax-loss-numerical-stability/
梯度消失问题和梯度爆炸问题:在层数较多的神经网络模型的训练过程中,误差反向传播,并对误差求偏导,来对参数进行更新。

随着层数越多,求导结果越小。因此,其实梯度爆炸和梯度消失问题都是因为网络太深,网络权值更新不稳定造成的,本质上是因为梯度反向传播中的连乘效应。
网友评论