Cross Entropy 與 Mean Squared Error 的機率解釋

William Huang
Jarvis Toward Intelligence
9 min readSep 28, 2018

人工智慧本質上是個統計學,與統計學離不開的重要概念就是機率。藉由最大似然估計,我們可以從理論上推導出 CE,該推導方式可詳見另一篇文。然而理論上的推導無法給出 CE 更深層的解釋。MSE 是機器學習裡常用的損失函數,一個回歸問題我們可以藉由 MSE 來找出最佳的逼近,但是缺乏之所以選擇最小化誤差平方和的理由。在這篇文中,我試著給出 CE 與 MSE 跟機率有關的解釋。

在理解 cross entropy 之前,先來解釋何謂 entropy。根據維基百科的定義,一離散隨機變數 𝑋 與其機率質量函數 𝑝 的 entropy 定義如下

其中 𝐼 是 𝑋 的 information content。 𝑥ᵢ 所帶有的資訊量可表示如下

因此 𝐻(𝑝) 就相當於平均資訊量。假如一事件 𝑥ᵢ 是一定會發生,則 𝑝(𝑥ᵢ) 等於 1,計算得到資訊量等於 0,換句話說,不需要告知也能知道結果,即使告知了結果,訊息量也是 0。另外,也可以將 𝐻(𝑝) 看成是編碼所需最少的 “成本”,或者說 bits 數。

現在考慮某人預測 𝑋 的機率質量函數為 𝑞,此時某人編碼所需要的成本或 bits 數,就等於

也就是所謂的 cross entropy。事實上我們可以證明在給定一個機率質量函數 𝑝 的情況下,編碼所需要最少的 bits 數正好就是 entropy。換句話說

cross entropy 最小值就是 entropy

證明相當簡單,由於

等號成立僅當 𝑥 = 1,因此我們有

於是只有當 𝑝 = 𝑞 時 cross entropy 達到最小值。

而 cross entropy 與 entropy 的差便是所浪費的 bits 數

這就是所謂的 KL 散度(Kullback–Leibler divergence)。在離散的情況下,KL 散度等於 0 若且唯若 cross entropy 達到極小值,也若且唯若 𝑝 與 𝑞 完全相同,因此可將 KL 散度看成衡量 𝑝 與 𝑞 之間差距的指標。

考慮多分類問題,該問題總共有 𝑛 個類別,若某一樣本屬於第 𝑖 類別時,其機率可以表示如下

此時 𝐻(𝑝) = 0,因此我們就有

於是 cross entropy 便是衡量真實機率分佈 𝑝 與模型預測之機率分佈 𝑞 之間的差距。

當模型用 cross entropy 當作其損失函數時,模型的訓練過程就相當於讓模型的預測愈逼近真實的機率分佈。

我們知道,藉由最小化 MSE 以求得最佳逼近就是最小平方法(ordinary least squares, OLS),主要是用在線性回歸的問題上。假如我們有一個隨機樣本 {(𝑥ᵢ, 𝑦ᵢ), 𝑖=1, …, 𝑛},變數 𝑦ᵢ ∈ ℝ 是應變數(dependent variable),解釋變數(explanatory variable) 𝑥ᵢ 是一個 𝑝×1 的向量,則一個多變量線性回歸模型表示為以下的形式

其中 𝜖ᵢ 是誤差(error)或者是殘差(residual),代表除了 𝑥ᵢ 的影響以外的其他變數的影響。

再來我們使用最小平方法來找出最佳參數 𝛽,亦即最小化目標函數 MSE

以上便是線性迴歸模型的概要。

以上的討論看起來相當的自然,然而一旦問起為什麼是最小化誤差的平方和,而不是最小化誤差的絕對值和,或者是誤差的四次方和等等,此時顯然我們沒有很好的理由要堅持平方和。幸好,貝氏定理可以給我們一些線索。

𝑝(𝐴) 是先驗機率(prior probability),是在考慮 ”觀測數據” 前,能表達 𝐴 不確定性的機率分布,而 𝑝(𝐴|𝐵) 是後驗機率(posterior probability)是在考慮相關證據或機率所得到的條件機率,而 𝑝(𝐵|𝐴) 便是似然函數(likelihood function)。

現在考慮在已有 𝑛 筆資料 𝐷 = {𝑑₁, …, 𝑑𝑛} 的情況下,𝑑ᵢ = (𝑥ᵢ, 𝑦ᵢ),何者模型的假設(hypothesis)ℎ 函數會是最好的呢?由於 ℎ 函數可以來自非常多的函數,顯然最可能解釋資料 𝐷 的 ℎ 函數會是最好的,換句話說,我們要最大化機率 𝑝(ℎ|𝐷)

