On this page

    激活函数

    sigmoid: sigmoid

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

    tanh: tanh.png

    由于sigmoid和tanh激活函数左右两端在很大程度上接近极值,容易饱和,因此正在进行计算时当传递的数值过大或过小时会使神经元梯度接近于0,使得模型计算时会多次计算接近于0的梯度,花费了学习时间却使得权重没有更新。

    ReLu: image.png

    ReLu对于达到阈值的数据其激活力度随着数值的加大而增大,呈线性关系。 ReLu计算简单,单纯一个值的输入输出不需要进行一系列的复杂计算,从而获得激活值。 ReLu进行模型计算时,一部分神经元在计算时如果有一个大的梯度经过,则此神经元的梯度会被强行设置为0,而在整个其后的训练过程中这个神经元都不会被激活,这会导致数据多样化的丢失,但是也能防止过拟合。

    Relu当输入是负数的时候,ReLU是完全不被激活的,这就表明一旦输入到了负数,ReLU就会死掉。这样在前向传播过程中,还不算什么问题,有的区域是敏感的,有的是不敏感的。但是到了反向传播过程中,输入负数,梯度就会完全到0,这个和sigmod函数、tanh函数有一样的问题。

    ELU: image.png

    ELU函数是针对ReLU函数的一个改进型,相比于ReLU函数,在输入为负数的情况下,是有一定的输出的,而且这部分输出还具有一定的抗干扰能力。这样可以消除ReLU死掉的问题,不过还是有梯度饱和和指数运算的问题。

    PReLu: image.png

    PReLU也是针对ReLU的一个改进型,在负数区域内,PReLU有一个很小的斜率,这样也可以避免ReLU死掉的问题。相比于ELU,PReLU在负数区域内是线性运算,斜率虽然小,但是不会趋于0,这算是一定的优势吧

    卷积层

    此外还有获取更多数据集,采用合适模型,Early Stopping, 可变化的学习率, 使用Batch_Normalization,交叉验证,PCA特征提取,增加各种噪音等方式来降低过拟合。