深度学习中常见的激活函数

常见激活函数

  • Sigmoid激活函数
  • Tanh激活函数
  • Relu激活函数
  • Leaky Relu激活函数
  • P-Relu激活函数
  • ELU激活函数
  • R-Relu激活函数
  • Gelu激活函数
  • swich激活函数
  • Selu激活函数

深度学习中常见的激活函数_第1张图片

图片引用自:Dance Moves of Deep Learning Activation Functions

激活函数可以分为两大类 :

  • 饱和激活函数:sigmoid、tanh
  • 非饱和激活函数: ReLU、Leaky Relu、ELU【指数线性单元】、PReLU【参数化的ReLU 】、RReLU【随机ReLU】

Sigmoid

深度学习中常见的激活函数_第2张图片

image-20221106195312373

深度学习中常见的激活函数_第3张图片

可以将任何输入映射到0 - 1 之间,是一个阈值函数,近些年研究人员使用该函数的频率越来越低了,主要是因为:(缺点)

  1. 过饱和会丢失剃度,当输入非常大或者非常小,神经元的活跃度在0和1会饱和。这些地方的梯度趋近于零,导致该神经元的参数没有变化。
  2. 输出不是零均值的。影响梯度下降。

优点:

  • Sigmoid 函数的输出范围是 0 到 1。由于输出值限定在 0 到 1,因此它对每个神经元的输出进行了归一化;
  • 用于将预测概率作为输出的模型。由于概率的取值范围是 0 到 1,因此 Sigmoid 函数非常合适;
  • 梯度平滑,避免「跳跃」的输出值;
  • 函数是可微的。这意味着可以找到任意两个点的 sigmoid 曲线的斜率;
  • 明确的预测,即非常接近 1 或 0

Tanh函数

深度学习中常见的激活函数_第4张图片

深度学习中常见的激活函数_第5张图片

输出的值域为: -1, 1。 是零均值的。

缺点:

  1. 指数运算,计算速度慢。不适合嵌入式应用算法。
  2. 存在梯度弥散问题。

ReLU函数

近些年流行起来的激活函数。称之为修正函数:

深度学习中常见的激活函数_第6张图片

该函数简单设置0为阈值,输出的范围为: [0, 正无穷]。

好处:

  1. 比前面二个函数有更快的收敛速度
  2. 前面的函数都是指数形式的,计算复杂,ReLU函数简单的设计为线性函数,

缺点:

  1. 神经元十分脆弱,可能在训练中变成无用的激活函数,大梯度经过ReLU可能会导致权值更新错误。

Leaky ReLU

深度学习中常见的激活函数_第7张图片

tensorflower api

PReLU - Parametric ReLU

Softmax

深度学习中常见的激活函数_第8张图片

  • softmax参考
  • tensorflower API
tf.nn.softmax(
    logits, axis=None, name=None
)
Args
logits A non-empty Tensor. Must be one of the following types: half, float32, float64. 注意这里,输入必须为浮点数
axis The dimension softmax would be performed on. The default is -1 which indicates the last dimension.
name A name for the operation (optional).

本文参考

  • 知乎

你可能感兴趣的:(深度学习,深度学习,人工智能)