神经网络激活函数_第1页
神经网络激活函数_第2页
神经网络激活函数_第3页
神经网络激活函数_第4页
神经网络激活函数_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、激活函数是用来加入非线性因素的,因为线性模型的表达能力不够。1. S形函数( Sigmoid Function )该函数的导函数:2. 双极S形函数该函数的导函数:S形函数与双极S形函数的图像如下:双极S形函数与S形函数主要区别在于函数的值域,双极S形函数值域是(-1,1),而S形函数值域是(0,1)。由于S形函数与双极S形函数都是可导的(导函数是连续函数),因此适合用在BP神经网络中。(BP算法要求激活函数可导)3. 双曲正切函数该函数的导函数:4. ReLu(RectifiedLinearUnits)函数ReLU: g(x)=max(0,x)该函数的导函数:g(x)=0或1RELU取代si

2、gmoid 和tanh函数的原因是在求解梯度下降时RELU的速度更快,在大数集下会节省训练的时间在这里指出sigmoid和tanh是饱和非线性函数,而RELU是非饱和非线性函数。5. PRELU激活函数PReLU(Parametric Rectified Linear Unit), 顾名思义:带参数的ReLU。二者的定义和区别如下图:如果ai=0,那么PReLU退化为ReLU;如果ai是一个很小的固定值(如ai=0.01),则PReLU退化为Leaky ReLU(LReLU)。 有实验证明,与ReLU相比,LReLU对最终的结果几乎没什么影响。激活函数通常有如下一些性质: 非线性:当激活函数是

3、线性的时候,一个两层的神经网络就可以逼近基本上所有的函数了。但是,如果激活函数是恒等激活函数的时候(即f(x)=x),就不满足这个性质了,而且如果MLP使用的是恒等激活函数,那么其实整个网络跟单层神经网络是等价的。 可微性:当优化方法是基于梯度的时候,这个性质是必须的。 单调性:当激活函数是单调的时候,单层网络能够保证是凸函数。 f(x)x:当激活函数满足这个性质的时候,如果参数的初始化是random的很小的值,那么神经网络的训练将会很高效;如果不满足这个性质,那么就需要很用心的去设置初始值。 输出值的范围:当激活函数输出值是有限的时候,基于梯度的优化方法会更加稳定,因为特征的表示受有限权值的

4、影响更显著;当激活函数的输出是无限的时候,模型的训练会更加高效,不过在这种情况小,一般需要更小的learning rate.Sigmoidsigmoid 函数曾经被使用的很多,不过近年来,用它的人越来越少了。主要是因为它的一些缺点: Sigmoids saturate and kill gradients.(saturate 这个词怎么翻译?饱和?)sigmoid 有一个非常致命的缺点,当输入非常大或者非常小的时候(saturation),这些神经元的梯度是接近于0的,从图中可以看出梯度的趋势。所以,你需要尤其注意参数的初始值来尽量避免saturation的情况。如果你的初始值很大的话,大部分

5、神经元可能都会处在saturation的状态而把gradient kill掉,这会导致网络变的很难学习。 Sigmoid 的 output 不是0均值.这是不可取的,因为这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。产生的一个结果就是:如果数据进入神经元的时候是正的(e.g.x0elementwise inf=wTx+b),那么w计算出的梯度也会始终都是正的。当然了,如果你是按batch去训练,那么那个batch可能得到不同的信号,所以这个问题还是可以缓解一下的。因此,非0均值这个问题虽然会产生一些不好的影响,不过跟上面提到的 kill gradients 问题相比还是要好很

6、多的。tanhtanh 是上图中的右图,可以看出,tanh 跟sigmoid还是很像的,实际上,tanh 是sigmoid的变形:tanh(x)=2sigmoid(2x)1与 sigmoid 不同的是,tanh 是0均值的。因此,实际应用中,tanh 会比 sigmoid 更好(毕竟去粗取精了嘛)。ReLU近年来,ReLU 变的越来越受欢迎。它的数学表达式如下:f(x)=max(0,x)很显然,从图左可以看出,输入信号0的情况下,输出等于输入。w是二维的情况下,使用ReLU之后的效果如下:ReLU 的优点: Krizhevsky et al.发现使用 ReLU 得到的SGD的收敛速度会比 si

7、gmoid/tanh 快很多(看右图)。有人说这是因为它是linear,而且 non-saturating 相比于 sigmoid/tanh,ReLU 只需要一个阈值就可以得到激活值,而不用去算一大堆复杂的运算。ReLU 的缺点:当然 ReLU 也有缺点,就是训练的时候很”脆弱”,很容易就”die”了. 什么意思呢?举个例子:一个非常大的梯度流过一个 ReLU 神经元,更新过参数之后,这个神经元再也不会对任何数据有激活现象了。如果这个情况发生了,那么这个神经元的梯度就永远都会是0.实际操作中,如果你的learning rate 很大,那么很有可能你网络中的40%的神经元都”dead”了。当然,

8、如果你设置了一个合适的较小的learning rate,这个问题发生的情况其实也不会太频繁。Leaky-ReLU、P-ReLU、R-ReLULeaky ReLUs:就是用来解决这个“dying ReLU”的问题的。与 ReLU 不同的是:f(x)=x,(x=0)这里的是一个很小的常数。这样,即修正了数据分布,又保留了一些负轴的值,使得负轴信息不会全部丢失。关于Leaky ReLU 的效果,众说纷纭,没有清晰的定论。有些人做了实验发现 Leaky ReLU 表现的很好;有些实验则证明并不是这样。Parametric ReLU:对于 Leaky ReLU 中的,通常都是通过先验知识人工赋值的。然而

