欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

JS散度

发布时间:2023/12/14 javascript 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 JS散度 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

前面我们介绍了相对熵(KL散度)的概念,知道了它可以用来表示两个概率分布之间的差异,但有个不大好的地方是它并不是对称的,因此有时用它来训练神经网络会有顺序不同造成不一样的训练结果的情况(其实个人觉得也就是训练时间差异罢了,也没那么严重)。为了克服这个问题,有人就提出了一个新的衡量公式,叫做JSJSJS散度,式子如下:
JS(P1∥P2)=12KL(P1∥P1+P22)+12KL(P2∥P1+P22)J S \left( P _ { 1 } \| P _ { 2 } \right) = \frac { 1 } { 2 } K L \left( P _ { 1 } \| \frac { P _ { 1 } + P _ { 2 } } { 2 } \right) + \frac { 1 } { 2 } K L \left( P _ { 2 } \| \frac { P _ { 1 } + P _ { 2 } } { 2 } \right) JS(P1P2)=21KL(P12P1+P2)+21KL(P22P1+P2)
如果有一点数学功底的人可以轻易看出这个公式对于P1P _ { 1 }P1P2P _ { 2 }P2是对称的,而且因为是两个KLKLKL的叠加,由相对熵的文章我们知道KLKLKL的值一定是大于等于0的,因此这个公式也一定大于等于0。

现在只剩下一个关键问题,就是什么时候等于0的问题了。同样参考相对熵的文章我们知道当两个分布相同的时候等于0,那么换到这里,也就是:
P1=P1+P22且P2=P1+P22P _ { 1 }=\frac { P _ { 1 } + P _ { 2 } }{ 2 }\ \qquad 且 \qquad P _ { 2 }=\frac { P _ { 1 } + P _ { 2 } } { 2 } P1=2P1+P2 P2=2P1+P2
的时候。可以轻易看出来,JSJSJS散度等于0的时候跟KLKLKL散度一样,就是P1P _ { 1 }P1P2P _ { 2 }P2完全一样的时候。那么推到这里,用JSJSJS散度来表达两个概率分布的差异就问题不大了。

其实本人在看相对熵和JSJSJS散度的时候一直有疑问,就是当两个概率分布不一样的时候,它们的值是不是会随着距离的变大而变大,也就是说这两个公式跟概率分布的距离到底是不是一个单调的关系,但我没有看到别人在说这件事情。我自己想了半天之后得出的结论是不一定,可能随着概率分布的表达式不一样而有所变化。

当然因为没有人讲这件事我至今也不知道这样想是不是对的,因此有老哥想明白了麻烦留个言告诉我。

总结

以上是生活随笔为你收集整理的JS散度的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。