神经网络激活函数

更新时间:2023-06-09 10:36:10 阅读: 评论:0

激活函数是用来加入非线性因素的;因为线性模型的表达能力不够..
1.S形函数 Sigmoid Function
该函数的导函数:
2.双极S形函数
该函数的导函数:
S形函数与双极S形函数的图像如下:
双极S形函数与S形函数主要区别在于函数的值域;双极S形函数值域是-1;1;而S形函数值域是0;1..
  由于S形函数与双极S形函数都是可导的导函数是连续函数;因此适合用在BP神经网络中..BP算法要求激活函数可导
3.双曲正切函数
该函数的导函数:
4.ReLuRectifiedLinearUnits函数
ReLU: gx=max0;x
该函数的导函数:
gx'=0或1
RELU取代sigmoid 和tanh函数的原因是在求解梯度下降时RELU的速度更快;在大数集下会节省训练的时间
在这里指出sigmoid和tanh是饱和非线性函数;而RELU是非饱和非线性函数..28颗牙
5.PRELU激活函数
PReLUParametric Rectified Linear Unit; 顾名思义:带参数的ReLU..二者的定义和区别如下图:
如果ai=0;那么PReLU退化为ReLU;如果ai是一个很小的固定值如ai=0.01;则PReLU退化为Leaky ReLULReLU.. 有实验证明;与ReLU相比;LReLU对最终的结果几乎没什么影响..
激活函数通常有如下一些性质:
非线性:当激活函数是线性的时候;一个两层的神经网络就可以逼近基本上所有的函数了..但是;如果激活函数是恒等激活函数的时候即fx=x;就不满足这个性质了;而且如果MLP使用
的是恒等激活函数;那么其实整个网络跟单层神经网络是等价的..
可微性:当优化方法是基于梯度的时候;这个性质是必须的..
单调性:当激活函数是单调的时候;单层网络能够保证是凸函数..
偶然造句fxx:当激活函数满足这个性质的时候;如果参数的初始化是random的很小的值;那么神经网络的训练将会很高效;如果不满足这个性质;那么就需要很用心的去设置初始值..
输出值的范围:当激活函数输出值是有限的时候;基于梯度的优化方法会更加稳定;因为特征的表示受有限权值的影响更显着;当激活函数的输出是无限的时候;模型的训练会更加高效;不过在这种情况小;一般需要更小的learning rate.
Sigmoid
sigmoid 函数曾经被使用的很多;不过近年来;用它的人越来越少了..主要是因为它的一些缺点:
Sigmoids saturate and kill gradients.saturate 这个词怎么翻译 饱和 sigmoid 有一个非常致
命的缺点;当输入非常大或者非常小的时候saturation;这些神经元的梯度是接近于0的;从图中可以看出梯度的趋势..所以;你需要尤其注意参数的初始值来尽量避免saturation的情况..如果你的初始值很大的话;大部分神经元可能都会处在saturation的状态而把gradient kill掉;这会导致网络变的很难学习..
Sigmoid 的 output 不是0均值.这是不可取的;因为这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入..产生的一个结果就是:如果数据进入神经元的时候是正的e.g.x>0elementwi inf=wTx+b;那么w计算出的梯度也会始终都是正的..当然了;如果你是按batch去训练;那么那个batch可能得到不同的信号;所以这个问题还是可以缓解一下的..因此;非0均值这个问题虽然会产生一些不好的影响;不过跟上面提到的 kill gradients 问题相比还是要好很多的..
tanh
tanh 是上图中的右图;可以看出;tanh 跟sigmoid还是很像的;实际上;tanh 是sigmoid的变形:
tanhx=2sigmoid2x1
与 sigmoid 不同的是;tanh 是0均值的..因此;实际应用中;tanh 会比 sigmoid 更好毕竟去粗取精了嘛..
ReLU
近年来;ReLU 变的越来越受欢迎..它的数学表达式如下:
fx=对教官的评价max0;x
很显然;从图左可以看出;输入信号<0时;输出都是0;>0的情况下;输出等于输入..w是二维的情况下;使用ReLU之后的效果如下:
ReLU 的优点:
Krizhevsky et al.发现使用 ReLU 得到的SGD的收敛速度会比 sigmoid/tanh 快很多看右图..有人说这是因为它是linear;而且 non-saturating
相比于 sigmoid/tanh;ReLU 只需要一个阈值就可以得到激活值;而不用去算一大堆复杂的运算..
ReLU 的缺点:当然 ReLU 也有缺点;就是训练的时候很”脆弱”;很容易就”die”了. 什么意思呢
举个例子:一个非常大的梯度流过一个 ReLU 神经元;更新过参数之后;这个神经元再也不会对任何数据有激活现象了..
如果这个情况发生了;那么这个神经元的梯度就永远都会是0.
实际操作中;如果你的learning rate 很大;那么很有可能你网络中的40%的神经元都”dead”了.. 
当然;如果你设置了一个合适的较小的learning rate;这个问题发生的情况其实也不会太频繁..
Leaky-ReLU、P-ReLU、R-ReLU
Leaky ReLUs: 就是用来解决这个 “dying ReLU” 的问题的..与 ReLU 不同的是: 
fx=αx;x<0
移动业务退订
fx=x;x>=0
这里的 α 是一个很小的常数..这样;即修正了数据分布;又保留了一些负轴的值;使得负轴信息不会全部丢失..
关于Leaky ReLU 的效果;众说纷纭;没有清晰的定论..有些人做了实验发现 Leaky ReLU 表现的很好;有些实验则证明并不是这样..
Parametric ReLU: 对于 Leaky ReLU 中的α;通常都是通过先验知识人工赋值的.. 
然而可以观察到;损失函数对农村生活垃圾α的导数我们是可以求得的;可不可以将它作为一个参数进行训练呢 
Kaiming He的论文Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification指出;不仅可以训练;而且效果更好..
公式非常简单;反向传播至未激活前的神经元的公式就不写了;很容易就能得到..对α的导数如下:
δyi / δα=0;if yi>0;el=考前心理yi
原文说使用了Parametric ReLU后;最终效果比不用提高了1.03%.
Randomized ReLU: 
Randomized Leaky ReLU 是 leaky ReLU 的random 版本 α 是random的. 
它首次试在 kaggle 的NDSB 比赛中被提出的..
核心思想就是;在训练过程中;α 是从一个高斯分布 Ul;u 中 随机出来的;然后再测试过程中进行修正有点像dropout的用法..
数学表示如下:
在测试阶段;把训练过程中所有的 αij 取个平均值..
Maxout
Maxout出现在ICML2013上;作者Goodfellow将maxout和dropout结合后;号称在MNIST; CIF
AR-10; CIFAR-100; SVHN这4个数据上都取得了start-of-art的识别率.. 
Maxout 公式如下: 
fix=maxj1;kzij
假设 w 是2维;那么有: 
fx=maxwT1x+b1;wT2x+b2
可以注意到;ReLU 和 Leaky ReLU 都是它的一个变形比如;w1;b1=0 的时候;就是 ReLU.
Maxout的拟合能力是非常强的;它可以拟合任意的的凸函数..作者从数学的角度上也证明了这个结论;即只需2个maxout节点就可以拟合任意的凸函数了相减;前提是”隐隐含层”节点的个数可以任意多.
所以;Maxout 具有 ReLU 的优点如:计算简单;不会 saturation;同时又没有 ReLU 的一些缺点 如:容易 Go die..不过呢;还是有一些缺点的嘛:就是把参数double了..
怎么选择激活函数呢
我觉得这种问题不可能有定论的吧;只能说是个人建议..
如果你使用 ReLU;那么一定要小心设置 learning rate;而且要注意不要让你的网络出现很多 “dead” 神经元;如果这个问题不好解决;那么可以试试 Leaky ReLU、PReLU 或者 Maxout.
友情提醒:最好不要用 sigmoid;你可以试试 tanh;不过可以预期它的效果会比不上 ReLU 和 Maxout.《九路》蟹总
还有;通常来说;很少会把各种激活函数串起来在一个网络中使用的..论文研究目的
For the output units; you should choo an activation function suited to the
distribution 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 activation
function is the logical extension of the logistic function.
For continuous-valued targets with a bounded range; the logistic and tanh
functions can be ud; provided you either scale the outputs to the range
of the targets or scale the targets to the range of the output activation
function "scaling" means multiplying by and adding appropriate

本文发布于:2023-06-09 10:36:10,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1030488.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:函数   训练   时候   梯度   网络   问题
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图