ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:240.65KB ,
资源ID:5132679      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5132679.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(各种激活函数比较docx.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

各种激活函数比较docx.docx

1、各种激活函数比较docx神经网络之激活函数(Activation Function)激活函数,比如:sigmoid、ReLU等等。1. 为什么需要激活函数?2. 激活函数都有哪些?都长什么样?有哪些优缺点?3. 怎么选用激活函数?A cartoon drawing of a biological neuron (left) and its mathematical model (right).Why use activation functions?激活函数通常有如下一些性质:非线性:当激活函数是线性的时候,一个两层的神经网络就可以逼近基本上所有的函数了。但是,如 果激活函数是恒等激活函数的时

2、候(即/(a)=z),就不满足这个性质了,而且如果MLP使用的是恒等 激活函数,那么其实整个网络跟单层神经网络是等价的。可微性:当优化方法是基于梯度的时候,这个性质是必须的。单调性:当激活函数是单调的时候,单层网络能够保证是凸函数。 心):当激活函数满足这个性质的时候,如果参数的初始化是random的很小的值,那么神经网络的 训练将会很高效;如果不满足这个性质,那么就需要很用心的去设置初始值。输出值的范围:当激活函数输出值是有限的时候,基于梯度的优化方法会更加稳定,因为特征的表示受有限权值的影响更显著;当激活函数的输出是无限的时候,模型的训练会更加高效,不过在这种情况小,一般需要更小的lear

3、ning rate. 这些性质,也正是我们使用激活函数的原因! Activation Functions.SigmoidLeft: Sigmoid non-linearily squashes real numbers to range between 0,1 Right: The tanh non linearity squashes real numbers to range between -1,1.新。 函数输出不是以0为中心的。这是不可取的,因为这会导致后一层的神经元将得到上一层输出的非0 均值的信号作为输入。我们更偏向于当激活函数的输入是0时,输出也是0的函数。产生的一个结果就是:

4、如果数据进入神经元的时候是正的(e.g. x0 elementwise in fwTx+b),那 么计算出的梯度也会始终都是正的。当然了,如果你是按batch去训练,那么那个batch可能得到不同的信号,所以这个问题还是可以缓 解一下的。因此,非0均值这个问题虽然会产生一些不好的影响,不过跟上面提到的kill gradients问 题相比还是要好很多的。tanhtanh是上图中的右图,可以看出,tanh跟sigmoid还是很像的,实际上,tanh是sigmoid的变形:tan h(炉 2sigmoid(-*CMS9ew Fsel10 1 20 26 0 M 40Epochs与sigmoid不同

5、的是,tanh是0均值的。因此,实际应用中,tanh会比sigmoid更好(毕竟去粗取精了嘛 tanh函数将一个实数输入映射到卜1,1范围内,如上图(右)所示。当输入为0时,tanh函数输出为0 ,符合 我们对激活函数的要求。然而,tanh函数也存在梯度饱和问题,导致训练效率低下。Left: Rectified Linear Unit (ReLU) activation function, which is zero when x 0 Right: A plot from Krizhevsky et al. (pdf) paper indicating the 6x improvement!

6、in con vergence with the ReLU unit compared to the tanh unit.心)二/77輕0乂 很显然,从图左可以看出,输入信号vO时,输出都是0 , 0的情况下,输出等于输入。是二维的情况下,使用ReLU之后的效果如下:r +6 金 H相比sigmoid和tanh函数,Relu激活函数的优点在于:梯度不饱和。梯度计算公式为:lx0。因此在反向传播过程屮,减轻了梯度弥散的问题,神经 网络前几层的参数也可以很快的更新。 计算速度快。正向传播过程中,sigmoid和tanh函数计算激活值时需要计算指数,而Relu函数仅 需要设置阈值。如果xvO,f(x

7、)二0,如果xO,f(x)=x。加快了正向传播的计算速度。因此,Relu激活函数可以极大地加快收敛速度,相比tanh函数,收敛速度可以加快6倍ReLU的优点: Krizhevsky et al.发现使用ReLU得到的SGD(随机梯度下降)的收敛速度会比sigmoid/tanh快很多 (看右图)。有人说这是因为它是linear ,而且non-saturating相比于sigmoid/tanh , ReLU只需要一个阈值就可以得到激活值,而不用去算一大堆复杂的运算。ReLU的缺点:当然ReLU也有缺点,就是训练的时候很”脆弱”,很容易就”die”了.什么意思呢?举个例子:一个非常大的梯度流过一个R

8、eLU神经元,更新过参数之后,这个神经元再也不会对任何数据有 激活现象了。如果这个情况发生了,那么这个神经元的梯度就永远都会是0.当然,如果你设置了一个合适的较小的learning rate ,这个问题发生的情况其实也不会太频繁。Leaky-ReLU. P-ReLU. R-ReLULeaky ReLUs :就是用来解决这个“dying ReLU”的问题的。与ReLU不同的是:f)=ax, (%=0)这里的a是一个很小的常数。这样,即修正了数据分布,又保留了一些负轴的值,使得负轴信息不会全部丢失。关于Leaky ReLU的效果,众说纷纭,没有清晰的定论。有些人做了实验发现Leaky ReLU表现

9、的很好;有Leaky ReLU/PReLUVi = OiXi III些实验则证明并不是这样。Parametric ReLU :对于Leaky ReLU中的a ,通常都是通过先验知识人工赋值的。然而可以观察到,损失函数对a的导数我们是可以求得的,可不可以将它作为一个参数进行训练呢?Kaiming He 的论文Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification指出,不仅可以训练,而且效果更好。公式非常简单,反向传播至未激活前的神经元的公式就不写了,很容易就能得到对a的

10、导数如下:6yi6aQ , (ifyiQ) , e/se=yi原文说使用了 Parametric ReLU后,最终效果比不用提高了 1.03%.Randomized ReLU :Randomized Leaky ReLU 是 leaky ReLU 的 random 版本(a 是 random 的).它首次试在kaggle的NDSB比赛中被提出的。核心思想就是,在训练过程中,a是从一个高斯分布5仙中随机出来的,然后再测试过程中进行修正(有 点像dropout的用法)if gOif Xji 0,数学表示如下:whereaji U仏 u), I 0阳p0 for i 0? for i = 0Logi

