动态贝叶斯网络的推理

机器算法验证 时间序列 贝叶斯网络 状态空间模型
2022-04-05 08:23:32

我有很多物理系统的时间序列数据,其中底层的状态空间模型非常复杂,而且绝对不是线性的,所以卡尔曼滤波器是不可能的。按照论文贝叶斯网络数学模型中的思想:自动构建和高效推理的技术,我想使用动态贝叶斯网络(DBN)来模拟这些问题。定义这些 DBN 并随后执行推理的最常用方法是什么?我更喜欢 R 或 Python 中的库/包可用的方法,以避免重新发明轮子。

注意:我不希望从数据中学习网络的拓扑结构(至少不是在活动开始时!)。现在我正在从领域知识(物理定律)中推导出网络结构。但是,我需要一个灵活的推理框架,因为我会将它应用于许多不同的 DBN,而不仅仅是一个固定的拓扑。

1个回答

我个人认为这个问题太宽泛了,不好回答,但我还是想提出一些建议。

我觉得墨菲对图形模型的介绍非常有用,它很好地涵盖了离散时间的贝叶斯网络。如果您尚未检查此内容,我建议您先阅读此内容。

图模型和贝叶斯网络简介


要构建贝叶斯网络(具有离散时间或动态贝叶斯网络),有两个部分,指定或学习结构和指定或学习参数。

根据我的经验,从数据中学习结构和参数并不常见。

  • 人们经常使用领域知识加上假设来构建结构
  • 并从数据中学习参数。

BNLearn中有一个有用的 R 库,它支持结构和参数学习。


最后,我可能会建议您查看一些递归神经网络文献。深度学习书第 10 章很好地解释了动态贝叶斯网络和循环神经网络之间的关系。深度学习是最近很火的一个领域,那里有更多的资源。