KL散度的理解

讓數據和分佈的吻合度最高,似然函數可以衡量數據和分佈的相似程度,另一個常見的方式就是KL散度(又叫相對熵)

1、熵是什麼呢?

熵是一個描述信息量的量綱。就是描述數據中含有多少信息量,記爲H,

定義如下:

如果我們使用 log2 作爲底,熵可以被理解爲:我們編碼所有信息所需要的最小位數(minimum numbers of bits)

2、能夠量化數據中的信息,就可以來衡量近似數據分佈帶來的損失————KL散度 (不是KL距離)

KL散度是相對熵,也是熵的變形,在原有熵的基礎上,加入近似的概率分佈q,計算他們每個取值對應的對數的差值,

也就是說,KL散度計算的就是: 原數據的分佈與近似分佈概率的對數差的期望值

如果對數爲2,log2,就可以理解爲 一共損失了多少位信息。

 

使用KL散度進行優化

通過不斷改變預估分佈的參數,可以得到不同的KL散度值,當KL散度值在某個範圍內最小的時候就是我們想要的最優參數,也就是優化的過程。

應用:文檔之間的相似度計算,推薦系統之間的應用等等

JS散度(Jensen-Shannon)

JS散度度量了兩個概率分佈的相似度,基於KL散度的變體,解決了KL散度非對稱的問題。一般地,JS散度是對稱的,其取值是0到1之間。定義如下:

KL散度和JS散度度量的時候有一個問題:

如果兩個分配P,Q離得很遠,完全沒有重疊的時候,那麼KL散度值是沒有意義的,而JS散度值是一個常數。這在學習算法中是比較致命的,這就意味這這一點的梯度爲0。梯度消失了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章