本文介紹交叉熵的概念,涉及到信息量、熵、相對熵、交叉熵;
信息量
信息量是用來衡量一個事件發生的不確定性,一個事件發生的概率越大,不確定性越小,則信息攜帶的信息量則越小;
假設\(X\)是一個離散隨機變量,其取值為集合\(X=x_0, x_1, \cdots,x_n\),其概率分布函數為:
則定義事件\(X=x_0\)的信息量為:
當\(p(x_0) = 1\)時,該事件必定發生,其信息量就為0;
下面詳細說明為什么選擇\(log\)用於計算信息量:
單調遞減:
首先,事件的概率越大,不確定性越小,則攜帶的信息量越小;所以是一個單調遞減的函數;
隨機變量獨立性:
假設\(x_1, x_2\)是兩個獨立的隨機變量,則其聯合概率有:
那么,對於兩個獨立的事件\(X=x_1\)與\(X=x_2\),其聯合后的信息量就有:
因此,考慮隨機變量的獨立性,概率的乘法能轉換到信息量的加法,可以使用\(log\)方法,同時為了滿足單調遞減的性質,再取負;
就有了:
其中\(p(x)\)的取值為\([0, 1]\);
如下圖所示,橫軸表示事件發生的概率,縱軸表示其攜帶的信息量;

熵
熵是用來衡量一個系統的混亂程度,代表系統中信息量的總和;
熵值越大,則表明這個系統越不穩定;
信息量是衡量一個事件的不確定性,而熵是衡量一個系統(所有事件)的不確定性;
熵的計算公式如下:
其中,\(p(x_i)\)表示事件\(X=x_i\)發生的概率,\(-log(p(x_i))\)表示事件\(X=x_i\)的信息量;
可以看出,熵是信息量的期望值,是一個隨機變量不確定性的度量;
熵值越大,隨機變量的取值就越難確定,系統就越不穩定;
熵值越低,隨機變量的取值就越容易確定,系統就越穩定;
相對熵(Relative Entropy)
相對熵也稱為KL散度(Kullback-Leibler divergence),表示同一個隨機變量的兩個不同分布間的距離;
假設,\(p(x), q(x)\)分別是 離散隨機變量\(X\)的兩個概率分布,則\(p\)對\(q\)的相對熵是:
具有以下性質:
- 如果\(p(x)\)與\(q(x)\)的分布相同,則相對熵為0;
- 相對熵不具有對稱性,即\(D_{KL}(p||q) \not = D_{KL}(q||p)\),即KL散度也不是一種度量方式;
- \(D_{KL}(p||q) \ge 0\);
總的來說,相對熵是用來衡量同一個隨機變量的兩個不同分布之間的距離;在實際應用中,\(p(x)\)表示目標分布,\(q(x)\)表示預測得到的分布,任務的目標就是讓兩個分布盡可能的相似,這就需要最小化KL散度;
交叉熵(Cross Entropy)
對相對熵的計算公式做一步拆分:
在機器學習中,假設\(p\)是目標分布,則分布\(p\)的熵就是一個固定的值,其計算方式就是上式的第一項;
那么,上式的第二項,即
稱為交叉熵;
設\(p(x)\)是目標分布,我們的目標就是讓訓練得到的分布\(q(x)\)盡可能地接近\(p(x)\),這時候就可以最小化\(D_{KL}(p||q)\),等價於最小化交叉熵\(H(p, q)\);
因此,交叉熵衡量的是兩個部分之間的差異,所以在用於分類任務的深度卷積神經網絡中,常在最后一層中加上Softmax層;
Reference:
