何謂 Cross-Entropy (交叉熵)
Entropy 介紹
這原本是用在表達化學平衡態的名詞, 藉以表達原子在空間當中的分布狀況, 如果原子分佈越混亂, 我們則說 Entropy 越高, 也就是資訊量越高, 越多不確定性存在, 因為有更多因素去影響我們原子的分布狀況.
Entropy 引入資訊科技
Shannon 引入 Entropy: Shannon 首次將 Entropy 的觀念引入到電子資訊裡頭, 一樣用以表達資訊量大小, 例如說: 天氣有 sunny 跟 rainy 兩種狀態, 各自發生的機率會是 50%/50%, 這時我們用 1 bits 來表達天氣狀況資訊, 代表兩種狀態出現的機率。
可想而知, 當天氣狀態更多時, 例如 8 種狀態, 我們依樣可以用 bits 去做表達, 這個狀況就是 3 bits 去描述天氣狀況資訊, 這裡使用 log(8) 這項工具來描述。
當機率不再相同時
接下來討論機率不平等時表達 bits, 例如說: sunny 機率為 75%, rainny 機率為 25%, 我們可以說明日 rainny 為 2 bits 怎麼算的呢, 一樣使用 log 這項工具 -log(0.25) => 2bits, 反之, 如果是 sunny 也就是 -log(0.75) => 0.41 bits。那麼全部的天氣資訊是多少 bits 呢?資訊量會是 sunny 機率*sunny 資訊量 + rainny 機率 * rainny 資訊量, 也就是 75%*0.41bits + 25% * 2 bits = 0.81 bits。
Entropy 公式
這裡是 Entropy 公式算法, 感謝 Shannon, 越多資訊量你所擁有, 越大的 entropy 你會取得。
資訊量大代表什麼意思?也就是說越不確定的事情,裡面隱藏的訊息就會越多,舉例來說好了,今天拿出電腦按下開關時,會有這三種可能性發生,第一個是我的電腦可以正常開機的機率為 0.7,電腦無法開機的機率為 0.2,電腦開機就爆炸的機率為 0.1 ,如下表格所示
這個例子就夠直覺了ㄅ,我們可以看到充滿越多不確定性的事件,也就是越多資訊量的事件,會擁有越高的 Entropy,這樣就是 Entropy 在資訊科技當中的精神
開始介紹 Cross-Entropy(交叉熵)
cross-entropy 用意是在觀測預測的機率分佈與實際機率分布的誤差範圍,就拿下圖為例就直覺說明,cross entropy (purple line=area under the blue curve),我們預測的機率分佈為橘色區塊,真實的機率分佈為紅色區塊,藍色的地方就是 cross-entropy 區塊,紫色現為計算出來的值。
依照剛剛的說明,我們預測值與實際值差越多,也就是代表內涵的資訊量愈大,也就是不確定越多,也就是 Cross-entropy 會越高。
反之,如果疊合的區塊越多,就代表不確定性越少,也就是 cross-entropy 會越小,如下圖所示。
公式如下
實際應用說明
今天我們已經使用 CNN 訓練好一個模型用來辨識動物們,裡面有常見的動物,例如貓/狗/狐狸/Red panda/牛/熊/海豚,現在我們拿了張 Red panda 的圖,模型應該要回答上對於 Red panda 的值較高,如下圖所示。
我們如期得到一組 cost function 的值,為了讓 model 學習更好的結果,我們 backpropagation 回去調教整個 Neural network 的 parameter ,然後得到新的一組預測結果,如下
新的 cost function 的值,更小了!
也就代表模型在辨識程度上的能力比上次更好了!
參考資料:
cross-Entropy: https://www.youtube.com/watch?v=tRsSi_sqXjI
A Short Introduction to Entropy, Cross-Entropy and KL-Divergence: https://www.youtube.com/watch?v=ErfnhcEV1O8
Loss Functions Explained: https://www.youtube.com/watch?v=IVVVjBSk9N0
7.9: TensorFlow.js Color Classifier: Softmax and Cross Entropy