深度学习:用于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”,但當前名稱已經是一個根深蒂固的習慣了。
?
?
總結
以上是生活随笔為你收集整理的深度学习:用于multinoulli输出分布的softmax单元的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习:Multinoulli分布与多
- 下一篇: python生成器generator:深