激活函数总结(十一):激活函数补充
- 1 引言
- 2 激活函数
- 2.1 Absolute激活函数
- 2.2 Bipolar激活函数
- 2.3 Bipolar Sigmoid激活函数
- 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
)。在这篇文章中,会接着上文提到的众多激活函数继续进行介绍,给大家带来更多不常见的激活函数的介绍。这里放一张激活函数的机理图:
最后,对于文章中没有提及到的激活函数,大家可以通过评论指出,作者会在后续的文章中进行添加补充。
2 激活函数
2.1 Absolute激活函数
Absolute(绝对值)激活函数是一种基于绝对值
的非线性
激活函数,它将输入值映射
到其绝对值上。该函数在输入从负向正变化的过程中保持连续性
。在输入为负时,绝对值激活函数输出与输入值相同的正值;在输入为正时,输出仍然是输入值。其数学表达式和数学图像分别如下所示:
A
b
s
o
l
u
t
e
(
x
)
=
∣
x
∣
Absolute(x) = |x|
Absolute(x)=∣x∣
优点:
- 无梯度消失问题: 绝对值激活函数在所有输入范围内的梯度都为
常数
(1或-1),因此不存在类似于Sigmoid或Tanh等函数那样的梯度消失
问题。这意味着在训练过程中梯度可以更容易
地传播,特别是在深层神经网络中。 - 线性性质:绝对值激活函数是一个
分段线性
函数,其输出在不同的区间
内是线性的。这可以在某些问题中提供适度的非线性
性质,对于某些任务可能是有用的。 - 稳定性: 绝对值激活函数对于输入中的大幅度变化有一定的
鲁棒性
,因为它总是返回非负的输出,避免了负数的抑制性
影响。
缺点:
- 缺乏灵活性:绝对值激活函数是
非常简单
的线性函数,它没有类似于Sigmoid、ReLU等激活函数引入的非线性特性
。这可能限制了其在某些复杂任务
上的表现能力。 - 信息损失: 由于绝对值激活函数
直接舍弃
了输入的符号信息,它可能无法区分正负值
对任务的影响,这可能导致在某些情况下丢失有用的信息。 - 非可导连续:绝对值激活函数在0处
不可微分
,表现出导数不连续的状况。
这个激活函数十分简单,也因其简单的性质现在很少使用。。。
2.2 Bipolar激活函数
Bipolar激活函数是一种特殊的激活函数,它是Threshold
函数的一个变种。它的数学表达式如下和数学图像分别如下所示::
B
i
p
o
l
a
r
(
x
)
=
{
1
i
f
x
>
=
t
h
r
e
s
h
o
l
d
−
1
i
f
x
<
t
h
r
e
s
h
o
l
d
Bipolar(x)=\left\{ \begin{matrix} \quad \quad \quad 1 \quad \quad \quad if \quad x >= threshold \\ \quad \quad \quad -1 \quad \quad \quad if \quad x < threshold \quad \end{matrix} \right.
Bipolar(x)={1ifx>=threshold−1ifx<threshold
优点:
- 简单性: 阈值激活函数非常简单,仅基于阈值对输入进行二进制判定,因此
计算效率高
。 - 稳定性: 在一些特定的应用中,阈值激活函数可能会表现出稳定性,不易受到
梯度爆炸
等问题的影响。 - 双极性:输出范围在
-1到1
之间,这可以使其在处理输入数据的正负关系
时表现更好。
缺点:
- 缺乏表达能力:阈值激活函数非常
限制
了神经网络的表达能力
,它只能输出两种值(0和1),无法适应更复杂
的数据模式。这使得神经网络很难从数据中学习到更高层次的特征表示
。 - 梯度消失:阈值激活函数在大部分输入范围内的
导数
都为0,这导致在反向传播时,梯度会很快消失
,使得网络很难学习。这个问题也在Sigmoid激活函数中存在,因此它们通常不作为主要的激活函数选择。 - 不可导性:阈值激活函数在阈值处是
不可导
的,这使得它无法直接应用于使用梯度下降等基于梯度的优化算法进行训练。这会导致训练过程不稳定
,并可能需要使用一些近似的方法来处理。
Bipolar同Threshold是一致的,因其特性导致很难在网络结构中使用。。。
2.3 Bipolar Sigmoid激活函数
论文链接:Mansor, Mohd Asyraf, and Saratha Sathasivam. “Activation function comparison in neural-symbolic integration.” In AIP Conference Proceedings, vol. 1750, no. 1, p. 020013. AIP Publishing LLC, 2016.
Bipolar Sigmoid激活函数是一种特殊的激活函数,它是Sigmoid
函数的一个变种。它的数学表达式如下和数学图像分别如下所示::
B i p o l a r S i g m o i d ( x ) = 2 / ( 1 + e x p ( − x ) ) − 1 Bipolar Sigmoid(x) = 2 / (1 + exp(-x)) - 1 BipolarSigmoid(x)=2/(1+exp(−x))−1
优点:
- 双极性输出: Bipolar Sigmoid的输出范围在
-1到1
之间,这可以使其在处理输入数据的正负关系
时表现更好。它适用于处理具有双极性
性质的数据,例如一些情感分析任务中的正面和负面情感。 - 连续可微性: 与标准的Sigmoid函数一样,Bipolar Sigmoid也是
连续可微
的。这对于使用梯度下降等优化方法进行训练和反向传播是至关重要
的,因为它们要求激活函数是可微的。 - 非线性特性: Bipolar Sigmoid是
非线性
的激活函数,它可以引入一定的非线性表达能力,有助于神经网络模型捕获复杂的数据关系。
缺点:
- 饱和问题: Bipolar Sigmoid激活函数在
输入远离0
的时候,输出会饱和,即梯度趋近于0
。这可能导致训练时的梯度消失
问题,特别是在深层网络中。 - 计算复杂性: 与标准的Sigmoid函数一样,Bipolar Sigmoid的
计算开销也较大
,因为它涉及到指数运算
。这可能会在网络训练中导致较慢的收敛速度。
虽然Bipolar Sigmoid 在理论上具有比Sigmoid更好的效果,但是结合Sigmoid系列
整体的激活函数而言,这是微不足道的!!!因此,Bipolar Sigmoid作为Sigmoid系列
激活函数的一员也是很少使用的一类激活函数。。。。
3. 总结
到此,使用 激活函数总结(十一) 已经介绍完毕了!!! 如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。如果存在没有提及的激活函数
也可以在评论区提出,后续会对其进行添加!!!!
如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。