我在尝试计算字符串中字符的差异,但实在不知道如何将库尔巴克散度算法应用到这种问题上。请问有谁能解释一下我可以用来解决此类问题的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