參考:https://baijiahao.baidu.com/s?id=1636737136973859154&wfr=spider&for=pc
在一個(gè)最近的一個(gè)項(xiàng)目中,發(fā)現(xiàn)自己對(duì)sigmoid函數(shù)和softmax函數(shù)的概念和用法比較模糊,特地做一下總結(jié)
假設(shè)一張圖片丟進(jìn)一個(gè)神經(jīng)網(wǎng)絡(luò)(例如resnet50),最后的輸出為一個(gè)向量,如[-0.5, 1.2, -0.1, 2.4],分別對(duì)應(yīng)四中不同的標(biāo)簽.
Sigmoid函數(shù)或Softmax函數(shù)可以將分類(lèi)器的原始輸出值映射為概率。那么什么時(shí)候用到sigmoid,什么時(shí)候用softmax呢?
1. Sigmoid函數(shù)或Softmax函數(shù)的輸出
下圖顯示了將前饋神經(jīng)網(wǎng)絡(luò)的原始輸出值(藍(lán)色)通過(guò)Sigmoid函數(shù)映射為概率(紅色)的過(guò)程:

然后采用Softmax函數(shù)重復(fù)上述過(guò)程:

如圖所示,Sigmoid函數(shù)和Softmax函數(shù)得出不同結(jié)果。
原因在于,Sigmoid函數(shù)會(huì)分別處理各個(gè)原始輸出值,因此其結(jié)果相互獨(dú)立,概率總和不一定為1,如圖0.37 + 0.77 + 0.48 + 0.91 = 2.53。
相反,Softmax函數(shù)的輸出值相互關(guān)聯(lián),其概率的總和始終為1,如圖0.04 + 0.21 + 0.05 + 0.70 = 1.00。因此,在Softmax函數(shù)中,為增大某一類(lèi)別的概率,其他類(lèi)別的概率必須相應(yīng)減少
2.Sigmoid函數(shù)和Softmax函數(shù)
2.1 sigmoid函數(shù):
Sigmoid函數(shù)如下所示(注意e):

在該公式中,σ表示Sigmoid函數(shù),σ(zj)表示將Sigmoid函數(shù)應(yīng)用于數(shù)字Zj。 “Zj”表示單個(gè)原始輸出值,如-0.5。 j表示當(dāng)前運(yùn)算的輸出值。如果有四個(gè)原始輸出值,則j = 1,2,3或4。在前面的例子中,原始輸出值為[-0.5,1.2,-0.1,2.4],則Z1 = -0.5,Z2 = 1.2,Z3 = -0.1,Z4 = 2.4。
所以,

Z2,Z3、Z4 的計(jì)算過(guò)程同上。
由于Sigmoid函數(shù)分別應(yīng)用于每個(gè)原始輸出值,因此可能出現(xiàn)的輸出情況包括:所有類(lèi)別概率都很低一種類(lèi)別的概率很高但是其他類(lèi)別的概率很低,多個(gè)或所有類(lèi)別的概率都很高。
下圖為Sigmoid函數(shù)曲線:

Sigmoid =多標(biāo)簽分類(lèi)問(wèn)題=多個(gè)正確答案=非獨(dú)占輸出(例如胸部X光檢查、住院)
構(gòu)建分類(lèi)器,解決有多個(gè)正確答案的問(wèn)題時(shí),用Sigmoid函數(shù)分別處理各個(gè)原始輸出值。
2.2 sofmax函數(shù):
Softmax函數(shù)的分母綜合了原始輸出值的所有因素,這意味著,Softmax函數(shù)得到的不同概率之間相互關(guān)聯(lián)。
Softmax函數(shù)表述如下:

除分母外,為綜合所有因素,將原始輸出值中的e ^ thing相加,Softmax函數(shù)與Sigmoid函數(shù)差別不大。換言之,用Softmax函數(shù)計(jì)算單個(gè)原始輸出值(例如Z1)時(shí),不能只計(jì)算Z1,分母中的Z1,Z2,Z3和Z4也應(yīng)加以計(jì)算,如下所示:

區(qū)分手寫(xiě)數(shù)字時(shí),用Softmax函數(shù)處理原始輸出值,如要增加某一示例被分為“8”的概率,就要降低該示例被分到其他數(shù)字(0,1,2,3,4,5,6,7和/或9)的概率。
Softmax =多類(lèi)別分類(lèi)問(wèn)題=只有一個(gè)正確答案=互斥輸出(例如手寫(xiě)數(shù)字,鳶尾花)
構(gòu)建分類(lèi)器,解決只有唯一正確答案的問(wèn)題時(shí),用Softmax函數(shù)處理各個(gè)原始輸出值。