Skip to content

激活函数的选择

在深度学习中,选择合适的激活函数是至关重要的。

常见激活函数

  1. Sigmoid函数

    σ(x)=11+ex
    • 优点:输出范围在0到1之间,适合用于二分类问题的输出层。
    • 缺点:容易出现梯度消失问题,不适合深度网络。
  2. ReLU函数(Rectified Linear Unit):

    ReLU(x)=max(0,x)
    • 优点:计算简单,解决了梯度消失问题,能够快速收敛。
    • 缺点:存在神经元死亡问题。
  3. Leaky ReLU函数

    Leaky ReLU(x)=max(αx,x), 其中 α 是小于1的参数
    • 优点:解决了ReLU中的神经元死亡问题。
    • 缺点:可能会引入额外的超参数。
  4. ELU函数(Exponential Linear Unit):

    ELU(x)={xif x>0α(ex1)otherwise
    • 优点:类似于Leaky ReLU,且保证所有输出都是负的。
    • 缺点:计算相对复杂。
  5. Tanh函数

    tanh(x)=exexex+ex
    • 优点:输出范围在-1到1之间,解决了Sigmoid函数的零中心问题。
    • 缺点:仍然存在梯度消失问题。

其它激活函数

除了常见的激活函数外,还有许多其他的选择,下面是一些常见的激活函数及其特点:

  1. Softmax函数

    Softmax(xi)=exijnexj
    • 通常用于多分类问题的输出层,将输出转换为概率分布。
  2. Swish函数

    Swish(x)=xsigmoid(x)
    • 由Google提出,结合了ReLU和sigmoid的优点。
  3. GELU函数(Gaussian Error Linear Unit):

    GELU(x)=xΦ(x)
    • OpenAI提出,逼近高斯误差线性单元。
  4. Hard Swish函数

    Hard Swish(x)=xmax(0,min(1,x+3))/6
    • 华为提出,是一种ReLU的近似函数。
  5. SELU函数(Scaled Exponential Linear Unit):

    SELU(x)=λ{xif x>0α(ex1)otherwise
  • 具有自归一化的性质,在一定条件下可以保持网络的稳定性。
  1. Mish函数Mish(x)=xtanh(softplus(x))
  • 在一些情况下表现良好。
  1. ArcTan函数(反正切函数):ArcTan(x)=arctan(x)
  • 饱和性比较低,适合作为激活函数使用。
  1. SiLU函数(Sigmoid Linear Unit):SiLU(x)=xsigmoid(x)
  • 也称作Sigmoid-Weighted Linear Unit,由Google提出。
  1. ISRU函数(Inverse Square Root Unit):ISRU(x,α)=x1+αx2
  • 能够提升模型的泛化能力。

本站没有备案,因为不需要备案