1. 程式人生 > >機器學習筆記:各種熵

機器學習筆記:各種熵

在機器學習中通常會使用各種熵來描述分佈與分佈之間的關係,如條件熵和交叉熵等,也有直接優化熵的模型,如最大熵模型。
這篇文章簡單總結一下之前見到過的一些熵相關的概念。

資訊量

定義

假設有離散隨機變數 XX 滿足分佈 P(X=xi)=piP(X = x_{i}) = p_{i} , 定義事件 X=xiX = x_{i}的資訊量為
I(xi)=log(pi) I(x_{i}) = -log(p_{i})

性質

取值範圍在 [0, +∞) 區間內
顧名思義,一個事件的資訊量可以直觀的理解為事件發生給人帶來的資訊多少。由定義可以看出當事件發生概率越小時,資訊量越大。

資訊熵

定義

資訊熵用於描述隨機變數 XX ,定義資訊熵為資訊量的期望值
H(X)=ExP[I(x)]=i=1npilog(pi) H(X) = E_{x \sim P}[I(x)] = -\sum_{i = 1}^{n}{p_{i} log(p_{i})}

性質

取值範圍在 [0, log(n)] 區間內
資訊熵描述了隨機變數的不確定性,當所有事件等可能地發生時,資訊熵取得最大值
同樣的可以定義聯合分佈 P(X,Y)P(X, Y) 和條件分佈 P(XY=yi)P(X | Y = y_{i})

Y=yi) 的資訊熵

條件熵

定義

假設有離散隨機變數 XXYY 滿足聯合分佈 P(X=xi,Y=yi)=pijP(X = x_{i}, Y = y_{i}) = p_{ij} ,記邊緣分佈 P(X=xi)=piP(X = x_{i}) = p_{i} ,定義條件熵為
H(XY)=i=1npiH(YX=xi) H(X | Y) = -\sum_{i = 1}^{n}{p_{i}H(Y | X = x_{i})}

性質

可以證明 H(XY)=H(X,Y)

H(X)H(X | Y) = H(X, Y) - H(X)
條件熵描述了在 XX 已知的情況下, YY 的資訊熵

相對熵

定義

相對熵又稱KL散度(KL divergence)。假設有離散的隨機變數 XX ,和定義在 XX 上的兩個分佈 P(X=xi)=piP(X = x_{i}) = p_{i}Q(X=xi)=qiQ(X = x_{i}) = q_{i} ,定義相對熵為
DKL(pq)=i=1npilog(piqi) D_{KL}(p || q) = \sum_{i = 1}^{n}{p_{i} log(\frac{p_{i}}{q_{i}})}

性質

KL散度通常用來描述兩個分佈之間的差異或距離。當兩個分佈越接近,則KL散度越小,因此在GAN的論文中,KL散度被用來衡量生成器生成的樣本分佈與真實樣本分佈之間的差異。
但是KL散度卻不滿足距離的對稱性,即 DKL(pq)DKL(qp)D_{KL}(p || q) \neq D_{KL}(q || p)

交叉熵

定義

假設有離散的隨機變數 XX ,和定義在 XX 上的兩個分佈 P(X=xi)=piP(X = x_{i}) = p_{i}Q(X=xi)=qiQ(X = x_{i}) = q_{i} ,定義交叉熵為
H(p,q)=i=1npilog(qi) H(p, q) = -\sum_{i = 1}^{n}{p_{i} log(q_{i})}

性質

可以證明 H(p,q)=H(p)DKL(pq)H(p, q) = H(p) - D_{KL}(p || q)
注意交叉熵是定義在一個隨機變數的兩個分佈上的,和資訊熵 H(X,Y)H(X, Y) 有區別
交叉熵定義了使用分佈 QQ 擬合分佈 PP 時的損失,在機器學習中使用的交叉熵損失函式就是將預測分佈和真實資料分佈的交叉熵來作為損失函式的

JS散度

定義

JS散度修正了KL散度部隊稱的特點,定義為
JSD(pq)=12DKL(pp+q2)+12DKL(qp+q2) JSD(p || q) = \frac{1}{2} D_{KL}(p || \frac{p + q}{2}) + \frac{1}{2} D_{KL}(q || \frac{p + q}{2})

性質

解決了KL散度不對稱的特點