-
1 # 科學聯盟
-
2 # AiMath
用我發表的文章《生成對抗網路(GANs)系列文章之一:KL散度和JS散度》回答這個問題。
1.夏農資訊量只考慮連續型隨機變數的情況。設p為隨機變數X的機率分佈,即p(x)為隨機變數X在X=x處的機率密度函式值,隨機變數X在x處的夏農資訊量定義為:
其中對數以2為底,這時夏農資訊量的單位為位元。夏農資訊量用於刻畫消除隨機變數X在x處的不確定性所需的資訊量的大小。如隨機事件“中國足球進不了世界盃”不需要多少資訊量(比如要不要多觀察幾場球賽的表現)就可以消除不確定性,因此該隨機事件的夏農資訊量就少。再比如“拋一個硬幣出現正面”,要消除它的不確定性,透過簡單計算,需要1位元資訊量,這意味著隨機試驗完成後才能消除不確定性。
剛才定義了隨機變數在一個點處的夏農資訊量,那麼如何衡量隨機變數X(或整個樣本空間)的總體夏農資訊量呢?下面就要引出隨機變數X的資訊熵的概念,或機率分佈p的資訊熵。資訊熵H(p)是夏農資訊量-logp(x)的數學期望,即所有X=x處的夏農資訊量的和,由於每一個x的出現機率不一樣(用機率密度函式值p(x)衡量),需要用p(x)加權求和。因此資訊熵是用於刻畫消除隨機變數X的不確定性所需要的總體資訊量的大小。其數學定義如下:
交叉熵是什麼呢?
假設q(x)是用來擬合p(x)的機率分佈,x屬於p的樣本空間,交叉熵用於衡量q在擬合p的過程中,用於消除不確定性而充分使用的資訊量大小(理解為衡量q為了擬合p所付出的努力,另外注意交叉熵定義裡的“充分使用”和資訊熵定義裡的“所需”的區別,“充分使用”不一定能達到全部,“所需”是指全部)。由於在每一個點X=x處q的夏農資訊量為-logq(x),也就是在點X=x處,q消除不確定性而充分使用的資訊量為-logq(x)(理解為衡量q在X=x處為了擬合p所作的努力),那麼就可以計算出在整個樣本空間上q消除不確定性而充分使用的總體資訊量,即-logq(x)的數學期望,由於每個x的權重為p(x),因此交叉熵H(p,q)為:
2.KL散度兩個機率分佈p和q的KL散度(Kullback–Leibler divergence)也稱為相對熵,用於刻畫機率分佈q擬合機率分佈p的程度。在生成對抗網路裡,p為真實資料的機率分佈,q為隨機噪聲生成資料的機率分佈,對抗的目的是讓q充分擬合p。在q擬合機率分佈p的過程中,如果q完全擬合p,自然有H(p)=H(p,q),如果q擬合p不充分,自然產生資訊損耗H(p)-H(p,q),整個資訊損耗就是p和q的KL散度。因此p和q的KL散度的定義如下:
因此散度D(p||q)為資訊熵H(p)與交叉熵H(p,q)的差,衡量q擬合p的過程中產生的資訊損耗,損耗越少,q擬合p也就越好。很明顯散度是不對稱的,並不是p和q的距離。散度一些基礎性質在這裡不再詳細羅列。
離散型隨機變數的KL散度定義
3.JS散度KL散度的缺點是它不是距離、不對稱。因此引進JS散度的概念。JS散度的定義如下:
由定義可以看出,JS散度是對稱的,可以用於衡量兩種不同分佈之間的差異。JS散度用於生成對抗網路的數學推導上。
回覆列表
題主你好。資訊熵是有公理化定義的。按照資訊理論的描述是這樣的:
資訊量H應當是機率pi(i= l,…, N)的連續函式;
如果所有的機率pi相等,即pi=1/N, 那麼資訊量H應當是N的單調增函式;如果選擇是分為相繼的兩步達到的,那麼原先的一步選擇的資訊量H應等於分步選擇的各個資訊量Hk(k=1,2)值的加權和。基於這些基本假定可以證明資訊熵的表示式必須是題主所給出的形式。一般教科書都對此都有證明。題主應該可以證明這一點。在後面,小編會驗證夏農熵公式是滿足這三條的。
由於資訊熵表示式裡只有對數函式和一次函式的乘積,所以連續性是必然成立的。【有一個約定0log0=0。】
單調性:考慮pi=1/N,那麼夏農熵退化為H=logN,對數的底數一般選為大於1的正實數,所以H必然是N的單調增函式。
現在考慮第三條,不失一般性,我們這裡考慮三個可能的結果,機率依次為p1,p2,p3。現在將事件過程分成兩步,第一步分為兩個結果機率依次為p1,(p2+p3)——第一個結果對應前面的第一個結果,第二個結果分成兩個結果對應第二步的兩個結果,其機率為p2/(p2+p3),p3/(p2+p3)。很明顯,這兩個結果對應之前的後面結果。按照夏農熵,我們可以一步到位地算出資訊量為
H=-p1log(p1)-p2log(p2)-p3log(p3)
根據第三個條件,我們有另一個結果
H"=-p1log(p1)-(p2+p3)log(p2+p3)-p2log(p2)-p3log(p3)+p2log(p2+p3)+p3log(p2+p3)=H
這就是說明,夏農熵是滿足第三個條件的。