深度学习中的激励函数

一、梯度消失与梯度爆炸

1、在DNN学习(二)反向传播中,观察公式三(3),为了求隐藏层参数的其中一步。根据链式法则,有

重新复习一下,J为损失函数。o为神经元的值,也是输入通过激励函数之后的值,z为上一层的神经元的线性变换的值。

 

2、那么下面上面式子中的这一步就是对激励函数的求导:

 

3、如果隐藏层数越来越多,那么公式将越来越长,对激励函数的求导会越来越多:

 

如果使用不恰当的激活函数则,由于乘积越来越多,则会造成梯度消失,或者梯度爆炸。

 

以sigmoid为例子:

其导数

可以得到最大值为0.25。因此如果当其更小并且乘积项越来越多就会造成梯度消失,这样会影响优化效率,可能迭代了很多次,参数基本都没什么变化。

 

同理如果导数很大的话,乘积项很多则会造成梯度爆炸。参数一直在震荡,不利于调参数。

 

 

二、tanh

1、公式

变换可得到:

2、对其求导数,最大值为1,因此仍然会存在梯度消失的问题。

但是tanh是以0为中心的,这一点比sigmoid激活函数要好(这查了几篇文章,还是没有搞懂为什么)。

 

三、SOFTMAX

1、公式

2、一般用于多分类问题。上述各个sigma(j)加起来为1。

 

四、RELU

1、公式:

2、在x>0时候,其导数均为1,就不会存在优化的问题。

3、缺点:

当x<0时候,输入总是零,就会得到死神经元。因为反向传播时候,导数也是0,那么根据链式法则整个公式都是0,因此参数就不会得到更新。

 

五、LEAKY RELU

1、公式

2、当x为负数时,导数依然有值,因此不会变为死神经元。

 

六、ELU

没有具体研究,只是看了下公式

1、公式:

 

七、总结

sigmoid适合二分类的输出层,softmax适合多分类的输出层。

在隐藏层选取激活函数时,首先尝试RELU,然后可以用Leaky Relu 和Elu做对比。

转载于:https://www.cnblogs.com/ylxn/p/10171319.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值