激活函数总结(九):Softmax系列激活函数补充
- 1 引言
- 2 激活函数
- 2.1 Softmin激活函数
- 2.2 Softmax2d激活函数
- 2.3 Logsoftmax激活函数
- 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
)。在这篇文章中,会接着上文提到的众多激活函数继续进行介绍,给大家带来更多不常见的激活函数的介绍。这里放一张激活函数的机理图:
最后,对于文章中没有提及到的激活函数,大家可以通过评论指出,作者会在后续的文章中进行添加补充。
2 激活函数
2.1 Softmin激活函数
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激活函数强调具有
最小值
的类别。在Softmax中,分数较高的类别获得更高的概率,而在Softmin中,分数较低的类别获得更高的概率。
Softmin可以在某些强调低分数类别的问题
中有用,一般情况下均用Softmax。
2.2 Softmax2d激活函数
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
可以用于将每个检测框(bounding box)的原始分数转化为各个类别的概率,帮助判断检测框中所包含的物体。 - 语音识别: 在语音识别任务中,每个语音片段可能对应
多个语音标签
,如多个说话者
的声音。通过应用 Softmax2D
激活函数,可以将语音片段的原始分数转化为与每个说话者相关的概率分布。 - 多标签分类: 一些问题中,一个输入可能对应于
多个标签
,而不仅仅
是单个类别。Softmax2D
可以用于将输入的原始分数映射到每个标签的概率分布,以实现多标签分类。 - 文本分类: 在文本分类中,一篇文章可能属于
多个主题或类别
。通过将文章的原始分数应用 Softmax2D
激活函数,可以将其转化为关于每个主题的概率分布,实现多类别文本分类。
2.3 Logsoftmax激活函数
LogSoftmax(对数软最大值)是一种常用的激活函数,通常用于多类别分类问题中神经网络的输出层。它将输入的原始分数
(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能够稳定处理输入的数值范围,避免了指数函数可能导致的
数值溢出
问题,尤其在输入的原始分数较大
的情况下。 - 计算效率: 由于LogSoftmax在计算中包含
对数操作
,而对数计算通常比指数计算更为高效
,尤其在计算机中。 - 数学性质: LogSoftmax的输出也是
对数概率
,有时可以在数学分析和处理中更加方便
。
缺点:
- 不直接表示概率: LogSoftmax输出的是对数概率,如果需要获得
实际的概率分布
,还需要进一步计算指数操作,这可能增加计算复杂性
。 - 不适用于所有情况:尽管LogSoftmax在训练中能够稳定计算,但它在一些情况下可能并不是
最优选择
,特别是在需要实际概率分布或对输出进行进一步处理时。
当前,Logsoftmax函数计算速度快
,优化效率高
,确实取得了一定的优势!!!但是大多数情况
下,还是Softmax激活函数占据一定的趋势!!!但是,Logsoftmax算是一个常用的激活函数,如果效果不好的时候可以尝试一下!!!
3. 总结
到此,使用 激活函数总结(九) 已经介绍完毕了!!! 如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。如果存在没有提及的激活函数
也可以在评论区提出,后续会对其进行添加!!!!
如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。