[機器學習-概念篇]徹底搞懂信息量,熵、相對熵、交叉熵

1 信息量

首先是信息量。假設我們聽到了兩件事,分別如下:
事件A:巴西隊進入了2018世界盃決賽圈。
事件B:中國隊進入了2018世界盃決賽圈。
僅憑直覺來說,顯而易見事件B的信息量比事件A的信息量要大。究其原因,是因爲事件A發生的概率很大,事件B發生的概率很小。所以當越不可能的事件發生了,我們獲取到的信息量就越大。越可能發生的事件發生了,我們獲取到的信息量就越小。那麼信息量應該和事件發生的概率有關。

假設XX是一個離散型隨機變量,其取值集合爲χχ,概率分佈函數p(x)=Pr(X=x),xχp(x)=Pr(X=x),x∈χ 則定義事件X=x0X=x_0的信息量爲:
I(x0)=log(p(x0))I(x_0)=−log(p(x_0))

由於是概率所以p(x0)p(x_0)的取值範圍是[0,1],繪製爲圖形如下:
可見該函數符合我們對信息量的直覺
可見該函數符合我們對信息量的直覺

2 熵(信息熵)

考慮另一個問題,對於某個事件,有n種可能性,每一種可能性都有一個概率p(xi)p(x_i)
這樣就可以計算出某一種可能性的信息量。舉一個例子,假設你拿出了你的電腦,按下開關,會有三種可能性,下表列出了每一種可能的概率及其對應的信息量
在這裏插入圖片描述
我們現在有了信息量的定義,而熵用來表示所有信息量的期望,即:
H(X)=i=1np(xi)log(p(xi))H(X)=−\sum_{i=1}^np(x_i)log(p(x_i))
其中n代表所有的n種可能性,所以上面的問題結果就是
在這裏插入圖片描述
然而有一類比較特殊的問題,比如投擲硬幣只有兩種可能,字朝上或花朝上。買彩票只有兩種可能,中獎或不中獎。我們稱之爲0-1分佈問題(二項分佈的特例),對於這類問題,熵的計算方法可以簡化爲如下算式:
在這裏插入圖片描述

函數Y=p(x)log(p(x))Y = p(x)\log(p(x))的圖,

因爲
在這裏插入圖片描述
因此對 p(x) = 0 , 我們令 p(x)log(p(x))=0p(x)\log(p(x))=0
在這裏插入圖片描述

例子

考慮⼀個隨機變量x,這個隨機變量有8種可能的狀態,每個狀態都是等可能的。
在這裏插入圖片描述
若8種狀態各自的概率爲
在這裏插入圖片描述
則熵爲:
在這裏插入圖片描述
我們看到,非均勻分佈比均勻分佈的熵要小
信息熵代表的是隨機變量或整個系統的不確定性,熵越大,隨機變量或系統的不確定性就越大。

3 相對熵(KL散度)

相對熵又稱KL散度,如果我們對於同一個隨機變量 x 有兩個單獨的概率分佈 P(x) 和 Q(x),我們可以使用 KL 散度(Kullback-Leibler (KL) divergence)來衡量這兩個分佈的差異
即如果用P來描述目標問題,而不是用Q來描述目標問題,得到的信息增量。

在機器學習中,P往往用來表示樣本的真實分佈,比如[1,0,0]表示當前樣本屬於第一類。Q用來表示模型所預測的分佈,比如[0.7,0.2,0.1]
直觀的理解就是如果用P來描述樣本,那麼就非常完美。而用Q來描述樣本,雖然可以大致描述,但是不是那麼的完美,信息量不足,需要額外的一些“信息增量”才能達到和P一樣完美的描述。如果我們的Q通過反覆訓練,也能完美的描述樣本,那麼就不再需要額外的“信息增量”,Q等價於P。
在這裏插入圖片描述
n爲事件的所有可能性。
DKLD_{KL}的值越小,表示q分佈和p分佈越接近

4 交叉熵

對上式變形可以得到:
在這裏插入圖片描述
等式的前一部分恰巧就是p的熵,等式的後一部分,就是交叉熵:
在這裏插入圖片描述
其中p(xi)p(x_i)是真實的概率分佈,q(xi)q(x_i)是分類器得出的預測概率分佈。

在機器學習中,我們需要評估label和predicts之間的差距,使用KL散度剛剛好,即DKL(yy^)D_{KL}(y||\hat{y}),由於KL散度中的前一部分H(y)−H(y)不變,故在優化過程中,只需要關注交叉熵就可以了。所以一般在機器學習中直接用用交叉熵做loss,評估模型。

機器學習中交叉熵的應用

1 爲什麼要用交叉熵做loss函數?

在線性迴歸問題中,常常使用MSE(Mean Squared Error)作爲loss函數,比如:
在這裏插入圖片描述
這裏的m表示m個樣本的,loss爲m個樣本的loss均值。
MSE在線性迴歸問題中比較好用,那麼在邏輯分類問題中還是如此麼?

2 交叉熵在單分類問題中的使用

這裏的單類別是指,每一張圖像樣本只能有一個類別,比如只能是狗或只能是貓。
交叉熵在單分類問題上基本是標配的方法
在這裏插入圖片描述
上式爲一張樣本的loss計算方法。式2.1中n代表着n種類別。
舉例說明,比如有如下樣本
在這裏插入圖片描述
對應的標籤和預測值
在這裏插入圖片描述
那麼
在這裏插入圖片描述
對應一個batch的loss就是
在這裏插入圖片描述
m爲當前batch的樣本數

3 交叉熵在多分類問題中的使用

這裏的多類別是指,每一張圖像樣本可以有多個類別,比如同時包含一隻貓和一隻狗
和單分類問題的標籤不同,多分類的標籤是n-hot。
比如下面這張樣本圖,即有青蛙,又有老鼠,所以是一個多分類問題

在這裏插入圖片描述
對應的標籤和預測值
在這裏插入圖片描述
值得注意的是,這裏的Pred不再是通過softmax計算的了,這裏採用的是sigmoid。將每一個節點的輸出歸一化到[0,1]之間。所有Pred值的和也不再爲1。換句話說,就是每一個Label都是獨立分佈的,相互之間沒有影響。所以交叉熵在這裏是單獨對每一個節點進行計算,每一個節點只有兩種可能值,所以是一個二項分佈。前面說過對於二項分佈這種特殊的分佈,熵的計算可以進行簡化。

同樣的,交叉熵的計算也可以簡化,即

在這裏插入圖片描述
注意,上式只是針對一個節點的計算公式。這一點一定要和單分類loss區分開來。
例子中可以計算爲:
在這裏插入圖片描述
單張樣本的loss即爲loss=loss+loss+lossloss=loss_貓+loss_蛙+loss_鼠
每一個batch的loss就是:

在這裏插入圖片描述
式中m爲當前batch中的樣本量,n爲類別數。

參考資料
https://blog.csdn.net/tsyccnh/article/details/79163834

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章