轉載自:https://blog.csdn.net/b1055077005/article/details/100152102
交叉熵損失函數原理詳解
之前在代碼中經常看見交叉熵損失函數(CrossEntropy Loss),只知道它是分類問題中經常使用的一種損失函數,對於其內部的原理總是模模糊糊,而且一般使用交叉熵作爲損失函數時,在模型的輸出層總會接一個softmax函數,至於爲什麼要怎麼做也是不懂,所以專門花了一些時間打算從原理入手,搞懂它,故在此寫一篇博客進行總結,以便以後翻閱。
交叉熵簡介
交叉熵是信息論中的一個重要概念,主要用於度量兩個概率分佈間的差異性,要理解交叉熵,需要先了解下面幾個概念。
信息量
信息奠基人香農(Shannon)認爲“信息是用來消除隨機不確定性的東西”,也就是說衡量信息量的大小就是看這個信息消除不確定性的程度。
“太陽從東邊升起”,這條信息並沒有減少不確定性,因爲太陽肯定是從東邊升起的,這是一句廢話,信息量爲0。
”2018年中國隊成功進入世界盃“,從直覺上來看,這句話具有很大的信息量。因爲中國隊進入世界盃的不確定性因素很大,而這句話消除了進入世界盃的不確定性,所以按照定義,這句話的信息量很大。
根據上述可總結如下:信息量的大小與信息發生的概率成反比。概率越大,信息量越小。概率越小,信息量越大。
設某一事件發生的概率爲P(x),其信息量表示爲:
H(X)=−i=1∑nP(xi)log(P(xi)))(X=x1,x2,x3...,xn)
使用明天的天氣概率來計算其信息熵: