logistic函數將上層的輸入值,變換到值域爲[0,1]上,可作爲輸出層的激勵函數。
但當遇到多分類問題,需要使用softmax函數,具體原因自行查閱。
序
交叉熵損失是分類任務中的常用損失函數,但是是否注意到二分類與多分類情況下的交叉熵形式上的不同呢?
本次記錄一下二者的不同。
兩種形式
這兩個都是交叉熵損失函數,但是看起來長的卻有天壤之別。爲什麼同是交叉熵損失函數,長的卻不一樣呢?
因爲這兩個交叉熵損失函數對應不同的最後一層的輸出:
第一個對應的最後一層是softmax,第二個對應的最後一層是sigmoid。
信息論中的交叉熵
先來看下信息論中交叉熵的形式
交叉熵是用來描述兩個分佈的距離的,神經網絡訓練的目的就是使 g(x) 逼近 p(x)。
softmax層的交叉熵
g(x)是什麼呢?就是最後一層的輸出 y 。
p(x)是什麼呢?就是我們的one-hot標籤。我們帶入交叉熵的定義中算一下,就會得到第一個式子:
其中 j 代表樣本 x 屬於第 j 類。
sigmoid作爲輸出的交叉熵
sigmoid作爲最後一層輸出的話,那就不能吧最後一層的輸出看作成一個分佈了,因爲加起來不爲1。
現在應該將最後一層的每個神經元看作一個分佈,對應的 target 屬於二項分佈(target的值代表是這個類的概率),那麼第 i 個神經元交叉熵爲:
所以最後一層總的交叉熵損失函數是: