交叉熵損失函數


交叉熵損失函數

熵的本質是香濃信息量\(\log(\frac{1}{p})\)的期望

既然熵的本質是香濃信息量\(\log(\frac{1}{p})\)的期望,那么便有

\[H(p)=E[p_i\times\log(\frac{1}{p_i})]=\sum p_i\times\log\frac{1}{p_i} \]

一個時間結果的出現概率越低,對其編碼的bit的長度就越長。熵的本質的另一個解釋是編碼方案完美時,最短平均編碼長度的是多少

現在關於樣本集的2個概率分布\(p\)\(q\),其中\(p\)為真實分布,\(q\)為非真實分布,通常是預測結果,比如在深度學習的分類中,像手寫數字識別,會有10個類別,那么對於一個給定的圖片\(x\),那么經過深度模型預測得到的結果應該是一個分布,比如\(q(0)=0.0,q(1) = 0.1,q(2) = 0.1, q(3) = 0.8,q(4)=0,\dots\),這就是一個分布,最后肯定會選擇概率最大的3作為輸出。但是這是預測的概率分布,實際的分布應該是\(p(0)=0,p(1)=0,p(2)=0,p(3)=1,p(4)=0,\dots\)。於是,我們想做的就是讓q的分布與\(p\)的分布一樣。

在概率論或信息論中,KL散度( Kullback–Leibler divergence),又稱相對熵(relative entropy),是描述兩個概率分布P和Q差異的一種方法。它是非對稱的,這意味着D(P||Q) ≠ D(Q||P)。特別的,在信息論中,D(P||Q)表示當用概率分布Q來擬合真實分布P時,產生的信息損耗,其中P表示真實分布,Q表示P的擬合分布。簡單的說,KL散度或者相對熵它是用來度量兩個分布\(P,Q\)之間的距離的,也就是說,距離越大,兩個分布差距最大。於是。在我們的模型訓練中, 我們要做的就是不斷的調整參數,使得預測得到的分布與真實分布盡可能的一致。那么,這與交叉熵有什么關系呢?

相對熵的數學定義如下

\[D_{KL} = \sum_ip(i)\log\frac{p(i)}{q(i)} \]

展開后有

\[D_{KL} = \sum_ip(i)\log(p(i)) - p(i)\log(q(i)) \]

我們暫且表示為

\[D_{KL} = \sum_iH(p(i) + H(p(i),q(i)) \]

\(H(p_i)\)是一個真實分布的期望,因此與訓練無關,是一個常數項。於是,最小化相對熵便轉為最小化\(H(p_i,q_i)=-\sum_i p(i)\log q(i)\)

這個就是交叉熵。

一句話說,就是,最小化誤差可以通過最小化相對熵(KL散度)來實現,而最小化相對熵,則可以通過最小化交叉熵來實現,所以,交叉熵損失函數就這么來了。。。。。。。。。

參考

  1. 妖嬈的up主的交叉熵視頻


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM