交叉熵(Cross Entropy)


本文介紹交叉熵的概念,涉及到信息量、熵、相對熵、交叉熵;

信息量

信息量是用來衡量一個事件發生的不確定性,一個事件發生的概率越大,不確定性越小,則信息攜帶的信息量則越小;

假設\(X\)是一個離散隨機變量,其取值為集合\(X=x_0, x_1, \cdots,x_n\),其概率分布函數為:

\[p(x) = Pr(X=x), x\in X \]

則定義事件\(X=x_0\)的信息量為:

\[I(x_0) = -log(p(x_0)) \]

\(p(x_0) = 1\)時,該事件必定發生,其信息量就為0;

下面詳細說明為什么選擇\(log\)用於計算信息量:
單調遞減:

首先,事件的概率越大,不確定性越小,則攜帶的信息量越小;所以是一個單調遞減的函數;

隨機變量獨立性:

假設\(x_1, x_2\)是兩個獨立的隨機變量,則其聯合概率有:

\[p(x_1, x_2) = p(x_1) \cdot p(x_2) \]

那么,對於兩個獨立的事件\(X=x_1\)\(X=x_2\),其聯合后的信息量就有:

\[I(x_1, x_2) = I(x_1) + I(x_2) \]

因此,考慮隨機變量的獨立性,概率的乘法能轉換到信息量的加法,可以使用\(log\)方法,同時為了滿足單調遞減的性質,再取負;

就有了:

\[I(x) = -log(p(x)) \]

其中\(p(x)\)的取值為\([0, 1]\)

如下圖所示,橫軸表示事件發生的概率,縱軸表示其攜帶的信息量;

熵是用來衡量一個系統的混亂程度,代表系統中信息量的總和;

熵值越大,則表明這個系統越不穩定;

信息量是衡量一個事件的不確定性,而熵是衡量一個系統(所有事件)的不確定性;

熵的計算公式如下:

\[H(x) = -\sum_{i=1}^{n}p(x_i) log(p(x_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\)的相對熵是:

\[D_{KL}(p||q) = \sum_i p(x_i) log(\dfrac{p(x_i)}{q(x_i)}) \]

具有以下性質:

  • 如果\(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)

對相對熵的計算公式做一步拆分:

\[\begin{align} D_{KL}(p||q) & = \sum_i p(x_i) \log(\dfrac{p(x_i)}{q(x_i)}) \\ & = \sum_i p(x_i)\log p(x_i) - \sum_i p(x_i) \log q(x_i) \\ \end{align} \]

在機器學習中,假設\(p\)是目標分布,則分布\(p\)的熵就是一個固定的值,其計算方式就是上式的第一項;

那么,上式的第二項,即

\[H(p, q) = - \sum_i p(x_i) \log q(x_i) \]

稱為交叉熵;

\(p(x)\)是目標分布,我們的目標就是讓訓練得到的分布\(q(x)\)盡可能地接近\(p(x)\),這時候就可以最小化\(D_{KL}(p||q)\),等價於最小化交叉熵\(H(p, q)\)

因此,交叉熵衡量的是兩個部分之間的差異,所以在用於分類任務的深度卷積神經網絡中,常在最后一層中加上Softmax層;

Reference:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM