1、交叉熵的定義:
在信息論中,交叉熵是表示兩個概率分布p,q,其中p表示真實分布,q表示非真實分布,在相同的一組事件中,其中,用非真實分布q來表示某個事件發生所需要的平均比特數。從這個定義中,我們很難理解交叉熵的定義。下面舉個例子來描述一下:
假設現在有一個樣本集中兩個概率分布p,q,其中p為真實分布,q為非真實分布。假如,按照真實分布p來衡量識別一個樣本所需要的編碼長度的期望為:
但是,如果采用錯誤的分布q來表示來自真實分布p的平均編碼長度,則應該是:
此時就將H(p,q)稱之為交叉熵。交叉熵的計算方式如下:
對於離散變量采用以下的方式計算:
對於連續變量采用以下的方式計算:
實際上,交叉熵是衡量兩個概率分布p,q之間的相似性。這可以子啊特征工程中,用來衡量變量的重要性。
2、交叉熵的應用:
(1)在特征工程中,可以用來衡量兩個隨機變量之間的相似度
(2)語言模型中(NLP),由於真實的分布p是未知的,在語言模型中,模型是通過訓練集得到的,交叉熵就是衡量這個模型在測試集上的正確率。其計算方式如下:
其中,N是表示的測試集的大小,q(x)表示的是事件x在訓練集中的概率(在nlp中就是關鍵詞在訓練語料中的概率)。
(3)在邏輯回歸中的應用。
由於交叉熵是衡量兩個分布之間的相似度,在邏輯回歸中,首先數據集真實的分布是p,通過邏輯回歸模型預測出來的結果對應的分布是q,此時交叉熵在這里就是衡量預測結果q與真實結果p之間的差異程度,稱之為交叉熵損失函數。具體如下:
假設,對應兩分類的邏輯回歸模型logistic regression來說,他的結果有兩個0或者1,在給定預測向量x,通過logistics regression回歸函數g(z)=1/(1+e-z),則真實結果y=1,對應預測結果y'=g(wx);真實結果y=0,對應預測結果y'=1-g(wx);以上就是通過g(wx)和1-g(wx)來描述原數據集0-1分布。根據交叉熵的定義可知:
上式是針對測試集一個樣本得到的交叉熵。若測試集有N個樣本,對應的交叉熵損失函數表示方式如下: