激活函数总结1:ReLU及其变体

激活函数可以被分为2类,“饱和激活函数”和“非饱和激活函数”。sigmoidtanh是“饱和激活函数”,而ReLU及其变体则是“非饱和激活函数”。使用“非饱和激活函数”的优势在于两点:
    (1)首先,“非饱和激活函数”能解决所谓的“梯度消失”问题。
    (2)其次,它能加快收敛速度。
    Sigmoid函数需要一个实值输入压缩至[0,1]的范围,σ(x) = 1 / (1 + exp(−x))。
    tanh函数需要讲一个实值输入压缩至 [-1, 1]的范围,tanh(x) = 2σ(2x) − 1。

ReLU:

激活函数总结1:ReLU及其变体_第1张图片

CNN中常用。对正数原样输出,负数直接置零。在正数不饱和,在负数硬饱和。relu计算上比sigmoid或者tanh更省计算量,因为不用exp,因而收敛较快。但是还是非zero-centered。

relu在负数区域被kill的现象叫做dead relu,这样的情况下,有人通过初始化的时候用一个稍微大于零的数比如0.01来初始化神经元,从而使得relu更偏向于激活而不是死掉,但是这个方法是否有效有争议。

Noisy ReLU:  

ReLU可以被扩展以包括高斯噪声(Gaussian noise): ()=max(0,+),∼(0,())f(x)=max(0,x+Y),Y∼N(0,σ(x)) Noisy ReLU 在受限玻尔兹曼机解决计算机视觉任务中得到应用.

softplus:

函数与ReLU函数接近,但比较平滑, 同ReLU一样是单边抑制,有宽广的接受域(0,+inf), 但是由于指数运算,对数运算计算量大的原因,而不太被人使用.并且从一些人的使用经验来看(Glorot et al.(2011a)),效果也并不比ReLU好. softplus的导数恰好是sigmoid函数.
激活函数总结1:ReLU及其变体_第2张图片

LeakyReLU:

激活函数总结1:ReLU及其变体_第3张图片

为了解决上述的dead ReLU现象。这里选择一个数,让负数区域不在饱和死掉。这里的斜率都是确定的。

PReLU:

parametric rectifier:

f(x) = max(ax,x) 

但是这里的a不是固定下来的,而是可学习的。原文献建议初始化alpha
alpha为0.25,不采用正则,但是这要根据具体数据和网络,通常情况下使用正则可以带来性能提升。与Relu比起来,PRelu收敛速度更快,因为其输出均值更接近0,使SGD更接近natural gradient。但是也有说法,PRelu和Relu实际效果没有差异,可以无脑

ELU:

激活函数总结1:ReLU及其变体_第4张图片

具有relu的优势,且输出均值接近零,实际上prelu和LeakyReLU都有这一优点。有负数饱和区域,从而对噪声有一些鲁棒性。可以看做是介于relu和LeakyReLU之间的一个东西。当然,这个函数也需要计算exp,从而计算量上更大一些。

Dynamic ReLU :

激活函数总结1:ReLU及其变体_第5张图片

RELU还是它的变体Leaky-RELU还是PRELU,都是静态的,也即是说,无论它们的输入是什么数据分布,它们都只按特定的规律进行变化。DY-RELU根据输入的数据生成一个函数,根据这个函数来决定这个分段线性函数的两个斜率。

激活函数总结1:ReLU及其变体_第6张图片


参考:https://blog.csdn.net/edogawachia/article/details/80043673

https://blog.csdn.net/qq_28778507/article/details/86502776

https://www.cnblogs.com/makefile/p/activation-function.html

你可能感兴趣的:(算法)