ReLU家族
2019-04-12 本文已影响4人
9933fdf22087
概述:ReLU函数的计算是在卷积之后进行的,因此它与tanh函数和sigmoid函数一样,同属于非线性激活函数。ReLU函数的倒数在正数部分是恒等于1的,因此在深度网络中使用relu激活函数就不会导致梯度小时和爆炸的问题。并且,ReLU函数计算速度快,加快了网络的训练。不过,如果梯度过大,导致很多负数,由于负数部分值为0,这些神经元将无法激活(可通过设置较小学习率来解决)。
1. ReLU 数学表达:。
后向过程推导:设第层输出为
,经过激活函数后的输出为
;记损失函数L关于第
层的输出
的偏导为
,则损失函数L关于第
层的偏导为:
2.LeakReLU 数学表达式: ,在负数部分给予一个小的梯度。由Relu可知损失函数L关于关于第l层的偏导为:
3. PReLU :与LeakReLU相同,只不过可以学习。损失函数L关于关于参数α的偏导为:
4. ELU 数学表达式: ,由LeakyRelu可知损失函数L关于关于第
层的偏导为:
5. SELU 数学表达式: 由ELU可知损失函数L关于关于第
层的偏导为:
总结:当激活值的均值非0时,就会对下一层造成一个bias,如果激活值之间不会相互抵消(即均值非0),会导致下一层的激活单元有bias shift。如此叠加,单元越多时,bias shift就会越大。除了ReLU,其它激活函数都将输出的平均值接近0,从而加快模型收敛,类似于Batch Normalization的效果,但是计算复杂度更低。虽然LeakReLU和PReLU都也有负值,但是它们不保证在不激活状态下(就是在输入为负的状态下)对噪声鲁棒。反观ELU在输入取较小值时具有软饱和的特性,提升了对噪声的鲁棒性。