從理論上理解採用交叉熵作為損失函式的意義

2021-09-29 08:06:32 字數 1672 閱讀 2054

簡要解釋為什麼要使用交叉熵作為損失函式。用簡短的話來解釋就是:我們需要得到最大似然估計,即模型得到的**分布應該與資料的實際分布情況盡可能相近。kl散度(相對熵)是用來衡量兩個概率分布之間的差異。模型需要得到最大似然估計,乘以負log以後就相當於求最小值,此時等價於求最小化kl散度(相對熵)。所以得到kl散度就得到了最大似然。又因為kl散度中包含兩個部分,第一部分是交叉熵,第二部分是資訊熵,即kl=交叉熵−資訊熵。資訊熵是消除不確定性所需資訊量的度量,簡單來說就是真實的概率分布,而這部分是固定的。所以優化kl散度就是近似於優化交叉熵。

即:最小化交叉熵完全等價於極大似然估計;

求最小化交叉熵等價於求kl散度。

首先推導最小化交叉熵完全等價於極大似然估計,具體的證明公式參考:給出簡單的推導:

第一步是最大似然估計,通俗來講就是我們需要從引數集中找出一組引數,使得觀察到的概率值最大。最後一步就是我們的最小化交叉熵,也是一般神經網路的優化目標。

然後推導最小化交叉熵等價於求kl散度。

1.kl散度(相對熵)

相對熵就是kl散度,用來衡量兩個概率分布之間的差異。對於兩個概率

kl 越小,表示p(x)和q(x)的分布越近。

相對熵的特點就是只有當

我們可以將上訴公式拆成兩部分,第一部分就是交叉熵,第二部分就是資訊熵(常數)。

2.交叉熵

3.資訊熵

公式的後半部分就是資訊熵。資訊熵是消除不確定性所需資訊量的度量。

資訊熵   =

簡而言之:資訊熵是資訊量乘以其發生概率。而真實的概率分布是固定的,所以這一部分是乙個常數。

首先了解一下資訊量:資訊量是對資訊的度量,就跟時間的度量是秒一樣,當我們考慮乙個離散的隨機變數 x 的時候,當我們觀察到的這個變數的乙個具體值的時候,我們接收到了多少資訊呢?

多少資訊用資訊量來衡量,我們接受到的資訊量跟具體發生的事件有關。

資訊的大小跟隨機事件的概率有關。越小概率的事情發生了產生的資訊量越大,如湖南發生**了;越大概率的事情發生了產生的資訊量越小,如太陽從東邊公升起來了(肯定發生嘛, 沒什麼資訊量)。這很好理解!

資訊量度量的是乙個具體事件發生了所帶來的資訊,而熵則是在結果出來之前對可能產生的資訊量的期望——考慮該隨機變數的所有可能取值,即所有可能發生事件所帶來的資訊量的期望。

總結:

雖然最小化的是交叉熵,但其實我們實際上的目的是最大似然,但我個人喜歡從kl散度的方向去分析交叉熵。

最大似然有兩個非常好的統計性質:

樣本數量趨於無窮大時,模型收斂的概率會隨著樣本數m的增大而增大。這被稱為一致性。

乙個一致性估計器能夠在固定數目的樣本m下取得更低的泛化誤差(generalization error),或者等價的,需要更少的樣本就可以得到固定水平的泛化誤差。這被稱作統計高效性。

題外話:最大似然估計是頻率派提出的觀點,而貝葉斯派則認為貝葉斯才是真實的分布情況。貝葉斯公式中包含了最大似然函式,並且在最大似然函式後面乘以了乙個先驗概率。

理解交叉熵作為損失函式在神經網路中的作用

通過神經網路解決多分類問題時,最常用的一種方式就是在最後一層設定n個輸出節點,無論在淺層神經網路還是在cnn中都是如此,比如,在alexnet中最後的輸出層有1000個節點 而即便是resnet取消了全連線層,也會在最後有乙個1000個節點的輸出層 一般情況下,最後乙個輸出層的節點個數與分類任務的目...

對機器學習中資訊熵的理解 交叉熵損失函式

剛開始看id3 c4.5 cart等演算法時,不怎麼理解資訊熵,後來看了幾篇部落格時才發現可以拿來解釋我們常用的二分類損失函式。參考 資訊熵 l1 l2正則化與交叉熵 相對熵 機器學習 四 從資訊理論交叉熵的角度看softmax 邏輯回歸損失 資訊熵是拿來消除系統不確定性的,指代的是資訊的含量 資訊...

交叉熵作為損失函式在神經網路中的作用

一般情況下,最後乙個輸出層的節點個數與分類任務的目標數相等。假設最後的節點數為n,那麼對於每乙個樣例,神經網路可以得到乙個n維的陣列作為輸出結果,陣列中每乙個維度會對應乙個類別。在最理想的情況下,如果乙個樣本屬於k,那麼這個類別所對應的的輸出節點的輸出值應該為1,而其他節點的輸出都為0,即 0,0,...