常见的激活函数

            激活函数(Activation Function),就是在人工神经元上运行的函数,负责将神经元的输入映射到输出端 。

simoid函数为:

                                                                                 

                                                               

优点:

      它能够将输入值约束在(0,1),单调连续,当输入x趋向于负的无穷大,输出为0。当输入x趋向于正的无穷大,输出为1。

缺点:

       当输入x趋向于负的无穷大或者趋向于正的无穷大时,其梯度变化很小,倒数接近于0.x在两端时,容易产生软饱和。同时该函数并不是关于原点成中心对称。深度神经网络中梯度反向传递时导致梯度爆炸和梯度消失,而梯度消失发生的概率比较大。当输入非常大或者非常小的时候(saturation),这些神经元的梯度是接近于0的,从图中可以看出梯度的趋势。如果你的初始值很大的话,大部分神经元可能都会处在saturation的状态而把gradient kill掉,这会导致网络变的很难学习。

tanh函数为:

                                                                        

                                                             

       和sigmoid函数相似,可以看作时拉伸版的sigmoid函数。关于原点成中心对称。

优点:

  • 比Sigmoid函数收敛速度更快。

缺点:

  • 并没有解决Sigmoid函数的存在的最大问题——由于饱和性产生的梯度消失。

ReLU函数为:

目前使用最多最受欢迎的激活函数,公式和函数图像如下所示:

                                                                       

                                                       

 

优点:

  • 相比起Sigmoid和tanh,ReLU在SGD中能够快速收敛,这是因为它线性(linear)、非饱和(non-saturating)的形式。
  • Sigmoid和tanh涉及了很多很expensive的操作(比如指数),ReLU可以更加简单的实现。
  • 有效缓解了梯度消失的问题。
  • 在没有无监督预训练的时候也能有较好的表现。
  • 随着训练的进行,可能会出现神经元死亡,权重无法更新的情况。如果发生这种情况,那么流经神经元的梯度从这一点开始将永远是0。也就是说,ReLU神经元在训练中不可逆地死亡了。
  • 提供了神经网络的稀疏表达能力。

 

  • 缺点:

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

 

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值