1
A
回答
1
我想这是因为它可以消除一个变量是其有且只有一个变量,它是依赖于它。在贝叶斯网络中,这些将很容易找到,因为它们是单个孩子的节点。
2
贝叶斯网络可以利用变量消除的顺序的,因为内置于条件独立性假设。
具体地,想象具有联合分布P(A,B,C,d)和想知道的边际P(a)。如果你对条件独立性一无所知,你可以通过对b,c和d进行求和来计算。如果这些具有k-ary域,则需要执行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找到。
相关问题
- 1. 设计贝叶斯网络
- 2. 贝叶斯网络澄清
- 3. 贝叶斯网络教程
- 4. 实现贝叶斯网络
- 5. Clojure DAG(贝叶斯网络)
- 6. 贝叶斯网络在Matlab
- 7. MATLAB中的贝叶斯网络
- 8. MATLAB中的贝叶斯网络错误
- 9. 与Java的贝叶斯网络的API
- 10. 用于iphone的贝叶斯网络库?
- 11. 贝叶斯网络的混淆矩阵
- 12. 贝叶斯网络MATLAB工具箱
- 13. 参考贝叶斯和神经网络
- 14. 贝叶斯网络和模糊逻辑
- 15. AIMA实现贝叶斯网络
- 16. 贝叶斯神经网络:计算Hessian
- 17. Kim和贝叶斯珍珠的消息传递算法网络
- 18. 使用bnlearn包从贝叶斯网络中删除节点
- 19. 人工神经网络与贝叶斯网络的区别
- 20. 动态贝叶斯网络 - 多变量 - 重复性事件 - bnstruct R包
- 21. 分类中的实例与贝叶斯网络
- 22. 在WEKA中使用带有贝叶斯网络的FilteredClassifier
- 23. 贝叶斯网络:独立性和有条件的独立性
- 24. 使用贝叶斯网络的异常检测
- 25. 有创建贝叶斯网络的一步一步教程吗?
- 26. 使用BNT学习动态贝叶斯网络的参数
- 27. 计算边缘化贝叶斯网络的步骤数
- 28. 贝叶斯和神经网络之间的关系是什么?
- 29. 贝叶斯vs OLS
- 30. 贝叶斯网络工具箱结构学习包MATLAB
这看起来像是你最终解释了完全不同的东西。 – ziggystar 2010-03-15 11:09:23
这可能是我误解了,但这是一个很重要的原因,因为能够利用条件独立性假设,国民党对变量消除更有效。 变量消除是一个术语,通常指的是将变量边际化的想法。如果你只是想从网络中删除一个节点,那么第一个答案就足够了。根据我的经验,当VE大写并且我们谈论Bayes Nets时,它指的是第一种情况。 – user262063 2010-03-15 19:56:51