各種熵的計算公式及基本思想

1. 信息量

如果一個事件的概率很低,那麼其信息量很大:

I(x) = -1 * log(p(x))

2. 信息熵

對於一個離散性隨機變量X的熵H(X),信息熵就是信息量的數學期望, (熵越小越純凈,說明術語同一個類(決策樹中), 熵越大,信息量越大,不確定性越高), 定義為:

H(X) = -1 * \sum p(x) * log(x)

3. 聯合熵

對於服從聯合概率分佈p(x, y)的兩個變量x, y,,那麼聯合熵:

H(X, Y) = -1 * \sum_{x\in X} \sum_{y\in Y} p(x, y) * log (p(x, y))

4. 條件熵

在X給定的條件下,Y的條件概率分佈的熵對X 的數學期望(度量在定情況下,隨機變量的不確定性):

H(Y|X) = \sum_{x\in X} p(x) * H(Y|X = x) \\
= -1 * \sum_{x\in X} p(x) \sum_{y\in Y} p(y|x) * log (p(y|x)) \\
= -1 * \sum_{x\in X} \sum_{y\in Y} p(y, x) * log (p(y|x))

5. 互信息(好像和信息增益一樣)

兩個隨機變量X和Y,他們的聯合概率密度函數為p(x,y),其邊際概率密度函數分別為p(x)和p(y)。互信息I(X;Y)為聯合分佈p(x,y)和p(x)p(y)之間的相對熵

I(X; Y) = \sum_{{x\in X}} \sum_{{y\in Y}} p(x, y) * log(\frac{p(x, y)}{p(x) * p(y)})

互信息其實就是信息熵與條件熵之差(也就是知道其中一個,另一個不確定度減少的程度):

I(x, y) = H(Y) – H(Y|X) = H(X) – H(X|Y)

6. 相對熵

相對熵也叫做KL散度,表示對於同一個隨機變量有兩個概率分佈P(X) 和Q(X), 衡量這兩個分佈的相似程度.

D_{KL}(p||q) = \sum_{i = 1}^{n}p(x_i) * log(\frac{p(x_i)}{q(x_i)})

7. 交叉熵

主要用於度量兩個概率分佈間的差異性信息, 在分類任務中常用做目標函數(loss function),這裡是不是有點疑惑,為什麼KL散度用來衡量兩個分佈的相似程度,交叉熵也用來衡量,請往後看,交叉熵的公式為:

H(p, q) = \sum_{i=1}^{n} p(x_i) * log(\frac{1}{q(x_i)})\\
= -1 * \sum_{i=1}^{n} p(x_i) * log(q(x_i))

一般p為label,即真實標籤ground truth, q為預測分佈.

交叉熵與KL散度(相對熵的關係)

D_{KL}(p||q) = \sum_{i = 1}^{n}p(x_i) * log(\frac{p(x_i)}{q(x_i)})\\
= \sum_{i=1}^{n} p(x_i) * log(p(x_i))-1 * \sum_{i=1}^{n} p(x_i) * log(q(x_i))\\
= H(X) – H(p,q)

KL散度就是隨機變量X的信息熵減去交叉熵, 由於H(X)為常量,因此交叉熵與KL散度一樣都是用來評估predict與label之間的差別.(一般採用交叉熵)