激活函数之深入解读

导读:什么是激活函数?

   在神经网络中,对于图像,我们主要采用了卷积的方式来处理,也就是对每个像素点赋予一个权值,这个操作显然就是线性的。但是对于我们的样本来说,不一定是线性可分的,为了解决这个问题,我们可以进行线性变化,或者我们引入非线性因素,解决线性模型所不能解决的问题。

   这就是为什么要有激活函数:激活函数是用来加入非线性因素的,因为线性模型的表达力不够

   所以激活函数,并不是去激活什么,而是指如何把“激活的神经元的特征”通过函数把特征保留并映射出来(保留特征,去除一些数据中是的冗余),这是神经网络能解决非线性问题关键。 

1.Sigmod函数

Sigmod是传统神经网络中最常用的激活函数之一,公式和函数图像如下:

优点:它输出映射在(0,1)内,单调连续,非常适合用作输出层;并且求导比较容易。

缺点:具有软饱和性,一旦输入落入饱和区,一阶导数就变得接近于0,很容易产生梯度消失;sigmoid 函数关于原点中心不对称;并且对于权重矩阵的初始化必须特别留意。比如,如果初始化权重过大,那么大多数神经元将会饱和,导致网络就几乎不学习。

饱和性:当|x|>c时,其中c为某常数,此时一阶导数等于0,通俗的说一阶导数就是上图中的斜率,函数越来越水平

2.Tanh函数

tach也是传统神经网络中最常用的激活函数,与sigmoid一样也存在饱和问题,但它的输出是0中心的,因此实际应用中tanh比sigmoid 更受欢迎。tanh函数实际上是一个放大的sigmoid函数,公式和函数图像如下:

     

优点:它的输出是以0为中心,所以收敛速度比sigmoid函数要快。

缺点:还是没有改变sigmoid函数的最大问题由于饱和性产生的梯度消失。

3.ReLU函数(默认)

relu函数是目前用的最多也是最受欢迎的激活函数,一般作为默认的激活函数使用,公式和函数图像如下:

优点:

相较于sigmoid和tanh函数,relu对于SGD(梯度下降优化算法) 的收敛有巨大的加速作用(Alex Krizhevsky指出有6倍之多)。有人认为这是由它的线性、非饱和的公式导致的。

相比于 sigmoidtanhrelu只需要一个阈值就可以得到激活值,而不用去算一大堆复杂的(指数)运算。

relu在x<0时是硬饱和。当x>0时一阶导数为1,所以relu函数在x>0时可以保持梯度不衰减,从而有效缓解了梯度消失的问题。

在没有无监督预训练的时候也能有较好的表现。

提供了神经网络的稀疏表达能力。

缺点:

随着训练的进行,部分输入会落到硬饱和区,导致对应的权重无法更新。我们称之为“神经元死亡”。 实际中,如果学习率设置得太高,可能会发现网络中 40% 的神经元都会死掉(在整个训练集中这些神经元都不会被激活)。合理设置学习率,会降低这种情况的发生概率。

除了relu本身外,TensorFlow后续又有相关ReLU衍生的激活函数,比如:ReLU6SReLULeaky ReLU PReLURReLUCReLU

4.ELU函数

ELUs是“指数线性单元”,它试图将激活函数的平均值接近零,从而加快学习的速度。同时,它还能通过正值的标识来避免梯度消失的问题。根据一些研究,ELUs分类精确度是高于ReLUs的。公式和图像如下:

5. LReLU、PReLU与RReLU 

LReLU、PReLU与RReLU是relu激活函数的改进版本,图像如下:

通常在LReLU和PReLU中,我们定义一个激活函数为:

-LReLU (Leaky ReLUs)

ai比较小而且固定的时候,我们称之为LReLU。LReLU最初的目的是为了避免梯度消失。但在一些实验中,我们发现LReLU对准确率并没有太大的影响。很多时候,当我们想要应用LReLU时,我们必须要非常小心谨慎地重复训练,选取出合适的a,LReLU的表现出的结果才比ReLU好。因此有人提出了一种自适应地从数据中学习参数的PReLU。

-PReLU (参数化修正线性单元)

PReLU是LReLU的改进,可以自适应地从数据中学习参数。PReLU具有收敛速度快、错误率低的特点。PReLU可以用于反向传播的训练,可以与其他层同时优化。

-RReLU(随机纠正线性单元)

RReLU中的aji是一个在一个给定的范围内随机抽取的值,这个值在测试环节就会固定下来。

6.总结

以上是现在比较常见比较常用的几种激活函数,sigmod和tanh已经慢慢退出舞台,在实际应用中需要通过分析和尝试来确定该用哪种激活函数,随着深度学习的进一步发展,还会有更多更优秀的激活函数产生,读者有好的观点可以给我留言,互相探讨,共同进步。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值