是否有任何以封闭形式计算 KL 散度的软件库,它还给出了 KL 散度对分布参数的导数?我正在使用 Julia,因此调用 Julia、Fortran、C 和 C++ 库对我来说特别简单。
或者,如果这样的库不存在,我能做些什么比手动编码 KL 散度更容易,也许使用自动微分?我必须计算大约 10 对具有闭合形式 KL 散度的分布的 KL 散度,例如 beta/beta、log-normal/log-normal、mv-normal/mv-normal、wrapped-cauchy/uniform。
是否有任何以封闭形式计算 KL 散度的软件库,它还给出了 KL 散度对分布参数的导数?我正在使用 Julia,因此调用 Julia、Fortran、C 和 C++ 库对我来说特别简单。
或者,如果这样的库不存在,我能做些什么比手动编码 KL 散度更容易,也许使用自动微分?我必须计算大约 10 对具有闭合形式 KL 散度的分布的 KL 散度,例如 beta/beta、log-normal/log-normal、mv-normal/mv-normal、wrapped-cauchy/uniform。
我最终在 Julia 中自己编写了 KL 散度和导数。我已将它作为现有开源项目的一部分发布。未来的读者可能会在 Celeste.jl 项目的这个页面上找到代码。
很高兴您提出了解决方案 (+1)。我本来打算更早地发布这个问题的答案,但正忙着去我的论文答辩(这是成功的:-)。您可能会对您的解决方案感到满意,但是,除了可以计算某些分布的 KL 散度之外R,例如,通过KLdiv包中的函数flexmix( http://www.inside-r.org/packages/cran/flexmix /docs/KLdiv),我遇到了另一个,在我看来,这是更好的选择,您可能会感兴趣。
它是一个非常全面的自主开源软件,与该主题相关,称为Information Theoretical Estimators (ITE) Toolbox。它是用 MATLAB/Octave 编写的,支持各种信息论测量。所以,向这个软件的作者表示感谢和荣誉,我很高兴在这里分享它,希望它对你和社区有用。