本项目提供了一种有效算法,用于计算两个多元高斯分布之间的Kullback-Leibler(KL)散度,适用于评估概率分布间的差异性。采用MATLAB实现。
此函数用于计算两个多元高斯分布之间的Kullback-Leibler(KL)散度,这两个分布具有指定的均值和协方差矩阵参数。需要注意的是,提供的协方差矩阵必须是正定的。该代码设计得既高效又数值稳定。
示例:
1. 计算两个单变量高斯分布之间的KL散度:例如计算 KL(N(-1, 1) || N(+1, 1))
- mu1 = -1; mu2 = +1;
- s1 = 1;s2 = 1;
- 使用函数 mvgkl(mu1,s1 ^ 2,mu2,s2 ^ 2)
2. 计算两个二元高斯变量之间的KL散度:例如计算 KL(N(mu1, S1) || N(mu2, S2))
- mu1 = [-1 -1];mu2 = [+1 +1];
- S1 = [1 0.5; 0.5 1];
- S2 = [1 -0.7; -0.7 1]
- 使用函数 mvgkl(mu1,S1,mu2,S2)