天天看點

深度學習(二)損失函數--交叉熵與極大似然估計

文章目錄

  • ​​熵​​
  • ​​相對熵​​
  • ​​交叉熵​​
  • ​​一個多分類的交叉熵問題​​
  • ​​多個二分類的交叉熵問題​​
  • ​​從極大似然看交叉熵​​
  • ​​極大似然估計推導交叉熵​​
  • ​​二分類​​
  • ​​多分類​​
  • ​​梯度​​

線性回歸我們可以用均方誤差(MSE),對于邏輯回歸、神經網絡而言,使用均方誤差作為loss函數會産生很多局部最小值,會影響梯度下降算法尋找最小值,最常用的是

​交叉熵(cross-entropy)​

​。

交叉熵是個啥?首先我們來看下熵

熵可以了解為一個事件的資訊量,比如下面兩個事件:

  • 老婆,這月工資正常發,正常上交
  • 老婆,這月工資就發兩百,沒法上交了

這你老婆一聽,第二個事件資訊量很大啊,可以看出一個事件出乎意料,違反常理,那麼資訊量就很大,總結:​

​事件發生機率越小,資訊量越大​

​​。

資訊量表達式:

表示事件發生機率

當一個事件機率為1時,資訊量為0;當機率接近0時,資訊量無限大。

熵是衡量一個系統(所有事件)的不确定性,是所有事件的期望

以發工資事件為例

事件 可能性 資訊量
正常發放 0.8 0.22
正常發放+獎勵 0.15 1.9
公司倒閉,一分未發 0.05 3

按照公式計算的熵

比較特殊的是二分類問題

​​

​兩種事件發生的可能性和為1,是以另一個事件的資訊量計算可以用目前事件機率表示​

相對熵

在資訊論中,相對熵​

​D(P||Q)​

​​表示當用機率分布Q來拟合真實分布P時,産生的資訊損耗(​

​損耗越小,兩個分布越接近​

​),其中P表示真實分布,Q表示P的拟合分布。機率分布可以對應上面事件各情況的發生機率。機器學習領域的實體意義是用來度量兩個函數的相似程度或者相近程度。

  • 離散随機變量的​

    ​D(P||Q)​

    ​​公式:
  • 連續随機變量的​

    ​D(P||Q)​

    ​​公式:可看出

1.

2.離散公式左部分為真實分布P的熵的負數

交叉熵

相對熵的右半部分為交叉熵,如果不變,KL散度和交叉熵等價,在優化過程中隻需要關注交叉熵。

交叉熵主要包含兩類

  • 單分類是指結果類别隻有一個,判斷一張圖檔上動物類别是貓或狗或人(​

    ​有且僅有一個類别​

    ​​),激活函數采用​

    ​softmax​

    ​​,即多個預測機率和為1.

    *多分類 判斷圖檔是否有貓和狗(​​

    ​類别數0~2​

    ​​),是一個多分類問題,激活函數​

    ​sigmoid​

    ​.

一個多分類的交叉熵問題

假定要判斷一張圖是否有貓或有狗。兩者不同時出現,這是個單分類問題

label 1
pred 0.1 0.8 0.1

​單分類交叉熵公式​

​​

則上述問題交叉熵

對應一個大小為m的batch loos等于

多個二分類的交叉熵問題

一個圖像可能包含多個類别,可能同時包含貓、狗和人。

label 1 1
pred 0.2 0.8 0.1

每一個label可以看作是獨立分布。交叉熵對每一個類别計算,這裡每一個類别可以看作一個二項分布,上面提過可以簡化為

這樣針對一個預測的loss為三個類别損失的和

可以看出,針對于人的預測機率很小,導緻loss很大。

計算一個batch樣本數為m,可能有n個類别的loss

從極大似然看交叉熵

了解一下 ​​極大似然估計​​ 先說結論:極大似然估計與最小化交叉熵損失其實是同一回事

對于離散随機變量,設為X的取值,為對應上述取值的機率。則離散 型随機變量X的機率分布為且機率滿足。離散型随機變量X的機率分布函數為

極大似然估計推導交叉熵

二分類

設二分類模型,則有

其中為樣本的真實類别,對于一次樣本的預測

對于m次觀察結果,則有

寫出似然函數

取對數

則上式取得最大時,似然函數最大。

将上述替換為二分類的預測值,添加負号則為

多分類

對于多項分布,設有n個類别,則有

同樣,對于m個樣本,寫出似然函數

對數似然

上式乘上即為上面我們寫的多分類交叉熵,可以看出當交叉熵最小時,似然函數取最大(有負号)。

關于極大似然估計和交叉熵的關系,查閱了很多資料,發現其實有很多角度去證明兩種等價的。交叉熵損失函數的背後是有着嚴格的數學支撐的。

​​極大似然函數、最小二乘、交叉熵之間的聯系​​​​知乎第二個解答​​

梯度

博文重構,見另一篇文章 ​​深度學習(二)梯度計算​​

繼續閱讀