學習更多機器學習深度學習內容見 望江智庫 yuanxiaosc.github.io/git
自信息:符合分佈 P 的某一事件 x 出現,傳達這條信息所需的最小信息長度爲自信息,表達式爲:github
熵:從分佈 P 中隨機抽選一個事件,傳達這條信息所需的最優平均信息長度爲香農熵,表達式爲:算法
交叉熵:用分佈 P 的最佳信息傳遞方式來傳遞分佈 Q 中隨機抽選的一個事件,所需的平均信息長度爲交叉熵,表達式爲:網絡
KL 散度,用分佈 P 的最佳信息傳遞方式來傳達分佈 Q,比用分佈 Q 本身的最佳信息傳遞方式來傳達分佈 Q,平均多耗費的信息長度爲 KL 散度,表達爲 或
,KL 散度衡量了兩個分佈之間的差別。app
或
涉及兩個分佈:機器學習
由 KL 散度的公式可知,分佈 Q 裏可能性越大的事件,對 影響力越大。若是想讓
儘可能小,就要優先關注分佈 Q 裏的常見事件(假設爲 x),確保它們在分佈 P 裏不是特別罕見。函數
由於一旦事件 x 在分佈 P 裏罕見,意味着在設計分佈 P 的信息傳遞方式時,沒有着重優化傳遞 x 的成本,傳達事件 x 所需的成本,log(1/P(x)) 會特別大。因此,當這一套傳遞方式被用於傳達分佈 Q 的時候,咱們會發現,傳達常見事件須要的成本特別大,總體成本也就特別大。性能
相似地,想讓 特別小,就要優先考慮分佈 P 裏那些常見的事件們了。這時,分佈 Q 裏的常見事件,就再也不是咱們的關注重點。學習
熵是傳輸一個隨機變量狀態值所需的比特位的下界。測試
信息論之父 C. E. Shannon 在 1948 年發表的論文「通訊的數學理論( A Mathematical Theory of Communication )」中, Shannon 指出,任何信息都存在冗餘,冗餘大小與信息中每一個符號(數字、字母或單詞)的出現機率或者說不肯定性有關。 Shannon 借鑑了熱力學的概念,把信息中排除了冗餘後的平均信息量稱爲「信息熵」,並給出了計算信息熵的數學表達式。
一般,一個信源發送出什麼符號是不肯定的,衡量它能夠根據其出現的機率來度量。機率大,出現機會多,不肯定性小;反之就大。 不肯定性函數 f 是機率 P 的單調遞降函數;兩個獨立符號所產生的不肯定性應等於各自不肯定性之和,即f(P1,P2)=f(P1)+ f(P2),這稱爲可加性。同時知足這兩個條件的函數f是對數函數,即 。
在信源中,考慮的不是某一單個符號發生的不肯定性,而是要考慮這個信源全部可能發生狀況的平均不肯定性。若信源符號有n種取值:U1…Ui…Un,對應機率爲:P1…Pi…Pn,且各類符號的出現彼此獨立。這時,信源的平均不肯定性應當爲單個符號不肯定性-logPi的統計平均值(E),可稱爲信息熵,即 ,式中對數通常取2爲底,單位爲比特。
當全部的 值都相等,且值爲
時,熵取得最大值。
。
交叉熵(Cross Entropy)是Shannon信息論中一個重要概念,主要用於度量兩個機率分佈間的差別性信息。語言模型的性能一般用交叉熵和複雜度(perplexity)來衡量。交叉熵的意義是用該模型對文本識別的難度,或者從壓縮的角度來看,每一個詞平均要用幾個位來編碼。複雜度的意義是用該模型表示這一文本平均的分支數,其倒數可視爲每一個詞的平均機率。
在信息論中,交叉熵是表示兩個機率分佈p,q,其中p表示真實分佈,q表示非真實分佈,在相同的一組事件中,其中,用非真實分佈q來表示某個事件發生所須要的平均比特數。從這個定義中,咱們很難理解交叉熵的定義。下面舉個例子來描述一下: 假設如今有一個樣本集中兩個機率分佈p,q,其中p爲真實分佈,q爲非真實分佈。假如,按照真實分佈p來衡量識別一個樣本所須要的編碼長度的指望爲:
可是,若是採用錯誤的分佈q來表示來自真實分佈p的平均編碼長度,則應該是:
此時就將H(p,q)稱之爲交叉熵。交叉熵的計算方式以下:
對於離散變量採用如下的方式計算:
對於連續變量採用如下的方式計算:
注意:$$E_{x\sim p(x)}[f(x)]=\int{f(x)p(x)}dx \approx \dfrac{1}{n}\sum_{i=1}^nf(x_i), x_i \sim p(x) $$
相對熵,又稱KL散度( Kullback–Leibler divergence),是描述兩個機率分佈P和Q差別的一種方法。它是非對稱的,這意味着D(P||Q) ≠ D(Q||P)。特別的,在信息論中,D(P||Q)表示當用機率分佈Q來擬合真實分佈P時,產生的信息損耗,其中P表示真實分佈,Q表示P的擬合分佈。 有人將KL散度稱爲KL距離,但事實上,KL散度並不知足距離的概念,由於:(1)KL散度不是對稱的;(2)KL散度不知足三角不等式。
對熵(relative entropy)又稱爲KL散度(Kullback–Leibler divergence,簡稱KLD),信息散度(information divergence)。 設 和
是兩個取值的兩個離散機率分佈,則
對
的相對熵爲:
對於連續的隨機變量,定義爲:
相對熵是兩個機率分佈 和
差異的非對稱性的度量。
相對熵是用來度量使用基於 的編碼來編碼來自
的樣本平均所需的額外的比特個數。 典型狀況下,
表示數據的真實分佈,
表示數據的理論分佈,模型分佈,或
的近似分佈。 根據shannon的信息論,給定一個字符集的機率分佈,咱們能夠設計一種編碼,使得表示該字符集組成的字符串平均須要的比特數最少。假設這個字符集是
,對
,其出現機率爲
,那麼其最優編碼平均須要的比特數等於這個字符集的熵:
在一樣的字符集上,假設存在另外一個機率分佈 ,若是用機率分佈
的最優編碼(即字符
的編碼長度等於
),來爲符合分佈
的字符編碼,那麼表示這些字符就會比理想狀況多用一些比特數。相對熵就是用來衡量這種狀況下平均每一個字符多用的比特數,所以能夠用來衡量兩個分佈的距離,即:
相對熵(KL散度)有兩個主要的性質,以下: (1)不對稱性 儘管KL散度從直觀上是個度量或距離函數,但它並非一個真正的度量或者距離,由於它不具備對稱性,即 (2)非負性 相對熵的值爲非負值,即 ,證實可用吉布斯不等式。
吉布斯不等式 若
,且
,則有:
,等號當且僅當
相對熵能夠衡量兩個隨機分佈之間的距離,當兩個隨機分佈相同時,它們的相對熵爲零,當兩個隨機分佈的差異增大時,它們的相對熵也會增大。因此相對熵(KL散度)能夠用於比較文本的類似度,先統計出詞的頻率,而後計算相對熵。另外,在多指標系統評估中,指標權重分配 [2] 是一個重點和難點,也經過相對熵能夠處理。
JS散度度量了兩個機率分佈的類似度,基於KL散度的變體,解決了KL散度非對稱的問題。通常地,JS散度是對稱的,其取值是0到1之間。定義以下:
KL散度和JS散度度量的時候有一個問題:若是兩個分配P,Q離得很遠,徹底沒有重疊的時候,那麼KL散度值是沒有意義的,而JS散度值是一個常數。這在學習算法中是比較致命的,這就意味這這一點的梯度爲0。梯度消失了。
[1] ajiao_nihao. 交叉熵[DB/OL]. baike.baidu.com/item/交叉熵/89…, 2018-08-28.
[2] 蒙牛純爺們. 相對熵[DB/OL]. baike.baidu.com/item/相對熵, 2018-08-28.
[3] miaoweijun. 信息熵[DB/OL]. baike.baidu.com/item/信息熵, 2018-08-28.
[4] 維基百科. Jensen–Shannon divergence[DB/OL]. en.wikipedia.org/wiki/Jensen…, 2018-08-28.
[5] CodeTutor. 機率論——Wasserstein距離[DB/OL]. blog.csdn.net/victoriaw/a…, 2018-08-28.
[6] 邱陸陸. 如何理解KL散度的不對稱性[DB/OL]. www.jiqizhixin.com/articles/02…, 2018-11-21.