分類問題損失函數的信息論解釋


分類問題的優化過程是一個損失函數最小化的過程,對應的損失函數一般稱為logloss,對於一個多分類問題,其在N個樣本上的logloss損失函數具有以下形式:

其中,yi(n)代表第n個樣本是否屬於第i個類別,取值為0或1,f(x(n))i代表分類模型對於第n個樣本屬於第i個類別的預測概率。將上面的式子稍作簡化就可以得到我們常見的二分類問題下的損失函數,在這里不做展開,我們下面的討論也都對於更為一般的多分類問題展開,而這些討論對於二分類問題顯然也同樣適用。

 

上面的損失函數,很容易從最大似然的角度來做理解,也就是說等號右邊的部分,去掉負號以后,對應着模型的一個估計f在N個樣本上(取了log)的似然函數,而似然函數的最大化就對應着損失函數的最小化。

 

但是這個損失函數還有另外一個名字,叫做cross-entropy loss,從名字可以看出,這是一個信息論相關的名字,我們這篇文章就從信息論的角度,來理解一下分類問題的損失函數。

 

重新認識熵(entropy)

 

說起熵,大家都能知道衡量的是“數據的混亂程度”,但是它具體是如何衡量的呢?讓我們首先來重新認識一下熵。

 

現在是周五的下班高峰期,你站在北京東三環的一座天橋上面,望着一輛輛汽車穿梭而過。你現在肩負着一個任務:你需要告訴我你看到的每一輛車的品牌型號,而我們的通訊工具,是一個二進制的通信管道,里面只能傳輸0或者1,這個管道的收費是1¥/bit。

 

顯然你需要設計一組二進制串,每個串對應一個車型,例如1001對應的是一輛大眾桑塔納。那么你要如何設計這一組二進制串呢?具體來說,你會為豐田凱美瑞和特斯拉ModelS設計同樣長度的串嗎?

 

即使你不精通概率論,你可能也不會這么做,因為你知道大街上跑着的凱美瑞肯定比ModelS多得多,用同樣長度的bit來傳輸肯定是不經濟的。你肯定會為凱美瑞設計一個比較短的串,而為ModelS設計一個長一些的串。你為什么會這么做?本質上來講,你是在利用你對分布的先驗知識,來減少所需的bit數量。那具體我們應該如何利用分布知識來對信息進行編碼呢?

 

幸運的是,香農(Shannon)老先生證明了,如果你知道一個變量的真實分布,那么為了使得你使用的平均bit最少,那么你應該給這個變量的第i個取值分配log1/yi個bit,其中yi是變量的第i個取值的概率。如果我們按照這樣的方式來分配bit,那么我們就可以得到最優的數據傳輸方案,在這個方案下,我們為了傳輸這個分布產生的數據,平均使用的bit數量為:

有沒有很眼熟?沒錯,這就是我們天天掛在嘴邊的熵(entropy)。

 

交叉熵(cross entropy)

 

在上面的例子中,我們利用我們對數據分布y的了解,來設計數據傳輸方案,在這個方案中,數據的真實分布y充當了一個“工具”的角色,這個工具可以讓我們的平均bit長度達到最小。

 

但是在大部分真實場景中,我們往往不知道真實y的分布,但是我們可以通過一些統計的方法得到y的一個估計。如果我們用來設計傳輸方案,也就是說,我們給分布的第i個取值分配log1/yi個bit,結果會是怎樣?

 

套用之前的式子,將log中的y替換成為y^,我們可以得到,如果使用y^作為“工具”來對數據進行編碼傳輸,能夠使用的最小平均bit數為:

 

這個量,就是所謂的交叉熵(cross entropy),代表的就是使用y^來對y進行編碼的話,需要使用的最短平均bit串長度。

 

交叉熵永遠大於或等於熵,因為交叉熵是在用存在錯誤的信息來編碼數據,所以一定會比使用正確的信息要使用更多的bit。只有當y^和y完全相等時,交叉熵才等於熵。

 

用交叉熵衡量分類模型質量

 

現在回到分類問題上來。假設我們通過訓練得到了某模型,我們希望評估這個模型的好壞。從上面信道傳輸的角度來看,這個模型實際上提供了對真實分布y的一個估計y^。我們說要評估這個模型的好壞,實際是是想知道我們給出的估計y^和真實的分布y相差多大,那么我們可以使用交叉熵來度量這個差異。

 

由於交叉熵的物理意義是用y^作為工具來傳輸y平均需要多少個bit,那我們可以計算一下如果用y^來傳輸整個訓練數據集需要多少個bit,首先我們看一下傳輸第n個樣本需要多少個bit。由於估計出來的模型對於第n個樣本屬於第i個類的預測概率是y^i(n),而第n個樣本的真實概率分布是yi(n),所以這一個樣本也可以看做是一個概率分布,那么根據交叉熵的定義:

  那么傳輸整個數據集需要的bit就是:

  進一步變換可得:

  其中 。對比文章最開始的logloss損失函數可知:
 

也就是說,分類問題的損失函數,從信息論的角度來看,等價於訓練出來的模型(分布)與真實模型(分布)之間的交叉熵(兩者相差一個只和樣本數據量有關的倍數N),而這個交叉熵的大小,衡量了訓練模型與真實模型之間的差距,交叉熵越小,兩者越接近,從而說明模型越准確。

 

總結

 

通過上面的講解,我們從信息論的角度重新認識了分類問題的損失函數。信息論和機器學習是緊密相關的兩個學科,從信息論的角度來說,模型優化的本質就是在減少數據中的信息,也就是不確定性。希望這個理解角度,能夠讓大家對分類問題有一個更全面的認識。希望對熵有進一步了解的同學,可以讀一下香農老先生的著名文章《AMathematical Theory of Communication》,有時間的同學更可以研讀一下《Elements ofInformation Theory》這本巨著,一定會讓你的ML內功發生質的提升。

 

本文的靈感和部分內容來自這篇文章:http://rdipietro.github.io/friendly-intro-to-cross-entropy-loss/







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM