神经网络激活函数的选择

激活函数(Activation functions)对于人工神经网络 模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。简单的说激活函数就是将函数的输出映射到我们希望的范围,而不只是线性的输出。

这里我们讲下面几种常见激活函数,Sigmoid、tanh、ReLU、Leaky ReLU,图像如下:

 

Sigmoid函数

在逻辑回归中常用Sigmoid作为激活函数

定义函数:

S(x)=\frac{1}{1+e^{-x}}

 Sigmoid函数将输出映射到(0,1)之间,从图像可以看出,在自变量绝对值较大的地方函数饱和,梯度几乎为0。

 

tanh 函数

  • tanh 函数(the hyperbolic tangent function,双曲正切函数),

定义函数:

tanh函数效果要比 sigmoid 函数好,因为函数输出介于 -1 和 1 之间。tanh 函数存在和 sigmoid 函数一样的缺点:当 z 趋紧无穷大(或无穷小),导数的梯度(即函数的斜率)就趋紧于 0,这使得梯度算法的速度会减慢。

 

 ReLU 数

  • ReLU 函数(the rectified linear unit,修正线性单元)

 f(x)=\max (0, x)

 当 z > 0 时,梯度始终为 1,从而提高神经网络基于梯度算法的运算速度,收敛速度远大sigmoid 和 tanh。然而当 z < 0 时,梯度一直为 0,但是实际的运用中。ReLU激活函数的形式很简单,这样简单的形式有利于简化计算过程。也更容易训练,在实际应用中,尤其是咋卷积神经网络中,大部分的激活函数都在应用ReLU函数

然而,ReLU函数也有局限性,在负半轴神经元会"死亡"(Dead),既梯度一直为0,因此无法进行更新,为了改善这一点,人们在上述原始的ReLU激活函数的基础上进行改进,有了Leaky ReLU 函数。

Leaky ReLU 函数

 Leaky ReLU 保证在 z < 0 的时候,梯度仍然不为 0。理论上来说,Leaky ReLU 有 ReLU 的所有优点,但在实际操作中没有证明总是好于 ReLU,因此不常用。

此外还有类似的其他改良版本pReLU,其数学表达式为:

f(x)= \begin{cases}x & \text { if } x>0 \\ px & \text { if } x \leq 0\end{cases}

其实pReLU 和 Leaky ReLU区别在于p , 这里的参数p是一个可以学习的变量,随着网络的训练过程进行优化,而 Leaky ReLU 的参数是确定的。

·

参考文献         sigmoid函数 

                      《机器学习与深度学习~算法基础》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值