欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于KL散度、JS散度以及交叉熵的對比

 更新時間:2021年05月24日 09:19:16   作者:敲代碼的quant  
這篇文章主要介紹了基于KL散度、JS散度以及交叉熵的對比,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

在看論文《Detecting Regions of Maximal Divergence for Spatio-Temporal Anomaly Detection》時,文中提到了這三種方法來比較時間序列中不同區(qū)域概率分布的差異。

KL散度、JS散度和交叉熵

三者都是用來衡量兩個概率分布之間的差異性的指標。不同之處在于它們的數(shù)學表達。

對于概率分布P(x)和Q(x)

1)KL散度(Kullback–Leibler divergence)

又稱KL距離,相對熵。

當P(x)和Q(x)的相似度越高,KL散度越小。

KL散度主要有兩個性質(zhì):

(1)不對稱性

盡管KL散度從直觀上是個度量或距離函數(shù),但它并不是一個真正的度量或者距離,因為它不具有對稱性,即D(P||Q)!=D(Q||P)。

(2)非負性

相對熵的值是非負值,即D(P||Q)>0。

2)JS散度(Jensen-Shannon divergence)

JS散度也稱JS距離,是KL散度的一種變形。

但是不同于KL主要又兩方面:

(1)值域范圍

JS散度的值域范圍是[0,1],相同則是0,相反為1。相較于KL,對相似度的判別更確切了。

(2)對稱性

即 JS(P||Q)=JS(Q||P),從數(shù)學表達式中就可以看出。

3)交叉熵(Cross Entropy)

在神經(jīng)網(wǎng)絡(luò)中,交叉熵可以作為損失函數(shù),因為它可以衡量P和Q的相似性。

交叉熵和相對熵的關(guān)系:

以上都是基于離散分布的概率,如果是連續(xù)的數(shù)據(jù),則需要對數(shù)據(jù)進行Probability Density Estimate來確定數(shù)據(jù)的概率分布,就不是求和而是通過求積分的形式進行計算了。

補充:信息熵、交叉熵與KL散度

信息量

在信息論與編碼中,信息量,也叫自信息(self-information),是指一個事件所能夠帶來信息的多少。一般地,這個事件發(fā)生的概率越小,其帶來的信息量越大。

從編碼的角度來看,這個事件發(fā)生的概率越大,其編碼長度越小,這個事件發(fā)生的概率越小,其編碼長度就越大。但是編碼長度小也是代價的,比如字母'a'用數(shù)字‘0'來表示時,為了避免歧義,就不能有其他任何以‘0'開頭的編碼了。

因此,信息量定義如下:

在這里插入圖片描述

信息熵

信息熵是指一個概率分布p的平均信息量,代表著隨機變量或系統(tǒng)的不確定性,熵越大,隨機變量或系統(tǒng)的不確定性就越大。從編碼的角度來看,信息熵是表示一個概率分布p需要的平均編碼長度,其可表示為:

在這里插入圖片描述

交叉熵

交叉熵是指在給定真實分布q情況下,采用一個猜測的分布p對其進行編碼的平均編碼長度(或用猜測的分布來編碼真實分布得到的信息量)。

交叉熵可以用來衡量真實數(shù)據(jù)分布于當前分布的相似性,當前分布與真實分布相等時(q=p),交叉熵達到最小值。

其可定義為:

在這里插入圖片描述

因此,在很多機器學習算法中都使用交叉熵作為損失函數(shù),交叉熵越小,當前分布與真實分布越接近。此外,相比于均方誤差,交叉熵具有以下兩個優(yōu)點:

在LR中,如果用均方誤差損失函數(shù),它是一個非凸函數(shù),而使用交叉熵損失函數(shù),它是一個凸函數(shù);

在LR中使用sigmoid激活函數(shù),如果使用均方誤差損失函數(shù),在對其求殘差時,其表達式與激活函數(shù)的導數(shù)有關(guān),而sigmoid(如下圖所示)的導數(shù)在輸入值超出[-5,5]范圍后將非常小,這會帶來梯度消失問題,而使用交叉熵損失函數(shù)則能避免這個問題。

在這里插入圖片描述

KL散度

KL散度又稱相對熵,是衡量兩個分布之間的差異性。從編碼的角度來看,KL散度可表示為采用猜測分布p得到的平均編碼長度與采用真實分布q得到的平均編碼長度多出的bit數(shù),其數(shù)學表達式可定義為:

在這里插入圖片描述

一般地,兩個分布越接近,其KL散度越小,最小為0.它具有兩個特性:

非負性,即KL散度最小值為0,其詳細證明可見[1] ;

非對稱性,即Dq(p)不等于Dp(q) ; KL散度與交叉熵之間的關(guān)系

在這里,再次盜用[1]的圖來形象地表達這兩者之間的關(guān)系:

在這里插入圖片描述

最上方cH(p)為信息熵,表示分布p的平均編碼長度/信息量;

中間的Hq(p)表示用分布q表編碼分布p所含的信息量或編碼長度,簡稱為交叉熵,其中Hq(p)>=H(p)

;最小方的Dq(p)表示的是q對p的KL距離,衡量了分布q和分布p之間的差異性,其中Dq(p)>=0;

從上圖可知,Hq(p) = H(p) + Dq(p)。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python filter()及reduce()函數(shù)使用方法解析

    Python filter()及reduce()函數(shù)使用方法解析

    這篇文章主要介紹了Python filter()及reduce()函數(shù)使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • python使用期物處理并發(fā)教程

    python使用期物處理并發(fā)教程

    這篇文章主要為大家介紹了python使用期物處理并發(fā)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Python Django ORM連表正反操作技巧

    Python Django ORM連表正反操作技巧

    這篇文章主要介紹了Django-ORM-連表正反操作,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-06-06
  • python 實現(xiàn)讀取一個excel多個sheet表并合并的方法

    python 實現(xiàn)讀取一個excel多個sheet表并合并的方法

    今天小編就為大家分享一篇python 實現(xiàn)讀取一個excel多個sheet表并合并的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • pycharm進行Git關(guān)聯(lián)和取消方式

    pycharm進行Git關(guān)聯(lián)和取消方式

    這篇文章主要介紹了pycharm進行Git關(guān)聯(lián)和取消方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python自動發(fā)郵件腳本

    Python自動發(fā)郵件腳本

    本文主要介紹了Python自動發(fā)郵件腳本的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-03-03
  • python numpy矩陣信息說明,shape,size,dtype

    python numpy矩陣信息說明,shape,size,dtype

    這篇文章主要介紹了python numpy矩陣信息說明,shape,size,dtype,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 使用py2exe在Windows下將Python程序轉(zhuǎn)為exe文件

    使用py2exe在Windows下將Python程序轉(zhuǎn)為exe文件

    這篇文章主要介紹了Windows下用py2exe將Python程序轉(zhuǎn)為exe文件的方法,注意py2exe只是負責文件格式的轉(zhuǎn)換,并不能將Python程序編譯為機器碼,要的朋友可以參考下
    2016-03-03
  • python 實現(xiàn)多維數(shù)組轉(zhuǎn)向量

    python 實現(xiàn)多維數(shù)組轉(zhuǎn)向量

    今天小編就為大家分享一篇python 實現(xiàn)多維數(shù)組轉(zhuǎn)向量,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python驗證碼識別的方法

    Python驗證碼識別的方法

    這篇文章主要介紹了Python驗證碼識別的方法,涉及Python針對驗證碼圖片的相關(guān)分析與操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07

最新評論