Softmax 函數(shù)和它的誤解
來(lái)源:深度學(xué)習(xí)愛好者 CV技術(shù)指南
[ 導(dǎo)讀 ]Softmax是個(gè)大家都熟悉的激活函數(shù),然而,很多人只知道它的表達(dá)式,它在網(wǎng)絡(luò)中的位置,而對(duì)一些具體的原因和細(xì)節(jié)卻回答不上來(lái)。這篇文章給了相應(yīng)的介紹。
Softmax 是一個(gè)數(shù)學(xué)函數(shù),用于對(duì) 0 和 1 之間的值進(jìn)行歸一化。
在本文中,您將了解:
- 什么是 Softmax 激活函數(shù)及其數(shù)學(xué)表達(dá)式?
- 它是如何使用 argmax() 函數(shù)實(shí)現(xiàn)的?
- 為什么 Softmax 只用在神經(jīng)網(wǎng)絡(luò)的最后一層?
- 對(duì) Softmax 的誤解
什么是 Softmax 激活函數(shù)及其數(shù)學(xué)表達(dá)式?
Softmax 用于對(duì) 0 和 1 之間的那些加權(quán)和值進(jìn)行歸一化,并且它們的和等于 1,這就是為什么大多數(shù)人認(rèn)為這些值是類的概率,但這是一種誤解,我們將在本文中討論它。
實(shí)現(xiàn) Softmax 函數(shù)的公式:
使用這個(gè)數(shù)學(xué)表達(dá)式,我們計(jì)算每類數(shù)據(jù)的歸一化值。這里 θ(i) 是我們從展平層得到的輸入。
計(jì)算每個(gè)類的歸一化值,分子是類的指數(shù)值,分母是所有類的指數(shù)值之和。使用 Softmax 函數(shù),我們得到 0 到 1 之間的所有值,所有值的總和變?yōu)榈扔?1。因此人們將其視為概率,這是他們的誤解。
它如何使用 argmax() 函數(shù)?
現(xiàn)在我們每個(gè)類都有幾個(gè)值,為了分類輸入屬于哪個(gè)類,Softmax 使用 argmax() 給出了應(yīng)用 Softmax 后具有最大值的值的索引。
為什么 Softmax 只用在神經(jīng)網(wǎng)絡(luò)的最后一層?
如果我們看到其他激活函數(shù),如 relu、leaky relu 和 sigmoid,它們都使用唯一的單個(gè)值來(lái)帶來(lái)非線性。他們看不到其他值是什么。
但是在 Softmax 函數(shù)中,在分母中,它取所有指數(shù)值的總和來(lái)歸一化所有類的值。它考慮了范圍內(nèi)所有類的值,這就是我們?cè)谧詈笠粚邮褂盟脑?。要通過(guò)分析所有的值來(lái)知道Input屬于哪個(gè)類。
對(duì) Softmax 的誤解
關(guān)于 Softmax 的第一個(gè)也是最大的誤解是,它通過(guò)歸一化值的輸出是每個(gè)類的概率值,這完全錯(cuò)誤。這種誤解是因?yàn)檫@些值的總和為 1,但它們只是歸一化值而不是類的概率。
在最后一層并不是單獨(dú)使用 Sotmax,我們更喜歡使用 Log Softmax,它只是對(duì)來(lái)自 Softmax 函數(shù)的歸一化值進(jìn)行對(duì)數(shù)。
Log Softmax 在數(shù)值穩(wěn)定性、更便宜的模型訓(xùn)練成本和 Penalizes Large error(誤差越大懲罰越大)方面優(yōu)于 Softmax。
這就是在神經(jīng)網(wǎng)絡(luò)中用作激活函數(shù)的 Softmax 函數(shù)。相信讀完本文后你對(duì)它已經(jīng)有了一個(gè)清楚的了解。
原文鏈接:https://medium.com/artificialis/softmax-function-and-misconception-4248917e5a1c
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。