熵是信息論非常重要的概念。本文簡要介紹一下幾個概念:
- 熵
- 聯合熵
- 條件熵
- 相對熵
- 交叉熵
熵
隨機變量\(X\)的分布的熵為:
\[H(X) = - \sum_x p(x)\log p(x) \]
性質:
- 熵是隨機變量不確定性的度量,隨機變量的取值個數越多,不確定性越大,混亂程度就越大,信息熵越大。
- 熵的取值范圍為\(0 \leq H(X) \leq log (n)\),\(n\)表示取值的個數,當隨機分布為均勻分布時,熵取到最大值
- 在信息傳輸方面,熵是傳輸一個隨機變量狀態值所需的比特位下界(最短平均編碼長度)
聯合熵
\[H(X, Y) = - \sum_x \sum_y p(x, y)\log p(x, y) \]
條件熵
\[H(Y|X) = - \sum_{x, y}p(x, y)\log p(y|x) \]
推導過程:
\[\begin{aligned} H(Y|X) & = - \sum_x p(x)H(Y|X=x)\\ & = - \sum_x p(x) \sum_y p(y|x) \log p(y|x)\\ & = - \sum_x \sum_y p(x, y) \log p(y|x)\\ & = - \sum_{x, y}p(x, y)\log p(y|x) \end{aligned} \]
性質:\(H(X, Y) = H(Y|X) + H(X)\)
推導過程:
\[\begin{aligned} H(X, Y) & = - \sum_x \sum_y p(x, y)\log p(x, y)\\ & = - \sum_x \sum_y p(x, y) [\log p(y|x) + \log p(x)]\\ & = - \sum_x \sum_y p(x, y) \log p(y|x) - \sum_x \sum_y p(x, y) \log p(x)\\ & = H(Y|X) - \sum_x \log p(x) \sum_y p(x, y)\\ & = H(Y|X) - \sum_x [\log p(x)] p(x)\\ & = H(Y|X) + H(X) \end{aligned} \]
其中\(\sum_y p(x, y)\)就是邊緣概率。
相對熵(relative entropy)
相對熵也稱KL散度(KL divergence),衡量的是兩個概率分布之間的差異。
\[D_{KL}(p, q) = \sum_x p(x) \log \frac{p(x)}{q(x)} \]
性質:
- 相對熵不具有對稱性
- 相對熵的取值是大於等於0
- 如果p和q兩個概率分布相同,相對熵為0
- 可以把相對熵看成一個加權平均,其中概率\(p(x)\)為權重,對每個\(p(x)\)計算一個值\(p(x)/q(x)\)
交叉熵(cross entropy)
\[H(p, q) = - \sum_x p(x) \log q(x) \]
性質:\(D_{KL}(p, q) = H(p, q) - H(p)\)
推導:
\[\begin{aligned} H(p, q) - H(p) & = - \sum_x p(x) \log q(x) + \sum_x p(x) \log p(x)\\ & = \sum_x p(x) \log \frac{p(x)}{q(x)}\\ & = D_{KL}(p, q) \end{aligned} \]
重頭戲來了:
為什么使用交叉熵而不是相對熵來作為損失函數?
交叉熵和相對熵都是非負的,都不是對稱的。
- 從信息學角度,熵是對隨機變量進行編碼所需的最小字節數
- KL散度表示如果用B表示A所需要的額外編碼長度
- 交叉熵表示用B表示A所需要的平均編碼長度。
相對熵 = 交叉熵 - 熵
\(D_{KL}(p||q) = H(p, q) - H(p)\)
真實數據分布p是保持不變的
q是模型的預測的概率分布
結論:當熵不變的時候,最小化相對熵等價於最小化交叉熵。