ML數學分部
在之前 "KL Divergence & CrossEntrophy 的真面目"中提過了 KL Divergence
也有講到 KL Divergence 有非對稱的性質,
也就是
這時就出現了 JS Divergence 來解決此非對稱性
JS Divergence 的想法非常簡單,如果
那我們找出一個平均點,個別計算與
設 M 為
、 的平均分佈
並分別計算 M 與 P、Q 的差距 ( KL Divergence ) 做平均
就為 JS Divergence
且
所以利用 JS Divergence 解決了非對稱的問題
JS Divergence 常被用在 GAN 計算生成的 Data 與實際 Data 間的差距
但卻有一大問題,這問題也讓 GAN 很難 Train 成功
=> 就是在 P、Q 兩分佈沒有重疊時,JS Divergence 恆為 log2
導致無法測量出兩 Distribution 間的差距
推導
將 M 帶入 KL Divergence
將 log 中分母的
取出 ( 先變分母,在分離 log )
如果在 P、Q 兩分佈沒有重疊時,假如以 Q 來觀察,那 P 則會為 0
並將 0 帶入 JS Divergence
在真實 data 分佈上其實是很難有重疊的
可以把 data 看成是"高維向量中的低維向量" ( ex: 三維空間中的平面 )
所以很容易就會不重疊
更不用說上百維度的空間了 ~