9、可以观察到,损失函数对的导数我们是可以求得的,可不可以将它作为一个参数进行训练呢?Kaiming He的论文Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification指出,不仅可以训练,而且效果更好。公式非常简单,反向传播至未激活前的神经元的公式就不写了,很容易就能得到。对的导数如下:yi / =0,(if yi0),else=yi原文说使用了Parametric ReLU后,最终效果比不用提高了1.03%.Randomized ReLU:Randomized Leaky

10、 ReLU 是 leaky ReLU 的random 版本 (是random的).它首次试在 kaggle 的NDSB 比赛中被提出的。核心思想就是,在训练过程中,是从一个高斯分布U(l,u)中 随机出来的,然后再测试过程中进行修正(有点像dropout的用法)。数学表示如下:在测试阶段,把训练过程中所有的ij取个平均值。MaxoutMaxout出现在ICML2013上,作者Goodfellow将maxout和dropout结合后,号称在MNIST, CIFAR-10, CIFAR-100, SVHN这4个数据上都取得了start-of-art的识别率。Maxout 公式如下:fi(x)=ma

11、xj1,kzij假设w是2维,那么有:f(x)=max(wT1x+b1,wT2x+b2)可以注意到,ReLU 和 Leaky ReLU 都是它的一个变形(比如,w1,b1=0的时候,就是 ReLU).Maxout的拟合能力是非常强的,它可以拟合任意的的凸函数。作者从数学的角度上也证明了这个结论,即只需2个maxout节点就可以拟合任意的凸函数了(相减),前提是”隐隐含层”节点的个数可以任意多.所以,Maxout 具有 ReLU 的优点(如:计算简单,不会 saturation),同时又没有 ReLU 的一些缺点 (如:容易 Go die)。不过呢,还是有一些缺点的嘛:就是把参数double了。

12、怎么选择激活函数呢?我觉得这种问题不可能有定论的吧,只能说是个人建议。如果你使用 ReLU,那么一定要小心设置 learning rate,而且要注意不要让你的网络出现很多 “dead” 神经元,如果这个问题不好解决,那么可以试试 Leaky ReLU、PReLU 或者 Maxout.友情提醒:最好不要用 sigmoid,你可以试试 tanh,不过可以预期它的效果会比不上 ReLU 和 Maxout.还有,通常来说,很少会把各种激活函数串起来在一个网络中使用的。For the output units, you should choose an activation function suit

13、ed to thedistribution of the target values: For binary (0/1) targets, the logistic function is an excellent choice(Jordan, 1995). For categorical targets using 1-of-C coding, the softmax activationfunction is the logical extension of the logistic function. For continuous-valued targets with a bounde

14、d range, the logistic and tanhfunctions can be used, provided you either scale the outputs to the rangeof the targets or scale the targets to the range of the output activationfunction (scaling means multiplying by and adding appropriateconstants). If the target values are positive but have no known

15、 upper bound, you canuse an exponential output activation function, but beware of overflow. For continuous-valued targets with no known bounds, use the identity orlinear activation function (which amounts to no activation function)unless you have a very good reason to do otherwise.Naming conventions

16、. Notice that when we say N-layer neural network, we do not count the input layer. Therefore, a single-layer neural network describes a network with no hidden layers (input directly mapped to output). In that sense, you can sometimes hear people say that logistic regression or SVMs are simply a spec

17、ial case of single-layer Neural Networks. You may also hear these networks interchangeably referred to as “Artificial Neural Networks” (ANN) or “Multi-Layer Perceptrons” (MLP). Many people do not like the analogies between Neural Networks and real brains and prefer to refer to neurons as units.Maxou

18、t算法流程1、算法概述开始前我们先讲解什么叫maxout networks,等我们明白了什么叫maxout 网络后,再对maxout的相理论意义做出解释。Maxout是深度学习网络中的一层网络,就像池化层、卷积层一样等,我们可以把maxout 看成是网络的激活函数层,这个后面再讲解,本部分我们要先知道什么是maxout。我们假设网络某一层的输入特征向量为:X=(x1,x2,xd),也就是我们输入是d个神经元。Maxout隐藏层每个神经元的计算公式如下:上面的公式就是maxout隐藏层神经元i的计算公式。其中,k就是maxout层所需要的参数了,由我们人为设定大小。就像dropout一样,也有自

19、己的参数p(每个神经元dropout概率),maxout的参数是k。公式中Z的计算公式为:权重w是一个大小为(d,m,k)三维矩阵,b是一个大小为(m,k)的二维矩阵,这两个就是我们需要学习的参数。如果我们设定参数k=1,那么这个时候,网络就类似于以前我们所学普通的MLP网络。我们可以这么理解,本来传统的MLP算法在第i层到第i+1层,参数只有一组,然而现在我们不怎么干了,我们在这一层同时训练n组参数,然后选择激活值最大的作为下一层神经元的激活值。下面还是用一个例子进行讲解,比较容易搞懂。为了简单起见,假设我们网络第i层有2个神经元x1、x2,第i+1层的神经元个数为1个,如下图所示:(1)以前MLP的方法。我们要计算第i+1层,那个神经元的激活值的时候,传统的MLP计算公式就是:z=W*X+bout=f(z)其中f就是我们所谓的激活函数,比如Sigmod、Relu、Tanh等。(2)Maxout 的方法。如果我们设置maxout的参数k=5,maxout层就如下所示:相当于在每个输出神经元前面又多了一层。这一层有5个神经元,此时maxout

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论