Entropy(熵)
一個(gè)信息源發(fā)出多種信號,如果某個(gè)信號概率大肤舞,那么它后面出現(xiàn)的機(jī)會也大冲秽,不確定性會小磨确。反之就會機(jī)會小,不確定性就大也榄,即不確定性函數(shù) f 是概率 p 的單調(diào)遞減函數(shù)。
那如果有兩個(gè)信號A、B纷闺,他們產(chǎn)生的不確定性應(yīng)該是各自不確定性的和,即,它們具有可加性份蝴。
那么不確定性 f 的函數(shù)體要滿足幾個(gè)條件:1.單調(diào)遞減 2.具有可加性 3.所以很容易想到對數(shù)函數(shù)犁功,即
![]()
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
p = np.arange(0.4, 0.99, 0.01)
f = [-1 * np.log2(a) for a in p]
plt.plot(p,f)
那么如果考慮這個(gè)信息源的不確定性,即是考慮所有信號產(chǎn)生不確定性的統(tǒng)計(jì)平均值婚夫。 若信息源產(chǎn)生的各信息
的不確定性有 n 種取值:
浸卦,對應(yīng)的概率為
,并且它們彼此獨(dú)立案糙。 信息的不確定性應(yīng)該為
的統(tǒng)計(jì)平均值(期望)(E)限嫌,這就是信息熵(Information Entropy),即
因?yàn)椴淮_定性是抽象出來的,并非實(shí)際值时捌,所以對于對數(shù)的底數(shù)的取值也并無要求怒医,當(dāng)我們以2為底的時(shí)候,單位為bit奢讨;底是e的時(shí)候稚叹,單位是nat。所以這里用2為底拿诸。
同時(shí)扒袖,有
,證明如下(拉格朗日乘子法):
目標(biāo)函數(shù):
因?yàn)?![]()
設(shè)置約束條件 :
設(shè)置拉格朗日函數(shù):
對依次求偏導(dǎo)佳镜,令偏導(dǎo)為0僚稿,有:
聯(lián)立得
![]()
即![]()
則
當(dāng)然最簡單的單符號信號源僅取 0 和 1 兩個(gè)元素,其概率為 P 和 1 - P蟀伸,該信源的熵為下面所示
p = np.arange(0.001, 1, 0.001)
H = [-1 * a * np.log2(a) - (1 - a) * np.log2(1 - a) for a in p]
plt.gca().set_ylim([0,1])
plt.gca().set_xlim([0,1])
plt.plot(p,H)
Joint entropy(聯(lián)合熵)
當(dāng)我們從一維隨機(jī)變量分布推廣到多維隨機(jī)變量分布蚀同,則其聯(lián)合熵(Joint entropy)為:
Conditional entropy(條件熵)
條件熵
表示在已知隨機(jī)變量
的條件下隨機(jī)變量
的不確定性
條件熵定義為在
給定條件下
的條件概率分布的熵對
的數(shù)學(xué)期望:
同時(shí)缅刽,條件熵,證明如下:
即為上式所證