【深度学习】激活函数

目录

激活函数

0、激活函数的作用与性质

0.1 激活函数的作用

0.2 激活函数的性质

1 Sigmoid和tanh激活函数

1.1 Sigmoid激活函数

1.2 tanh激活函数

2 ReLU系列激活函数

2.1 ReLU激活函数

2.2 PReLU激活函数

2.3 LeakReLU激活函数

2.4 ReLU系列函数缺点

3 Swish与Mish激活函数

3.1 Swish激活函数

3.2 Mish激活函数

3.3 Hard-Swish激活函数

4 线性激活函数

5 总结

6 其他资料


激活函数

0、激活函数的作用与性质

0.1 激活函数的作用

仅用线性激活函数(y = x)的多层网络会与相当于单层线性网络,加入非线性激励函数后,神经网络就会学习到平滑的曲线来分割平面,而不是用复杂的线性组合逼近平滑曲线来分割平面,使神经网络的表示能力更强了,能够更好的拟合目标函数;它能通过限定数据的值域避免梯度爆炸,而且能加快神经网络的收敛速度。

0.2 激活函数的性质

1、非线性:主要因为线性激活函数(y = x)的多层网络会与相当于单层线性网络,对于解决复杂的非线性问题时,没有意义。当激活函数是非线性的,一个神经网络就可以基本上逼近所有的函数 。

2、可导性:现有BP算法是基于链式法则而成的,不可导则无法更新梯度。

3、输出值的范围:当激活函数输出值是有限的时候,基于梯度的优化方法会更加稳定,因为特征的表示受有限权值的影响更显著;当激活函数的输出是无限的时候,模型的训练会更加高效,不过在这种情况下,一般需要更小的 学习率。现在较优秀的激活函数,当x≥0时,f_{activate}(x)\approx x &(这里的“ ≈ ”表趋于);当x靠近于0时, f_{activate}^{​{}'} \approx 0,因为当一个神经网络快要训练完成后,权重分布是靠近于x=0的,此时需要较小的梯度稳定的训练网络;当x<0时,f_{activate}(x)\approx 0 和 f_{activate}^{​{}'} \approx 0

 

1 Sigmoid和tanh激活函数

1.1 Sigmoid激活函数

  • 公式

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

  • 函数图像

  • 优缺点

优点:值域为(0,1)。在隐藏层中可压缩数据加快模型训练;可以作用在输出层限定网络的输出范围。

缺点:由于|x| >= 6 时,图像平行于x轴,梯度接近于0,在反向传播时易出现梯度消失的问题。

1.2 tanh激活函数

  • 公式

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

  • 函数图像

   

  • 优缺点

优点:值域为(-1,1)。同Sigmoid激活函数,加入至隐藏层可压缩网络输出;加入至输出层可以限定网络的输出范围;但比Sigmoid的更有优秀,一阶导数的取值范围更大、图像关于y轴对称更易网络训练(如下图)。

缺点:由于|x| >= 2 时,图像平行于x轴,梯度接近于0,在反向传播时会导致梯度消失的问题。

 

2 ReLU系列激活函数

2.1 ReLU激活函数

  • 公式

f(x) = max(0, x)

  • 函数图像

  • 优缺点

优点:值域为[0, +\infty)。加入至隐藏层可缓解梯度消失。

缺点:由于x <= 0 时,y=0,直接会使特征变为0,梯度为0,在深层次网络中反向传播时会导致梯度消失的问题。

