Cross-Entropy

Sharon Peng
7 min readJan 20, 2024

--

相信有在做機器學習相關,對於這個名詞肯定熟悉,今天就要為大家來做個介紹!

以下說明出自這篇講解得很清楚的影片,有興趣的夥伴,還請直接觀看,獲得第一手資訊。那我們就話不多說,直接進入重點。

Outline:

  • 什麼是Entropy
  • Entropy的說明
  • Cross Entropy的說明
  • Cross Entropy用在Machine Learning

什麼是Entropy?

最早是由一位數學家克勞德·夏農(Claude Shannon)所提出Entropy的概念,由於以前網路沒有像現在這麼樣的發達,因此資料傳輸是一件很昂貴的事情。因此,他就想說要怎麼樣才能讓「資訊」進行最有效的傳輸

Entropy的提出,就是為了為了

量化「資訊」的不確定性

Entropy的說明

經過剛剛的說明後,接下來會用範例說明什麼是Entropy。
讓我們想像一個情境,下圖是某地區的天氣型態,非常單純只有兩種,晴天或雨天。而時空背景是70年代,資訊只能透過基地台傳送到家裡,這樣才能得到天氣資訊。

假設天氣預報說「明天會下雨」,反正不是晴天就是雨天,因此就可以用電腦的0跟1的概念做比擬,因此資訊量為1 bit。

假設天氣預報說「明天會下雨」,這次基地台將資訊編碼成「Rainy (5 char = 40 bits)」後傳送到你家,但實際上,他只傳了1個bit的資訊。也就是說不管怎麼樣做編碼,實際上的資訊量還是一個bit。

圖源

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

剛剛的範例有點太單純再換一個範例說明:

某地區的天氣,有8種型態,也可以說是一天天氣的不確定性有8種。
那現在基地台傳「資訊量」是_個bits?

答案:3個bits

因為
000:晴天
001:晴天有雲
以此類推。
每一種都可以代表一種天氣型態,因此是3bits。

圖源

以上的說明都是代表每一個天氣型態機率相同的情況下,但現實生活中沒有這麼好的事。

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

再換一個天氣機率不同的狀態:

之前的範例,晴天雨天出現的機率都是50%。現在改成
晴天:75%
雨天:25%
那Entropy要怎麼計算?

  1. 天氣預報:「明天會是雨天」

而我們可以從這個資訊中獲得多少資訊量?

答案:2(資訊量)

計算過程:明天確定會下雨,對於天氣的不確定性:從原本25% →100%確定明天會下雨,也就是提升了4倍。計算方法(Information Gain):

2. 天氣預報:「晴天」

那我們可以從這個資訊中獲得多少資訊量?

答案:0.41(資訊量)

明天確定會是晴天後,對於天氣的不確定性:從原本75% →100%確定明天會放晴,也就是提升了1.33…3 倍。計算方法(Information Gain):

有了以上的資訊後,就可以計算從「基地台」→「家裡」的平均資訊量

  • 75% * 0.41 + 25% * 2 = 0.81 bits

0.81 bits就是基地台每天會送出的資訊量,也可以是這個地區天氣變化程度(不確定程度性低)

上面的範例也順便帶出了entropy的計算公式:

Entropy越低 → 變化程度越低 →不確定程度低(沙漠)
Entropy越高 → 變化程度越高 →不確定程度高(熱帶雨林)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

不知道有沒有讀者看到這邊,可能會覺得很奇怪,為什麼晴天是75%,但是資訊量只有0.41,而雨天的機率是0.25,但是資訊量卻是2。

這邊可以想成說,假設現在生活在埃及,晴天是一件非常正常的事情,下雨才是比較特別的事情。也就是說呢,因為晴天對我來說稀鬆平常,因此「晴天」對我來說沒有什麼資訊量;相反的,埃及幾乎不下雨,所以「雨天」對我來說很特別,資訊量很大。大概可以用這種概念進行想像。

替換成戀愛的話,也可以這麼想,有個朋友沒談過戀愛,結果你這次跟他出去的時候,根本不會想到他會跟你說,「那個我交到男/女朋友了」,這時候,腦袋的資訊量肯定很大。

Cross-Entropy說明

繼續使用天氣預報的範例,先讓我們看下面兩種範例:

  1. 天氣型態有8種型態,晴天使用2 bits去表示,陰天用3 bits去表示等等。傳輸的平均信息量是2.42 bits
圖源

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

2. 將雨天的機率拉高:
傳輸的平均信息量變成4.58 bits,比原本的傳輸量還要多了快一倍!!
多了快一倍代表傳輸的成本變高,而我們的目標是有效率的傳輸

圖源

在剛剛說明的圖片中,其實隱含了某種資訊

  • 2-bit的表示法,直接假設了這個地區的有25%是晴天。如果用另一種觀點來看,用2-bits去表示有種一開始就先做predicted的感覺,先預測這個地方有25%的機率是晴天,而實際的情況則是圖片中1%, …, 10%的那些資訊。(請參考下圖)
圖源

透過這兩個資訊(p跟q),終於得到cross-entropy的公式了。

另外,得到cross-entropy後,息息相關的KL Divergent也呼之欲出。

KL Divergence: cross-entropyEntropy之間損失的訊息量

cross-entropy越低 → 模型預測效果「好」
cross-entropy越高 →模型預測效果「糟」

Cross Entropy用在Machine Learning

有做過類似任務的讀者應該知道,在輸出的時候,通常會使用會經過softmax做輸出(Predicted Distribution),而標準答案(True Distribution)則是也有某種的分佈特性,如果是分類問題,只會有一個是100%的資訊。請參考下圖:

圖源

希望大家都能從這邊有所收穫,我們下次見~~

--

--

Sharon Peng
Sharon Peng

No responses yet