交叉熵損失函式分類 交叉熵損失函式的應用

2021-10-14 07:37:53 字數 2108 閱讀 6010

本文以二分類交叉熵損失函式為例,詳細分析了交叉熵損失函式在實際應用中遇到的問題,以及解決辦法,並給出了在深度學習中使用的交叉熵損失函式的具體形式。通過本文的敘述,相信能夠使讀者對深度學習的理解更加深入。

其中y為label,

為**的正類別概率,即在二分類中通過sigmoid函式得出的正類別概率大小。

對於batch梯度下降訓練,loss不再是單個樣本的loss,而是batch size大小(如m)的損失函式的均值。

寫為向量表示為:

其中 為element wise相乘。

y為batch大小的label向量,p為batch大小的**正向概率。

交叉熵損失函式的表示式:

即對於不同的類別損失函式為:

從上式可知,交叉熵損失函式的主要部分為自然對數。

自然對數的圖示如下表示:

如上圖所示:

在x=0附近,log(x)抖動很大,即在x=0附近,x的微小變化就會導致log(x)值發生很大變化。而且在x趨近於0時,

。在計算機中只能儲存一定精度的浮點數,當值趨近於無窮大時會造成數值溢位overflow,當值趨近於無窮小時,會造成underflow。

由於自然對數的上述性質,會造成交叉熵在0值附近的值的不穩定。

同樣會使得梯度計算不穩定,因為當x趨近於0時,導數會趨近於無窮大。

即自然對數的性質,會造成交叉熵損失函式值和梯度在x=0附近的不穩定。損失函式值和導數的不穩定,必然會導致模型的訓練不穩定,使得模型收斂變得困難。

由 ,代入交叉熵損失函式可能:

其中z為輸入到sigmoid函式的值

即通過上式的變換,最終交叉熵損失函式由

變為了

。 對於上式,交叉熵

中自然對數函式的變數為

,即自然對數的變數值大於1。因此由於上述改變,使得交叉熵損失函式脫離了由於自然對數在x=0附近導致的數值和梯度的不穩定。 對

進一步簡化可得:

(1)對於上式,當

時, ,即會造成溢位。

再次進行變形可得:

(2)此時,當

時, 不再會溢位。

但是, 當

時, 會溢位。

為了得到值穩定的交叉熵損失函式,採用分段函式的形式構建最終穩定的交叉熵損失函式,如下:

即綜合了式子(1)和式子(2)的優點,保證了值不會溢位。如下圖所示:

統一為乙個表示式可得:

cost函式即向量表達為:

注:上述向量表示式是利用element wise進行計算的。

在tensorflow中,穩定版本的交叉熵損失函式的表示式與上式相同。

由 的表示式,利用鏈式法則可以得出,

其中 ,

, 為sigmoid的輸入,即分類前最後一層的輸出。上述推導同樣適用於分段的值穩定的交叉熵損失函式,因為交叉熵損失函式的形式不變,只是在不同區間採用了不同的值而已。

從上式可以得出,計算

不需要計算

,即可以越過sigmoid層,直接將

作為 層的導數。如下圖所示:

這樣做的好處在於:

不需要計算

也就避免了交叉熵損失函式梯度的不穩定。

同時規避了sigmoid函式的飽和點,即梯度接近於0的點。對於梯度接近於0的點,梯度不能有效傳遞,引數不能有效更新。

sigmoid的函式圖示如下:

通過以上的敘述可以看到,雖然交叉熵損失函式的形式簡單,但是在深度學習實際應用中會遇到值和導數不穩定的問題。為了能夠使模型能夠更好的訓練,採用了分段函式的形式保證了損失函式的值穩定,在後向傳輸中,跳過sigmoid層,直接計算損失函式對z的導數即

,規避了導數的不穩定性以及sigmoid存在飽和點造成的導數傳遞失效問題。

因此在深度學習中,為了更好的模型訓練,往往需要對損失函式做相應的調整。

交叉熵損失函式 交叉熵損失函式和均方差損失函式引出

交叉熵 均方差損失函式,加正則項的損失函式,線性回歸 嶺回歸 lasso回歸等回歸問題,邏輯回歸,感知機等分類問題 經驗風險 結構風險,極大似然估計 拉普拉斯平滑估計 最大後驗概率估計 貝葉斯估計,貝葉斯公式,頻率學派 貝葉斯學派,概率 統計 記錄被這些各種概念困擾的我,今天終於理出了一些頭緒。概率...

交叉熵損失函式

公式 分類問題中,我們通常使用 交叉熵來做損失函式,在網路的後面 接上一層softmax 將數值 score 轉換成概率。如果是二分類問題,我們通常使用sigmod函式 2.為什麼使用交叉熵損失函式?如果分類問題使用 mse 均方誤差 的方式,在輸出概率接近0 或者 接近1的時候,偏導數非常的小,學...

交叉熵損失函式

監督學習的兩大種類是分類問題和回歸問題。交叉熵損失函式主要應用於分類問題。先上實現 這個函式的功能就是計算labels和logits之間的交叉熵。tf.nn.softmax cross entropy with logits logits y,labels y 首先乙個問題,什麼是交叉熵?交叉熵 c...