gpt4 book ai didi

math - 如何从其组件对数项计算对数(项的总和)

转载 作者:行者123 更新时间:2023-12-01 00:04:55 26 4
gpt4 key购买 nike

(1)问题的简单版:

如何计算 log(P1+P2+...+Pn),给定 log(P1), log(P2), ..., log(Pn),而不用任何项的 exp 得到原始 Pi。我不想得到原始的 Pi,因为它们非常小,可能会导致数字计算机下溢。

(2)长版问题:

我正在使用贝叶斯定理来计算条件概率 P(Y|E)。

P(Y|E) = P(E|Y)*P(Y) / P(E)

我有一千个概率相乘。
P(E|Y) = P(E1|Y) * P(E2|Y) * ... * P(E1000|Y) 

为了避免计算机数值下溢,我使用 log(p) 并计算 1000 log(p) 的总和,而不是计算 1000 p 的乘积。
log(P(E|Y)) = log(P(E1|Y)) + log(P(E2|Y)) + ... + log(P(E1000|Y))

但是,我还需要计算 P(E),即
P(E) = sum of P(E|Y)*P(Y)
log(P(E))不等于 log (P(E|Y)*P(Y)) 的总和.我应该如何获得 log(P(E))无需求解 P(E|Y)*P(Y) (它们是极小的数字)并将它们相加。

最佳答案

您可以使用

log(P1+P2+...+Pn) = log(P1[1 + P2/P1 + ... + Pn/P1]) 
= log(P1) + log(1 + P2/P1 + ... + Pn/P1])

适用于任何 Pi。所以分解出​​ maxP = max_i Pi 结果
log(P1+P2+...+Pn) = log(maxP) + log(1+P2/maxP + ... + Pn/maxP)

其中所有比率都小于 1。

关于math - 如何从其组件对数项计算对数(项的总和),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22009862/

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