gpt4 book ai didi

c++ - 规范化非常小的双数列表(可能性)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:11 28 4
gpt4 key购买 nike

我正在编写一个算法,在给定模型的情况下,我计算数据集列表的可能性,然后需要对每个可能性进行归一化(概率)。所以像 [0.00043, 0.00004, 0.00321] 这样的东西可能会被转换成 [0.2, 0.03, 0.77] 这样的东西。我的问题是我正在使用的对数似然非常小(例如,在对数空间中,值类似于 -269647.432、-231444.981 等)。在我的 C++ 代码中,当我尝试将其中两个相加(通过取它们的指数)时,我得到的答案是“Inf”。我试图将它们添加到日志空间 (Summation/Subtraction of log) , 但再次偶然发现了同样的问题。

有人可以就此分享他/她的专家意见吗?

谢谢

最佳答案

假设已正确计算出可能性,您可以将每个可能性除以最大可能性。这可以通过从每个对数似然减去最大对数似然以对数形式完成。

然后您可以转换出对数空间。最大的将是 1.0,因为它的标准化对数为 0。较小的将分别介于 0 和 1.0 之间,并表示为最大的分数。

关于c++ - 规范化非常小的双数列表(可能性),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18069269/

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