交叉熵理解
1、熵
熵在信息論中是表現一個系統的混亂程度,熵越大代表系統混亂程度越高。
熵的單位是比特,所以在使用log的時候是以2位底的,舉例:
當向計算機輸入一個16位數據的時候,計算機本身可以取的值是2的16次方個 ,在輸入之后這個值就確定下來了,那么現在就是從原來的1/2^16變成了1,那么這個的信息量就是16比特。
在了解熵之前先要了解信息量,信息量是用來描述一個事件從原來的不確定變為確定,難度有多大。信息量越大,說明難度就越高。
熵的評定和信息量相似,不同的是信息量針對的是一個事件,而熵針對的是一個系統。
關于熵公式的推導可以參考文末視頻鏈接15:35開始。
信息量的計算:
信息量采用log表示,使用log其實本身是沒有具體意義的,因為整個的推導都是通過定義開始的,定義本身是可以沒有意義的,他的意義是在定義之后才被賦予的,關鍵在于在定義之后整體體系是否可以完成自洽。
熵的公式:
把系統中所有事件的信息量求出來再和對應事件的概率相乘得到的就是熵。
2、相對熵
:圖片引自B站視頻,文末會附帶鏈接。
相對熵又稱KL散度,上圖中的Q和P分別代表兩個系統,fQ(qi)代表Q系統某一事件的信息量,fP(pi)代表P系統對應事件的信息量。(P||Q)代表以P為基準,考慮Q與P之間相差多少,
公式解釋如下:
- DKL公式第二行:對于某一個事件,在Q系統中的信息量與對應在P系統中的信息量做差值,最后再做整體的期望(即求整體的平均值)
直觀理解:如果Q想要達到和P一樣的信息量的話,他們之前還差多少信息量 - DKL公式第四行(最后一行):∑pi*(-log2pi)是代表P系統的信息熵,因為是以P系統為基準的,所以此值是恒定的。前面的∑pi*(-log2qi)也就是P的交叉熵H(P,Q)。因為后面的值是不變的,所以DKL的結果由前面P的交叉熵H(P,Q)決定。
當然在DKL=0的時候,Q和P之間是最接近的,無論是交叉熵H(P,Q)還是后面恒定的信息熵都是一個大于0的數。
根據吉布斯不等式可以獲知,DKL的值永遠大于等于0.這個定義也就規定了無論如何調整交叉熵一定比后面的信息熵大。所以交叉熵越小,那么兩個概率模型就越相近。
參考視頻:“交叉熵”如何做損失函數?
總結
- 上一篇: Java 常用限流算法解析
- 下一篇: python笔试题奥特曼打怪兽_2019