一般使用交叉熵作為損失函式時,在模型的輸出層總會接乙個softmax函式,這是為什麼呢?
交叉熵簡介:
交叉熵是資訊理論中的乙個重要概念,主要用於度量兩個概率分布間的差異性,要理解交叉熵,需要先了解以下幾個概念。
資訊量資訊奠基人夏農(shannon)認為「資訊是用來消除隨機不確定性的一種東西」,也就是說衡量資訊量的大小就是看這個資訊消除不確定性的程度。
「太陽從東邊公升起」,這條資訊並沒有減少不確定性,因為太陽肯定是從東邊公升起的,這是一句廢話,資訊量為0.
「2023年中國隊成功進入世界盃」。從直覺上來看,這句話具有很大資訊量。因為中國隊進入世界盃的不確定性因素很大。而這句話消除了進入世界盃的不確定性,所以按照定義,這句話的資訊量很大。
根據上述描述,總結如下:資訊量的大小與資訊發生的概率成反比。概率越大,資訊量越小。概率越小,資訊量越大。
設某一事件發生的概率為p(x),其資訊量表示為:
i(x)=−log(p(x))
其中i(x)表示資訊量,這裡log表示以e為底的自然對數。
資訊熵資訊熵也被成為熵,用來表示所有資訊量的期望。
在概率論和統計學中,數學期望(mean)(或均值,亦簡稱期望)是試驗中每次可能結果的概率乘以其結果的總和,是最基本的數學特徵之一。它反映隨機變數平均取值的大小。
所以資訊量的熵可以表示為:(這裡的x是乙個離散型隨機變數)
使用明天的天氣概率來計算其資訊熵:
對於0-1分布問題,由於其結果只用兩種情況,是或不是,設某一事件發生的概率為p(x),則另一事件發生的概率為1 - p(x),所以對於0-1分布問題,計算熵的公式可以簡化如下:
相對熵(kl散度):
如果對於同乙個隨機變數x有兩個單獨的概率分布p(x)和q(x),我們可以使用kl散度來衡量這兩個概率分布之間的差異。
下面直接列出公式,再舉例加以說明:
在機器學習中,常常使用p(x)來表示樣本的真實分布,q(x)表示模型所**的分布,比如在乙個三分類任務中(例如,貓馬狗分類器),x1,x2,x3分別代表貓,馬,狗。例如一張貓的真實分布p(x)= [1, 0,0],**分布 q ( x ) = [ 0.7 , 0.2 , 0.1 ],計算kl散度:
kl散度越小,表示p(x)與q(x)的分布更加接近,可以通過反覆訓練q(x)來使q(x)的分布逼近p(x)。
交叉熵首先將kl散度公式拆開:
前面的h(p(x))表示資訊熵,後面的中括號內容表示交叉熵。kl散度 = 資訊熵 - 交叉熵
交叉熵公式表示為:
在機器學習訓練網路時,輸入資料與標籤常常已經確定,那麼真實概率分布 p ( x )也就確定下來了,所以資訊熵在這裡就是乙個常量。由於kl散度的值表示真實概率分布 p ( x )與**概率分布 q ( x ) 之間的差異,值越小表示**的結果越好,所以需要最小化kl散度,而交叉熵等於kl散度加上乙個常量(資訊熵),且公式相比kl散度更加容易計算,所以在機器學習中常常使用交叉熵損失函式來計算loss就行了。
交叉熵在單分類問題中的應用:
下面使用乙個例子來說明如何計算交叉熵損失值,假設我們輸入乙個狗的,標籤與**值如下:
其中, m表示樣本個數。
summary:
(1)交叉熵能夠衡量同乙個隨機變數中的兩個不同概率分布的差異程度,在機器學習中就表示為真實概率分布與**概率分布之間的差異。交叉熵的值越小,模型**效果越好。
(2)交叉熵在分類問題中,常常與softmax是標配,softmax將輸出結果進行處理,使其多個分類**值總和為1,再通過交叉熵來計算損失。
資訊量 資訊熵 交叉熵 相對熵
1 資訊量 陳羽凡吸毒?工作室不是剛闢謠了嗎?哇!資訊量好大!在生活中,極少發生的事情最容易引起吃瓜群眾的關注。而經常發生的事情則不會引起注意,比如吃瓜群眾從來不會去關係明天太陽會不會東邊公升起。資訊量的多少與事件發生概率的大小成反比。對於已發生的事件i,其所提供的資訊量為 其中底數通常為2,負號的...
對資訊量,熵,相對熵,交叉熵的理解
下面自己做個總結。假設x是乙個離散型隨機變數,其取值集合為c,概率分布函式p x pr x x x c,則定義事件x xi 的資訊量 為 上式有兩個含義 1 當事件發生前,表示該事件發生的不確定性 2 當事件發生後,標是該事件所提供的資訊量 資訊量的單位取決於對數所取的底,若以2為底,單位為位元,以...
機器學習之資訊量,熵,相對熵,交叉熵概念辨析
可能性越小的事件其資訊量越大,極端情況下,確定事件的資訊量為0。事件 a aa 的資訊量為 ia log p a i a logp a ia l ogp a p a p a p a 為事件 a aa 發生的概率。熵就是乙個隨機變數x所有事件的資訊量的期望 例如隨機變數x xx表示明天的天氣,所有事件...