信息量、熵、相對熵、交叉熵

交叉熵(Cross Entropy)

 

本文介紹交叉熵的概念,涉及到信息量、熵、相對熵、交叉熵;

信息量

信息量是用來衡量一個事件發生的不確定性,一個事件發生的概率越大,不確定性越小,則信息攜帶的信息量則越小;

假設𝑋X是一個離散隨機變量,其取值爲集合𝑋=𝑥0,𝑥1,,𝑥𝑛X=x0,x1,⋯,xn,其概率分佈函數爲:

 

𝑝(𝑥)=𝑃𝑟(𝑋=𝑥),𝑥𝑋p(x)=Pr(X=x),x∈X

 

則定義事件𝑋=𝑥0X=x0的信息量爲:

 

𝐼(𝑥0)=𝑙𝑜𝑔(𝑝(𝑥0))I(x0)=−log(p(x0))

 

𝑝(𝑥0)=1p(x0)=1時,該事件必定發生,其信息量就爲0;

下面詳細說明爲什麼選擇𝑙𝑜𝑔log用於計算信息量:
單調遞減:

首先,事件的概率越大,不確定性越小,則攜帶的信息量越小;所以是一個單調遞減的函數;

隨機變量獨立性:

假設𝑥1,𝑥2x1,x2是兩個獨立的隨機變量,則其聯合概率有:

 

𝑝(𝑥1,𝑥2)=𝑝(𝑥1)𝑝(𝑥2)p(x1,x2)=p(x1)⋅p(x2)

 

那麼,對於兩個獨立的事件𝑋=𝑥1X=x1𝑋=𝑥2X=x2,其聯合後的信息量就有:

 

𝐼(𝑥1,𝑥2)=𝐼(𝑥1)+𝐼(𝑥2)I(x1,x2)=I(x1)+I(x2)

 

因此,考慮隨機變量的獨立性,概率的乘法能轉換到信息量的加法,可以使用𝑙𝑜𝑔log方法,同時爲了滿足單調遞減的性質,再取負;

就有了:

 

𝐼(𝑥)=𝑙𝑜𝑔(𝑝(𝑥))I(x)=−log(p(x))

 

其中𝑝(𝑥)p(x)的取值爲[0,1][0,1]

如下圖所示,橫軸表示事件發生的概率,縱軸表示其攜帶的信息量;

熵是用來衡量一個系統的混亂程度,代表系統中信息量的總和;

熵值越大,則表明這個系統越不穩定;

信息量是衡量一個事件的不確定性,而熵是衡量一個系統(所有事件)的不確定性;

熵的計算公式如下:

 

𝐻(𝑥)=𝑖=1𝑛𝑝(𝑥𝑖)𝑙𝑜𝑔(𝑝(𝑥1))H(x)=−∑i=1np(xi)log(p(x1))

 

其中,𝑝(𝑥𝑖)p(xi)表示事件𝑋=𝑥𝑖X=xi發生的概率,𝑙𝑜𝑔(𝑝(𝑥𝑖))−log(p(xi))表示事件𝑋=𝑥𝑖X=xi的信息量;

可以看出,熵是信息量的期望值,是一個隨機變量不確定性的度量;

熵值越大,隨機變量的取值就越難確定,系統就越不穩定;

熵值越低,隨機變量的取值就越容易確定,系統就越穩定;

相對熵(Relative Entropy)

相對熵也稱爲KL散度(Kullback-Leibler divergence),表示同一個隨機變量的兩個不同分佈間的距離;

假設,𝑝(𝑥),𝑞(𝑥)p(x),q(x)分別是 離散隨機變量𝑋X的兩個概率分佈,則𝑝p𝑞q的相對熵是:

 

𝐷𝐾𝐿(𝑝||𝑞)=𝑖𝑝(𝑥𝑖)𝑙𝑜𝑔(𝑝(𝑥𝑖)𝑞(𝑥𝑖))DKL(p||q)=∑ip(xi)log(p(xi)q(xi))

 

具有以下性質:

  • 如果𝑝(𝑥)p(x)𝑞(𝑥)q(x)的分佈相同,則相對熵爲0;
  • 相對熵不具有對稱性,即𝐷𝐾𝐿(𝑝||𝑞)𝐷𝐾𝐿(𝑞||𝑝)DKL(p||q)≠DKL(q||p),即KL散度也不是一種度量方式;
  • 𝐷𝐾𝐿(𝑝||𝑞)0DKL(p||q)≥0

總的來說,相對熵是用來衡量同一個隨機變量的兩個不同分佈之間的距離;在實際應用中,𝑝(𝑥)p(x)表示目標分佈,𝑞(𝑥)q(x)表示預測得到的分佈,任務的目標就是讓兩個分佈儘可能的相似,這就需要最小化KL散度;

交叉熵(Cross Entropy)

對相對熵的計算公式做一步拆分:

 

𝐷𝐾𝐿(𝑝||𝑞)=𝑖𝑝(𝑥𝑖)log(𝑝(𝑥𝑖)𝑞(𝑥𝑖))=𝑖𝑝(𝑥𝑖)log𝑝(𝑥𝑖)𝑖𝑝(𝑥𝑖)log𝑞(𝑥𝑖)(1)(2)(1)DKL(p||q)=∑ip(xi)log⁡(p(xi)q(xi))(2)=∑ip(xi)log⁡p(xi)−∑ip(xi)log⁡q(xi)

 

在機器學習中,假設𝑝p是目標分佈,則分佈𝑝p的熵就是一個固定的值,其計算方式就是上式的第一項;

那麼,上式的第二項,即

 

𝐻(𝑝,𝑞)=𝑖𝑝(𝑥𝑖)log𝑞(𝑥𝑖)H(p,q)=−∑ip(xi)log⁡q(xi)

 

稱爲交叉熵;

𝑝(𝑥)p(x)是目標分佈,我們的目標就是讓訓練得到的分佈𝑞(𝑥)q(x)儘可能地接近𝑝(𝑥)p(x),這時候就可以最小化𝐷𝐾𝐿(𝑝||𝑞)DKL(p||q),等價於最小化交叉熵𝐻(𝑝,𝑞)H(p,q)

因此,交叉熵衡量的是兩個部分之間的差異,所以在用於分類任務的深度卷積神經網絡中,常在最後一層中加上Softmax層;

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