深度学习激活函数总结

各类激活函数总结

是什么:模型输入经过计算后,还经过了一个函数的计算,这个函数就是激活函数(activation function)。
为什么:深度学习模型中每一层都是上一层的线性函数的输出,使用激活函数可以将函数变为非线性,让模型又更强的学习能力。

常用的激活函数

1. sigmoid函数
函数表示:
f ( x ) = 1 1 + e − x f\left( x \right) = \frac{1}{{1 + {e^{ - x}}}} f(x)=1+ex1

激活函数特性:可以将输入的数值转换为[0,1]的数值,输入值为大负数时,输出为0,输入值为大正数时,输出为1.

缺陷
1.在反向传播中会导致梯度爆炸以及梯度消失

2.sigmoid函数包含幂运算,对于计算机而言会比较消耗计算资源,如果神经网络规模较大会增大训练时间。

3.非0均值,导致反向传播时数据捆绑w往正方向或负方向传播。

2.tanh函数

数学样式:
tanh ⁡ ( x ) = e x − e − x e x + e − x \tanh \left( x \right) = \frac{{{e^x} - {e^{ - x}}}}{{{e^x} + {e^{ - x}}}} tanh(x)=ex+exexex

激活函数特性
相较于sigmoid函数,解决了不是0均值的问题,但幂运算以及梯度爆炸、梯度消失的问题依然存在。

3.relu函数

数学样式:
Re ⁡ l u ( x ) = max ⁡ ( 0 , x ) \operatorname{Re} lu\left( x \right) = \max \left( {0,x} \right) Relu(x)=max(0,x)

relu函数为取最大值函数,但并不是全局可导。

优点
1.在正区间内解决了梯度消失的问题
2.计算速度迅速,只需要判断输入是否大于0
3.收敛速度相较于sigmoid与tanh更快

缺点
1.输出为非0均值
2.某些神经元因为参数初始化以及学习率太高的原因导致一直不能激活。
3.relu为最常用的激活函数

4.prelu函数
数学形式‘:
p r e l u ( x ) = max ⁡ ( α x , x ) prelu(x) = \max (\alpha x,x) prelu(x)=max(αx,x)

特点:为了解决relu函数dead relu problem的问题,将relu的前半段变成 α x \alpha x αx

怎么选用激活函数

凭经验选择激活函数优先级为relu>tanh>sigmoid

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值