Two tales for a geometric Jensen--Shannon divergence
Frank Nielsen
cs.IT, cs.LG
2025-08-07
Sony的Nielsen给出几何JSD的第二种定义:不对几何混合做归一化。扩展版是f散度,与常用G-JSD相差Z-log Z-1;两者开方都不再是度量,可看成普通JSD的正则化。
Jensen-Shannon散度(JSD)是KL的对称化,有上界log 2,开方还是度量。机器学习里它很常见,但两个高斯之间没有闭式,因为两点高斯混合的微分熵没有解析式。
几何JSD(G-JSD)把算术混合换成归一化的几何混合,高斯之间有闭式,所以被VAE和感知误差模型等一串工作拿去用。代价是归一化让它一般不再可分,也失去f散度的信息单调性。Nielsen问的是:几何混合干脆不归一化,改用对正测度仍非负的扩展KL,会得到什么。
两条定义并排。
两者都能写成Jeffreys散度J和Bhattacharyya距离B(或系数BC)的组合:
G-JSD = (1/4)J − B
扩展G-JSD = (1/4)J + BC − 1
差恰好是Δ = Z − log Z − 1,Z=∫√(p1 p2)是几何混合的配分。指数族上这个差由累积量函数的Jensen缺口决定;对高斯,Z≤1,于是扩展版不超过常用版。
扩展G-JSD对应生成元f(u)=(1/4)(u−1)log u + √u − 1,是真正的f散度,因此可分,满足信息单调性和信息几何里的不变性。常用G-JSD因为混合要归一化,一般不可分。
两者都被写成普通JSD加上「算术混合对M-混合」的KL,再视情况加上配分修正,所以是JSD的正则化。极限情形给出min/max-JSD,扩展max-JSD不超过全变差TV。
高斯闭式由Jeffreys和Bhattacharyya的已知公式拼出,其中Σ̄=(Σ1+Σ2)/2。估计方面讨论了Monte Carlo,以及用很小的γ(文中取10^{-3})的投影γ散度去逼近。
这是一篇定义和恒等式论文,没有新的分类或生成benchmark。能钉死的事实如下。
| 性质 | 普通JSD | 常用G-JSD | 扩展G-JSD |
| 高斯闭式 | 无 | 有 | 有 |
| 是否f散度 | 是 | 否(一般) | 是 |
| 开方是否度量 | 是 | 否 | 否 |
| 有界 | ≤ log 2 | 否 | 否 |
开方不是度量给了具体反例。三点离散分布上,√G-JSD的三角缺口约0.190,扩展版约0.211。算术混合时两种定义重合,因为配分恒为1。
如果要算两个高斯的G-JSD,这篇把常用公式和扩展公式都写成Jeffreys加Bhattacharyya,抄公式即可。更关键的选择是要不要归一化。要f散度的粗粒化稳定性,用扩展版;要和已有G-JSD文献对齐,继续用归一化版,并知道两者差一个Z−log Z−1。
它没有证明扩展版在VAE或GAN里更好。引用链里G-JSD已经在用,这篇是把几何对称化的代数身份补全。
全文几乎没有新实验,Monte Carlo和γ逼近停在方法讨论。三角不等式的反例是三点离散分布,连续或高维高斯上缺口有多大没给。扩展版对正测度友好,但机器学习里密度通常已经归一化,实践收益取决于是否经常碰到未归一化模型,例如能量模型。γ=10^{-3}只是建议量级,没有系统误差表。开方不是度量,意味着不能当核或嵌入距离用;想「换掉JSD就能保留度量性」的人,这里会被直接否决。