深度學習基礎(一) —— softmax 及 logsoftmax
阿新 • • 發佈:2018-12-20
softmax:重新定義了多層神經網路的輸出層(output layer),注意僅和輸出層有關係,和其他層無關。
- softmax function,也稱為 normalized exponential(指數族分佈的觀點);
1. softmax
我們知道在神經網路的前饋(feedforward)的過程中,輸出層的輸入(input)為:
在 softmax 的機制中,為獲得輸出層的輸出(也即最終的輸出),我們不是將 sigmoid 函式作用於其上,
而是採用所謂的 softmax function:
因此:
(1)輸出層輸出之和為 1
因為輸出層的輸出之和為1,其中一項增加,其他所有項則會相應減少。
(2)輸出層全部輸出均為正: 而且 softmax 的機制,也保證了所有的輸出均為正值;
終上所述,softmax 層的輸出其實為一種概率分佈(probability distribution),因此對於一個多 label 的分類任務(比如手寫字元識別,0-9)而言, 對應於最終的分類結果為 的概率。
2. logsoftmax
將原始資料從 x ⇒ log (x),無疑會原始資料的值域進行一定的收縮。
進一步地,還可對原始資料進行進一步的預處理,
# 假設 x 是一個向量deflogsoftmax(x): m = T.max(x) exp_x = T.exp(x-m) Z = T.sum(exp_x) return x-m-T.log(Z)