用几何均值改写JS散度,指数族和高斯分布终于有闭式

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替代品。

术语

原文与代码

社区讨论

相关论文

全部论文解读