交叉熵--損失函數

交叉熵--損失函數

【簡介】

  交叉熵(Cross Entropy)是Shannon信息論中一個重要概念,主要用於度量兩個概率分佈間的差異性信息。語言模型的性能通常用交叉熵和複雜度(perplexity)來衡量。交叉熵的意義是用該模型對文本識別的難度,或者從壓縮的角度來看,每個詞平均要用幾個位來編碼。複雜度的意義是用該模型表示這一文本平均的分支數,其倒數可視爲每個詞的平均概率。平滑是指對沒觀察到的N元組合賦予一個概率值,以保證詞序列總能通過語言模型得到一個概率值。通常使用的平滑技術有圖靈估計、刪除插值平滑、Katz平滑和Kneser-Ney平滑。

  將交叉熵引入計算語言學消岐領域,採用語句的真實語義作爲交叉熵的訓練集的先驗信息,將機器翻譯的語義作爲測試集後驗信息。計算兩者的交叉熵,並以交叉熵指導對歧義的辨識和消除。實例表明,該方法簡潔有效.易於計算機自適應實現。交叉熵不失爲計算語言學消岐的一種較爲有效的工具。

  交叉熵可在神經網絡(機器學習)中作爲損失函數,p表示真實標記的分佈,q則爲訓練後的模型的預測標記分佈,交叉熵損失函數可以衡量p與q的相似性。交叉熵作爲損失函數還有一個好處是使用sigmoid函數在梯度下降時能避免均方誤差損失函數學習速率降低的問題,因爲學習速率可以被輸出的誤差所控制。(來自百度百科)

【預備知識】

  1、信息量;

  2、信息熵;

  3、相對熵。

【信息量】

  所謂信息量是指從N個相等可能事件中選出一個事件所需要的信息度量或含量,也就是在辯識N個事件中特定的一個事件的過程中所需要提問"是或否"的最少次數。在數學上,所傳輸的消息是其出現概率的單調下降函數。如從64個數中選定某一個數,提問:“是否大於32?”,則不論回答是與否,都消去了半數的可能事件,如此下去,只要問6次這類問題,就可以從64個數中選定一個數。我們可以用二進制的6個位來記錄這一過程,就可以得到這條信息。

  假設X是一個離散型隨機變量,其取值集合爲X,概率分佈函數爲p(x)=Pr(X=x),x∈X,我們定義事件X=x0的信息量爲: I(x0)=−log(p(x0)),可以理解爲,一個事件發生的概率越大,則它所攜帶的信息量就越小,而當p(x0)=1時,熵將等於0,也就是說該事件的發生不會導致任何信息量的增加。舉個例子,小明平時不愛學習,考試經常不及格,而小王是個勤奮學習的好學生,經常得滿分,所以我們可以做如下假設: 

  事件A:小明考試及格,對應的概率P(xA)=0.1,信息量爲I(xA)=−log(0.1)=3.3219 

  事件B:小王考試及格,對應的概率P(xB)=0.999,信息量爲I(xB)=−log(0.999)=0.0014 

  可以看出,結果非常符合直觀:小明及格的可能性很低(十次考試只有一次及格),因此如果某次考試及格了(大家都會說:XXX竟然及格了!),必然會引入較大的信息量,對應的I值也較高。而對於小王而言,考試及格是大概率事件,在事件B發生前,大家普遍認爲事件B的發生幾乎是確定的,因此當某次考試小王及格這個事件發生時並不會引入太多的信息量,相應的I值也非常的低。

【信息熵】

  信息理論的鼻祖之一Claude E. Shannon把信息(熵)定義爲離散隨機事件的出現概率。所謂信息熵,是一個數學上頗爲抽象的概念,在這裏不妨把信息熵理解成某種特定信息的出現概率。一般而言,當一種信息出現概率更高的時候,表明它被傳播得更廣泛,或者說,被引用的程度更高。我們可以認爲,從信息傳播的角度來看,信息熵可以表示信息的價值。爲了求得信息的價值,我們通過求信息期望的方式,來求得信息熵。公式如下:H(x) = E[I(xi)] = E[ log(1/p(xi)) ] = -∑p(xi)log(p(xi)) 其中,x表示隨機變量,與之相對應的是所有可能輸出的集合,定義爲符號集,隨機變量的輸出用x表示。P(x)表示輸出概率函數。變量的不確定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。爲了保證有效性,這裏約定當p(x)→0時,有p(x)logp(x)→0 。

當X爲0-1分佈時,熵與概率p的關係如下圖:

 

  

  可以看出,當兩種取值的可能性相等時,不確定度最大(此時沒有任何先驗知識),這個結論可以推廣到多種取值的情況。在圖中也可以看出,當p=0或1時,熵爲0,即此時X完全確定。 熵的單位隨着公式中log運算的底數而變化,當底數爲2時,單位爲“比特”(bit),底數爲e時,單位爲“奈特”。

【相對熵】

  相對熵,又稱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散度不滿足三角不等式。

  設P(X)和Q(X)是X取值的兩個離散概率分佈,則P對Q的的相對熵爲:

  顯然,當p=q 時,兩者之間的相對熵DKL(p||q)=0 。上式最後的Hp(q)表示在p分佈下,使用q進行編碼需要的bit數,而H(p)表示對真實分佈p所需要的最小編碼bit數。基於此,相對熵的意義就很明確了:DKL(p||q)表示在真實分佈爲p的前提下,使用q分佈進行編碼相對於使用真實分佈p進行編碼(即最優編碼)所多出來的bit數。並且爲了保證連續性,做如下約定: 

【交叉熵】

  在信息論中,交叉熵是表示兩個概率分佈p,q,其中p表示真實分佈,q表示非真實分佈,在相同的一組事件中,其中,用非真實分佈q來表示某個事件發生所需要的平均比特數。從這個定義中,我們很難理解交叉熵的定義。

  假設現在有一個樣本集中兩個概率分佈p,q,其中p爲真實分佈,q爲非真實分佈。假如,按照真實分佈p來衡量識別一個樣本所需要的編碼長度的期望爲:

  H(p)=

  但是,如果非真實分佈q來表示來自真實分佈p的平均編碼長度,則應該是:

     H(p,q)=

  此時就將H(p,q)稱之爲交叉熵。交叉熵的計算方式如下:

    CEH(p,q)= 

  

  

  對所有訓練樣本取均值得: 

   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章