KL距离(Kullback-Leibler Divergence)
KL距離,是Kullback-Leibler差異(Kullback-Leibler Divergence)的簡稱,也叫做相對熵(Relative Entropy)。它衡量的是相同事件空間里的兩個概率分布的差異情況。并不是一種距離度量方式,其物理意義是:在相同事件空間里,概率分布P(x)對應的每個事件,若用概率分布 Q(x)編碼時,平均每個基本事件(符號)編碼長度增加了多少比特。我們用D(P||Q)表示KL距離,計算公式如下:
(1)D(P∣∣Q)=∑x∈XP(x)logP(x)Q(x)D(P||Q)=\sum_{x\in X} P(x)log\frac{P(x)}{Q(x)} \tag{1} D(P∣∣Q)=x∈X∑?P(x)logQ(x)P(x)?(1)
由公式(1)可以知道:
下面我們舉例來解釋一下:
以下列出了三個概率分布,已知真實事件的概率分布為f,如下表達式(2)它只有兩種狀態(0或1),剩下的兩個分布是對f的擬合,如下表達式(3)和(4),求他們與真實分布f的差異。
(2)f(0)=12,f(1)=12f(0)=\frac{1}{2},f(1)=\frac{1}{2}\tag{2} f(0)=21?,f(1)=21?(2)
(3)f1?(0)=13,f1?(1)=23f^*_1(0)=\frac{1}{3},f^*_1(1)=\frac{2}{3} \tag{3} f1??(0)=31?,f1??(1)=32?(3)
(4)f2?(0)=14,f2?(1)=34f^*_2(0)=\frac{1}{4},f^*_2(1)=\frac{3}{4} \tag{4} f2??(0)=41?,f2??(1)=43?(4)
通過計算我們可以得到:
(5)D(f∣∣f1?)=∑x∈Xf(x)logf(x)f1?(x)=f(0)logf(0)f1?(0)+f(1)logf(1)f1?(1)=12log1213+12log1223=12log98\tag{5} D(f||f^*_1) = \sum_{x\in X} f(x)log\frac{f(x)}{f^*_1(x)} = f(0)log\frac{f(0)}{f^*_1(0)}+ f(1)log\frac{f(1)}{f^*_1(1)}\\ = \frac{1}{2}log\frac{\frac{1}{2}}{\frac{1}{3}}+ \frac{1}{2}log\frac{\frac{1}{2}}{\frac{2}{3}} = \frac{1}{2}log\frac{9}{8} D(f∣∣f1??)=x∈X∑?f(x)logf1??(x)f(x)?=f(0)logf1??(0)f(0)?+f(1)logf1??(1)f(1)?=21?log31?21??+21?log32?21??=21?log89?(5)
(6)D(f∣∣f2?)=∑x∈Xf(x)logf(x)f2?(x)=f(0)logf(0)f2?(0)+f(1)logf(1)f2?(1)=12log1214+12log1234=12log43\tag{6} D(f||f^*_2) = \sum_{x\in X} f(x)log\frac{f(x)}{f^*_2(x)} = f(0)log\frac{f(0)}{f^*_2(0)}+ f(1)log\frac{f(1)}{f^*_2(1)}\\ = \frac{1}{2}log\frac{\frac{1}{2}}{\frac{1}{4}}+ \frac{1}{2}log\frac{\frac{1}{2}}{\frac{3}{4}} = \frac{1}{2}log\frac{4}{3} D(f∣∣f2??)=x∈X∑?f(x)logf2??(x)f(x)?=f(0)logf2??(0)f(0)?+f(1)logf2??(1)f(1)?=21?log41?21??+21?log43?21??=21?log34?(6)
由(5)和(6)的計算我們可以知道,較真實數據分布相比,我們擬合的分布平均編碼長度增加了,同時第(3)種分布較第(4)種分布的KL距離更小,說明第(3)種分布更接近真實分布。
為了證明其不滿足對稱性,我們做如下計算:
(7)D(f2?∣∣f)=∑x∈Xf2?(x)logf2?(x)f(x)=f2?(0)logf2?(0)f(0)+f2?(1)logf2?(1)f(1)=14log1412+34log3412=14log12+34log32=14log2716≠12log43\tag{7} D(f^*_2||f) = \sum_{x\in X} f^*_2(x)log\frac{f^*_2(x)}{f(x)} = f^*_2(0)log\frac{f^*_2(0)}{f(0)}+ f^*_2(1)log\frac{f^*_2(1)}{f(1)}\\ = \frac{1}{4}log\frac{\frac{1}{4}}{\frac{1}{2}}+ \frac{3}{4}log\frac{\frac{3}{4}}{\frac{1}{2}} = \frac{1}{4}log\frac{1}{2}+ \frac{3}{4}log\frac{3}{2} = \frac{1}{4}log\frac{27}{16}≠\frac{1}{2}log\frac{4}{3} D(f2??∣∣f)=x∈X∑?f2??(x)logf(x)f2??(x)?=f2??(0)logf(0)f2??(0)?+f2??(1)logf(1)f2??(1)?=41?log21?41??+43?log21?43??=41?log21?+43?log23?=41?log1627???=21?log34?(7)
由計算(7)可以知道,KL距離不滿足對稱性。
KL距離的幾個用途:
衡量兩個概率分布的差異。
衡量利用概率分布Q 擬合概率分布P 時的能量損耗,也就是說擬合以后丟失了多少的信息。
衡量兩個概率分布的相似度,在運動捕捉里面可以衡量未添加標簽的運動與已添加標簽的運動,進而進行運動的分類。
參考博客:
https://blog.csdn.net/scw1023/article/details/59109922
總結
以上是生活随笔為你收集整理的KL距离(Kullback-Leibler Divergence)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cisco Catalyst 4500
- 下一篇: XSL学习笔记6 XSLT内置模板规则