在前面的文章中已经介绍了介绍了一系列激活函数 (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(软化最小值)是一种激活函数,类似于Soft在这里插入代码片
max 激活函数。它被用于多类别分类问题,通常作为神经网络的输出层的激活函数。与Softmax激活函数不同,Softmin激活函数将原始分数转化为一个概率分布,但它的逻辑是选择具有最小值
的类别获得较高的概率
。Softmin 的计算公式如下:
S o f t m i n ( x i ) = e − x i ∑ j = 1 N e − x j Softmin(x_i) = \frac{e^{-x_i}}{\sum_{j=1}^{N} e^{-x_j}} Softmin(xi)=∑j=1Ne−xje−xi
在 Softmax 中,分数越高的类别获得更高的概率,而在 Softmin 中,分数越低的类别获得更高的概率。
特点:
最小值
的类别。在Softmax中,分数较高的类别获得更高的概率,而在Softmin中,分数较低的类别获得更高的概率。Softmin可以在某些强调低分数类别的问题
中有用,一般情况下均用Softmax。
Softmax2D 激活函数是对二维矩阵(或张量)
的操作,类似于一维数据中的 Softmax 激活函数,但是应用在矩阵的每一行上。这种操作常用于多类别分类任务,其中每一行代表一个样本的原始分数或 logits
,而每个列代表一个类别
。Softmax2D 激活函数通过对每一行
的原始分数进行 Softmax 运算,将其转化为概率分布
。
在数学上,给定一个二维矩阵 X X X,其每一行包含原始分数(logits) x i j x_{ij} xij,其中 i i i 是样本索引, j j j 是类别索引,Softmax2D 激活函数可以表示为:
Softmax2D ( x i j ) = e x i j ∑ k = 1 C e x i k \text{Softmax2D}(x_{ij}) = \frac{e^{x_{ij}}}{\sum_{k=1}^{C} e^{x_{ik}}} Softmax2D(xij)=∑k=1Cexikexij
其中, C C C 是总类别数, k k k 表示对每一行的求和。
Softmax2D 激活函数的应用场景类似于多类别分类
问题,但其中每个样本
都有一个关联的原始分数矩阵,需要将每行的原始分数转化为概率分布以进行分类。这样说有点抽象,下面给出具体的例子:
每个图像
可能属于多个类别
,例如图像中可能包含多个物体
。通过应用 Softmax2D每个图像
中可能存在多个目标
。Softmax2D多个语音标签
,如多个说话者
的声音。通过应用 Softmax2D多个标签
,而不仅仅
是单个类别。Softmax2D多个主题或类别
。通过将文章的原始分数应用 Softmax2DLogSoftmax(对数软最大值)是一种常用的激活函数,通常用于多类别分类问题中神经网络的输出层。它将输入的原始分数
(logits)转化为对数概率分布
,以便更好地处理数值稳定性
和训练的问题。LogSoftmax 激活函数的计算方式如下:
LogSoftmax ( x i ) = log ( e x i ∑ j = 1 N e x j ) \text{LogSoftmax}(x_i) = \log\left(\frac{e^{x_i}}{\sum_{j=1}^{N} e^{x_j}}\right) LogSoftmax(xi)=log(∑j=1Nexjexi)
其中, x i x_i xi 是第 i i i 个类别的原始分数, N N N 是总类别数。
优点:
数值溢出
问题,尤其在输入的原始分数较大
的情况下。对数操作
,而对数计算通常比指数计算更为高效
,尤其在计算机中。对数概率
,有时可以在数学分析和处理中更加方便
。缺点:
实际的概率分布
,还需要进一步计算指数操作,这可能增加计算复杂性
。最优选择
,特别是在需要实际概率分布或对输出进行进一步处理时。当前,Logsoftmax函数计算速度快
,优化效率高
,确实取得了一定的优势!!!但是大多数情况
下,还是Softmax激活函数占据一定的趋势!!!但是,Logsoftmax算是一个常用的激活函数,如果效果不好的时候可以尝试一下!!!
到此,使用 激活函数总结(九) 已经介绍完毕了!!! 如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。如果存在没有提及的激活函数
也可以在评论区提出,后续会对其进行添加!!!!
如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦。