KLとJS Divergenceの違い

KL(Kullback-Leibler) divergenceと Jensen-Shannon(JS) divergenceは、2つの確率分布の類似性を知るための指標である。

KL divergenceは以下の式で得られ、1つ目の確率分布pが2つ目の(予想)確率分布qからどれだけ離れているかを表している。

$$D_{KL}(P||Q) = \int_xp(x)log\frac{p(x)}{q(x)}dx (1)$$

KL divergenceは対称性が無い(\(D_{KL}(P||Q)\neq D_{KL}(Q||P) \))ため、距離として扱えない。対称性が無いことは、(1)式でlogが用いられていることから分かり、p(x)とq(x)の位置を入れ替えた場合、対称性が成り立たない。このため、KL divergenceは主従関係のない2つの確率分布間の類似度を考える場合には適していない。

一方、JS Divergenceは下式(2)で得られ、式のように、pとqを入れ替えても対称性が成り立つため、同じ計算結果になる (\(D_{JS}(P||Q)= D_{JS}(Q||P) \)) 。このため、JSはKL divergenceより滑らかだと表現される。

$$D_{JS}(p||q) = \frac{1}{2}D_{KL}(p||\frac{p+q}{2})+ \frac{1}{2}D_{KL}(q||\frac{p+q}{2}) (2)$$

Deep Learning,GAN

Posted by vastee