激活函数和最常用的10个激活函数

1. 什么是激活函数 activation function

激活函数 是一种添加到ANN中的函数,它决定了最终要发射给下一个神经元的内容。

在人工神经网络中,一个节点的激活函数 定义了该节点在 给定的输入或输入的集合下输出

因此,激活函数是确定神经网络输出的数学方程式。

2. artificial neuron的工作原理

激活函数和最常用的10个激活函数

上述过程的数学可视化如下图:

激活函数和最常用的10个激活函数

可以看到,每个输入x都有相对应的权值w,相乘后求和,然后加上偏置bias。最后根据激活函数,来决定输出。

; 3. 10种激活函数

1. Sigmoid激活函数

sigmoid的函数图像看起来像s型的曲线,sigmoid的意思 也有s型的。

函数图像:

激活函数和最常用的10个激活函数

函数表达式:

激活函数和最常用的10个激活函数

适合使用sigmoid激活函数的情况:

  • 由于sigmoid函数的输出范围是0-1,所以它对每个神经元的输出都进行了归一化。
  • 用于将预测概率作为输出的模型。因为概率的值就是0-1,所以非常合适。
  • sigmoid函数梯度平滑,避免跳跃的输出值。
  • 函数是可微的。
  • 明确的预测,即非常接近1或0。

sigmoid函数的 缺点

  • 倾向于梯度消失

    补充:梯度不稳定 概念:在深度神经网络中的梯度是不稳定的,在靠近输入层的隐藏层中或消失或爆炸。这种不稳定性,才是深度神经网络中基于梯度学习的根本问题。 产生的根本原因:神经网络模型的层数过多,以及连乘效应。 具体内容见https://zhuanlan.zhihu.com/p/25631496

  • 当x取值为负时,函数值趋近于0。换言之,函数输出不是以0为中心的,这会 降低权重更新的效率
  • sigmoid函数执行的是指数运算,计算机运行的速度比较慢。

; 2. Tanh/双曲正切激活函数

函数图像:

激活函数和最常用的10个激活函数

函数表达式:

激活函数和最常用的10个激活函数

tanh是一个双曲正切函数,它的曲线和sigmoid的曲线相类似,但是相对于sigmoid函数有一些优势。下面是两个函数的图像对比图:

激活函数和最常用的10个激活函数

tanh的优势:

  • 首先,当输入较大或较小时,输出几乎是平滑的并且梯度较小,这不利于权重更新。二者的区别在于输出间隔,tanh的输出间隔是1,并且整个函数的输出以0为中心,比sigmoid函数要好。
  • 在tanh中,负输入将被强映射为负,而零输入被映射为接近0。

注意,在一般的二元分类问题(在机器学习中,被认为是监督式学习)中,tanh函数用于隐藏层,而sigmoid函数用于输出层。但这个也不是固定的,具体情况具体对待。

3. ReLU激活函数

全称是Rectified Linear Unit,中文名字:修正线性单元。

函数图像:

激活函数和最常用的10个激活函数

函数表达式:

激活函数和最常用的10个激活函数

ReLU函数是深度学习中比较流行的一个激活函数,相较于sigmoid和tanh,有以下优点:

  • 当输入为正的时候, 不存在梯度饱和问题。 刚才的sigmoid函数和tanh函数就会出现梯度饱和问题,当输入x逐渐变大的时候,输出趋近于同一值,变化很小,造成模型训练缓慢。
  • 计算速度快。ReLU函数是线性关系,sigmoid和tanh是非线性,因此计算速度快得多。

也有缺点:

  • Dead ReLU问题。 当输入为负的时候,relu全为0,直接失效。当然在正向传播中,这不是问题,但是在反向传播过程中,如果输入为负,则梯度将完全为0。sigmoid和tanh也有相同的问题。
  • ReLU函数不是以0为中心的函数。

; 4. Leaky ReLU激活函数

该激活函数是专门设计用来解决Dead ReLU问题的激活函数。

下面是两者的对比图:

激活函数和最常用的10个激活函数

函数表达式:

激活函数和最常用的10个激活函数

为什么leaky relu比relu更好呢?

  • Leaky ReLU 通过把 x 的非常小的线性分量给予负输入(0.01x)来调整负值的零梯度(zero gradients)问题
  • leak可以扩大relu的范围,通常a的值为0.01左右
  • leaky relu函数的范围是负无穷 – 正无穷

5. ELU激活函数

ELU的英文全称是”Exponential Linear Units”,中文全称是”指数线性单元”。

看一下ELU、Leaky ReLU、ReLU三者的函数图像:

激活函数和最常用的10个激活函数

ELU的出现也解决了ReLU的问题。

与ReLU相比,ELU有负值,这会使激活的平均值接近0。均值接近0可以使学习更快,因为它们使梯度更接近自然梯度。

函数表达式:

激活函数和最常用的10个激活函数

显然,ELU具有ReLU的所有优点,并且:

  • 没有Dead ReLU问题,输出的平均值接近0,以0为中心。
  • ELU通过减少偏置偏移的影响,使正常梯度更接近于单位自然梯度,从而使均值向0加速学习。
  • ELU当x较小时,会饱和值一个负值,从而减少前向传播的变异和信息。

注意,有一个小问题是,ELU的计算量更大。 与Leaky ReLU相似,尽管理论上比ReLU更好,但是目前的实践并没有充分的证据表示确实比ReLU好。

; 6. PReLU激活函数

全称:parametric ReLU

激活函数和最常用的10个激活函数

主要特点就是这里的参数a是可变的,通常为0-1之间的数字,并且通常相对较小。

  • 如果参数a = 0,则就是ReLU。
  • 如果参数a > 0,则就是Leaky ReLU。
  • 如果参数a是可学习的参数,则就是PReLU.

优点:

  • 在负值域,PReLU的斜率较小,可以避免Dead ReLU问题。
  • 与ELU相比,PReLU在负值域是线性运算。

7. Softmax激活函数

函数图像:

激活函数和最常用的10个激活函数

Softmax是用于多类分类问题的激活函数,在多类分类问题中,超过两个类标签则需要类成员关系。

对于长度为k的任意实向量,Softmax可以将其压缩为长度为k,值在(0,1)范围内,并且向量元素的总和为1的实向量。

激活函数和最常用的10个激活函数

Softmax 与正常的 max 函数不同:max 函数仅输出最大值,但 Softmax 确保较小的值具有较小的概率,并且不会直接丢弃。我们可以认为它是 argmax 函数的概率版本或「soft」版本。

Softmax 函数的分母结合了原始输出值的所有因子,这意味着 Softmax 函数获得的各种概率彼此相关。

Softmax函数的缺点:

  • 在零点不可微。
  • 负输入的梯度为0,这说明:对于该区域的激活,权重不会在反向传播期间更新,因此会产生 永不激活的死亡神经元

; 8. Swish激活函数

函数图像:

激活函数和最常用的10个激活函数

函数表达式:y = x * sigmoid (x)

Swish 激活函数的主要优点如下:

  • 「无界性」有助于防止慢速训练期间,梯度逐渐接近 0 并导致饱和;(同时,有界性也是有优势的,因为有界激活函数可以具有很强的正则化,并且较大的负输入问题也能解决);
  • 导数恒 > 0;
  • 平滑度在优化和泛化中起了重要作用。

9. Maxout激活函数

10. Softplus激活函数

Original: https://blog.csdn.net/Laok0413/article/details/125928768
Author: 安和橋北
Title: 激活函数和最常用的10个激活函数

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/717599/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球