交叉熵--損失函數


【簡介】

  交叉熵(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)= 

  

  

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

   

 


免責聲明!

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



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