激活函数总结(九):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. 总结
到此,使用 激活函数总结(九) 已经介绍完毕了!!! 如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。如果存在没有提及的激活函数也可以在评论区提出,后续会对其进行添加!!!!
如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。


















