激活函数relu、leaky-relu、elu、selu、serlu比较

什么是激活函数

简单来说我们知道神经网络中的每个神经元节点接受上一层神经元的输出值作为本神经元的输入值,并将输入值传递给下一层,输入层神经元节点会将输入属性值直接传递给下一层(隐层或输出层)。在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数。
如果不用激活函数(其实相当于激活函数是f(x) = x),在这种情况下你每一层节点的输入都是上层输出的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机(Perceptron)了,那么网络的逼近能力就相当有限。因此引入非线性函数作为激活函数,这样深层神经网络表达能力就更加强大。

1.ReLU(Rectified Linear Unit)

函数形式:
R e L U ( x ) = { x x  ≥  0 0 otherwise ReLU(x)=\left\{ \begin{array}{ll} x & \textrm{x $\ge$ 0}\\ 0 & \textrm{otherwise}\\ \end{array} \right. ReLU(x)={ x0 0otherwise
感觉是最常用的激活函数,形式简单,高度非线性。
优点:高度非线性。加快收敛速度,缓解梯度消失、爆炸问题,简化计算。
缺点:因为其将所有的输入负数变为0,在训练中可能很脆弱,很容易导致神经元失活,使其不会在任何数据点上再次激活。对于ReLu中(x<0)的激活,此时梯度为0,因此在下降过程中权重不会被调整。

2.Leaky-ReLU

函数形式:
L R e L U ( x ) = { x x  ≥  0 a x otherwise LReLU(x)=\left\{ \begin{array}{ll} x &amp; \textrm{x $\ge$ 0}\\ ax &amp; \textrm{otherwise}\\ \end{array} \right. LReLU(x)={ xa

  • 7
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值