对数概率与概率乘积

机器算法验证 可能性 对数 算术
2022-01-25 06:34:51

根据这篇维基百科文章,可以将概率的乘积表示x⋅y-log(x) - log(y)使计算在计算上更加优化。但如果我尝试一个例子说:

p1 = 0.5
p2 = 0.5
p1 * p2 = 0.25
-log(p1) - log(p2) = 2

p3 = 0.1
p4 = 0.1
p3 * p4 = 0.01
-log(p3) - log(p4) = 6.64

概率p1和的乘积p2高于p3p4,但对数概率较低。

怎么会?

1个回答

我担心你误解了这篇文章的意图。这并不奇怪,因为它写得有些不清楚。有两种不同的事情正在发生。

首先是简单地在对数尺度上工作。

也就是说,而不是“pAB=pApB“(当你有独立性时),可以改为写”log(pAB)=log(pA)+log(pB)”。如果需要实际概率,可以在最后取幂取回pABpAB=elog(pA)+log(pB),但如果需要的话,取幂通常会留到最后一步。到现在为止还挺好。

第二部分是替换logplogp. 这样我们才能以积极的价值观工作。

就个人而言,我真的看不出这有多大价值,尤其是因为它颠倒了任何排序的方向(log是单调递增的,所以如果p1<p2, 然后log(pA)<log(p2); 这个顺序与logp)。

这种反转似乎与您有关,但它是否定的直接后果 - 它应该以负对数概率发生。将负对数概率视为“稀有度”的量表 - 数字越大,事件越稀有(文章将其称为“惊喜价值”或surprisal,这是另一种思考方式)。如果您不喜欢这种反转,请使用logp反而。

要将负对数概率转换回概率,您必须在取幂之前取反。如果我们说si=log(pi)(s对于“惊喜价值”),然后pAB=e[sA+sB].如您所见,这再次反转了方向,将我们需要的东西还给了我们。