每个神经元模型包含一个input(输入),output(输出),权值,以及处理单元。神经元输入的信号流,即xi,被认为是单向的。神经元的输出信号是由激活函数o = f(∑)得处理后,得到得输出,如图所示
定义:激活函数h是一个几乎可微得函数h : R → R .
常见的激活函数有:sigmoid;tanh;ReLU;LReLU, PReLU, RReLU;ELU(Exponential Linear Units);softplus;softsign,softmax等
以下是激活函数在运用中所需要得性质:
a.饱和当一个激活函数h(x)满足以下条件,n趋于正无穷,称为右饱和:
当一个激活函数h(x)满足以下条件,n趋于负无穷,称为左饱和:
当一个激活函数,既满足左饱和又满足又饱和时,我们称之为饱和。
b.硬饱和与软饱和对任意的x,如果存在常数c,当x>c时恒有h′(x)=0则称其为右硬饱和,当x<c时恒有h′(x)=0则称其为左硬饱和。若既满足左硬饱和,又满足右硬饱和,则称这种激活函数为硬饱和。但如果只有在极限状态下偏导数等于0的函数,
【出处:Noisy Activation Functions,URL:https://arxiv.org/pdf/1603.00391v3.pdf】
典型的激活函数
Sigmoid函数
Sigmoid函数曾被广泛地应用,也是非常经典的logic函数。Sigmoid函数被定义为:
函数对应的图像是:
优点:1.Sigmoid函数的输出映射在(0,1)之间,单调连续,输出范围有限,优化稳定,可以用作输出层。2.求导容易。
缺点:1.由于其软饱和性,容易产生梯度消失,导致训练出现问题。2.其输出并不是以0为中心的。
tanh函数
函数位于[-1, 1]区间上,对应的图像是:
优点:1.比Sigmoid函数收敛速度更快。2.相比Sigmoid函数,其输出以0为中心。缺点:还是没有改变Sigmoid函数的最大问题——由于饱和性产生的梯度消失。
sigmoid函数可以很容易地应用在训练过程中。然而,当你想要处理分类问题时,他们却无能为力。简单地说,sigmoid函数只能处理两个类,这不适用于多分类的问题。所以softmax可以有效解决这个问题。并且softmax函数很多情况都运用在shenjingwanglu神经网路中的最后一层网络中,使得值得区间在0,1之间,而不是二分类的。
ReLU
ReLU是最近几年非常受欢迎的激活函数。被定义为
对应的图像是:
优点:1.相比起Sigmoid和tanh,ReLU在SGD中能够快速收敛。
2.Sigmoid和tanh涉及了很多很expensive的操作(比如指数),ReLU可以更加简单的实现。3.有效缓解了梯度消失的问题。4.在没有无监督预训练的时候也能有较好的表现。
5.提供了神经网络的稀疏表达能力。
缺点:随着训练的进行,可能会出现神经元死亡,权重无法更新的情况。如果发生这种情况,那么流经神经元的梯度从这一点开始将永远是0。也就是说,ReLU神经元在训练中不可逆地死亡了。
LReLU、PReLU与RReLU
通常在LReLU和PReLU中,我们定义一个激活函数为:
LReLU当ai比较小而且固定的时候,我们称之为LReLU。LReLU最初的目的是为了避免梯度消失。但在一些实验中,我们发现LReLU对准确率并没有太大的影响。很多时候,当我们想要应用LReLU时,我们必须要非常小心谨慎地重复训练,选取出合适的a,LReLU的表现出的结果才比ReLU好。因此有人提出了一种自适应地从数据中学习参数的PReLU。
PReLUPReLU是LReLU的改进,可以自适应地从数据中学习参数。PReLU具有收敛速度快、错误率低的特点。PReLU可以用于反向传播的训练,可以与其他层同时优化。
ELUs
ELUs是对ReLU激活函数的一种演变,将激活函数更能够保持一个noise-robust状态。所以提出一个具有负值的激活函数,这可以使得平均激活接近于零,但它会以更小的参数饱和为负值的激活函数ELUs。ELUs激活函数的公式The exponential linear unit (ELU) with 0 <α如下展示
ELU通过在正值区间取输入x本身减轻了梯度弥散问题(x>0区间导数处处为1),这一点特性这四种激活函数都具备。四者当中只有ReLU的输出值没有负值,所以输出的均值会大于0,当激活值的均值非0时,就会对下一层造成一个bias,如果激活值之间不会相互抵消(即均值非0),会导致下一层的激活单元有bias shift。如此叠加,单元越多时,bias shift就会越大。相比ReLU,ELU可以取到负值,这让单元激活均值可以更接近0,类似于Batch Normalization的效果但是只需要更低的计算复杂度。虽然LReLU和PReLU都也有负值,但是它们不保证在不激活状态下(就是在输入为负的状态下)对噪声鲁棒。反观ELU在输入取较小值时具有软饱和的特性,提升了对噪声的鲁棒性。如图所示,其中α是一个可调整的参数,它控制着ELU负值部分在何时饱和。
于Relu的不同:
1、它在x<0处激活值为负值,而且导数不为0这是一点很好的性质,因为ReLU在输入为负时导数会变成0,这会引起神经元死亡的问题,ELU改进了这一点,并且让这部分呈现一种软饱和,这种软饱和有助于提升噪声鲁棒性(显然LReLU对噪声会敏感)。
2、可以使得输出均值为0ReLU的所有输出都为非负数,所以它的输出均值必然非负,而这一点性质会导致网络的均值偏移(bias shift也叫mean shift)。所以ReLU在训练一些超深网络的时候就会出现不收敛的问题。
Softplus与Softsign
Softplus被定义为
Softsign被定义为
表列出了不属于前一层或当前层x函数的激活函数:
【描述来源:wiki, URL:https://en.wikipedia.org/wiki/Activation_function]
发展历史
描述
1943年,心理学家Warren McCulloch和数理逻辑学家Walter Pitts在合作的《A logical calculus of the ideas immanent in nervous activity》论文中提出并给出了人工神经网络的概念及人工神经元的数学模型,从而开创了人工神经网络研究的时代。1949年,心理学家Donald Olding Hebb在《The Organization of Behavior》论文中描述了神经元学习法则。
人工神经网络更进一步被美国神经学家Frank Rosenblatt所发展。他提出了可以模拟人类感知能力的机器,并称之为‘感知机’。1957年,在Cornell航空实验室中,Frank Rosenblatt成功在IBM 704机上完成了感知机的仿真。两年后,他又成功实现了能够识别一些英文字母、基于感知机的神经计算机——Mark1,并于1960年6月23日,展示于众。在感知器算法中,激活函数是一个简单的单位阶跃函数(unit step function),有时也叫赫维赛德阶跃函数(Heaviside step function):
随着人工神经网络快速发展,研究人员都对其研究,演化出更多的,更加复杂的,更深的神经网络来提高精确度。而激活函数的不同也会导致过拟合等问题。现在我们看看经典的神经网络中使用的激活函数的演变。第一个CNN模型诞生于1989年,发明人LeCun。1998年,LeCun提出LeNet,并成功应用于美国手写数字识别。这是一种自下向上的一种学习方式,使用的是Tanh激活函数。
设计能够快速训练精确的深层神经网络的激活函数是一个非常活跃的研究领域。目前神经网络最常用的激活函数-ReLU(rectified linear unit)是Nair & Hintonw是在2010为限制玻尔兹曼机(restricted Boltzmann machines)提出的,并且首次成功地应用于神经网络(Glorot,2011)。除了产生稀疏代码,主要优势是ReLUs缓解了消失的梯度问题(Hochreiter, 1998;Hochreiteret al .)。值得注意的是,ReLUs是非负的,因此,它的平均激活值大于零。并且ReLU更容易学习优化。因为其分段线性性质,导致其前传,后传,求导都是分段线性。而传统的sigmoid函数,由于两端饱和,在传播过程中容易丢弃信息。
ReLUs缺点是不能用Gradient-Based方法。同时如果de-active,容易无法再次active。因此,Goodfellow et al., 2013将ReLU和Maxout分段线性的激活函数应用于神经网络,取得了很大得进步。maxout的激活函数计算了一组线性函数的最大值,并具有可以逼近输入的任何凸函数的性质。Springenberg & Riedmiller(2013)用概率max函数代替了max函数,Gulcehre等人(2014)探索了用LP规范代替max函数的激活函数。
“Leaky ReLUs”(LReLUs)用一个线性函数替换ReLU的负部分,在论文(Maas et al.,2013《Rectifier nonlinearities improve neural network acoustic models.》)中,已被证明优于ReLUs。
PReLUs( Parametric Rectified Linear Unit参数修正线性单元)是由LReLUs衍生,出自论文《Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification》。它通过学习负部分的斜率来改进。PReLUs改进模型拟合,额外计算成本几乎为零,且风险较小。此外,PReLUs用了一个鲁棒的初始化方法,特别考虑整流非线性。
另一个变体是Randomized Leaky Rectified Linear Units随机的漏型整流线性单元(RReLUs),它随机抽取负值的斜率部分,提高了图像基准数据集和卷积网络的性能(Xu,et al .,2015)。
与ReLUs相反,LReLUs、PReLUs和RReLUs等激活函数不能保证一个noise-robust失活状态。ELU提出一个具有负值的激活函数,这可以使得平均激活接近于零,但它会以更小的参数饱和为负值。这个激活函数使得代码单元更容易被模型化也更容易解释,只有激活的代码单元携带大量信息。
主要事件
年份 | 事件 | 相关论文 |
1958 | Rosenblatt, F.提出The perceptron,首个有关感知机的成果 | Rosenblatt, F. (1958). The perceptron: a probabilistic model for information storage and organization in the brain. Psychological review, 65(6), 386. |
1961 | Rosenblatt, F对感知机进一步证明,此时激活函数为unit step function | Rosenblatt, F. (1961). Principles of neurodynamics. perceptrons and the theory of brain mechanisms (No. VG-1196-G-8). CORNELL AERONAUTICAL LAB INC BUFFALO NY. |
1998 | LeCun等人提出LeNet,激活函数Tanh | LeCun, Y., Bottou, L., Bengio, Y., & Haffner, P. (1998). Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11), 2278-2324. |
2010 | Nair, V., & Hinton, G. E.为限制玻尔兹曼机提出ReLu激活函数 | Nair, V., & Hinton, G. E. (2010). Rectified linear units improve restricted boltzmann machines. In Proceedings of the 27th international conference on machine learning (ICML-10) (pp. 807-814). |
2011 | Glorot将ReLU用于神经网络 | Glorot, X., Bordes, A., & Bengio, Y. (2011, June). Deep sparse rectifier neural networks. In Proceedings of the Fourteenth International Conference on Artificial Intelligence and Statistics (pp. 315-323). |
2012 | Alex将Relu应用于神经网络名为AlexNet,之后Relu便在神经网络中广泛的运用 | Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). Imagenet classification with deep convolutional neural networks. In Advances in neural information processing systems (pp. 1097-1105). |
2013 | Leaky ReLUs对ReLU进行了改进 | Maas, A. L., Hannun, A. Y., & Ng, A. Y. (2013, June). Rectifier nonlinearities improve neural network acoustic models. In Proc. icml (Vol. 30, No. 1, p. 3). |
2015 | Clevert, D. A提出了ELU激活函数用于快速准确的神经网络 | Clevert, D. A., Unterthiner, T., & Hochreiter, S. (2015). Fast and accurate deep network learning by exponential linear units (elus). arXiv preprint arXiv:1511.07289. |
发展分析
瓶颈
关于激活函数的选取,目前还不存在定论,实践过程中更多还是需要结合实际情况,考虑不同激活函数的优缺点综合使用。
未来发展方向
无论是ReLU,ELU还是Softmax,tanh or sigmod,每个函数都有自身的有点以及缺点。如何将使得自己的网络能够获取更高的准确性,需要根据不同的需求(如计算量,或梯度变化)等来进行选择。同时,也可期待越来越多的新想法,改进目前存在的不足。
Contributor: Ruiying Cai