由貝氏定理可知,可以將 𝑝(ℎ|𝐷) 改寫成以下的形式:

最大化 𝑝(ℎ|𝐷) 就相當於最大化 𝑝(𝐷|ℎ),這是由於我們可以忽略與 ℎ 函數無關的 𝑝(𝐷),並且可以簡單設 ℎ 函數是均勻分布的,也就是說每個能夠解釋資料的 ℎ 函數都是可能的。因此,我們就有

假設資料樣本都是互相獨立的,則我們可以將 𝑝(𝐷|ℎ) 寫成 𝑝(𝑑ᵢ|ℎ) 的連乘積

在給定 ℎ 函數的情況下,𝑝(𝑑ᵢ|ℎ) 是什麼意思呢?由於存在誤差的關係,資料 𝑑ᵢ 有時可能靠近 ℎ 函數或有時可能偏離 ℎ 函數,因此 𝑑ᵢ 服從某種分佈,或者說誤差 𝜖ᵢ 可被視為一種隨機變數,服從某種分佈。

而連結貝氏定理與 MSE 的關鍵就在於假設誤差 𝜖ᵢ 服從常態分佈

如果誤差 𝜖ᵢ 分佈的平均 𝜇 為不為 0,我們可以將該平均 𝜇 吸收進 ℎ 函數裡面,因此我們可以不失一般性假設誤差 𝜖ᵢ 服從平均為 0,變異數為 𝜎² 的常態分佈

變異數 𝜎² 仍未知。這裡我們又用了一個假設,假設所有的誤差 𝜖ᵢ 的變異數都相同。

由於誤差 𝜖ᵢ 服從平均為 0,變異數為 𝜎² 的常態分佈,因此 𝑑ᵢ 服從平均為 ℎ(𝑥ᵢ),變異數為 𝜎² 的常態分佈,於是我們可以得到機率 𝑝(𝑑ᵢ|ℎ)

以圖表圖像化以上的概念之結果如下圖。藍色與紅色點是一群資料,斜長直線是點的回歸直線,回歸直線上有常態分佈曲線,由紅色點相對於曲線的位置可看出該紅色點的機率 𝑝(𝑑ᵢ|ℎ),愈靠近回歸直線其機率愈高。生成圖表的程式碼可至我的 github 查看。

將機率 𝑝(𝑑ᵢ|ℎ) 代回,我們得到

由於自然對數 𝑙𝑛(𝑥) 是嚴格遞增的,最大化 𝑥 就相當於最大化 𝑙𝑛(𝑥),因此可以運用自然對數將連乘積轉換成為加總而不影響最大化

第一項是跟 ℎ 無關的常數項,可以忽略之

注意到最大化負數就相當於最小化正數,並且分數 1/2𝜎² 是個跟 ℎ 無關的常數也不影響最小化,因此最終我們得到了 MSE

我們總結這部分的討論:

1. 藉由假設誤差 𝜖ᵢ 服從常態分佈,最大似然估計就相當於最小化 MSE,與回歸是否是線性無關。

2. 藉由假設資料是互相獨立的,我們可以將總機率寫成樣本機率的連乘積。因此在建立機器學習模型之前,去掉資料之間的共線性是相當重要的一步。

另外,是否有其他的分佈也可以得到最小化 MSE 呢?從數學的角度來看答案是肯定的,常態分佈只是其中一個最常用的一種分佈。我們設誤差 𝜖ᵢ 是服從某一種分佈

最大化似然函數便可得到最佳的 ℎ 函數

一樣我們用了自然對數將連乘積轉換成加總。極大值出現在變分為 0 之處

其中 𝛿 代表對 ℎ 做變分。注意到 OLS 滿足

雖然非必要但我們可以令

這是簡單的一階微分方程,求解得到

歸ㄧ化常數 𝐴 可由歸一條件算得

若積分的上下限是正負無窮,則我們便可得到常態分佈

若積分的上下限是有界的,那麼均勻分布(𝑐 = 0)與指數為正的指數函數便可存在,此時並不是常態分佈。儘管在數學上是合理的,但均勻分佈代表不論誤差多大,機率都相同,且指數為正的指數函數在區間的中間會有最小值,並在區間兩端有最大值,這顯然都不合理。但我們也可以從這裡看到之所以可以使用常態分佈的理由。

--

--