前序
贝叶斯网络是一种性能优秀的不确定推理方法。其模型结构解释性好,推理过程本质与人的思维模式相似。
要采用贝叶斯网络进行推理分析,首先考虑网络模型的搭建。与神经网络的黑盒模式相反,贝叶斯网络模型要真实的反应研究对象,于是需要知道其网络结构和参数。现在已经有越来越多的研究关注于如何通过数据进行贝叶斯网络结构和参数的学习,但实际中我们往往面临数据集的局限,这是专家知识对建模来说依然十分重要。
本文考虑整合专家知识,在数据驱动的大思路下进行贝叶斯网络的参数学习。通过分析贝叶斯估计的实现过程来给出完整数据样本下的参数学习方法,同时考虑碎权更新法来解决数据缺失的挑战。
(注:本文主要是笔者在项目背景下进行基础学习的总结笔记。错误难免,还望得到广大网友们的热心指导。)
贝叶斯网建模思路
现在的一种主流思路是将网络学习的内容加入贝叶斯网推理模型之中,以期实现模型动态优化,提升实时精度。
当数据量可能会面临限制时,可考虑先依赖专家知识进行初始化建模,然后利用在线流数据分析的方式增量的迭代优化模型。根据难以程度,可采取下图所示三步走计划:
下面重点对参数学习更新部分进行叙述。
贝叶斯网参数学习
贝叶斯网的学习是指通过数据分析,获取贝叶斯网的过程,它包括参数学习与结构学习两个部分。参数学习是指已知网络结构,确定网络参数的问题。而我们这里对参数学习的角色定位是:在已知初始化模型的基础上(包括初始化结构和初始化参数),基于实时获取的新数据,通过参数学习来优化更新模型。所以这里的参数学习用于参数的实时更新。为整合先验知识,采用“贝叶斯估计”来实现参数学习的基本方法,同时采用碎权更新法来实现数据样本不完整场景下的实时近似估计。
1.基础知识
一个贝叶斯网包含有根节点、叶节点、中间节点三类节点。下图为一个贝叶斯网示例:
上图中:X1,X2 为根节点,X2,X3,X4 即为中间节点,X5,X6 为叶节点。各节点间关系由有向边标识,如 X2 为 X1 的子节点,X5 的父节点有 X2 和 X3 。每个节点对应变量