激活函數總結(九):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=1N?e?xj?e?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=1C?exik?exij??
其中, 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=1N?exj?exi??)
其中, x i x_i xi? 是第 i i i 個類別的原始分數, N N N 是總類別數。
優點:
- 數值穩定性: LogSoftmax能夠穩定處理輸入的數值范圍,避免了指數函數可能導致的
數值溢出
問題,尤其在輸入的原始分數較大
的情況下。 - 計算效率: 由于LogSoftmax在計算中包含
對數操作
,而對數計算通常比指數計算更為高效
,尤其在計算機中。 - 數學性質: LogSoftmax的輸出也是
對數概率
,有時可以在數學分析和處理中更加方便
。
缺點:
- 不直接表示概率: LogSoftmax輸出的是對數概率,如果需要獲得
實際的概率分布
,還需要進一步計算指數操作,這可能增加計算復雜性
。 - 不適用于所有情況:盡管LogSoftmax在訓練中能夠穩定計算,但它在一些情況下可能并不是
最優選擇
,特別是在需要實際概率分布或對輸出進行進一步處理時。
當前,Logsoftmax函數計算速度快
,優化效率高
,確實取得了一定的優勢!!!但是大多數情況
下,還是Softmax激活函數占據一定的趨勢!!!但是,Logsoftmax算是一個常用的激活函數,如果效果不好的時候可以嘗試一下!!!
3. 總結
到此,使用 激活函數總結(九) 已經介紹完畢了!!! 如果有什么疑問歡迎在評論區提出,對于共性問題可能會后續添加到文章介紹中。如果存在沒有提及的激活函數
也可以在評論區提出,后續會對其進行添加!!!!
如果覺得這篇文章對你有用,記得點贊、收藏并分享給你的小伙伴們哦😄。