TensorFlow中的非饱和 激活函数(Nonsaturating Activation Functions)

   不幸的是,ReLU激活函数也不是完美的。它会遭遇到一个熟知的问题(dying ReLUs):在训练过程中,一些神经元实际上已经死亡了,意味着它们只是输出0.在有些实例里,你会发现网络中一半的神经元已经失活了,特别是在当你使用较大的学习率的时候。如果一个神经元的权值更新如更新的权值与输入计算得到的输出是负值,这个神经元将会输出0,。 当这种现象发生时,这个神经元不太可能再起效果,因为当Relu函数的输入为负数时它的梯度是0。

   为了解决这个问题,应该使用改进的ReLU函数,比如 leaky ReLU。这个函数定义为: LeakyReLUα(z) = max(αz, z),如图所示。其中超参数α定义为函数的‘遗漏’程度:这是一个当Z<0 时的斜坡,典型的斜率为0.01.这个小斜坡保证了leaky ReLU函数不会死亡;从而进入一个昏迷期,但是会有机会重新唤醒。最近的论文( “Empirical Evaluation of Rectified Activations in Convolution Network,” B. Xu et al. (2015).)比较了许多ReLU的变种,其中的结论指出使用leaky的Relu比严格的ReLU表现要好。此外,α=0.2(大坡度)似乎要比α=0.01(小坡度)的表现好。研究人员同时也验证了randomized leaky ReLU(RReLU),在训练的时候 α在一个范围内随机选择 ,还有 parametric leaky ReLU(PReLU),该函数中的α是一个在训练过程中自动学习的的参数(而不再是一个超参数,它成为一个像其他参数一样在后向传播过程中被自动修改的参数)。还有人指出,ReLU函数在大型图片数据集上表现抢眼,但是在小数据集上会有过拟合的危险。

最后, Djork-Arné Clevert et al 的论文( “Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs),” D. Clevert, T. Unterthiner,S. Hochreiter (2015).)提出了一个新的激活函数叫做exponential linear unit(ELU),该函数的实验表现均优于其他ReLU变种函数:训练时间更低且在测试集上表现更好。公式定义如下。

函数曲线如下:

它看起来很像ReLU函数,但也有一些区别,如下:

  • 首先,当 z<0 的时候它取值为负数,它允许单元输出的均值接近于0.这样有助于缓和梯度弥散问题,超参数α定义了当z是一个很大的负值的时候该函数接近的值,这个值通常设置为1,但是你可以随意调整它就像其他超参数一样。
  • 其次,当z<0时,它的梯度是非零的,这样避免了神经元失活。
  • 第三,该函数在实数范围内是平滑的,包括当z=0时,这有助于加速梯度下降,在z=0时不会发生大量的左右跳跃。

ELU主要的缺点就是计算时间要比ReLU和它的变体要慢(使用了指数函数的原因),但是在训练的时候他能够加快收敛速率来得到补偿。然而,在测试时间上ELU网络确实要慢于ReLU网络。

tips: so 应该选择哪一个激活函数?虽然你面临的情况不一样。一般情况下, ELU > leaky ReLU (and its variants) > ReLU > tanh > logistic。 如果你关心运行时间的表现,那你应该选择leaky ReLU 而不是ELU。如果你不想调整之前的超参数,你只需要使用默认的参数,如果你有多余的时间和计算能力,可以使用交叉验证去检测其他的激活函数,特别是,使用RReLU如果你的网络过拟合,或者你有比较多的训练数据集,使用PReLU。

        TensorFlow提供了elu( )可使用,你只需要当调用fully_connected方法的时候设置activation_fn参数,如下:

from tensorflow.contrib.layers import fully_connected 
hidden1 = fully_connected(X, n_hidden1, activation_fn=tf.nn.elu)

 

Tensorflow中没有预定义的函数leaky ReLU,但是很容易自定义:
 

def leaky_relu(z, name=None):

    return tf.maximum(0.01 * z, z, name=name)

hidden1 = fully_connected(X, n_hidden1, activation_fn=leaky_relu)

猜你喜欢

转载自blog.csdn.net/zxk1992jx/article/details/81222480
今日推荐