做過多分類任務的同學一定都知道softmax函數。softmax函數,又稱歸一化指數函數。它是二分類函數sigmoid在多分類上的推廣,目的是將多分類的結果以概率的形式展現出來。下圖展示了softmax的計算方法:
下面為大家解釋一下為什么softmax是這種形式。
首先,我們知道概率有兩個性質:1)預測的概率為非負數;2)各種預測結果概率之和等於1。
softmax就是將在負無窮到正無窮上的預測結果按照這兩步轉換為概率的。
1)將預測結果轉化為非負數
下圖為y=exp(x)的圖像,我們可以知道指數函數的值域取值范圍是零到正無窮。softmax第一步就是將模型的預測結果轉化到指數函數上,這樣保證了概率的非負性。
2)各種預測結果概率之和等於1
為了確保各個預測結果的概率之和等於1。我們只需要將轉換后的結果進行歸一化處理。方法就是將轉化后的結果除以所有轉化后結果之和,可以理解為轉化后結果占總數的百分比。這樣就得到近似的概率。
下面為大家舉一個例子,假如模型對一個三分類問題的預測結果為-3、1.5、2.7。我們要用softmax將模型結果轉為概率。步驟如下:
1)將預測結果轉化為非負數
y1 = exp(x1) = exp(-3) = 0.05
y2 = exp(x2) = exp(1.5) = 4.48
y3 = exp(x3) = exp(2.7) = 14.88
2)各種預測結果概率之和等於1
z1 = y1/(y1+y2+y3) = 0.05/(0.05+4.48+14.88) = 0.0026
z2 = y2/(y1+y2+y3) = 4.48/(0.05+4.48+14.88) = 0.2308
z3 = y3/(y1+y2+y3) = 14.88/(0.05+4.48+14.88) = 0.7666
總結一下softmax如何將多分類輸出轉換為概率,可以分為兩步:
1)分子:通過指數函數,將實數輸出映射到零到正無窮。
2)分母:將所有結果相加,進行歸一化。
下圖為斯坦福大學CS224n課程中最softmax的解釋: