Skip to main content

Jensen-Shannon Divergence

Jensen-Shannon Divergence(以下 JS Divergence)は、二つの probability distribution の近さを測る divergence です。KL Divergence をもとに構成されますが、KL Divergence と違って symmetric であり、より扱いやすい性質を持ちます。

定義

JS Divergence は、二つの distribution ppqq の中間にある mixture distribution を使って定義されます。

DJS(pq)=12DKL ⁣(pp+q2)+12DKL ⁣(qp+q2)D_{JS}(p \,\|\, q) = \frac{1}{2}D_{KL}\!\left(p \,\Big\|\, \frac{p + q}{2}\right) + \frac{1}{2}D_{KL}\!\left(q \,\Big\|\, \frac{p + q}{2}\right)

ここで、p+q2\frac{p + q}{2} は、ppqq の平均的な distribution です。ppqq の両方を同じ中間 distribution と比較するため、JS Divergence は symmetric になります。

DJS(pq)=DJS(qp)D_{JS}(p \,\|\, q) = D_{JS}(q \,\|\, p)

KL Divergence と Jensen-Shannon Divergence の比較

画像出典: Lilian Weng, “From GAN to WGAN”。ppqq の二つの Gaussian distribution と、それらの平均 m=(p+q)/2m = (p + q) / 2 が示されています。KL Divergence は非対称ですが、JS Divergence は対称です。

KL Divergence との違い

KL Divergence は、pp を基準にするか、qq を基準にするかによって意味が変わります。一方で、JS Divergence は二つの distribution を対等に扱います。

この性質によって、JS Divergence は「二つの distribution がどれくらい似ているか」を測る用途に向いています。

GAN の objective との関係

GAN では、real data distribution を prp_r、Generator が作る distribution を pgp_g と書きます。Discriminator が optimal であるとき、vanilla GAN の loss は、prp_rpgp_g の JS Divergence と次のように関係します。

L(G,D)=2DJS(prpg)2log2L(G, D^{*}) = 2D_{JS}(p_r \,\|\, p_g) - 2\log 2

つまり、vanilla GAN は、Discriminator が十分に最適化されているという条件のもとでは、Generator の distribution pgp_g を real data distribution prp_r に近づけるように、JS Divergence を小さくしていると解釈できます。

弱点

JS Divergence は、二つの distribution の support が重なっている場合には有用です。しかし、prp_rpgp_g の support がほとんど重ならない場合には、JS Divergence は急に一定値へ張り付きやすく、Generator に滑らかな gradient を与えにくくなります。

高次元の画像生成では、real data distribution と generated distribution が低次元の manifold 上にあり、それらが disjoint になりやすいと考えられます。この問題が、GAN の training instability や vanishing gradient につながります。

関連ページ