javascript
JS散度
前面我們介紹了相對熵(KL散度)的概念,知道了它可以用來表示兩個概率分布之間的差異,但有個不大好的地方是它并不是對稱的,因此有時用它來訓練神經(jīng)網(wǎng)絡會有順序不同造成不一樣的訓練結果的情況(其實個人覺得也就是訓練時間差異罷了,也沒那么嚴重)。為了克服這個問題,有人就提出了一個新的衡量公式,叫做JSJSJS散度,式子如下:
JS(P1∥P2)=12KL(P1∥P1+P22)+12KL(P2∥P1+P22)J S \left( P _ { 1 } \| P _ { 2 } \right) = \frac { 1 } { 2 } K L \left( P _ { 1 } \| \frac { P _ { 1 } + P _ { 2 } } { 2 } \right) + \frac { 1 } { 2 } K L \left( P _ { 2 } \| \frac { P _ { 1 } + P _ { 2 } } { 2 } \right) JS(P1?∥P2?)=21?KL(P1?∥2P1?+P2??)+21?KL(P2?∥2P1?+P2??)
如果有一點數(shù)學功底的人可以輕易看出這個公式對于P1P _ { 1 }P1?和P2P _ { 2 }P2?是對稱的,而且因為是兩個KLKLKL的疊加,由相對熵的文章我們知道KLKLKL的值一定是大于等于0的,因此這個公式也一定大于等于0。
現(xiàn)在只剩下一個關鍵問題,就是什么時候等于0的問題了。同樣參考相對熵的文章我們知道當兩個分布相同的時候等于0,那么換到這里,也就是:
P1=P1+P22且P2=P1+P22P _ { 1 }=\frac { P _ { 1 } + P _ { 2 } }{ 2 }\ \qquad 且 \qquad P _ { 2 }=\frac { P _ { 1 } + P _ { 2 } } { 2 } P1?=2P1?+P2???且P2?=2P1?+P2??
的時候。可以輕易看出來,JSJSJS散度等于0的時候跟KLKLKL散度一樣,就是P1P _ { 1 }P1?和P2P _ { 2 }P2?完全一樣的時候。那么推到這里,用JSJSJS散度來表達兩個概率分布的差異就問題不大了。
其實本人在看相對熵和JSJSJS散度的時候一直有疑問,就是當兩個概率分布不一樣的時候,它們的值是不是會隨著距離的變大而變大,也就是說這兩個公式跟概率分布的距離到底是不是一個單調(diào)的關系,但我沒有看到別人在說這件事情。我自己想了半天之后得出的結論是不一定,可能隨著概率分布的表達式不一樣而有所變化。
當然因為沒有人講這件事我至今也不知道這樣想是不是對的,因此有老哥想明白了麻煩留個言告訴我。
總結
- 上一篇: AutoCAD自定义填充图样详细教程
- 下一篇: Oracle sql中的正则表达式