计算边际和条件概率分布

时间:2013-12-07 14:37:27

标签: machine-learning

以下是前几年机器学习的一个示例问题。任何人都可以帮我解决这个问题。

enter image description here

1 个答案:

答案 0 :(得分:3)

解决(a)部分的正确方法是边缘化模型中的所有变量。

p(x3,x4)=1/Z \sum_{x1,x2,x5} \phi(x1,x2) \phi(x2,x4) \phi(x3,x4) \phi(x4,x5)

Z=\sum_{x1,x2,x3,x4,x5} \phi(x1,x2) \phi(x2,x4) \phi(x3,x4) \phi(x4,x5)

在这样的小型模型中,您只需计算2 ^ 3和2 ^ 5各自可能性的总和。但是,更好的方法是使用belief propagation计算总和。

例如,上面分子中的和可以重写为

S(x4,x5)=\sum_{x1,x2,x5} \phi(x1,x2) \phi(x2,x4) \phi(x3,x4) \phi(x4,x5) =\phi(x3,x4) \sum_{x5} \phi(x4,x5) \sum_{x2} \phi(x2,x4) \sum_x1 \phi(x1,x2)

然后可以计算以下中间总和并用于获得最终边际概率:

sx1x2(x2=0)=\phi(x1=0,x2=0)+\phi(x1=1,x2=0) sx1x2(x2=1)=\phi(x1=0,x2=1)+\phi(x1=1,x2=1)

sx1x2x4(x4=0)=\phi(x2=0,x4=0) sx1x2(x2=0)+\phi(x2=1,x4=0) sx1x2(x2=1) sx1x2x4(x4=1)=\phi(x2=0,x4=1) sx1x2(x2=0)+\phi(x2=1,x4=1) sx1x2(x2=1)

sx4x5(x4=0)=\phi(x4=0,x5=0)+\phi(x4=0,x5=1) sx4x5(x4=1)=\phi(x4=1,x5=0)+\phi(x4=1,x5=1)

然后

S(x3,x4)=\phi(x3,x4) sx1x2x4(x4) sx4x5(x4)

Z=\sum_{x3,x4} S(x3,x4)