請選擇 進入手機版|繼續訪問電腦版

從香農熵到手推KL散度:一文帶你縱覽機器學習中的信息論

[複製鏈接]
選自Medium

作者:Frank Preiswerk

機器之心編譯

參與:Nurhachu Null、蔣思源

  信息論與信息熵是 AI 或機器學習中非常重要的概念,我們經常需要使用它的關鍵思想來描述概率分布或者量化概率分布之間的相似性。在本文中,我們從最基本的自信息和信息熵到交叉熵討論了信息論的基礎,再由最大似然估計推導出 KL 散度而加強我們對量化分布間相似性的理解。最後我們簡要討論了信息熵在機器學習中的應用,包括通過互信息選擇決策樹的特征、通過交叉熵衡量分類問題的損失和貝葉斯學習等。



信息論是應用數學的一個分支,主要研究的是對一個信號包含信息的多少進行量化。它最初被發明是用來研究在一個含有噪聲的信道上用離散的字母表來發送消息,例如通過無線電傳輸來通信。而本文主要探討信息熵在 AI 或機器學習中的應用,一般在機器學習中,我們可以將信息論應用在連續型變量上,並使用信息論的一些關鍵思想來描述概率分布或者量化概率分布之間的相似性。

因此在機器學習中,通常要把與隨機事件相關信息的期望值進行量化,此外還要量化不同概率分布之間的相似性。在這兩種情況下,香農熵都被用來衡量概率分布中的信息內容。香農熵是以信息論之父 Claude Shannon 的名字命名的,也稱為信息熵或微分熵(連續)。

自信息

香農熵的基本概念就是所謂的一個事件背後的自信息(self-information),有時候也叫做不確定性。自信息的直覺解釋如下,當某個事件(隨機變量)的一個不可能的結果出現時,我們就認為它提供了大量的信息。相反地,當觀察到一個經常出現的結果時,我們就認為它具有或提供少量的信息。將自信息與一個事件的意外性聯系起來是很有幫助的。例如,一個極其偏畸的硬幣,每一次拋擲總是正面朝上。任何一次硬幣拋擲的結果都是可以完全預測的,這樣的話我們就永遠不會對某次結果感到驚奇,也就意味著我們從這個實驗中得到的信息是 0。換言之,它的自信息是 0。如果硬幣的偏畸程度稍微小一些,這樣的話,盡管看到正面朝上的概率超過了 50%,每次拋擲還會有一些信息。因此,它的自信息大於 0。如果硬幣的偏畸程度是導致反面朝上的結果,我們得到的自信息還是 0。在使用一個沒有偏畸的硬幣做實驗時,每次拋擲得到正面朝上和反面朝上的概率都是 50%,我們會得到最大的意外性,因為在這種情況下硬幣拋擲的結果的可預測性是最小的。我們也可以說,均勻分布的熵最大,確定事件的熵最小。

基於以上的非正式需求,我們可以找到一個合適的函數來描述自信息。對於一個可能取值為 x_1,x_2,...,x_n 的離散隨機變量 X,它的概率質量函數 P(X),以及任何正的取值在 0 到 1 之間的單調遞減函數 I(p_i) 都可以作為信息的度量。此外,還有另外一個關鍵的屬性就是獨立事件的可加性;兩次連續硬幣拋擲的信息應該是一次單獨拋擲的 2 倍。這對獨立變量而言是有意義的,因為在這種情況下意外性或者不可預測性會增大為之前的兩倍。形式上,對於獨立事件 x_i 和 x_j 而言,我們需要 I(p_i * p_j) = I(p_i) + I(p_j)。滿足所有這些要求的函數就是負對數,因此我們可以使用負對數表示自信息:





圖 1 所示是自信息 I(p)。







圖 1:函數 I(p) 的自信息。小概率對應著較高的自信息,反之亦然。

我們繼續回到簡單的硬幣拋擲實驗中。在信息論中,1bit(也叫做 Shannon)信息代表一次單獨硬幣拋擲的兩種可能結果。相似地,對於兩次連續拋擲而言,就需要 4 bit 來描述 4 中可能的結果。通常,用 log_2(n)(2 的對數)bit 來描述 n 個連續的獨立隨機事件的結果,或者是自信息。下面我們來驗證一下一次連續三次的實驗中自信息的計算:總共有 2^3=8 種可能的結果,每種結果的概率都是 0.5^3=0.125。所以,這次實驗的自信息就是 I(0.125)= -log_2(0.125) = 3。我們需要 3bit 來描述這些所有可能的結果,那麼,任何一次連續三次的硬幣拋擲的自信息等於 3.0。

我們也可以計算連續隨機變量的自信息。圖 2 展示了三種不同的概率密度函數及其對應的信息函數。圖 2(A)所示的 Dirac delta 對應著很強的偏差,總是同一面朝上的偏畸硬幣對應著零熵。所有 p(x)= 0 的地方都對應著無限高的信息量。然而,由於這些零概率的事件永遠不會發生,所以這只是一個假設。圖 2(B)中的高斯概率密度函數就是對那種經常同一面朝上,但不總是同一面朝上的情況的模擬。最後,圖 2(C)描述的是一個均勻分布概率密度函數,它對應著均勻的信息量,和我們沒有偏畸的硬幣是類似的。









圖 2. [-3,3] 上的三種不同的概率密度函數及其自信息 I(p)。(A)Dirac δ函數(完全確定);(B)μ = 0,σ = 0.5 的高斯分布;(C)均勻分布



到目前為止我們只討論了自信息。在正常的硬幣實驗中,自信息實際上都等於香農熵,因為所有的結果都是等概率出現的。通常,香農熵是 X 的所有可能結果的自信息期望值:

其中 b 是對數的底數。上面我們使用的是 b=2,其他常見的選擇還有 b=10,以及 e。其實這個影響不大,因為不同底數的對數之間存在一個常數的關系。我們這裡仍然假設底數為 2,所以我們將省略下面公式中的 b。

如果仔細注意的話,你可能會疑惑,當 p(x_i) = 0 的時候會發生什麼,因為這種情況下我們必須計算 0 · log(0)。事實上,我們需要計算的是一個極限:lim_(p→0) p*log(p(x_i))=0。使用洛必達法則或泰勒展開式求解的過程讀者可以查閱書籍自行完成。

當香農熵泛化到連續域的時候,通常它指的是一種微分熵,對於連續的隨機變量 x 及其概率密度函數 p(x),它的香農熵定義如下:







我們上述三個分布的熵分別是 0(狄拉克δ分布),174(高斯分布)以及 431(均勻分布)。在我們的實驗中出現的模式是:越寬廣的分布對應著越高的信息熵。仔細觀察圖 2(B)和圖 2(C)有助於你的理解。盡管高斯分布中 I(p)曲線下面的面積要遠大於均勻分布,然而它的信息熵要遠小於均勻分布,因為信息熵 I(P)是按照概率密度 p 加權的,在高斯分布的兩側,p 接近於 0。更廣的概率密度對應著更大的信息熵,有一個很好的比喻幫助記住這個:想象某種氣體充滿了一個儲罐。從物理學中我們可以知道,一個封閉系統中的熵會隨著時間增加,而且從來不會減少。在我們從儲罐的另一側註入氣體之後,氣體粒子的分布會收斂於一個均勻值。低熵意味著高密度的氣體粒子聚集在某個特定的區域,而這是永遠不會自發發生的。很多氣體粒子聚集在某個小面積區域對應的還早呢故事我們的高斯概率密度函數,在狄拉克δ分布中是一個極端粒例子,所有的氣體都被壓縮在一個無限小的區域。

交叉熵

交叉熵是一個用來比較兩個概率分布 p 和 q 的數學工具。它和熵是類似的,我們計算 log(q) 在概率 p 下的期望,而不是反過來:

在信息論中,這個量指的是:如果用「錯誤」的編碼方式 q(而不是 p)去編碼服從 q 分布的事件,我們所需要的 bit 數。在機器學習中,這是一個衡量概率分布相似性的有用工具,而且經常作為一個損失函數。因為交叉熵等於 KL 散度加上一項信息熵,即 D_KL(p||q) = H(p, q) - H(p)。而當我們針對 Q 最小化交叉熵時,H(p) 為常量,因此它能夠被省略。交叉熵在這種情況下也就等價於 KL 散度,因為 KL 散度可以簡單地從最大似然估計推導出來,因此下文詳細地以 GAN 為例利用 MLE 推導 KL 散度的表達式。

KL 散度

與交叉熵緊密相關,KL 散度是另一個在機器學習中用來衡量相似度的量:從 q 到 p 的 KL 散度如下:D_KL(p||q)。在貝葉斯推理中,DKL(p||q) 衡量當你修改了從先驗分布 q 到後驗分布 p 的信念之後帶來的信息增益,或者換句話說,就是用後驗分布 q 來近似先驗分布 p 的時候造成的信息損失。例如,在訓練一個變分自編碼器的隱藏空間表征時就使用了 KL 散度。KL 散度可以用熵和交叉熵表示:

交叉熵衡量的是用編碼方案 q 對服從 p 的事件進行編碼時所需 bit 數的平均值,而 KL 散度給出的是使用編碼方案 q 而不是最優編碼方案 p 時帶來的額外 bit 數。從這裡我們可以看到,在機器學習中,p 是固定的,交叉熵和 KL 散度之間只相差一個常數可加項,所以從優化的目標來考慮,二者是等價的。而從理論角度而言,考慮 KL 散度仍然是有意義的,KL 散度的一個屬性就是,當 p 和 q 相等的時候,它的值為 0。



KL 散度有很多有用的性質,最重要的是它是非負的。KL 散度為 0 當且僅當 P 和 Q 在離散型變量的情況下是相同的分布,或者在連續型變量的情況下是 『幾乎 處處』 相同的。因為 KL 散度是非負的並且衡量的是兩個分布之間的差異,它經常 被用作分布之間的某種距離。然而,它並不是真的距離因為它不是對稱的:對於某 些 P 和 Q,D_KL(P||Q) 不等於 D_KL(Q||P)。這種非對稱性意味著選擇 D_KL(P||Q) 還是 D_KL(Q||P) 影響很大。



在李弘毅的講解中,KL 散度可以從極大似然估計中推導而出。若給定一個樣本數據的分布 P_data(x) 和生成的數據分布 P_G(x;θ),那麼 GAN 希望能找到一組參數θ使分布 P_g(x;θ) 和 P_data(x) 之間的距離最短,也就是找到一組生成器參數而使得生成器能生成十分逼真的圖片。



現在我們可以從訓練集抽取一組真實圖片來訓練 P_G(x;θ) 分布中的參數θ使其能逼近於真實分布。因此,現在從 P_data(x) 中抽取 m 個真實樣本 {

20180114133253lbshyom3peu.jpg

20180114133253lbshyom3peu.jpg
從香農熵到手推KL散度:一文帶你縱覽機器學習中的信息論
從香農熵到手推KL散度:一文帶你縱覽機器學習中的信息論
從香農熵到手推KL散度:一文帶你縱覽機器學習中的信息論

每日熱門

娛樂熱門

快速回復 返回頂部 返回列表