神经网络中的常用激活函数总结

©PaperWeekly 原创 · 作者|张文翔

单位|京东集团算法工程师

研究方向|推荐算法

激活函数之性质

1. 非线性:即导数不是常数。保证多层网络不退化成单层线性网络。这也是激活函数的意义所在。 

2. 可微性:保证了在优化中梯度的可计算性。虽然 ReLU 存在有限个点处不可微,但处处 subgradient,可以替代梯度。

3. 计算简单:激活函数复杂就会降低计算速度,因此 RELU 要比 Exp 等操作的激活函数更受欢迎。 

4. 非饱和性(saturation):饱和指的是在某些区间梯度接近于零(即梯度消失),使得参数无法继续更新的问题。最经典的例子是 Sigmoid,它的导数在 x 为比较大的正值和比较小的负值时都会接近于 0。RELU 对于 x<0,其梯度恒为 0,这时候它也会出现饱和的现象。Leaky ReLU 和 PReLU 的提出正是为了解决这一问题。 

5. 单调性(monotonic):即导数符号不变。当激活函数是单调的时候,单层网络能够保证是凸函数。但是激活函数如 mish 等并不满足单调的条件,因此单调性并不是硬性条件,因为神经网络本来就是非凸的。

6. 参数少:大部分激活函数都是没有参数的。像 PReLU 带单个参数会略微增加网络的大小。还有一个例外是 Maxout,尽管本身没有参数,但在同样输出通道数下 k 路 Maxout 需要的输入通道数是其它函数的 k 倍,这意味着神经元数目也需要变为 k 倍。

参考:

[1] 如果在前向传播的过程中使用了不可导的函数,是不是就不能进行反向传播了?

https://www.zhihu.com/question/297337220/answer/936415957

[2] 为什么神经网络中的激活函数大部分都是单调的?

https://www.zhihu.com/question/66747114/answer/372830123

激活函数之简介

1. Sigmoid激活函数

sigmoid 函数及其导数如下:

优点:

  • 梯度平滑

  • 输出值在 0-1 之间

缺点:

  • 激活函数计算量大(在正向传播和反向传播中都包含幂运算和除法);

  • 梯度消失:输入值较大或较小(图像两侧)时,sigmoid 函数值接近于零。sigmoid 导数则接近于零,导致最终的梯度接近于零,无法实现更新参数的目的;

  • Sigmoid 的输出不是 0 为中心(zero-centered)。

1. Sigmoid激活函数

sigmoid 函数及其导数如下:

优点:

  • 梯度平滑

  • 输出值在 0-1 之间

缺点:

  • 激活函数计算量大(在正向传播和反向传播中都包含幂运算和除法);

  • 梯度消失:输入值较大或较小(图像两侧)时,sigmoid 函数值接近于零。sigmoid 导数则接近于零,导致最终的梯度接近于零,无法实现更新参数的目的;

  • Sigmoid 的输出不是 0 为中心(zero-centered)。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值