信息熵和交叉熵的细节理解
先陳述我這里說了半天的信息熵是個什么東西?
這里說的信息熵是什么東西?
信息熵主要是應用在集成學習作為評價指標,判定我們某次的分類是不是效果足夠好。
這里說的交叉熵是什么東西?
雖然之前還有其他應用,但是這個東西目前最主要的應用還是深度學習當中作為損失函數來支撐反向傳播的優化。
1.什么是信息量?從信號量理解信息熵
先看百度百科怎么說:信息量是指信息多少的量度。1928年R.V.L.哈特萊首先提出信息定量化的初步設想,他將消息數的對數定義為信息量。若信源有m種消息,且每個消息是以相等可能產生的,則該信源的信息量可表示為I=log2m。
自己理解一下這個事情:這個東西的就是反映一個信號具有多少信息的問題。
那么接下來我們要思考我們平時生活當中的一句話到底怎么對應一個信號個數,例如我們中國乒乓男團獲得了冠軍,這個獲得冠軍到底包含了多少信息?(也就是其信息量應該定義為多少?)
剛好看《數學之美》中有一個非常直觀的例子:
假設我們沒有看世界杯的比賽,但是想知道哪支球隊會是冠軍,只能去問已經看過比賽的觀眾,但是我們只能猜測某支球隊是或不是冠軍,然后觀眾用對或不對來回答,我們想要猜測次數盡可能少,所用的方法就是二分法。假如有 16 支球隊,分別編號,先問是否在 1-8 之間,如果是就繼續問是否在 1-4 之間,以此類推,直到最后判斷出冠軍球隊是哪只。如果球隊數量是 16,我們需要問 4 次來得到最后的答案。那么世界冠軍這條消息的信息量就是 4。在計算機中,這條信息的信息量就是 4 比特,如果一共是 32 支球隊參賽,那么世界冠軍的信息量就是 5 比特,可以看到信息量跟可能情況的對數 log (以 2 為底)有關(這里大概有點知道為什么求熵的公式里會有一個 log 了)。
這里我們細致的理解一下為什么選擇log2?這個問題其實可以轉化成了:為什么使用二分法?這個問題。為什么使用二分法?其實就很好回答了,這是我們最有效的直接獲得最終結果的方法。
其他的方法:
- 1.平均效果不理想,例如我們直接詢問是不是3隊獲得了冠軍,可能直接就猜中了,也有可能我們猜了半天都是巧妙的躲避了正確答案。
- 2.需要特殊的前提,例如由于某次比賽的分組具有特殊性,對4同余的隊伍不可能同時獲得冠軍,這里我們可能就有更好的方式了,但是這就引入了特殊的條件。
但是以往經驗表示,如果世界杯有 32 支球隊參賽,有些球隊實力很強,拿到冠軍的可能性更大,而有些隊伍拿冠軍的概率就很小。我們在之前用二分法計算的時候其實是看做每個球隊奪冠的概率都相等,因此我們從最可能奪冠的幾支球隊中猜測冠軍球隊,實際需要的信息量是小于我們之前方法計算的信息量的。
這里我們就得思考:某個球隊的概率發生變化的時候,這個球隊奪冠的信息量是怎么變化的?
這里例如某個球隊奪冠的概率為八分之一,其實就相當于在八種可能性當中選擇了這個隊伍的可能性,所以我們得到這個隊伍贏得冠軍的局部信息量其實就是log2(1/p)(其中的p是這個隊伍獲得冠軍的概率)所以想要得到總體的信息量均值,其實就是把每個局部的信息量的值,都加上相應的權重就完事了。
將負號提出來某個隊伍奪得冠軍的信號量就是下面的表達式了:
這樣也就出現了 信息量的均值是(Σp[log2(1/p)])/n
其實這就是我們平常獲得所說的信息熵,只是我們信息熵將這個1/p提取了一個負號出來,也就得到了下面的內容:
然后這里我們理解一下。為什么這個東西越接近0越說明這是同一個類別,信息量(獲得這些種類的需要的信息的個數)為0的時候我們其實獲得的分類數就是2的0次方個分類,也就是1個分類。
也就是說信息熵越接近0那么這里的內容的種類也就越統一,也就是我們集成學習的分類效果越好,這也是集成學習的一個依據。
2.想要順利理解交叉熵我們得從KL散度開始理解
KL散度
如果對于同一個隨機變量X有兩個單獨的概率分布P ( x ) 和Q ( x ) ,則我們可以使用KL散度來衡量這兩個概率分布之間的差異。
這個是Kullback-Leible提出來的,我并不能理解為什么這個可以反映兩個分布的相似程度,我只能籠統的理解一下這個東西是:每個概率計算相似度,計算某個位置的相似度的方式是:
大約我們理解其為,比例為1,也就是完全相同的時候恰好為0也就是最像的時候就是0,所以可以大致表示一個兩者的相似度。
總結
以上是生活随笔為你收集整理的信息熵和交叉熵的细节理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是pretext tasks?
- 下一篇: 暴力解决:InvocationExcep