2014-02-25 62 views
4

(1)問題的簡單版本:如何從它的組件數項計算日誌(項之和)

如何計算日誌(P1 + P2 + ...... + Pn)的,給定的日誌( 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) 

爲了避免計算機數字下溢,我用日誌(p)和計算的1000日誌(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))不等於日誌(P(E|Y)*P(Y))的總和。我應該如何得到log(P(E))而不解決P(E|Y)*P(Y)(他們是非常小的數字)並添加它們。

+0

你所需要的答案解析?如果不是,你可以使用log(P(E))= log [n + sum_ {i = 1}^n log(P_i)]作爲近似值 – Azrael3000

回答

1

您可以使用

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

它適用於任何皮。因此,分解出MAXP = max_i丕導致

log(P1+P2+...+Pn) = log(maxP) + log(1+P2/maxP + ... + Pn/maxP) 

,所有的比例都小於1。