###### tags: `ML數學分部` {%hackmd @kk6333/theme-sty1 %} # JS Divergence 在之前 "[KL Divergence & CrossEntrophy 的真面目](https://hackmd.io/PjUEbxbeSA2qNbRupRzYMw?view)"中提過了 KL Divergence 也有講到 KL Divergence 有**非對稱**的性質, 也就是 $D_{KL}(P||Q) \neq D_{KL}(Q||P)$ 這時就出現了 JS Divergence 來解決此非對稱性 <br> ## 1. JS Divergence 推導 JS Divergence 的想法非常簡單,如果 $(P||Q)$ 的差距和 $(Q||P)$ 差距不同 那我們找出一個平均點,個別計算與 $(P||Q)$、$(Q||P)$ 的距離相加不就對稱了 > 設 M 為 $(P||Q)$、$(Q||P)$ 的平均分佈 > > $M=\frac{1}{2}(P+Q)$ > > 並分別計算 M 與 P、Q 的差距 ( KL Divergence ) 做平均 > 就為 JS Divergence > > $JSD(P||Q)=\frac{1}{2}D_{KL}(P||M)+\frac{1}{2}D_{KL}(Q||M)$ > > 且 $JSD(P||Q)=JSD(Q||P)$ 所以利用 JS Divergence 解決了非對稱的問題 :::warning $JSD(P||Q)=JSD(Q||P)=\frac{1}{2}D_{KL}(P||M)+\frac{1}{2}D_{KL}(Q||M)$ ::: --- <br> ## 2. JS Divergence 的問題 JS Divergence 常被用在 GAN 計算生成的 Data 與實際 Data 間的差距 但卻有一大問題,這問題也讓 GAN 很難 Train 成功 => 就是在 P、Q 兩分佈沒有重疊時,JS Divergence 恆為 log2 導致無法測量出兩 Distribution 間的差距 **推導** > $JSD(P||Q)=\frac{1}{2}D_{KL}(P||M)+\frac{1}{2}D_{KL}(Q||M)$ > > 將 M 帶入 KL Divergence > > $JSD(P||Q)=\frac{1}{2}\sum{P(x)log(\frac{P(x)}{\frac{1}{2}(P+Q)})}+\frac{1}{2}\sum{Q(x)log(\frac{Q(x)}{\frac{1}{2}(P+Q)})}$ > > 將 log 中分母的 $\frac{1}{2}$ 取出 ( 先變分母,在分離 log ) > > $JSD(P||Q)=\frac{1}{2}\sum{P(x)log(\frac{P(x)}{P+Q})}+\frac{1}{2}\sum{Q(x)log(\frac{Q(x)}{P+Q})}+log{2}$ > > 如果在 P、Q 兩分佈沒有重疊時,假如以 Q 來觀察,那 P 則會為 0 > 並將 0 帶入 JS Divergence > > $JSD(P||Q)=0+0+log{2}=log{2}$ <br> 在真實 data 分佈上其實是很難有重疊的 可以把 data 看成是"高維向量中的低維向量" ( ex: 三維空間中的平面 ) 所以很容易就會不重疊  更不用說上百維度的空間了 ~ --- <br> ## Reference - [理解JS散度(Jensen–Shannon divergence)](https://blog.csdn.net/weixin_44441131/article/details/105878383) - [GAN Lecture 6 (2018): WGAN, EBGAN](https://www.youtube.com/watch?v=3JP-xuBJsyc)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.