具有一个非常大的术语和许多非常小的术语的logsumexp

计算科学 算法 数值分析 数值限制
2021-12-12 14:08:37

我想计算以下形式的表达式:

L=lniexi

假设有很多小项,比如说exiϵ. 如果有Nϵ这些术语,它们对总和的贡献是ϵNϵ.

在通常的logsumexp技巧中,我们让a=maxxi并计算

L=a+lniexia

以避免溢出。然而,可能非常小,以至于在浮点数中变为零(下溢)。即使这样,如果足够大,对总和的重要贡献将丢失。ϵϵ/eaNϵϵNϵ

如何处理这种情况?先验我可能不知道序列中这些非常小的项的存在。在这种情况下应用logsumexp技巧可能会导致大错误。有更好的算法吗?

0个回答
没有发现任何回复~