以下是机器学习前几年的示例问题。谁能帮我解决这个问题。

最佳答案

解决(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)

关于machine-learning - 计算边际和条件概率分布,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20442555/

10-12 18:24