激活函数总结(二十六):激活函数补充
- 1 引言
- 2 激活函数
- 2.1 Probit 激活函数
- 2.2 Smish 激活函数
- 3. 总结
1 引言
在前面的文章中已经介绍了介绍了一系列激活函数 (Sigmoid
、Tanh
、ReLU
、Leaky ReLU
、PReLU
、Swish
、ELU
、SELU
、GELU
、Softmax
、Softplus
、Mish
、Maxout
、HardSigmoid
、HardTanh
、Hardswish
、HardShrink
、SoftShrink
、TanhShrink
、RReLU
、CELU
、ReLU6
、GLU
、SwiGLU
、GTU
、Bilinear
、ReGLU
、GEGLU
、Softmin
、Softmax2d
、Logsoftmax
、Identity
、LogSigmoid
、Bent Identity
、Absolute
、Bipolar
、Bipolar Sigmoid
、Sinusoid
、Cosine
、Arcsinh
、Arccosh
、Arctanh
、LeCun Tanh
、TanhExp
、Gaussian
、GCU
、ASU
、SQU
、NCU
、DSU
、SSU
、SReLU
、BReLU
、PELU
、Phish
、RBF
、SQ-RBF
、ISRU
、ISRLU
、SQNL
、PLU
、APL
、Inverse Cubic
、Soft Exponential
、ParametricLinear
、Piecewise Linear Unit
、CLL
、SquaredReLU
、ModReLU
、CosReLU
、SinReLU
)。在这篇文章中,会接着上文提到的众多激活函数继续进行介绍,给大家带来更多不常见的激活函数的介绍。这里放一张激活函数的机理图:
2 激活函数
2.1 Probit 激活函数
论文链接:Complementary Log-Log and Probit: Activation Functions Implemented in Artificial Neural Networks
Probit激活函数是一种用于神经网络的激活函数之一,它在一些特定应用中被用来处理二分类问题。它的名称来源于“probability unit”,意味着它可以将输入映射到一个概率范围
内。Probit激活函数使用正态分布的累积分布函数
(CDF)作为其数学表达式。对于输入 x,Probit激活函数的输出可以表示为输入 x 处于标准正态分布的累积概率
。其数学表达式和数学图像分别如下所示:
f
(
x
)
=
Φ
−
1
(
x
)
f(x)=Φ^{-1}(x)
f(x)=Φ−1(x)
其中,
Φ
(
x
)
Φ(x)
Φ(x) 表示正态分布的累积概率函数。
优点:
- 概率解释: Probit激活函数的输出类似于一个
累积分布函数
,这使得它在处理概率
相关问题时更具有解释性
。它可以被解释为输入值 x 对应样本属于某个类别的概率。 - 稳定性: Probit激活函数避免了某些情况下
指数函数
可能引发的数值不稳定
问题,这有助于训练的稳定性。
缺点:
- 计算复杂性: 计算标准正态分布的累积分布函数通常需要
特殊的数值计算
方法,这可能会增加模型的计算成本。 - 梯度消失: 尽管Probit激活函数可以一定程度上
缓解梯度消失
问题,但在某些情况下,仍然可能遇到梯度消失的困扰。
当前环境下很少使用。。。。
2.2 Smish 激活函数
论文链接:Smish: A Novel Activation Function for Deep Learning Methods
受MB-C-BSIF
方法的启发,作者提出了Smish 激活函数。对数运算首先用于减小 sigmoid(x) 的范围。然后使用 tanh 运算符计算该值。输入最终用于乘以前一个值,从而表现出负输出正则化
。其数学表达式和数学图像分别如下所示:
f
(
x
)
=
x
∗
t
a
n
h
(
l
o
g
(
1
+
S
i
g
m
o
i
d
(
x
)
)
)
f(x)= x*tanh(log(1+Sigmoid(x)))
f(x)=x∗tanh(log(1+Sigmoid(x)))
优点:
- 近似线性变换:随着网络模型
深度
的增加
,输出值不会随近线性激活函数的值发生显著
变化。由于网络具有近线性变换特性,梯度反向传播稳定方便
。 - 非单调性:一个好的激活函数不应该
诱导梯度
的消失
,并且允许少量的负值发挥正则化效应。而Smish 的非单调性
保证了负训练的稳定性
,提高
了表达的表现。
缺点:
- 复杂度较高:Smish 的
复杂度
高于其他比较的激活函数,因此在轻量级模型
中存在一些局限性。 - 难以解释性: 函数的
组合
可能会使其整体行为难以解释
。在实际使用中,理解每个组件激活函数的影响可能会变得复杂。
Smish 激活函数具有不错的性质,但是当前使用的人较少。。。。可能仍存在
一定的局限性
。。。
3. 总结
到此,使用 激活函数总结(二十六) 已经介绍完毕了!!! 如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。如果存在没有提及的激活函数
也可以在评论区提出,后续会对其进行添加!!!!
如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。