久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

博客專欄

EEPW首頁 > 博客 > Softmax 函數和它的誤解

Softmax 函數和它的誤解

發布人:數據派THU 時間:2023-06-20 來源:工程師 發布文章

:深度學習愛好者 CV技術指南

[ 導讀 ]Softmax是個大家都熟悉的激活函數,然而,很多人只知道它的表達式,它在網絡中的位置,而對一些具體的原因和細節卻回答不上來。這篇文章給了相應的介紹。 

Softmax 是一個數學函數,用于對 0 和 1 之間的值進行歸一化。
在本文中,您將了解:

  • 什么是 Softmax 激活函數及其數學表達式?
  • 它是如何使用 argmax() 函數實現的?
  • 為什么 Softmax 只用在神經網絡的最后一層?
  • 對 Softmax 的誤解

什么是 Softmax 激活函數及其數學表達式?


在深度學習中,使用 Softmax 作為激活函數,對 0 到 1 之間的向量中每個值的輸出和尺度進行歸一化。Softmax 用于分類任務。在網絡的最后一層,會生成一個 N 維向量,分類任務中的每個類對應一個向量。
圖片網絡輸出層中的 N 維向量
Softmax 用于對 0 和 1 之間的那些加權和值進行歸一化,并且它們的和等于 1,這就是為什么大多數人認為這些值是類的概率,但這是一種誤解,我們將在本文中討論它。
實現 Softmax 函數的公式:
圖片
使用這個數學表達式,我們計算每類數據的歸一化值。這里 θ(i) 是我們從展平層得到的輸入。
計算每個類的歸一化值,分子是類的指數值,分母是所有類的指數值之和。使用 Softmax 函數,我們得到 0 到 1 之間的所有值,所有值的總和變為等于 1。因此人們將其視為概率,這是他們的誤解。
它如何使用 argmax() 函數?


在對每個類應用上述數學函數后,Softmax 會為每個類計算一個介于 0 和 1 之間的值。
現在我們每個類都有幾個值,為了分類輸入屬于哪個類,Softmax 使用 argmax() 給出了應用 Softmax 后具有最大值的值的索引。
圖片argmax 的可視化解釋
為什么 Softmax 只用在神經網絡的最后一層?


現在進入重要部分,Softmax 僅用于最后一層以對值進行歸一化,而其他激活函數(relu、leaky relu、sigmoid 和其他各種)用于內層
如果我們看到其他激活函數,如 relu、leaky relu 和 sigmoid,它們都使用唯一的單個值來帶來非線性。他們看不到其他值是什么。
但是在 Softmax 函數中,在分母中,它取所有指數值的總和來歸一化所有類的值。它考慮了范圍內所有類的值,這就是我們在最后一層使用它的原因。要通過分析所有的值來知道Input屬于哪個類。圖片最后一層的 Softmax 激活函數
對 Softmax 的誤解
關于 Softmax 的第一個也是最大的誤解是,它通過歸一化值的輸出是每個類的概率值,這完全錯誤。這種誤解是因為這些值的總和為 1,但它們只是歸一化值而不是類的概率。
圖片
在最后一層并不是單獨使用 Sotmax,我們更喜歡使用 Log Softmax,它只是對來自 Softmax 函數的歸一化值進行對數。
Log Softmax 在數值穩定性、更便宜的模型訓練成本和 Penalizes Large error(誤差越大懲罰越大)方面優于 Softmax。
這就是在神經網絡中用作激活函數的 Softmax 函數。相信讀完本文后你對它已經有了一個清楚的了解。
原文鏈接:https://medium.com/artificialis/softmax-function-and-misconception-4248917e5a1c



*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



關鍵詞: AI

相關推薦

技術專區

關閉