Softmax函數(shù)將多個標(biāo)量映射為一個概率分布,其輸出的每一個值范圍在(0,1)。公式如下圖

softmax函數(shù)經(jīng)常用在神經(jīng)網(wǎng)絡(luò)的最后一層,作為輸出層,進(jìn)行多分類。此外,softmax在增強(qiáng)學(xué)習(xí)領(lǐng)域內(nèi),softmax經(jīng)常被用作將某個值轉(zhuǎn)化為激活概率,這類情況下,softmax的公式如下:

其中,T被稱為是溫度參數(shù)(temperature parameter)。當(dāng)T很大時,即趨于正無窮時,所有的激活值對應(yīng)的激活概率趨近于相同(激活概率差異性較?。欢?dāng)T很低時,即趨于0時,不同的激活值對應(yīng)的激活概率差異也就越大。這個結(jié)論很重要,Hinton在2015年的一篇paper中重點闡釋了如何根據(jù)溫度參數(shù)來soften神經(jīng)網(wǎng)絡(luò)的輸出,從而提出了distillation的思想和方法。



1.前向傳播
該過程比較簡單,對輸入的每個節(jié)點進(jìn)行softmax(x)計算。但是需要注意的是,由于存在指數(shù)函數(shù)exp,對于輸入很大的實數(shù)會softmax數(shù)值越界,導(dǎo)致預(yù)想不到的結(jié)果。所以在做softmax之前,需要將數(shù)據(jù)做簡單的預(yù)處理,即:找出輸入節(jié)點的最大值,然后讓每個節(jié)點減去該最大值,使得輸入節(jié)點都是小于等于0的,這樣就能避免數(shù)值越界。
2.反向傳播
softmax層的導(dǎo)數(shù)要分兩種情況:1)該節(jié)點是輸出類別 (i ?= ?j);2)該節(jié)點不為輸出類別(i != j)