2.2 PReLU激活函数

  • 公式

 PReLU(x) = \left\{\begin{matrix}x,\begin{matrix} x >= 0 \end{matrix} \\ ax, x<0 \end{matrix}\right.

  • 函数图像

  

  • 优缺点

优点:值域为(-\infty, +\infty)。加入至隐藏层可缓解梯度消失。参数a是可学习的,若参数a≠0,则x的负半轴是可以保留特征的;若参数a=0 则等同于ReLU。

2.3 LeakReLU激活函数

  • 公式

  LeakReLU(x)=\left\{\begin {matrix}x, & x\geq 0\\ 0.1x , & x< 0 \end{matrix}\right.

  • 函数图像

              

  • 优缺点

优点:给予了一个较小的斜率,弥补了ReLU直接丢失特征的缺点,但在实际使用中和ReLU没有区别。

2.4 ReLU系列函数缺点

只有一阶可导,二阶及更高阶不可导,使得使用ReLU系列函数激活的网络在解决复杂的问题时,需要将网络设计的更深才能满足非线性的需求。

 

3 Swish与Mish激活函数

3.1 Swish激活函数

  • 公式

Swish(x)=x\cdot sigmoid(\beta x)

  • 函数图像

 

  • 优缺点:

优点:更改了ReLU函数高阶不可导的问题,使得网络可以设计的更轻巧。保留ReLU系列当x>0时梯度较大的优点,使得学习速度比Sigmoid函数快。修改了Sigmoid函数的饱和性,使的梯度消失的可能性大大降低。还有Swish函数在x=0处梯度较为平缓,因为当一个网络快要训练好的时候,梯度会集中分布在0左右,这时梯度较小就有利于网络的训练趋于稳定。

缺点:Sigmoid函数中含有e^(x)函数,使得比ReLU计算量更大、更慢。

3.2 Mish激活函数

  • 公式

 Mish(x) = x\cdot tanh(\zeta (x))= x\cdot tanh(ln(1 + e^{x}))

  • 函数图像

  • 优缺点

优点:同Swish优点,但比Swish更好,因为tanh函数梯度区间更大,关于y轴对称。

缺点:同Swish缺点,计算量大。

3.3 Hard-Swish激活函数

  • 公式

HardSwish(x) = x\ast \frac{ReLU6(x+3)}{6}

  • 函数图像

  • 优缺点

优点:计算简单速度快,比较适用于嵌入式设备等。梯度曲线同Swish很像,具有Swish的部分优点,如保留ReLU系列当x>0时梯度较大的优点,使得学习速度比Sigmoid函数快;修改了Sigmoid函数的饱和性,使的梯度消失的可能性大大降低。。

缺点:高阶不可导。

  • 其他——paddle内的计算公式与函数

公式 :

  HardSwish(x) = x\ast \frac{min(max(0,x + offset), threshold)}{scale}

代码:

paddle.fluid.layers.hard_swish(x, threshold=6.0, scale=6.0, offset=3.0, name=None)

参数: 

  • x (Variable) - 输入特征,多维Tensor。数据类型为float32或float64。
  • threshold (float,可选) - 激活操作中Relu函数的阈值,默认值为6.0。
  • scale (float,可选) - 激活操作的缩放因子,默认值为6.0。
  • offset (float,可选) - 激活操作的位移,默认值为3.0

 

4 线性激活函数

  • 公式

f(x)=x

  • 函数图像

  • 应用场景

在部分目标检测网络结构中做Concat时,为保留低层次特征完整性,不使用非线性激活函数进行激活。如YOLOv4中的CSP模块中的Concat则没有使用非线性激活,下图中红框中的DBM块:

上图来自:【博客 —— YOLO系列网络结构图(YOLOv5,YOLOv4,PPYOLO,YOLOv3等)】

 

5 总结

        YOLOV4的CSPDarkNet结构在浅层时全部使用了Swish函数进行激活,在深层时使用了LeakReLU进行激活,推荐在设计网络时仿照这是种使用方法。

 

6 其他资料

【深度学习笔记——常用的激活(激励)函数】

【深度学习—激活函数详解(Sigmoid、tanh、ReLU、ReLU6及变体P-R-Leaky、ELU、SELU、Swish、Mish、Maxout、hard-sigmoid、hard-swish)】

更新日志:

2020/11/7 --- 更新LeakReLU 以及mish激活函数等

2020/11/14 --- 更新部分解释以及线性激活函数

2020/12/12 --- 更新Hard-Swish激活函数

作者:阳一子

本文地址:https://blog.csdn.net/qq_279033270/article/details/108594323

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值