贝叶斯网络的循环信念传播算法的实现
贝叶斯网络和循环信念传播
贝叶斯网络可用于编码事件之间的一组因果或逻辑概率依赖关系。它们采用有向无环图的形式,每个节点都与一个概率表相关联,该概率表定义了它根据其父节点的值获取每个可能值的概率。
Loopy Belief Propagation 是一种算法,它计算网络每个节点的边际概率分布的近似值,以预先设置的一组选定“观察”变量的值为条件。
这是一个近似值,它表现得好像每个节点的父节点在给定节点的情况下是条件独立的。仅当所考虑的图实际上是一棵树(没有无向循环)时,这才是正确的,在这种情况下,近似值是精确的。
该算法的一个典型失败案例是,当某些节点的父节点既高度相关又非常随机(尤其是simple_net此存储库中的示例的情况;))。然后,即使算法收敛(并非总是如此),它也很可能收敛到错误的值。
另一方面,对于观察结果几乎可以肯定确定网络其余部分的值的网络(这在现实世界的问题中并不少见),循环信念传播算法提供了一个非常好的近似值
2022-06-12 14:05:26
14KB
算法
rust