11、stic (aaSoft step)“/W=l+rf(x) = /(z)(l - /(j)Taifl2/W = tanh(i) = 5; -1r w=i - /m2ArcTan厂/(i) = tan1(i)RectifiedLinear Unit(ReLU)/佝 J 0 for I0im=0 for i 0Paraieteric Rectified Linear Unit (PReLU)121V/_“、I ax for i0r w=a for i0Exponential Linear Unit (EUJ)/.“ 、 a(ex-1) for i= | i for r0M = r /(i) + q

12、 for i0SoftPlus/f(i) = loge(l+eI)Bent identity/_阳*時I44SoftExponential泌业地for a0= 0 Cl八丿严for q0Sinusoidf(x) = sin(i)f (J)= cos(i)Sine/-x/V/ 1 for i = 0他)-(学for玮0x / 0 渝 i = 0/()-(警讐for殍。Gaussian:/J/W = el(i) = -2xez2How to choose a activation function?怎么选择激活函数呢?我觉得这种问题不可能有定论的吧,只能说是个人建议。如果你使用ReLU ,那么一定

13、要小心设置learning rate,而且要注意不要让你的网络出现很多“dead”神经元,如果这个问题不好解决,那么可以试试Leaky ReLU、PReLU或者Maxout.友情提醒:最好不要用sigmoid ,你可以试试tanh ,不过可以预期它的效果会比不上ReLU和Maxout.还有,通常来说,很少会把各种激活函数串起来在一个网络中使用的。Sigmoid是常用的非线性的激活函数,它的数学形式如下:/(A)=1/1+e-Z正如前一节提到的,它能够把输入的连续实值“压缩”到0和1之间。特别的,如果是非常大的负数,那么输出就是0 ;如果是非常大的正数,输出就是1.sigmoid函数曾经被使用的

14、很多,不过近年来,用它的人越来越少了。主要是因为它的一些缺点: 梯度饱和。Sigmoids saturate and kill gradients. ( saturate 这个词怎么翻译?饱和? ) sigmoid 有一 个非常致命的缺点,当输入非常大或者非常小的肘候(saturation ),即当函数激活值接近于0或者1 时,这些神经元的梯度是接近于0的,从图中可以看岀梯度的趋势。所以,你需要尤其注意参数的初 始值来尽量避免saturation的情况。如果你的初始值很大的话,大部分神经元可能都会处在saturation 的状态而把gradient kill掉,这会导致网络变的很难学习。在反向传播计算梯度过程中: 決)=(眇)唧+1)* * f (,每层残差接近于 ,计算出的梯度也不可避免地接近于o0这样 在参数微调过程中,会引起参数弥散问题,传到前几层的梯度已经非常靠近0 了,参数几乎不会再更ReLU近年来,ReLU变的越来越受欢迎。它的数学表达式如下:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1