欢迎来到天天文库
浏览记录
ID:41703234
大小:253.96 KB
页数:13页
时间:2019-08-30
《各种激活函数比较》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、神经网络之激活函数(ActivationFunction)激活函数,比如:sigmoid、ReLU等等。1.为什么需要激活函数?2.激活函数都有哪些?都长什么样?有哪些优缺点?3.怎么选用激活函数?impulsescarriedWo9synapseaxonfromaneuronWqXqAcartoondrawingofabiologicalneuron(left)anditsmathematicalmodel(right).Whyuseactivationfunctions?激活函数通常有如下一些
2、性质:•非线性:当激活函数是线性的时候,一个两层的神经网络就可以逼近基本上所有的函数了。但是,如果激活函数是恒等激活函数的时候(即/(a)=z),就不满足这个性质了,而且如果MLP使用的是恒等激活函数,那么其实整个网络跟单层神经网络是等价的。•可微性:当优化方法是基于梯度的时候,这个性质是必须的。•单调性:当激活函数是单调的时候,单层网络能够保证是凸函数。•心):当激活函数满足这个性质的时候,如果参数的初始化是random的很小的值,那么神经网络的训练将会很高效;如果不满足这个性质,那么就需要很用
3、心的去设置初始值。•输出值的范围:当激活函数输出值是有限的时候,基于梯度的优化方法会更加稳定,因为特征的表示受有限权值的影响更显著;当激活函数的输出是无限的时候,模型的训练会更加高效,不过在这种情况小,一般需要更小的learningrate.这些性质,也正是我们使用激活函数的原因!ActivationFunctions.SigmoidLeft:Sigmoidnon-linearilysquashesrealnumberstorangebetween[0,1]Right:Thetanhnon・lin
4、earitysquashesrealnumberstorangebetween[-1,1].新。•函数输出不是以0为中心的。这是不可取的,因为这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。我们更偏向于当激活函数的输入是0时,输出也是0的函数。产生的一个结果就是:如果数据进入神经元的时候是正的(e.g.x>0elementwiseinf^wTx+b),那么"计算出的梯度也会始终都是正的。当然了,如果你是按batch去训练,那么那个batch可能得到不同的信号,所以这个问题还是可以缓
5、解一下的。因此,非0均值这个问题虽然会产生一些不好的影响,不过跟上面提到的killgradients问题相比还是要好很多的。tanhtanh是上图中的右图,可以看出,tanh跟sigmoid还是很像的,实际上,tanh是sigmoid的变形:tanh(炉2sigmoid(^-*与sigmoid不同的是,tanh是0均值的。因此,实际应用中,tanh会比sigmoid更好(毕竟去粗取精了嘛tanh函数将一个实数输入映射到卜1,1]范围内,如上图(右)所示。当输入为0时,tanh函数输出为0,符合我
6、们对激活函数的要求。然而,tanh函数也存在梯度饱和问题,导致训练效率低下。CMS9ewFsel101»2026>0M40EpochsLeft:RectifiedLinearUnit(ReLU)activationfunction,whichiszerowhenx<0andthenlinearwithslope1whenx>0・Right:AplotfromKrizhevskyetal.(pdf)paperindicatingthe6ximprovement!inconvergencewithth
7、eReLUunitcomparedtothetanhunit.心)二/77輕0乂很显然,从图左可以看出,输入信号vO时,输出都是0,>0的情况下,输出等于输入。"是二维的情况下,使用ReLU之后的效果如下:\r+6金H相比sigmoid和tanh函数,Relu激活函数的优点在于:•梯度不饱和。梯度计算公式为:l{x>0}。因此在反向传播过程屮,减轻了梯度弥散的问题,神经网络前几层的参数也可以很快的更新。•计算速度快。正向传播过程中,sigmoid和tanh函数计算激活值时需要计算指数,而Rel
8、u函数仅需要设置阈值。如果xvO,f(x)二0,如果x>O,f(x)=x。加快了正向传播的计算速度。因此,Relu激活函数可以极大地加快收敛速度,相比tanh函数,收敛速度可以加快6倍ReLU的优点:•Krizhevskyetal.发现使用ReLU得到的SGD(随机梯度下降)的收敛速度会比sigmoid/tanh快很多(看右图)。有人说这是因为它是linear,而且non-saturating•相比于sigmoid/tanh,ReLU只需要一个阈值就可以得到激活值,而不用去算一大堆
此文档下载收益归作者所有