交叉熵損失是深度學習中應用最廣泛的損失函數之一,這個強大的損失函數是建立在交叉熵概念上的。當我開始使用這個損失函數時,我很難理解它背後的直覺。在google了不同材料後,我能夠得到一個令人滿意的理解,我想在這篇文章中分享它。
為了全面理解,我們需要按照以下順序理解概念:自信息, 熵,交叉熵和交叉熵損失
自信息
"你對結果感到驚訝的程度"
一個低概率的結果與一個高概率的結果相比,低概率的結果帶來的信息量更大。現在,如果$y_i$是第i個結果的概率,那麼我們可以把自信息s表示為:
熵
現在我知道一個事件產生某個結果的自信息,我想知道這個事件平均帶來多少自信息。對自信息s進行加權平均是很直觀的。現在的問題是選擇什麼權重?因為我知道每個結果的概率,所以用概率作為權重是有意義的,因為這是每個結果應該發生的概率。自信息的加權平均值就是熵(e),如果有n個結果,則可以寫成:
交叉熵
現在,如果每個結果的實際概率為$pi$卻有人將概率估計為$qi$怎麼辦。在這種情況下,每個事件都將以$pi$的概率發生,但是公式裡的自信息就要改成$qi$(因為人們以為結果的概率是$q_i$)。現在,在這種情況下,加權平均自信息就變為了交叉熵c,它可以寫成:
交叉熵總是大於熵,並且僅在以下情況下才與熵相同 $pi=qi$,你可以觀看https://www.desmos.com/calculator/zytm2sf56e的插圖來幫助理解
交叉熵損失
紫色線代表藍色曲線下的面積,估計概率分布(橙色線),實際概率分布(紅色線)
在上面我提到的圖中,你會注意到,隨著估計的概率分布偏離實際/期望的概率分布,交叉熵增加,反之亦然。因此,我們可以說,最小化交叉熵將使我們更接近實際/期望的分布,這就是我們想要的。這就是為什麼我們嘗試降低交叉熵,以使我們的預測概率分布最終接近實際分布的原因。因此,我們得到交叉熵損失的公式為:
在只有兩個類的二分類問題的情況下,我們將其命名為二分類交叉熵損失,以上公式變為: