kl距离 java_信息量、熵、最大熵、联合熵、条件熵、相对熵、互信息。
一直就對(duì)機(jī)器學(xué)習(xí)中各種XX熵的概念比較模糊,現(xiàn)在總結(jié)一下自己的學(xué)習(xí)心得。
信息量
先說(shuō)一下信息量的概念,其實(shí)熵就是信息量的集合。
摘抄個(gè)例子:
英文有26個(gè)字母,假設(shè)每個(gè)字母出現(xiàn)的概率是一樣的,每個(gè)字母的信息量就是 - log2 1/26 = 4.7(這就是個(gè)公式,現(xiàn)在不懂先不用管);常用的漢字有2500個(gè),每個(gè)漢字的信息量是 - log2 1/2500 =11.3。所以在信息量相同的情況下,使用的漢字要比英文字母要少——這其實(shí)就是十六進(jìn)制和二進(jìn)制的區(qū)別,在這個(gè)例子中,apple成了5位26進(jìn)制的數(shù)值,信息量4.7 * 5 = 23.5;而蘋(píng)果成為2位2500進(jìn)制的數(shù)值,信息量11.3 * 2 = 22.6。雖然表示的方式不同,但信息量差不多(這是一個(gè)很巧合的例子,僅用于說(shuō)明信息量的含義,大多數(shù)詞語(yǔ)都不會(huì)這么接近)。
我的理解是,英文中需要用23.5的二進(jìn)制定位一個(gè)單詞,漢語(yǔ)中使用22.6個(gè)二進(jìn)制定位一個(gè)單詞。
信息量是對(duì)應(yīng)一個(gè)事件的熵,若想衡量一個(gè)系統(tǒng)有多少信息量,就要用到熵的概念。
信息量就是不確定度,越是不能判斷未來(lái)有多少可能,信息度就越大。
熵
熵是用來(lái)衡量一個(gè)系統(tǒng)混論程度的物理量,代表一個(gè)系統(tǒng)中蘊(yùn)含多少信息量,信息量越大表明一個(gè)系統(tǒng)不確定性就越大,就存在越多的可能性。
熵(entropy)就用來(lái)衡量整個(gè)系統(tǒng)的總體信息量,其計(jì)算公式如下
至于這個(gè)公式怎么導(dǎo)出的,比較麻煩,這里可以直觀的理解一下。
熵是平均信息量,也可以理解為不確定性。例如進(jìn)行決賽的巴西和南非,假設(shè)根據(jù)經(jīng)驗(yàn)判斷,巴西奪冠的幾率是80%,南非奪冠的幾率是20%,則誰(shuí)能獲得冠軍的信息量就變?yōu)?- 0.8 * log2 0.8- 0.2 * log2 0.2 = 0.257 + 0.464 = 0.721,小于1 bit了。經(jīng)驗(yàn)減少了判斷所需的信息量,消除了不確定性。
而且通過(guò)計(jì)算可以發(fā)現(xiàn),巴西奪冠的幾率越高,計(jì)算出的熵就越小,即越是確定的情況,不確定性越小,信息量越少。如果巴西100%奪冠,那么熵是0,相當(dāng)于沒(méi)有任何信息。當(dāng)兩隊(duì)幾率都是50%最難判斷,所熵達(dá)到最大值1。其實(shí)之前的?- log2 1/2= 1 bit 是簡(jiǎn)化了的計(jì)算過(guò)程,其結(jié)果也是通過(guò)熵的公式來(lái)計(jì)算的?- 0.5 * log2 0.5 - 0.5* log2 0.5 = 1 bit,計(jì)算信息量要綜合考慮每種結(jié)果的可能性。
另一個(gè)會(huì)迷惑的問(wèn)題是熵會(huì)大于1嗎?答案當(dāng)然是肯定的,剛剛計(jì)算的最大值為1bit,是因?yàn)樽罱K的結(jié)果只有兩種情況。在有四支球隊(duì)的時(shí)候,其最大值就是 - 0.25 * log20.25?- 0.25 * log2 0.25?- 0.25 * log2 0.25?- 0.25 * log2 0.25 =2 bit,當(dāng)四支球隊(duì)奪冠概率不等的時(shí)候,熵會(huì)小于2 bit。
我記得有個(gè)公式可以計(jì)算最大熵,在哪里?
用處:決策樹(shù)ID3和C4.5算法中,使用熵作為選擇決策點(diǎn)的標(biāo)準(zhǔn)。
最大熵
就是在系統(tǒng)均衡的時(shí)候,系統(tǒng)的熵最大。
聯(lián)合熵(KL距離,交叉熵)
我的理解,聯(lián)合熵是為了導(dǎo)出條件熵和互信息的一個(gè)定義,
性質(zhì):
大于每個(gè)獨(dú)立的熵
2個(gè)變量的聯(lián)合熵大于或等于這2個(gè)變量中任一個(gè)的獨(dú)立熵。
少于獨(dú)立熵的和
2個(gè)變量的聯(lián)合熵少于或等于2個(gè)變量的獨(dú)立熵之和。這是次可加性的一個(gè)例子。該不等式有且只有在和均為統(tǒng)計(jì)獨(dú)立的時(shí)候相等。
這表明,兩個(gè)變量關(guān)聯(lián)之后不確定性會(huì)增大,但是又由于相互有制約關(guān)系,不確定小于單獨(dú)兩個(gè)變量的不確定度之和。
條件熵
性質(zhì):
就是在事件X的前提下,事件Y的熵,
用處:決策樹(shù)的特征選擇,實(shí)際上使用的信息增益,就是用G(D,A)=H(Y)-H(Y|X)。可以看出在X的條件下,Y的不確定度下降了多少。
相對(duì)熵
也叫交叉熵。
相對(duì)熵越大,兩個(gè)函數(shù)差異越大;反之,相對(duì)熵越小,兩個(gè)函數(shù)差異越小。
用處:在聚類(lèi)算法中,使用相對(duì)熵代替歐幾里得距離,計(jì)算連個(gè)節(jié)點(diǎn)的相關(guān)度,據(jù)說(shuō)效果不錯(cuò)。度量?jī)蓚€(gè)隨機(jī)變量的差異性。
這幅圖就是說(shuō),p分布和q分布共有的部分相對(duì)熵就是正的,非共有部分就是負(fù)的,D(p||q)就是面積的求和。
互信息
了解Y的前提下,消除X的不確定度。(注意和鏈?zhǔn)椒▌t不一樣)
相關(guān)文章:
只是概念性的描述,無(wú)法看出這幾種熵之間的聯(lián)系和用處,所以自己寫(xiě)一篇。
總結(jié)
以上是生活随笔為你收集整理的kl距离 java_信息量、熵、最大熵、联合熵、条件熵、相对熵、互信息。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: jsp mysql utf-8 中文乱码
- 下一篇: java 空间复杂度_时间复杂度和空间复