【发布时间】:2010-03-13 06:58:11
【问题描述】:
我们最近研究了变量消除,老师强调是贝叶斯网络使变量消除更有效。 我对此有点困惑,为什么会这样? 希望各位大神给点意见,非常感谢。
罗伯特
【问题讨论】:
我们最近研究了变量消除,老师强调是贝叶斯网络使变量消除更有效。 我对此有点困惑,为什么会这样? 希望各位大神给点意见,非常感谢。
罗伯特
【问题讨论】:
由于内置了条件独立假设,贝叶斯网络可以利用变量消除的顺序。
具体来说,想象有联合分布 P(a,b,c,d) 并想知道边际 P(a)。如果您对条件独立性一无所知,则可以通过对 b、c 和 d 求和来计算。如果这些具有 k 元域,则需要执行 O(k^3) 操作。
另一方面,假设您有一个贝叶斯网络,其中 A 是根,B 是 A 的子节点,C 是 B 的子节点,D 是 C 的子节点。然后,您可以将关节重写为P(a|b)P(b|c)P(c|d)P(d) 并将您的三个总和尽可能分布在方程的右侧。当您真正想要计算 P(a) 时,您可以预先计算 sum_d P(d) 的值并存储此函数。同样,您可以预先计算 P(c|d)*sum_d P(d) 的值并将其存储。
通过这种方式,您最终完成了 O(k^w*+1) 的工作,其中 W* 是贝叶斯网络中任何节点拥有的最大子节点数。在这种情况下,我们做了 O(k^2) 的工作,这也是我们必须保存在内存中的最大条件概率表的大小。请注意,这比我们最初的 O(k^3) 结果要好,如果我们有更多变量会更好。
简而言之,BN 的条件独立性使您可以更有效地边缘化变量。可以在http://www.cs.uiuc.edu/class/sp08/cs440/notes/varElimLec.pdf 找到对此的另一种解释。
【讨论】:
我认为这是因为一个可以消除的变量是一个只有一个变量依赖于它的变量。在贝叶斯网络中,这些很容易找到,因为它们是具有单个子节点的节点。
【讨论】: