首先看一下二次代價函數:
以二分類問題,常見的sigmoid激活函數爲例,假設表示輸入值,表示真實標籤(0或1),表示預測輸出,則二次代價函數可表示爲:
其中
那麼代價函數對權重和偏置的偏導數分別爲:
從上式可以分析:當代價較大即輸入輸出差別較大時,的值趨於0或1,此時的值趨於0,既權重和偏置的梯度趨於0。這與我們所期望的當代價較大即輸入輸出差別較大時,以較大的梯度下降更新權重和偏置相違背。
再看交叉熵損失函數:
同樣以二分類問題爲例,損失函數爲:
簡單分析一下:當爲1時,上式變爲:,當預測結果越接近真實標籤時損失越小。當爲0時,上式變爲:,當預測結果越接近真實標籤時同樣損失越小。這麼看來交叉熵函數具有作爲損失函數的性質。
接下來先推導一下交叉熵損失函數是怎麼來的,再從導數角度分析其作爲損失函數的可行性:
首先sigmoid函數的輸出可以表徵預測標籤的概率,假設預測標籤爲1的概率表示爲,那麼預測標籤爲0的概率則爲。根據最大似然估計,有:
我們希望最大,對其取對數,再取負數,有:
即變成最小化的問題,這便是交叉熵損失函數推導過程。
再看交叉熵損失函數對權重和偏置的偏導數,分別爲:
將帶入上式,得:
同理得:
從上式可以分析:當代價較大即輸入輸出差別較大時,權重和偏置的梯度越大。這與我們所期望的當代價較大時以較大的梯度下降更新權重和偏置相符。因此,相比二次代價函數交叉熵損失函數更好。