深度學習:用於multinoulli輸出分佈的softmax單元
首先說明Bernoulli分佈對應sigmoid單元,Multinoulli分佈對應softmax單元。瞭解multinoulli分佈請看:機器學習:Multinoulli分佈與多項式分佈。
softmax函式可以看作sigmoid函式的擴充套件,其中sigmoid函式用來表示二值型變數的分佈。為了推廣得到具有n個值的離散型變數的情況,現在需要創造一個向量,它的每個元素是。我們不僅要求每個元素介於0和1之間,還要使得整個向量的和為1,使得它表示一個有效的概率分佈。首先線性層預測了為歸一化的對數概率:
其中.softmax函式然後可以對z指數化和歸一化來獲得需要的。得到softmax函式的形式為
但是用最大化對數似然訓練softmax來輸出目標值y時,使用指數函式工作的非常好。我們想要最大化
將softmax定義成指數的形式是很自然的,因為對數似然中的log可以抵消softmax中的exp:
。
當最大化對數似然時,第一項鼓勵被推高,而第二項則鼓勵所有的被壓低。第二項可以大致近似為。
這種近似基於對於任何明顯小於的,都是不重要的。負對數似然代價函式總是強烈的懲罰最活躍的不正確預測。如果正確答案已經具有了softmax最大輸入,那麼項和項將大致抵消。這個樣本對於整體訓練代價價貢獻很小,這個代價主要由其他未被正確分類的樣本產生。
像sigmoid一樣,softmax啟用函式可能會飽和。對於softmax函式,它有多個輸出值,當輸出值之間的差異變的極端時,這些輸出值可能飽和。softmax函式當所有輸入都加上一個相同的常數時softmax的輸出不變:
,
使用這個性質,我們匯出一個數值方法穩定的softmax函式的變體:
,
當其中一個輸入是最大並且遠大於其他的輸入時,響應的輸出會飽和到1,當不是最大值並且最大值非常大時,相應的輸出也會飽和到0。
softmax函式更接近於argmax函式而不是max函式。“soft”這個術語來源於softmax函式是連續可微的。“argmax”函式的結果表示為一個one-hot向量,不是連續可微的。softmax函式因此提供了argmax的“軟化版本”。可能最好是把softmax函式稱為“softargmax”,但當前名稱已經是一個根深蒂固的習慣了。