On a generalization of the Jensen-Shannon divergence and the JS-symmetrization of distances relying on abstract means
Frank Nielsen
cs.IT, cs.LG
2019-04-08
索尼计算机科学研究所把Jensen-Shannon里的算术混合换成抽象均值:几何均值让指数族和高斯有闭式,调和均值给尺度Cauchy一个对数公式。
Jensen-Shannon散度(JS)是把不对称、可能无穷大的KL散度对称化、并上界到log 2的标准做法:两边各自量到算术平均分布(p+q)/2的KL,再取平均。它出现在GAN、聚类、量子信息里,平方根还是度量。
麻烦在参数族。两个高斯的算术混合一般不再是高斯,指数族也一样。于是教科书上的JS在高斯之间没有闭式,工程上只能数值积分或近似。Jeffreys散度能对称化KL,但没有上界,数值更躁。
核心改动是:别再坚持算术平均。任取一个抽象均值M(满足夹在两个输入之间),点对点混合密度再归一化,得到M-混合。用这个混合替换JS定义里的(p+q)/2,就得到M-JS。同一套构造还能给任意距离D做JS对称化:把D(p, 混合)和D(q, 混合)再按另一个均值N拼回去。
选哪个均值,取决于分布族会在哪种运算下封闭。
普通JS是M取算术均值的特例。G-JS并不等于普通JS,它是换了混合之后的新距离。当M支配算术均值时,M-JS仍有上界;几何、调和均值不满足这条,所以G-JS不一定继承log 2那个界。
这是一篇给公式的论文,没有在分类或生成基准上比SOTA。可核对的数字来自闭式本身。
| 对象 | 距离 | 结果 | ||||||
| 任意分布上的普通JS | 上界 | 0到log 2 | ||||||
| 尺度Cauchy,γ=0.1与0.5 | 调和JS | 约0.176 | ||||||
| 尺度Cauchy,γ=0.2与0.8 | 调和JS | 约0.129 | ||||||
| 同一指数族 | 几何JS(对偶) | 等于配分函数F的偏斜Jensen散度 | ||||||
| 多元高斯 | 几何JS(对偶) | ½[(1-α)μ1ᵀΣ1⁻¹μ1+αμ2ᵀΣ2⁻¹μ2-μαᵀΣα⁻¹μα+log(\ | Σ1\ | ^{1-α}\ | Σ2\ | ^α/\ | Σα\ | )] |
其中Σα=((1-α)Σ1⁻¹+αΣ2⁻¹)⁻¹,μα=Σα((1-α)Σ1⁻¹μ1+αΣ2⁻¹μ2)。偏斜Bhattacharyya距离在同一指数族上恰好等于这份Jensen散度,G-JS把这条老恒等式收进同一套对称化。
聚类一节把G-JS接到广义k-means++的拟三角不等式保证上,没有报告真实数据上的聚类准确率。
谁要在高斯、指数族或Cauchy上算对称散度,以前要么数值积分,要么改用Jeffreys、Wasserstein。几何均值这条路给出可微、可写进k-means更新的闭式,代价是距离已经不是经典JS。GAN文献里后来也有人用几何JS,这篇是把「换均值换封闭性」说清楚的那一篇。
日常NLP评测用的还是离散JS,这篇帮不上。它对信息几何和概率聚类更有用。
闭式只在「均值让混合留在族内」时成立。普通JS在高斯上依然没有闭式,问题被绕开而不是被解开。G-JS的上界、三角不等式、是否仍是f-散度,不能从经典JS原样继承。矩阵版JS(含量子JS)只给了定义。没有大规模学习实验,也没有和数值积分JS在下游任务上的对照。2019年的期刊版之后又补了性质一节,工程可用性主要取决于你是否真的需要高斯之间的对称KL替代品。