gpt4 book ai didi

java - Kullback Leibler JAVA : how normalize distributions

转载 作者:行者123 更新时间:2023-11-30 11:12:16 26 4
gpt4 key购买 nike

我在java中有这个方法来计算概率分布的KL:

 public static double klDivergence(double[] p1, double[] p2) {
double klDiv = 0.0;
for (int i = 0; i < p1.length; ++i) {
if (p1[i] == 0) { continue; }
if (p2[i] == 0.0) { continue; }

klDiv += p1[i] * Math.log( p1[i] / p2[i] );
}

return klDiv;
}


public static void main(String[] args) {

double[] d1=new double[2];
double[] d2=new double[2];

d1[0]=0.23654;
d1[1]=0.56565;

d2[0]=0.23654;
d2[1]=0.89312;


double symmetric= (klDivergence(d1, d2)+klDivergence(d2, d1))/2;
}

我应该在计算对称 KL 之前对概率分布进行归一化吗?如果你喜欢?

最佳答案

Kullback-Leibler divergencediscrete probability distributions 上定义.根据定义,这些都是归一化为 1。此外,如果没有归一化,d1[0]=0;d1[1]=1 和 d2[0]=0;d2[1]=2 将导致 Kullback-Leibler 散度不是零.所以是的,您应该规范化您的分布。

关于java - Kullback Leibler JAVA : how normalize distributions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26969968/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com