在具有单个子节点的节点上的Bayes Net中的变量消除

时间:2018-03-24 22:05:20

标签: artificial-intelligence

如果我们有一个节点X,在贝叶斯网络中有一个小孩Y,为什么将P(Y)表达为P(Y|X)P(X)是正确的?是否遵循XY的必要条件?

1 个答案:

答案 0 :(得分:0)

贝叶斯网络

贝叶斯网络中的边缘意味着该变量具有条件依赖性。如果节点没有通过任何路径连接,则它们在条件上是独立的。

将节点X与子Y结合起来意味着您需要学习:

  • 鉴于X为真,Y为真的概率是多少?
  • 鉴于X为假,Y为真的概率是多少?

更一般地说:如果X可以有n个值而Y可以有m个值,那么你必须学习n * (m - 1)个值。 - 1存在,因为概率需要总计为1。

实施例

让我们坚持两个变量都是二进制的简单情况,并使用维基百科中的以下内容:

enter image description here

说X是RAIN,Y是SPRINKLER。你想用X(RAIN)来表达Y(SPRINKLER)。

Bayes theorem州:

P(Y|X) = P(X|Y) * P(Y) / P(X)
<=> P(Y) = P(Y | X) * P(X) / P(X | Y)

现在我们将Law of total probability应用于X.这意味着,对于X,我们只需浏览所有可能的值:

P(Y) = P(Y | X = true) * P(X = true) +
       P(Y | X = false) * P(X = false)

我想这就是你所指的。 P(X=true | Y) = 1,因为X=true表示我们已经知道发生了X=true。 Y是什么并不重要。

为了继续我们的案例,我们现在查找表中的值(X是RAIN,Y是SPRINKLER):

P(Y) = 0.01 * 0.2 + 0.4 * 0.8
     = 0.322