從夏農資訊量到KL散度
一、夏農資訊量
1、定義
假設我們聽到了兩件事,分別如下:
事件A:巴西隊進入了2018世界盃決賽圈。
事件B:中國隊進入了2018世界盃決賽圈。
僅憑直覺來說,顯而易見事件B的資訊量比事件A的資訊量要大。究其原因,是因為事件A發生的概率很大,事件B發生的概率很小。所以當越不可能的事件發生了,我們獲取到的資訊量就越大。越可能發生的事件發生了,我們獲取到的資訊量就越小。那麼資訊量應該和事件發生的概率有關。
如果是連續型隨機變數的情況,設p為隨機變數X的概率分佈,即p(x)為隨機變數X在X = x處的概率密度函式值,則隨機變數X在X = x處的夏農資訊量定義為:
這時夏農資訊量的單位為位元。由夏農資訊量我們可以知道對於一個已知概率的事件,我們需要多少的資料量能完整地把它表達清楚,不與外界產生歧義。
2、舉例
假設我們有一段資料長下面這樣:aaBaaaVaaaaa
可以算出三個字母出現的概率分別為:
a : 10/12 , B : 1/12 , V : 1/12
夏農資訊量為:a : 0.263 , B : 3.585 , V : 3.585
也就是說如果我們要用位元來表述這幾個字母,分別需要0.263 , 3.585 , 3.585個這樣的位元。當然,由於位元是整數的,因此應該向上取整,變為1,4,4個位元。
這個時候我們就可以按照這個指導對字母進行編碼,比如把a編碼為"0",把B編碼為"1000",V 編碼為"1001",然後用編碼替換掉字母來完成壓縮編碼,資料壓縮結果為:001000000100100000.
二、資訊熵
1、intuition
對於整個系統而言,我們更加關心的是表達系統整體所需要的資訊量。比如我們上面舉例的aaBaaaVaaaaa這段字母,雖然B和V的夏農資訊量比較大,但他們出現的次數明顯要比a少很多,因此我們需要有一個方法來評估整體系統的資訊量。
很自然地想到利用期望,因此評估的方法可以是:“事件夏農資訊量×事件概率”的累加。這也正是資訊熵的概念。
資訊熵衡量了系統的混亂程度,如果k個事件都是等概率發生,那麼混亂程度最大,資訊熵也最大。
三、相對熵(KL散度)
1、直觀解釋
KL 散度是一種衡量兩個分佈之間的匹配程度的方法。
2、一個有趣的例子
假設我們是一組正在廣袤無垠的太空中進行研究的科學家。我們發現了一些太空蠕蟲,這些太空蠕蟲的牙齒數量各不相同。現在我們需要將這些資訊發回地球。但從太空向地球傳送資訊的成本很高,所以我們需要用盡量少的資料表達這些資訊。我們有個好方法:我們不傳送單個數值,而是繪製一張圖表,其中 X 軸表示所觀察到的不同牙齒數量(0,1,2…),Y 軸是看到的太空蠕蟲具有 x 顆牙齒的概率(即具有 x 顆牙齒的蠕蟲數量/蠕蟲總數量)。這樣,我們就將觀察結果轉換成了分佈。
傳送分佈比傳送每隻蠕蟲的資訊更高效。但我們還能進一步壓縮資料大小。我們可以用一個已知的分佈來表示這個分佈(比如均勻分佈、二項分佈、正態分佈)。舉個例子,假如我們用均勻分佈來表示真實分佈,我們只需要傳送兩段資料就能恢復真實資料:均勻概率和蠕蟲數量。但我們怎樣才能知道哪種分佈能更好地解釋真實分佈呢?這就是 KL 散度的用武之地。
假設有 100 只蠕蟲,各種牙齒數的蠕蟲的數量統計結果如下。
0 顆牙齒:2(概率:p_0 = 0.02)
1 顆牙齒:3(概率:p_1 = 0.03)
2 顆牙齒:5(概率:p_2 = 0.05)
3 顆牙齒:14(概率:p_3 = 0.14
4 顆牙齒:16(概率:p_4 = 0.16)
5 顆牙齒:15(概率:p_5 = 0.15)
6 顆牙齒:12(概率:p_6 = 0.12)
7 顆牙齒:8(概率:p_7 = 0.08)
8 顆牙齒:10(概率:p_8 = 0.1)
9 顆牙齒:8(概率:p_9 = 0.08)
10 顆牙齒:7(概率:p_10 = 0.07)
嘗試 1:使用均勻分佈建模
我們首先使用均勻分佈來建模該分佈。均勻分佈只有一個引數:均勻概率;即給定事件發生的概率。
均勻分佈和真實分佈對比:
嘗試 2:使用二項分佈建模
由於二項分佈的均值為np,方差為np(1-p),經計算得到p=0.544.
二項分佈和真實分佈對比:
我們如何定量地確定哪個分佈更好?
經過這些計算之後,我們需要一種衡量每個近似分佈與真實分佈之間匹配程度的方法。這很重要,這樣當我們傳送資訊時,我們才無需擔憂「我是否選擇對了?」畢竟太空蠕蟲關乎我們每個人的生命。
這就是 KL 散度的用武之地。KL 散度在形式上定義如下:
其中 q(x) 是近似分佈,p(x) 是真實分佈。直觀地說,這衡量的是給定任意分佈偏離真實分佈的程度。如果兩個分佈完全匹配,那麼 .
KL 散度越小,真實分佈與近似分佈之間的匹配就越好。
三、再次直觀解釋
讓我們看看 KL 散度各個部分的含義。首先看看
項。如果 q(x_i) 大於 p(x_i) 會怎樣呢?此時這個項的值為負,因為小於 1 的值的對數為負。另一方面,如果 q(x_i) 總是小於 p(x_i),那麼該項的值為正。如果 p(x_i)=q(x_i) 則該項的值為 0。然後,為了使這個值為期望值,你要用 p(x_i) 來給這個對數項加權。也就是說,p(x_i) 有更高概率的匹配區域比低 p(x_i) 概率的匹配區域更加重要。
四、性質
1)不對稱性
儘管KL散度從直觀上是個度量或距離函式,但它並不是一個真正的度量或者距離,因為它不具有對稱性,即D(P||Q)!=D(Q||P)。這是因為KL散度是針對近似分佈偏離真實分佈的程度來說的。
(2)非負性
相對熵的值是非負值,即D(P||Q)>0。
四、交叉熵
1、和KL散度的關係
等式的前一部分恰巧就是p的熵,等式的後一部分,就是交叉熵:
其中,p(x)是真實分佈,q(x)是預測分佈。
在機器學習中,我們需要評估label和predicts之間的差距,使用KL散度剛剛好,即DKL(y||y^)DKL(y||y^),由於KL散度中的前一部分−H(y)−H(y)不變,故在優化過程中,只需要關注交叉熵就可以了。所以一般在機器學習中直接用用交叉熵做loss,評估模型。
2、交叉熵loss舉例
單分類問題:
loss= −(0×log(0.3)+1×log(0.6)+0×log(0.1) = log(0.6)
多分類問題:
這裡不採用softmax(因為概率總和不再是1),而是採用sigmoid把每個概率值放縮到(0,1)即可。
單張樣本的loss即為loss=loss貓+loss蛙+loss鼠
相關文章
- 資訊熵,交叉熵與KL散度熵
- 資訊理論之從熵、驚奇到交叉熵、KL散度和互資訊熵
- kl散度如何計算
- 資訊熵(夏農熵)熵
- KL散度非負性證明
- 夏農熵-互資訊-entropy熵
- 交叉熵、KL 散度 | 定義與相互關係熵
- 關於 KL 散度和變分推斷的 ELBO
- 【機器學習基礎】熵、KL散度、交叉熵機器學習熵
- PPO-KL散度近端策略最佳化玩cartpole遊戲遊戲
- 兩個多維高斯分佈之間的KL散度推導
- SciTech-BigDataAIML-KLD(KL散度):測度比較"兩Distribution(機率分佈)"的Similarity(接近度)AIMILA
- 夏農第二定律
- 克勞德·夏農(資訊理論之父):天才的解決問題之道
- 最終資訊模式:終結夏農極限,語義通訊的另類空間模式
- 奈奎斯特定理與夏農定理
- 從流量到生意,小程式風口泡沫的破裂
- 夏農的“創意思維"在程式設計的應用程式設計
- 從流量到產業,解碼短影片生態繁榮要素產業
- 從大資料看農村人口流動大資料
- 農業農村部:2021全國縣域農業農村資訊化發展水平評價報告
- “三夏”農忙:EasyCVR/EasyDSS無人機推流直播技術助推現代農業走向智慧化VR無人機
- 夏夏的記憶
- 華創證券研究:從流量到留量,抓住年輕人、擁抱視訊化、提升專業化(附下載)
- 能源基金會:中國農村散煤治理綜合報告(2022)
- 新一代資料分析利器:Google Dremel原理分析KLGoREM
- 蹭來的流量到底有用嗎
- 73年前,夏農已經給大模型發展埋下一顆種子大模型
- 從人類電子裝置散熱簡史,再看騰訊黑鯊遊戲手機3的“三明治”液冷散熱遊戲
- 小白速成資深米農從搞懂域名市場“行話”開始
- 當貝葉斯,奧卡姆和夏農一起來定義機器學習機器學習
- 斐訊K3C改散熱
- 夏火冬死?小遊戲如何從“流量”到“留量”遊戲
- 從資訊的角度思考社群
- CPU散熱風扇怎麼選?選購CPU散熱風扇從這幾方面入手
- [計算機網路期末複習_例題]有限頻寬、有熱噪聲通道的最大資料傳輸速率(夏農定理)計算機網路大資料
- vl人民三農專訪百度愛採購總經理謝天,分享百度B2B業務如何農業農村現代化建設。
- 卡位農業大資料大資料