我试图计算字符串中字符的散度,但我真的不知道如何将kullback散度算法应用于这样的问题。请大家解释一下KLD算法,我可以用它来解决这样的问题。
谢谢

最佳答案

kl散度是一个度量,它可以给你一个分布和另一个分布之间的伪距离,假设它们有相似的域(就像它们给相似的事物分配概率一样)。伯努利分布给出了0,1个硬币翻转的概率,正数给出了实数,等等)。
KL(分布A,分布B)是一种度量方法,用来衡量当我期望从B取样时,从A取样的东西会有多惊讶。
它并不是一个真正的距离度量,因为它不是对称的,也就是说,如果对于[1,2,3,4,5]的一个域,分布A给出所有数字的概率相等,而分布B给出所有数字的概率只有2,那么kl(b,a)应该比kl(a,b)低得多,因为看到我的均匀分布总是返回相同的数字,我会有点惊讶但是当我看到我仅有的-2分布从[1,3,4,5]返回一些东西时,我会大吃一惊,因为这些被分布B认为是不可能的(概率0)。
我现在还不清楚你是如何用KL散度来测量字符串之间的差异的请详细说明你的问题,以便我能帮你解决这个问题。
维基百科关于KL的文章-http://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence

10-08 19:58