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

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 在受限玻尔兹曼机解决计算机视觉任务中得到应用.

本文总结了ReLU及其多种变体,包括Noisy ReLU、softplus、LeakyReLU、PReLU和ELU。这些非饱和激活函数主要用于解决梯度消失问题和加快神经网络的收敛速度。ReLU在CNN中广泛使用,但存在死ReLU问题;Noisy ReLU引入噪声以增加模型复杂性;softplus虽平滑但计算量大;LeakyReLU和PReLU通过调整负数区域斜率缓解死ReLU问题,PReLU的斜率是可学习的;ELU则在保持ReLU优势的同时,其负数区域能提供一定的鲁棒性。Dynamic ReLU则动态地根据输入数据生成分段线性函数的斜率。

3124

被折叠的 条评论
为什么被折叠?



