打开文本图片集
摘 要:随着人工智能热潮的来临,越来越多的相关领域学者投身于其理论体系的构建工作之中。激活函数便是人工智能领域的明珠,即深度学习的主要组成部分之一。针对激活函数的研究也越来越多。本文旨在介绍现阶段深度学习领域最常用的几种激活函数,通过介绍其数学原理以及函数特性,针对其优缺点和使用利弊,分析这些激活函数的应用场景以及激活函数的发展趋势。
关键词:深度学习;激活函数;神经网络;人工智能
中图分类号:TP301.6 文献标识码:A 文章编号:1671-2064(2019)08-0213-02
0 引言
自从进入21世纪10年代,人工智能技術因为CNN等优秀算法的提出进入到了一个飞速发展的阶段,其中人工神经网络算法作为其核心组成部分也在逐步成熟,其理论体系的不断完善昭示着AI技术的发展进入到了一个崭新的阶段。而作为人工神经网络的核心之一,激活函数同样在不断的发展与完善,不断有新的更优秀的激活函数被提出。
在神经网络中,激活函数用于表示上层输出和下层输入之间的非线性函数关系,其作用主要体现在对每一层的输入进行归一化以及在一个庞大的线性系统中加入一些非线性元素。前者会将每一层的输出限制在一个特定的范围之内,比如0-1(sigmoid函数),防止出现绝对值较大的输出值影响整层的输出比重进而对整个网络的参数更新产生影响;后者则将神经网络与其他线性算法区分开来,因为神经网络的本质就是对数据进行非线性拟合,理论上它可以拟合任意函数。
1 经典激活函数研究
1.1 Sigmoid
Sigmoid函数[1]是一个主要适用于生物医学的S型曲线,因其形状与特性又被称为S型生长曲线。而在计算机信息科学中,Sigmoid函数主要被当作激活函数使用,它可以将输入变量映射到0至1之间。其数学形式表达如下:
由图1可知,该函数的特点是抑制两端,但是对中间区域变量的变化敏感,根据这一特性,它能够很好的识别出对整个网络模型有利的特征或语义信息。
在神经网络发展的前期,Sigmoid是使用最多的非线性激活函数,但是近年来,由于其本身不可避免的局限性以及其他优秀激活函数的提出,Sigmoid的使用频率越来越低。其缺点主要有四个:(1)Sigmoid函数的两端被严重抑制,曲线近乎平缓,导数趋近于0,这会导致此处权重几乎不被更新;(2)Sigmoid函数的导数值在[0,0.25]之间,由梯度反向传播的链式求导法则可知,如果网络层数较多,则靠近输入端的网络层的参数梯度趋近于0,会出现梯度消失的现象,导致这些层的参数几乎不被更新;(3)Sigmoid函数不是中心对称的,会导致在对参数进行更新时,每一层的参数会朝着一个方向变化,即一起增加或一起减少。而在参数更新时,理想的更新状态是每一层的参数的变化方向是不一致的,类似Sigmoid这种zig zag path形式的参数更新方式则会大大增加更新的消耗,即需要比理想更新方式花费更多的迭代次数才能达到相同的效果;(4)Sigmoid函数表达式中含有幂运算,会大大增加网络的计算量,在网络较大较深时,会大大增加训练时间。
1.2 Tanh
Tanh函数是双曲函数中的正切函数,与Sigmoid函数相比,Tanh函数可以将输出变量映射到[-1,1]之间。其数学表达式是:
由图2和其数学表达式可知,该函数是中心对称的,故在参数更新时参数的更新方向不会如Sigmoid函数一样保持一致性给模型训练带来困难,该函数的另一个优点是其导数介于[0,1]之间,所以与Sigmoid函数相比其在一定程度上解决了梯度消失问题,但如果网络深度过深的话,还是会出现梯度消失的问题。
除此之外,Tanh函数存在一些不可忽视的缺点,一是存在两端抑制的问题,即两端存在梯度饱和的问题,这在一定程度上会给更新带来困难;二是其函数表达式中依旧含有幂运算,这会增加模型训练的时间和算力。
1.3 Relu
Relu函数[2]中文名为线性整流单元(Rectified Linear Unit, ReLU),又称为修正线性单元,在深度学习飞速发展的今日,Relu函数以及变种已经成为神经网络中最常用的激活函数[3],虽然其名为线性,但是其实质上是以斜坡函数为基本代表的非线性函数,斜坡函数的数学表达式为:
Relu函数的优点显著,Sigmoid和Tanh函数存在的问题Relu都成功避免了,比如Relu函数不存在两端抑制问题,计算简单,而且最重要的是其成功解决了梯度消失的问题:(1)由Relu函数的图像图3可知,Relu函数不会有两端抑制问题,但其对负输入不敏感;(2)由Relu函数的数学表达式可知,Relu函数异常简单,这大大简化了网络的运算量;(3)由于人工神经网络的飞速发展,网络的深度在不断变深,若是依旧使用Sigmoid函数以及Tanh函数的话,需要对网络进行分段训练,这不仅会增加网络的训练负担,还会降低网络的训练精度。相对而言,Relu函数没有此类困扰,因为Relu函数在其非饱和区的梯度始终为1,由梯度反向传播的链式法则可知,使用Relu函数不会出现梯度消失以及梯度爆炸的问题,因此Relu函数已逐渐成为当今神经网络激活函数的主流;(4)Relu函数符合人体生物学原理,科学研究表明人体大脑神经元在通常情况下只有1%到4%是激活状态,而Relu函数配合层正则化比如Dropout等可以达到相似的效果。
正是由于以上优点,目前Relu函数已经取代了Sigmoid函数成为最常用的激活函数,被广泛用于诸如图像识别、目标检测、语义分割等计算机视觉领域。尽管如此,Relu函数也有其不可忽视的缺点,即Relu函数左端全抑制,其对负输入不敏感,会将负输入全部映射为0,因此,近年来,不断有Relu的变种出现,比如LReLU(Leaky Relu),PRelu,RRelu,Elu,SElu等,其数学表达式分别为:
LReLU,PRelu和RRelu分享相同的表达式但也有细微差别:LRelu表达式中的α为常量,通常设置为0.01;PRelu中的α则是一个未知变量,可以放入网络中由输入数据训练出来;RRelu中的α则是在某一个给定范围内的随机取样值。Elu函数中的α同样也是一个位置变量,它控制着函数左半边的饱和区段;SElu函数其实只是在Elu函数的基础上乘上一个值大于1的λ,其目的是使得网络达到自归一化,即通过激活函数后的批样本归一化到均值为0、方差为1。综上所述,以上这5个函数是目前比较常见且被广泛应用和接受的Relu函数的变种,它们在一定程度上解决了Relu函数的不足之处。
2 激活函数的发展趋势与应用前景
2.1 发展趋势
尽管人工智能领域发展迅速,诸如人工神经网络等深度学习算法的不断完善使得该领域正在进入黄金时期,但尽管如此,不可否认的是,深度学习甚至人工智能都是一个非常年轻的学科,也就是说,在人工智能领域还有许多亟待开发的部分,其理论体系还亟待完善。作为深度学习算法中不可忽视的一部分,激活函数同样也远未成熟,虽然从Sigmoid到Relu,从梯度消失到自归一化,近年来激活函数方面的研究取得了可喜的成绩,其发展也是飞跃性的,但是该理论还是有许多需要完善的部分,全世界依旧有大量的人工智能学者和研究人员在研究激活函数。
虽然目前Relu函数及其变种已经可以满足当前神经网络的训练并能取得较好的训练成果,但是随着深度学习领域的不断发展,激活函数必定需要不断更新自己以便满足今后越来越复杂的网络以及越来越高的精度要求。因此,Relu及其变种依然会是目前的主要研究方向,但可以期待的是会有更加优秀的激活函数出现。
2.2 应用前景
时至今日,在国际发展的大环境下,人工智能领域炙手可热。国外的众多研究机构,国内即将落成的几大人工智能研究中心,都给人工智能领域提供了发展的土壤,可以预见的是,人工智能必将是未来的主要发展方向之一,因此,作为深度学习的基本组成单位,激活函数也必将有广阔的应用前景,因为无论是在计算机视觉还是自然语言处理领域,它都无处不在。所以,只要人工神经网络技术没有发生重大的变革或者出现更加优秀的算法完全取代了人工神经网络,人工智能邻域的发展都必将带动激活函数理论的发展,因此激活函数必将伴随着人工智能技术不断革新。
3 结论与展望
作为非线性算法中的佼佼者,人工神经网络必将统治未来深度学习算法很长的一段时间。而作为人工神经网络中唯一的非线性元素,激活函数的重要性毋庸置疑。可以说激活函數赋予模型的非线性特性让人工神经网络拥有了灵魂,否则一个线性神经网络的复杂性将毫无意义,其效果与最简单的感知机相同。
至今,伴随着人工智能的热潮,激活函数的理论发展也迎来了爆发期,许多优秀的函数不断被提出,但这还远未成熟,其理论体系还亟待完善。
参考文献
[1] 黄毅,段修生,孙世宇,等.基于改进sigmoid激活函数的深度神经网络训练算法研究[J].计算机测量与控制,2017,25(02):132-135.
[2] 蒋昂波,王维维.ReLU激活函数优化研究[J].传感器与微系统,2018(2):50-52.
[3] 王双印,滕国文.卷积神经网络中ReLU激活函数优化设计[J].信息通信,2018(1):42-43.